U-Boot mit extlinux.conf auf i.MX6

1. die U-Boot Sourcen von http://git.denx.de/u-boot.git/ runterladen

2. U-Boot konfigurieren und bauen:

make CROSS_COMPILE=arm-linux-gnueabihf- <board_name>_defconfig
make CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make CROSS_COMPILE=arm-linux-gnueabihf-

<board_name> ist dabei der offizielle Name des verwendeten Boards, in meinem Fall "marsboard_defconfig".

3. Übertragen des U-Boot auf das Board mit dem Tool imx-usb-loader

4. Auf der SD-Karten werden zwei Partitionen erstellt, eine für Boot (hier liegt Kernel und DTB-File) mit 128MB und eine (Rest) für das Root File System:

sfdisk /dev/sdX << EOF
,128M
;
EOF

5. Die Dateisysteme werden erstellt:

mkfs.ext2 /dev/sdX1
mkfs.ext4 /dev/sdX2

6. Das erste Dateisystem wird gemountet:

mount /dev/sdX1 /mnt/boot
cd /mnt/boot

7. Man erstellt ein Verzeichnis extlinux mit einer Datei drin, die extlinux.conf heißt:

mkdir extlinux
cd extlinux
touch extlinux.conf

8. Inhalt der extlinux.conf

TIMEOUT 10
DEFAULT kernel-mainline
MENU TITLE Boot menu

lable kernel-mainline
	kernel /uImage
	fdt /imx6q-marsboard.dtb
	append earlycon=uart8250,mmio,0xff1a0000 console=ttyS2,1500000n8 root=dev/mmcblk0p7 rootwait rootfstype=ext4 init=/sbin/init