Hi,
I have this quite old but still quite powerful device for it's age hanging around =).
The LibreELEC images floating around for the device have an uboot right next to MBR, then a single FAT32 partition and the ext4 (ext2?) partition for storage. It's similar (or identical) compared to an Ubuntu partition table, except that the SYSTEM contains the root (ro) and the ext2(4?) is mounted to /storage. See: https://wiki.odroid.com/odroid-c1/soft…tab__odroid-c11 for reference. I've only deduced this, I've not looked at the source.
The FAT16 partition is housing boot.ini, .dtb, KERNEL in addition to the aforementioned SYSTEM (and sometimes INITRD and a .bmp splash image, depending on who made the release).
Now, I've managed to get (manual) multibooting working by replacing the boot.ini along with the SYSTEM file, and setting the variable pointing to STORAGE partition correctly. I can easily point to any alternative KERNEL and .dtb files, but the problem is the very large SYSTEM files. To test several versions, I can:
- Rename the SYSTEM file every time I change boot.ini. But this way I need to make the fat16 partition very large to house the SYSTEM files!
- Alternatively, copy the SYSTEM file to the FAT16 partition every time. This is a bit time consuming and causes writes which are ultimately unnecessary.
The questions:
- Where does a Kernel in a LibreElec version look for the SYSTEM file? Is it always hardcoded to ${boot}/SYSTEM? Is there a way to pass a location for SYSTEM for the Kernel as a parameter? I'm sure the answer is somewhere in the sources (1, 2) but I don't know the source well enough to find the information, maybe someone can point me at it?
- How can I determine what commands does the uboot build I'm using support? Can it load with ext2load or ext4load? This way, I can keep the fat partition very lean and clean since KERNEL and .dtb could be anywhere! (3). Same comment on source diving as above!
- What are the constraints to where $boot needs to point at? I'm thinking about will a LibreElec version panic out in case I've pointed to a SYSTEM file somewhere else and/or loaded .dtb and KERNEL with ext[2,4]load. Is boot parameter only used for updates (and $boot mounted at /flash as ro)? If the answer is yes, then I can live with that since I don't really need any kind of autoupdate (this is testing, after all!).
Cheers!
The source repositories I'm referring to:
1) https://github.com/dtechsrv/LibreELEC-AML (and images at http://libreelec.dtech.hu/S805/ ; relevant thread LE-9.2.8 builds for some Amlogic S905x, S802/S812 and S805 devices ; I haven't actually tested these images yet on the C1)
2) https://github.com/Leverex/lisertv.os (an unofficial branch; relevant thread https://forum.odroid.com/viewtopic.php?f=116&t=39184 ).
3) [EDIT]: AFAIK, here is the branch the uboot I'm using is based on: https://github.com/hardkernel/u-boot/tree/odroidc-v2011.03