|
|
|
|
|
by rev_d
2144 days ago
|
|
I'm wondering if the solution to this involves shipping more software via something like the AUR (Arch User Repository) rather than in binary packages. It's not necessarily sane to maintain binaries for each and every device flavour, but as long as the code is reasonably portable & each manufacturer keeps their LLVM IR/JVM bytecode backends in order, that might be enough to overcome some of the pain. I've always found Arch distributions to be more usable on ARM systems than Debian distros simply because they user-friendly ways of building & installing from source. Building from intermediate representation might be the right mix of obfuscation, performance, friendliness, and portability for the consumer space. |
|
The reasons most ARM devices require special "builds" for $YOUR_FAVORITE_OS almost entirely comes down to bootloader/peripheral nonsense. There wasn't (until recently) any standardized way to discover devices attached to your favorite ARM chip, nor any standard boot protocol, like we have in the x86 world. Therefore every device needed its own little description of the attached peripherals and (often) needed a little support in the bootloader -- uboot -- to accompany it. Therefore there are normally device-specific kernel/bootloader packages in your favorite distro, and specific installation instructions, but not every package needs this treatment. Once you install the distro, you can use the same ARM userspace binaries/packages as any other device, more or less.
However, ARM is now settling on ACPI/UEFI like in the x86 world to handle booting and peripheral discovery in a generic manner. You can, for example, use UEFI/TianoCore on the Raspberry Pi 4 today, and boot generic ARMv8 distro images of your choosing, just like you do with x86 systems.