It’s not any one platform that is too complicated, it’s that none of it was standardized. So once you have support for one phone completely done, the next model is already released 6 months ago and you have to start almost from scratch again.
Pixel was one exception to this, because Google would release and document all the modifications needed to run Android. Unfortunately they stopped doing this as well.
Contrast this to the x86 PC and laptop market and everything basic, like how to discover hardware, how to boot is all a documented standard. Even though on PC, you still have to deal with drivers for specific hardware.
Another reason why PC is much easier for Linux is that much of the hardware is shared with servers and for servers, Linux is absolutely a first class operating system, which all but some extremely niche hardware manufacturers fully support.
dustyData@lemmy.world 1 day ago
It’s a long history lesson. But the gist is that IBM made an architecture that allowed for modular LEGO style construction of computers. They were assholes and tried to make it lock down by keeping software secret and proprietary, but it was so popular that everyone else copied it and IBM/PC clones were born. Then the architecture became the standard, and everyone could make components for a PC with (more or less) assurance that any component made would be compatible and fit into (almost) any other computer.
Phones, on the other hand were born out of the necessity of being the smallest and most portable device possible. This meant bespoke solutions. The people who were chasing that format chose an architecture, ARM, that at the time required everything to be on a single chip. Memory, storage, CPU, CMOS, everything has to be on the chip. Which means exchanging parts is not possible. System on chip became the smart phone standard. Now, technically ARM doesn’t have to always be SOC. But it means two things, first is that every phone model is an unique and bespoke production that will never exist again once out of print. Second, it is a Titanic task to reverse engineer certain parts of it, firmware for sensor input is always unique, for example.
This means that FOSS is at a disadvantage. To make free open software for a phone means that, either a manufacturer is magnanimous and gives you all the firmware, or after a major effort to reverse engineer lots of pieces of software, it will be useless for the next model of phone. You either make your own open standard phone, which is a several billion dollar r&d endeavor. Or you’re constantly shooting at a fast moving target.
No one has created an open standard that allows small component manufacturing of mutually interchangeable parts for phones. Risc-v is close but not yet terribly financially viable.