zlacker

[parent] [thread] 6 comments
1. fmajid+(OP)[view] [source] 2025-12-06 17:49:23
Most ARM devices don't have UEFI or a standardized hardware abstraction layer as x86/x64 does, a prerequisite for having a choice of OSes.
replies(1): >>vbezhe+c6
2. vbezhe+c6[view] [source] 2025-12-06 18:40:38
>>fmajid+(OP)
I don't believe that's the true problem. Booting operating system is not a problem. There's no standardized hardware abstraction layer in PC either, every OS brings their own set of drivers.

My guess is that modern hardware is too complicated for one hacker to write reliable drivers. That wasn't the case back in the 90-s, when Linux matured. So we are at mercy of hardware manufacturers and they happened to not be interested in open upstreamed drivers.

replies(2): >>immibi+1c >>matheu+Hf
◧◩
3. immibi+1c[view] [source] [discussion] 2025-12-06 19:23:43
>>vbezhe+c6
In the ARM world, there isn't even a standard way to boot, and there are no standard hardware interfaces - except maybe the interrupt controller, since it's part of the CPU and only ARM designs the CPUs.

On any PC, you can still use BIOS/UEFI services to get a basic framebuffer and keyboard input. You cannot do that on embedded ARM devices - you need to get several layers into the graphics stack to have a framebuffer. I tried it on the PinePhone, using existing source code as a reference, and the furthest I got was sending commands from the video port to the LCD controller and then not having an oscilloscope to see if the LCD controller replied back.

replies(1): >>vbezhe+7f
◧◩◪
4. vbezhe+7f[view] [source] [discussion] 2025-12-06 19:50:51
>>immibi+1c
I worked with ARM boards, I know a bit about it. Booting into Linux is never hard, it's all about using uboot, sometimes with tiny patches on top. I think it's actually even easier with android phones, as you don't have access to the low level bootloader, you just use fastboot stuff.

Having basic framebuffer in BIOS/UEFI is neat for toy OSes, but not very relevant for something practical. You gotta need proper driver for GPU. And if you're just starting, UART console is actually more preferable way to interact with board, IMO.

replies(1): >>zozbot+Hv
◧◩
5. matheu+Hf[view] [source] [discussion] 2025-12-06 19:55:51
>>vbezhe+c6
> My guess is that modern hardware is too complicated for one hacker to write reliable drivers.

Modern hardware has turned our operating systems into isolated "user OS" nodes in the schematics, completely sandboxed away from the real action. Our operating systems don't really operate systems anymore.

https://youtu.be/36myc8wQhLo

replies(1): >>dizhn+tj
◧◩◪
6. dizhn+tj[view] [source] [discussion] 2025-12-06 20:30:28
>>matheu+Hf
Excellent and scary video that I share myself all the time.
◧◩◪◨
7. zozbot+Hv[view] [source] [discussion] 2025-12-06 22:26:02
>>vbezhe+7f
Booting into a mainline Linux kernel on your average junk-level SBC with all the hardware working (without simply sticking to an Android-like downstream/proprietary BSP) is quite hard, and that's what you need in order to make a phone usable as a daily driver. That's really the root issue; mobile phones are built as embedded devices, with no consideration for running a generic OS kernel. This isn't even an Android issue, OpenMoko was the same deal. If anything, Android was the first mobile platform to even loosely approach any kind of PC-like openness.
[go to top]