[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

U-boot menu support in Debian



Hi,

I only recently noticed that Debian doesn't seem use U-boot
support for extlinux style boot menus. This makes jumping
between kernel versions frustrating.

I've taken the old syslinux support for menu generation and
re-purposed it for u-boot:

	https://github.com/suihkulokki/u-boot-update

Note location is temporary, I don't know if this is
preferrable as independent package, part of flash-kernel
or even u-boot package itself.

Setting this up for Dragonboard 410c is matter of:

# echo U_BOOT_FDT=\"qcom/apq8016-sbc.dtb\" > /etc/default/u-boot

This could be truly platform agnostic by using the 
the "fdtdir" keyword in the menu. However, on u-boot the
fdtfile is "apq8016-sbc.dtb", missing the qcom/ directory
prefix. We need to submit a patch for u-boot to search device
tree from vendor sub-dirs too.

Now that the device tree is set, the only thing to make it work on
any new u-boot with distro_bootcmd set is generating and using the menu:

# u-boot-update 
P: Checking for EXTLINUX directory... found.
P: Writing config for /boot/vmlinuz-4.9.0-rc8-arm64...
P: Writing config for /boot/vmlinuz-4.8.0-rc8-arm64...
P: Writing config for /boot/vmlinuz-4.4.23-linaro-lt-qcom...
P: Updating /boot/extlinux/extlinux.conf...
# reboot 
...
U-Boot 2016.09+dfsg1-1 (Sep 12 2016 - 19:43:29 +0000)
...
Scanning mmc 0:a...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
1965 bytes read in 99 ms (18.6 KiB/s)
U-Boot menu
1:      Debian GNU/Linux kernel 4.9.0-rc8-arm64
2:      Debian GNU/Linux kernel 4.9.0-rc8-arm64 (rescue target)
3:      Debian GNU/Linux kernel 4.8.0-rc8-arm64
4:      Debian GNU/Linux kernel 4.8.0-rc8-arm64 (rescue target)
5:      Debian GNU/Linux kernel 4.4.23-linaro-lt-qcom
6:      Debian GNU/Linux kernel 4.4.23-linaro-lt-qcom (rescue target)
Enter choice: 5
5:      Debian GNU/Linux kernel 4.4.23-linaro-lt-qcom
Retrieving file: /boot/initrd.img-4.4.23-linaro-lt-qcom
4658722 bytes read in 596 ms (7.5 MiB/s)
Retrieving file: /boot/vmlinuz-4.4.23-linaro-lt-qcom
13888000 bytes read in 1552 ms (8.5 MiB/s)
append: root=/dev/disk/by-partlabel/rootfs rw rootwait
Retrieving file: /usr/lib/linux-image-4.4.23-linaro-lt-qcom/qcom/apq8016-sbc.dtb
70369 bytes read in 440 ms (155.3 KiB/s)
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Using Device Tree in place at 0000000083000000, end 00000000830142e0

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0



Reply to: