We have prepared a new U-Boot version with some requested features, specifically:
- This version should solve problems with boot process if multiple USB storage devices are attached to your device
- Netconsole enabled
- initrd support (uboot expects initramfs-linux.img to be under /boot)
- dtb support for all devices (linux-kirkwood-dt kernel package)
- SD-card booting for devices that have the slot (Pogoplug V4, Sheevaplug etc.)
- If you have installed (or want to install) the rescue system, this uboot will boot it without additional uboot environment setup.
- As in the case of ALARM 2014.04 U-Boot, this version will not boot the stock pogoplug OS from nand. You can install rescue system mentioned above if you want to be able to boot without any external storage devices attached.
- Automatic detection of uImage, zImage+fdt with or without initial ramdisk and boot device (has to be ext2/3/4 partition or fat. Fat will only work if you specify additional parameters for rootfs partition)
- NSA325 watchdog is disabled in u-boot so a dt kernel can now boot up. Thanks to WarheadsSE and znark.
I have tested the devices that I have, but I have not in any way tested other devices on the list. If your device has not been tested, you have to know how to test this version and/or recover from a bad U-Boot flash. Tools are available (kwboot). Instructions are not provided intentionally for these devices. If you've tested this U-Boot on a device that hasn't been confirmed working, please do report in this thread and I will move the device out of untested list. If you have no idea what you are doing do not attempt to flash U-Boot for an untested device. You have been warned.
Optional variables that can be changed using uEnv.txt file (placed in the same directory as the kernel)
root - same as kernel argument. Useful if you want to specify a different device from where the kernel is. You can use SD card for the kernel and have rootfs on a USB3 drive on Pogplug V4 or you can have rootfs on an unsupported by uboot filesystem like f2fs or xfs (ex. 'root=PARTUUID=00000000-01')
Note: make sure your boot partition contains a directory named boot where your kernel, dtbs/ and uEnv.txt reside
optargs - whatever other arguments you want to pass to kernel (ex. 'optargs=ipv6.disable=1 elevator=noop')
You can also override some predefined variables by specifying a different value (ex. 'rdfile=initrd.img')
Optional variables that can only be changed using fw_setenv
netconsole - By default it is on, but you can disable netconsole completely and save 10sec in boot time by setting 'netconsole' variable to any value but 'on'. It is useful if you are 100% sure you will never need it. Not recommended if you don't have a serial. (ex. fw_setenv netconsole off)
Netconsole setup:
This U-Boot version will ping ip address 10.10.10.5. If there is response, UBoot will set up netconsole to this IP, in addition it will tell the kernel to setup netconsole to 10.10.10.4.
You need to create aliases on your PC to listen on these IP addresses.
Linux:
sudo ifconfig eth0:0 10.10.10.5
sudo ifconfig eth0:1 10.10.10.4
MacOS:
sudo ifconfig en0 alias 10.10.10.5
sudo ifconfig en0 alias 10.10.10.4
After you have aliases set up, open up 2 terminal windows:
In the first terminal type (u-boot output):
Linux:
nc -lu 10.10.10.5 6666
MacOS:
nc -luk 10.10.10.5 6666
In the second terminal (kernel output):
LInux:
nc -luk 10.10.10.4 6666
MacOS:
nc -lu 10.10.10.4 6666
Now power up your device and watch your device boot.
All packages are installable with pacman, so there is no download links!
Tested and confirmed working:
[<Device> | <corresponding package to install> | Link to explanation of caveats]
Dockstar | uboot-dockstar | None
Pogoplug V2 (E02) | uboot-pogo_e02 | None
Pogoplug V4 (and Mobile) | uboot-pogoplugv4 | None
GoFlex Home | uboot-goflexhome | None
GoFlex Net | uboot-goflexnet | None
Zyxel NSA325 | uboot-nsa325 | First time flashing requires stock OS or serial (thanks to znark)
Zyxel NSA320 | uboot-nsa320 | First time flashing requires stock, just like nsa325. Obviously change NSA325 to NSA320 in the linked post.
Zyxel NSA310 | uboot-nsa310 | No MAC associated. Needs MAC assigned manually in the OS
Untested and possibly not working:
Sheevaplug (esata) | uboot-sheevaplug | Unknown
Guruplug (plus) | uboot-guruplug | Unknown
After successful installation double check ethaddr has been set (fw_printenv | grep ethaddr), if not set it manually. You will not have network if the mac address wasn't set for some reason.
___________________________________________________________________________________
Sourcecode: https://github.com/moonman/u-boot
Pull requests are welcome for new devices and/or fixes/enhancements for existing devices.