Open main menu

DAVE Developer's Wiki β

Changes

no edit summary
[[File:TBD.png|thumb|center|200px|Work in progress]] <section begin="History" />
{| style="border-collapse:collapse; "
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
|-
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|VersionIssue Date!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue DateNotes|-| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|14312|2021/07/20}}| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |First DESK-MX6UL-L release|-!| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|16327|2022/03/16}}| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:white#000000"|NotesDESK-MX6UL-L 3.0.0 release
|-
|! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fbededed; padding:5px; color:#000000"|1.0.02023/05/05|! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fbededed; padding:5px; color:#000000"|Apr 2021|style="border-left:solid 2px #73B2C7; borderDESK-right:solid 2px #73B2C7;borderMX6UL-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|First DESK L 4.0.0 release
|-
|}
<section end="History" />
__FORCETOC__
<section begin="Body" />
==How to create a bootable SD card==
{{ImportantMessage|text=The procedure described here was tested with a physical machine. In case of a virtual machine such as the [[Managed_Virtual_Machine_(MVM)|MVM]], it might not work properly. Also, it is worth remembering that The USB controller of the MVM is disabled should be enabled by default. See also [[MVM_FAQs#Q:_How_to_use_the_USB_devices_connected_to_the_host_machine.3F|this section]]If you are using Linux-based distribution and are having trouble detecting a USB device in virtual machine, please make sure your user belongs to the ''vboxusers'' group.}}
This article shows how to create a bootable microSD for the [[DESK-MX6UL-L/General/Release_Notes_(DESK-MX6UL-L)Release_Notes|DESK-MX6UL-L Release Notes]] kit by using a simple bash script. <br>'''Note:''' Note: Starting from this '''DESK-MX6UL-L 1.0.1''' release the support for the SPL has been introduced in UbootU-Boot. Previous versions of this script will no longer produce a fully functional and bootable microSD card. <br>
The procedure has been tested on a Linux PC running Ubuntu LTS (>=16MVM released with '''DESK-MX6UL-L 4.0.04) distribution 1''' release with *a 16 32 GB microSD card [1]*a USB SD card reader*the binary files delivered along with the [[Axel_Embedded_Linux_Kit_(XELK)DESK-MX6UL-L/General/Release_Notes#Downloadable_binary_imagesDownloadable_binary_images_3|DESK-MX6UL-L 14.0.10]]The resulting card is partitioned as depicted [[Axel_Embedded_Linux_Kit_here below: * bootable partition (mmcblk0p1, vfat) containing:** binary images (U-Boot and kernel images)* root file system partition (XELKmmcblk0p2, ext3)#XELK_microSD_Layout|here]]** root file system binaries and init scripts
The script - named <code>desk-mx6ul-l-1.0.0_mksdmksd.sh</code> - looks like thiscan be realized with the following code:
<pre>
#!/bin/bash if [[ -z $1 || -z $2 || -z $3 || -z $4 || -z $5 ]] then echo "$0 Usage:" echo " $0 <device> <u-boot.img> <SPL> <binaries directory> <rootfs tar.bz2>" echo " Example: $0 /dev/sdc u-boot.img SPL binaries/ rootfs.tar.bz2" exit
fi
if [ "$(whoami)" != "root" ]
then echo "you must be root to run this script!" exit
fi
if ! [[ -b $1 ]]
then echo "$1 is not a valid block device!" exitfi
if ! [[ -e $2 ]]
then echo "Incorrect u-boot.img location!" exit fi if ! [[ -e $3 ]] then echo "Incorrect SPL location!" exit
fi
if ! [[ -d $4 ]]
then
echo "Incorrect Binaries location!" exit fi
if ! [[ -f $5 ]]
then
echo "Incorrect rootfs location!" exit fi
DRIVE=$1
if [[ "$DRIVE" == *"mmcblk"* ]] then echo "You're using a mmc device, I need to fix partition names" PART="p"else PART=""fi UBOOT=$2
SPL=$3
BINARIES=$4 RFS=$5
echo "All data on "$DRIVE" now will be destroyed! Continue? [y/n]"
read ans
if ! [ $ans == 'y' ]
then
exit
fi
if [ "$?" -eq "0" ]
then
{ echo 40,1380,0x0c,* echo 1420,,83,- } | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE
else
{
mkfs.vfat -F 32 -n BOOT "$DRIVE$PART"1 #> /dev/null
mkfs.ext3 -F -L ROOTFS "$DRIVE$PART"2 #> /dev/null
 
# wait for the VM to recognize the uSD
sleep 60
echo "[Copying files...]"
</pre>
Here is an example that shows how to use this script. We use here files delivered with [[DESK-MX6UL-L/General/Release_Notes#Downloadable_binary_images_3|DESK-MX6UL-L 4.0.0]] release. Before invoking the script, the following files has to be renamed in order to make them compatible with the default U-Boot environment variables:
* bootscript: <code>boot.scr</code>
* splash image: <code>splash_image.bmp</code>
* Linux kernel: <code>desk-mx6ul-l-4.0.0_uImage</code>
* Device tree blob: <code>desk-mx6ul-l-4.0.0_imx6ul-axelulite-cb003a.dtb</code>.
 
In the case of you don't have some file on MVM, please download it from [https://mirror.dave.eu/desk-mx-l mirro.dave.eu].
Here is an example that shows how to use this script. Let's assume that the binary files were downloaded in the We will copy them into <code>~/desk-mx-l/desk</code> subdirectory of the working directory. Before invoking the script, the following Needed binary files has to can be renamed in order to make them compatible with the default U-Boot environment variables:* bootscript: found on <code>boot.scrMVM</code>* Linux kernel: <code>uImage</code>* Device tree blobin the following location: <code>imx6ul-lynx-som0013-cb002f.dtb</code> (or <code>imx6ul-axelulite-cb003a.dtb</code> or <code>imx6ul-axelulite-cb006c.dtb</code>)
This is the list of the binary files that will be used by the script:
<pre>
dvdk@vagrant:~/desk-mx-l$ ll /tftpboot/desk-mxmx6ul-l/total 10916drwxr-xr-x 2 dvdk root 4096 Apr 14 11:28 ./drwxr-xr-x 3 dvdk root 4096 Apr 14 11:27 ../11352-rw-r--r-- 1 dvdk root 34095 Apr 14 32964 Mar 31 11:28 01 desk-mx6ul-l-14.0.0_imx6ul0-imx6ul-axelulite-cb003a.dtb-rw-r--r-- 1 dvdk root 33137 Apr 14 32002 Mar 31 11:28 01 desk-mx6ul-l-14.0.0_imx6ul0-imx6ul-axelulite-cb006c.dtb-rw-r--r-- 1 dvdk root 34211 Apr 14 33028 Mar 31 11:28 01 desk-mx6ul-l-14.0.0_imx6ul0-imx6ul-lynx-som0013-cb002f.dtb-rw-r--r-- 1 dvdk root 56320 Apr 14 8017976 Mar 31 11:27 01 desk-mx6ul-l-14.0.0_mx6uldesk_axelulite_spi_SPL0-uImage-rw-r--r-- 1 dvdk root 547528 Apr 14 11 35840 Mar 31 10:27 59 desk-mx6ul-l-14.0.0_mx6uldesk_axelulite_spi_u0-boot.imgmx6uldesk_axelulite_SPL-rw-r--r-- 1 dvdk root 56320 Apr 14 1148128 Mar 31 10:27 59 desk-mx6ul-l-14.0.0_mx6uldesk_axelulite_SPL0-mx6uldesk_axelulite_spi_SPL-rw-r--r-- 1 dvdk root 547200 Apr 14 552184 Mar 31 11:27 00 desk-mx6ul-l-14.0.0_mx6uldesk_axelulite_u0-mx6uldesk_axelulite_spi_u-boot.img-rw-r--r-- 1 dvdk root 56320 Apr 14 11 551704 Mar 31 10:27 59 desk-mx6ul-l-14.0.0-mx6uldesk_axelulite_u-boot.0_mx6uldesk_lynx_spi_SPLimg-rw-r--r-- 1 dvdk root 512568 Apr 14 11 35840 Mar 31 10:27 59 desk-mx6ul-l-14.0.0_mx6uldesk_lynx_spi_u0-boot.imgmx6uldesk_lynx_SPL-rw-r--r-- 1 dvdk root 56320 Apr 14 1148128 Mar 31 10:27 59 desk-mx6ul-l-14.0.0_mx6uldesk_lynx_SPL0-mx6uldesk_lynx_spi_SPL-rw-r--r-- 1 dvdk root 512216 Apr 14 11517248 Mar 31 10:27 59 desk-mx6ul-l-14.0.0_mx6uldesk_lynx_u0-mx6uldesk_lynx_spi_u-boot.img-rw-r--r-- 1 dvdk root 52224 Apr 14 11 516776 Mar 31 10:27 59 desk-mx6ul-l-14.0.0-mx6uldesk_lynx_u-boot.0_mx6uldesk_lynx_usb_SPLimg-rw-r--r-- 1 dvdk root 431512 Apr 14 111152054 Mar 31 10:59 splash_image.bmpdvdk@vagrant:~$ mkdir -p ~/desk-mx-l/deskdvdk@vagrant:27 ~$ cp /tftpboot/desk-mx6ul-l/desk-1mx6ul-l-4.0.0_mx6uldesk_lynx_usb_u0_uImage ~/desk-boot.imgmx-rwl/desk/desk-rmx6ul-l-r4.0.0_uImagedvdk@vagrant:~$ cp /tftpboot/desk-mx6ul- 1 dvdk root 7056696 Apr 14 11:28 l/desk-mx6ul-l-14.0.0_uImage0_imx6ul-axelulite-cb003a.dtb ~/desk-mx-rwl/desk/desk-rmx6ul-l-r4.0.0_imx6ul-axelulite- 1 cb003a.dtbdvdk root 1152054 Apr 14 11@vagrant:27 ~$ cp /tftpboot/desk-mx6ul-l/splash_image.bmp~/desk-mx-l/desk/dvdk@vagrant:~$ cp ~/desk-mx-l/boot.scr ~/desk-mx-l/desk/boot.scrdvdk@vagrant:~$ cp ~/desk-mx-l/rfs/desk-mx6ul-l-4.0.0_modules.tar.gz ~/desk-mx-l/desk/
</pre>
 
You can now run the script, by passing the following parameters:
*Device file of the microSD card (<code>/dev/sdcsdb</code> in the example)
*U-Boot image
*SPL
*Archive of the target's root file system (compressed as <code>.tar.bz2</code> file).
<pre>
dvdk@vagrant:~/desk-mx-l$ sudo umount /dev/sdb*dvdk@vagrant:~/desk-mx-l$ sudo ./desk-mx6ul-l-14.0.0_mksd1_mksd.sh /dev/sd<x> <usdb /tftpboot/desk-mx6ul-l/desk-mx6ul-l-4.0.0_mx6uldesk_axelulite_u-boot.img/tftpboot/desk-mx6ul-l/desk-mx6ul-l-4.0.0_mx6uldesk_axelulite_SPL ~/desk-mx-l/desk ./rfs/desk-mx6ul-l-4.0.1_dave-image-devel-desk-mx6ul.tar.bz2 All data on /dev/sdb now will be destroyed! Continue? [y/n]y [Partitioning /dev/sdb...]1024+0 records in 1024+0 records out1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.262305 s, 4.0 MB/sDISK SIZE - 31002198016 bytesChecking that no-one is using this disk right now ... OK Disk /dev/sdb: 28.89 GiB, 31002198016 bytes, 60551168 sectorsDisk model: Transcend Units: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytes > <SPL> <binaries_dir>Created a new DOS disklabel with disk identifier 0x937180d6./dev/sdb1: Created a new partition 1 of type 'W95 FAT32 (LBA)' and of size 8 GiB./dev/sdb2: Created a new partition 2 of type 'Linux' and of size 20.9 GiB./dev/sdb3: Done. New situation:Disklabel type: dosDisk identifier: 0x937180d6 Device Boot Start End Sectors Size Id Type/ <rfs_filenamedev/sdb1 * 32768 16777215 16744448 8G c W95 FAT32 (LBA)/dev/sdb2 16777216 60551167 43773952 20.9G 83 Linux The partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.[Making filesystems...]mkfs.fat 4.1 (2017-01-24)mke2fs 1.45.5 (07-Jan-2020)/dev/sdb2 contains a ext3 file system labelled 'ROOTFS' created on Mon Apr 3 10:19:52 2023Creating filesystem with 5471744 4k blocks and 1368064 inodesFilesystem UUID: a0208180-9d1c-47e8-a8e0-c92a63a7059aSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: doneWriting inode tables: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done [Copying files...]'/home/dvdk/desk-mx-l/desk/boot.scr' ->'/mnt/boot.scr''/home/dvdk/desk-mx-l/desk/desk-mx6ul-l-4.0.0_imx6ul-axelulite-cb003a.dtb' -> '/mnt/desk-mx6ul-l-4.0.0_imx6ul-axelulite-cb003a.dtb''/home/dvdk/desk-mx-l/desk/desk-mx6ul-l-4.0.0_uImage' -> '/mnt/desk-mx6ul-l-4.0.0_uImage''/home/dvdk/desk-mx-l/desk/splash_image.bmp' -> '/mnt/splash_image.bmp'[Extracting rfs (this may take a while...)][Programming SPL]70+0 records in70+0 records out35840 bytes (36 kB, 35 KiB) copied, 0.0120358 s, 3.0 MB/s[Programming u-boot.img]538+1 records in538+1 records out551704 bytes (552 kB, 539 KiB) copied, 0.164175 s, 3.4 MB/s[Done]
</pre>
 
[1] In case you have a different size, you'll need to change the <code>sfdisk</code> parameters accordingly.
===bootscr ===
Once you got the new binaries compiled from your modified sources, they have to be installed on first SD partition preserving the original file names used into <i>boot.scr</i> uU-boot Boot bootscript.
Here below there is an example on how to create a <code>boot.scr</code> file from the '''bootscript.txt''' for booting from SD card:
echo 'bootscript generated with command "mkimage -A ARM -T script -C none -n DESK-MX6UL -d bootscript.txt boot.scr"'
setenv desk_release 'desk-mx6ul-l-14.0.0'
if test 0x${som_configid#} = 0x00000013 && test 0x${cb_configid#} = 0x0000002f;
Then copy the ''boot.scr'' into the <code><binaries_dir></code> directories used by the script to create the SD card.
 
===Install Module===
 
To install kernel modules, follow the steps below.
 
<pre>
root@desk-mx6ul-axelulite:~# sudo mount /dev/mmcblk0p1 /media
root@desk-mx6ul-axelulite:~# tar xvzf /media/desk-mx6ul-l-4.0.0_modules.tar.gz -C /
</pre>
 
After installation, run the following command to verify that the installation was successful:
 
<pre>
root@desk-mx6ul-axelulite:~# ls -l /lib/modules/$(uname -r)
total 300
lrwxrwxrwx 1 541 502 65 Apr 3 2023 build -> /home/jenkins/workspace/workspace/DESK-MX6UL-L-4.x.x_Linux-kernel
drwxr-xr-x 6 541 502 4096 Apr 3 2023 kernel
-rw-r--r-- 1 541 502 2718 Apr 3 2023 modules.alias
-rw-r--r-- 1 541 502 4768 Apr 3 2023 modules.alias.bin
-rw-r--r-- 1 541 502 14878 Apr 3 2023 modules.builtin
-rw-r--r-- 1 541 502 34704 Apr 3 2023 modules.builtin.alias.bin
-rw-r--r-- 1 541 502 17778 Apr 3 2023 modules.builtin.bin
-rw-r--r-- 1 541 502 105373 Apr 3 2023 modules.builtin.modinfo
-rw-r--r-- 1 541 502 10689 Apr 3 2023 modules.dep
-rw-r--r-- 1 541 502 21666 Apr 3 2023 modules.dep.bin
-rw-r--r-- 1 541 502 0 Apr 3 2023 modules.devname
-rw-r--r-- 1 541 502 8657 Apr 3 2023 modules.order
-rw-r--r-- 1 541 502 85 Apr 3 2023 modules.softdep
-rw-r--r-- 1 541 502 16970 Apr 3 2023 modules.symbols
-rw-r--r-- 1 541 502 23964 Apr 3 2023 modules.symbols.bin
lrwxrwxrwx 1 541 502 65 Apr 3 2023 source -> /home/jenkins/workspace/workspace/DESK-MX6UL-L-4.x.x_Linux-kernel
</pre>
----
[[Category:AXEL ULite]]
8,226
edits