[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
howtos:hardware:arm:sone_u-boot_hints [2013/12/22 10:29 (UTC)] – [Making it easy for u-boot to find uImage and uinitrd] louigi600 | howtos:hardware:arm:sone_u-boot_hints [2013/12/25 23:26 (UTC)] (current) – [Making it easy for u-boot to find uImage and uinitrd] louigi600 | ||
---|---|---|---|
Line 1: | Line 1: | ||
<!-- Add your text below. We strongly advise to start with a Headline (see button bar above). --> | <!-- Add your text below. We strongly advise to start with a Headline (see button bar above). --> | ||
====== Making it easy for u-boot to find uImage and uinitrd ====== | ====== Making it easy for u-boot to find uImage and uinitrd ====== | ||
- | I often fiddle with testing root images, kernels and initrd on my kirkwood based systems by using usb flash sticks. I found that although Jeff did a brilliant job on uboot his default environment was unable to directly boot all my testing images. | + | I often fiddle with testing root images, kernels and initrd on my kirkwood based systems by using usb flash sticks. I found that although Jeff did a brilliant job on uboot, at the time I started fiddling with custom boot images on my dosckstar, |
I made myself a custom environment that was more flexible and allowed me to boot from any usb port as long as the following limitations are met: | I made myself a custom environment that was more flexible and allowed me to boot from any usb port as long as the following limitations are met: | ||
Line 10: | Line 10: | ||
* the root filesystem bust be labelled " | * the root filesystem bust be labelled " | ||
- | Heres the environment dumped from fw_printenv: | + | Heres the environment dumped from fw_printenv: |
- | arcNumber=3089 | + | arcNumber=<put here your device' |
baudrate=115200 | baudrate=115200 | ||
boot_flash_kernel=nand read $flash_kernel_load_addr $flash_kernel_offest $flash_kernel_size; | boot_flash_kernel=nand read $flash_kernel_load_addr $flash_kernel_offest $flash_kernel_size; | ||
Line 45: | Line 45: | ||
usb_dev_part=1 | usb_dev_part=1 | ||
usb_part_list=4 3 2 1 | usb_part_list=4 3 2 1 | ||
- | usb_scan=usb start; setenv usb_boot_dev none; for dev in $usb_dev_list; | + | usb_scan=usb start; setenv usb_boot_dev none; for dev in $usb_dev_list; |
- | bootm $usb_boot_address ; fi; | + | |
Labeling the root filesystem was a workaround when I started getting issues on device namings changes as I began using the SATA drives for NAS storage. In practice what was happening was that uboot thought that root was on sda but once the kernel booted it would detect the SATA drives before that and name the usb memory stick to after the last SATA drive causing a kernel panic as initrd attempts to mount the root filesystem. | Labeling the root filesystem was a workaround when I started getting issues on device namings changes as I began using the SATA drives for NAS storage. In practice what was happening was that uboot thought that root was on sda but once the kernel booted it would detect the SATA drives before that and name the usb memory stick to after the last SATA drive causing a kernel panic as initrd attempts to mount the root filesystem. | ||
- | I thus changed the u-boot environment to pass the root device as a label rather then a device path. | + | I thus changed the u-boot environment to pass the root device as a label rather then a device path. This allows me to boot my GoFlexNet correctly from any usb stick (even trough a usb hub) regardless of the presence of the SATA drives. |
+ | |||
+ | To my understanding the latest uboot environments actually do more then this now ... so here's my last hybrid environment: | ||
+ | |||
+ | arcNumber=3089 | ||
+ | baudrate=115200 | ||
+ | bifsload=0x800000 / | ||
+ | bootargs=${console} ${mtdparts} ${root_fs} ro ${rootfstype} | ||
+ | bootcmd=usb start; run force_rescue_bootcmd; | ||
+ | bootdelay=3 | ||
+ | console=ttyS0, | ||
+ | ethact=egiga0 | ||
+ | ethaddr=xx: | ||
+ | force_rescue=0 | ||
+ | force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 / | ||
+ | initrd=uinitrd | ||
+ | kernel=uImage | ||
+ | led_error=orange blinking | ||
+ | led_exit=green off | ||
+ | led_init=green blinking | ||
+ | mainlineLinux=yes | ||
+ | mtdids=nand0=orion_nand | ||
+ | mtdparts=mtdparts=orion_nand: | ||
+ | partition=nand0, | ||
+ | pogo_bootcmd=if fsload uboot-original-mtd0.kwb; | ||
+ | rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; | ||
+ | rescue_installed=0 | ||
+ | rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0: | ||
+ | root_fs=root=LABEL=root | ||
+ | rootfstype=rootfs=ext3 | ||
+ | safearcNumber=2097 | ||
+ | setbootargs=setenv bootargs console=${console} ${mtdparts} ${root_fs} ro ${rootfstype} | ||
+ | stderr=serial | ||
+ | stdin=serial | ||
+ | stdout=serial | ||
+ | ubifs_bootcmd=run ubifs_set_bootargs; | ||
+ | ubifs_mtd=3 | ||
+ | ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0: | ||
+ | usb_dev_list=3 2 1 0 | ||
+ | usb_part_list=4 3 2 1 | ||
+ | usb_rootdelay=10 | ||
+ | usb_scan=sleep 5; setenv usb_boot_dev none; for dev in $usb_dev_list; | ||
====== Sources ====== | ====== Sources ====== | ||
Line 61: | Line 101: | ||
<!-- Please do not modify anything below, except adding new tags.--> | <!-- Please do not modify anything below, except adding new tags.--> | ||
<!-- You must remove the tag-word " | <!-- You must remove the tag-word " | ||
- | {{tag> | + | {{tag> |