Hacker News new | ask | show | jobs
by wolrah 997 days ago
Can anyone who has actual experience in Linux kernel development for ARM platforms offer a realistic defense of the status quo other than "companies making the SoCs don't care nor do the device OEMs that are their primary customers and it would cost more to do it right"?

I'm not a low level hardware person, but being on the edges of the Android modding community for over a decade now and also spending a lot of time working on the various Pi-likes has left me incredibly frustrated with the state of hardware support.

In my mind it is absolutely inexcusable that vendors regularly ship hardware with only binary blob support for ancient kernels, years old versions of Android, etc. with no intent to ever change. To me that's a sign of either pure incompetence or an active desire to do things wrongly. Am I wrong? Is there any reason I shouldn't feel like everyone responsible for those choices should be named and shamed constantly? Basically is there any good excuse other than "it's cheaper this way" and/or defective logic about drivers being "trade secrets" of some form.

1 comments

I think I'm several years out of date on this issue, but years ago one of the problems was that there were not standard hardware interfaces for things a kernel needs like interrupt routing or hardware bus enumeration. The PC for example is a very homogeneous platform. There are also standards like EFI. But the ARM world has been a wild west. Each device needed some kind of hardcoded hardware map.
That explains why ARM mainline Linux is more of a mess than other platforms, but it doesn't explain why ARM SoC vendors are seemingly entirely uninterested in doing things the right way. They could develop in a mainline-compatible way and work to upstream their changes so their platforms could be supported properly ~forever but they instead seem to go out of their way to do the opposite despite constant pressure to fix their garbage.