These days, if you have a laptop or desktop PC, you can choose from a wide variety of OSes that will run on your hardware at least to some degree. Yet for mobile devices, you have to find a specific build of an OS for your specific device. So if you have a cheap, unpopular device, you're kinda stuck with what you got from the factory.
Why is this? Is there something about SoC hardware that makes hardware support all-or-nothing?
@pcrock true open source hardware is needed for android. Maybe that will happen when Fuchsia is released, but not likely. Project treble helps to get different ROMs but still not always all works and on Kirin for example there still not all is working or works poorly.
@pcrock One factor I've heard is that those mobile motherboards/SoCs don't provide built-in metadata for what hardware it has installed. Which would mean the OS would have to provide, which can only be done by specializing the install for each device.
I was thinking along these lines: paradoxically, maybe the monopoly of IBM and the subsequent rush on "IBM Compatible" clones inadvertently created a standard for OSes to work with. But the SoC ecosystem consists of lots of small idiots: no-one big enough to monopolise, and not enough smart enough to standardise?
Cards on the table: I don't think it should even be _legal_ to make firmware proprietary. And I also see little reason why it should be commercially sensitive these days, so I do think the value of a standard outweighs it. So yea, for something that _could_ set a SoC standard like the RasPi, failing to release the bootloader looks dumb to me.
@pcrock great question. I was really behind a Linux disto having at least a choice for me. So far they’ve all fallen short. I think it’s a massive lack of drivers for cellular. I know Ubuntu had a nice mobile operating system, but only. 2 or 3 devices had complete hardware support including the cellular function. Add that to the huge lack of apps for the platform, and it just kind of died.
@pcrock What it is more often than not is pure laziness. The SoC manufactures have terrible software standards and ship hardware as soon as it can somehow boot Linux, then immediately jumping onto the next big thing.
They know that such lousy code would never pass LKML review, so they just branch off, put their ugly patches into their own tree and then never update it because there's no money in doing so.
Our thirst for a yearly upgrade circle is largely to blame for this.
@pcrock Moreover, #ARM has not pushed for a standardized, single type of a bus that peripherals are connected to, so there's often not even an easy way to tell all the components connected to the SoC, as there's not a 'lspci' equivalent for ARM, just device trees which are device specific and a total mess to work with.
There are a minimal part of the huge telephony market, but there are some courageous alternatives. I think if they are working without the direct support of the largest hardware companies, they are armed with a stick to fight a tank. For each component that they manage to support 100%, the big ones get full support for thousands of components. Perhaps a solution would be to encourage component companies to release APIs so that any developer can use 100% of each component.
Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.