11-18-2020, 06:15 PM
All these things you propose can and have be done with u-boot. For some reason the pinebook pro has an barely functional u-boot with no features.
U-boot has a console, where it's possible to boot specific kernels with custom command lines, mount file systems, copy files between devices, do basic networking like DHCP, ping, tftp load files and mount network drives with NFS.
It can use USB device mode to make the eMMC appear as a flash drive to a host computer connected to the USB port. Really handy way to repair an eMMC that won't boot, compared to needing to open the pbp up and remove the eMMC module!
You can create scripts to do certain things, e.g. "boot-emmc", "boot-sd", "boot-sdkernel-emmcroot".
There is a menu system that can list boot options and allows selecting one.
It's possible to create an automatic fallback system. If a kernel fails to boot a certain number of times in a row, then an alternate kernel will be used. Something run in Linux marks a boot as good when it's reached some point considered good enough, like systemd has finished entering multi-user.target. Every embedded Linux product I've designed has had something like this.
But the u-boot on the PBP doesn't even have keyboard or fb support, so one can't even seen an error message if it doesn't boot, much less any of the above.
U-boot has a console, where it's possible to boot specific kernels with custom command lines, mount file systems, copy files between devices, do basic networking like DHCP, ping, tftp load files and mount network drives with NFS.
It can use USB device mode to make the eMMC appear as a flash drive to a host computer connected to the USB port. Really handy way to repair an eMMC that won't boot, compared to needing to open the pbp up and remove the eMMC module!
You can create scripts to do certain things, e.g. "boot-emmc", "boot-sd", "boot-sdkernel-emmcroot".
There is a menu system that can list boot options and allows selecting one.
It's possible to create an automatic fallback system. If a kernel fails to boot a certain number of times in a row, then an alternate kernel will be used. Something run in Linux marks a boot as good when it's reached some point considered good enough, like systemd has finished entering multi-user.target. Every embedded Linux product I've designed has had something like this.
But the u-boot on the PBP doesn't even have keyboard or fb support, so one can't even seen an error message if it doesn't boot, much less any of the above.