-
Notifications
You must be signed in to change notification settings - Fork 4
Extended Runtime Environment Planning
The busybox based runtime environment that ships with LUA as of 3.1.1 does not provide a package manager out of the box. Cross compilation to aarch64 is possible and with the SDK much of the work can be done offline, however, without prebuilt packages, building becomes complex.
Arch Linux provides a comprehensive set of aarch64 packages and a package manager (pacman), which, with some small modifications, will run on the LUA. However, the arch-linux ld-linux interpreter and libc are not binary compatible with the LUA OS so an ELF executables need to be retargeted to use the Arch ld-linux binary and libc. On top of that, pacman and other pre-built packages assume native control of the root namespace making it impractical to run in a namespace that won't effect the rest of the system (e.g. /opt/local).
Some investigation should be done regarding other package managers for popular SOCs like the Raspberry Pi to find something that is compatible with the libc shipped on the LUA. An alternative is to rebuild existing Arch packages against the LUA libc and with a custom namespace.
My current line of thinking is that an /opt/local overlay can be created and used as the namespace for any managed packages (similar to MacPorts). This should avoid conflicts with the Rockchip build root and the Atgames additions and by using an overlay allows easy rollback should something go wrong.
This /opt/local overlay could live on external storage as well, allowing for persistence between upgrades.
Firmware patches have the ability to overwrite anything in the base system. During the 3.0.8 to 3.1.1 update, SSH keys added to /root/.ssh/authorized_keys were not modified.
It would be interesting to create a set of Wayland app Add Ons (Firefox, a terminal, VLC, etc.) as examples of what might be possible. These could have fully containerized/namespaced dependency sets apart from /opt/local It may be a good idea to provide build tools that allow packaging up a pacman style package as a UCE.
[ ] Is it possible to factory reset. That would make me more comfortable ;-)
[ ] Getting an initial SSH key onto the box
[ ] Starting a persistent SSH daemon at boot (changes to /etc are currently wiped on boot and the menu launcher is likely to be overridden by firmware updates.