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.

@pcrock That’s because phones do not have a BIOS basically.
But the system doesn’t needs to be done specifically for the device, only the bootloader and kernel.
And few userspace/daemons but basically that’s only er-device when it’s not stabilized yet.

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?

@cathal @pcrock
It’s just that there is no standard layer which can allow a bit of move.
One big enough could be the iphone, but AFAIK it has nothing like the BIOS.
And honestly the idiots in the SoC ecosystems aren‘t the chips/boards makers but rather the OS makers.
If the standard layer cannot be in hardware it has to be software, at least as a temporary solution.

@lanodan @pcrock Looking at the stupidity of Broadcom not releasing the RasPi bootloader.. I'm willing to indict the chipmakers also. But I basically agree that the absence of a BIOS is the main issue.

@cathal @pcrock So like every x86 motherboard maker is an idiot for not releasing their BIOS source code?
Same for NVidia and their drivers?
It’s not being good, but not really being an idiot.

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.

It depends what kind of culture develops around it. It's open hardware, but whether that results in a culture of having the software drivers etc. be open as well is I think too early to tell.

There's certainly a possibility for a massive improvement, but not a guarantee.


@pcrock @codesections hardware abstraction on ARM is nowhere near as standardized as it is on x86.

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.

Sign in to participate in the conversation

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.