3 ms·
But Linux can run on arm just fine? I used to run my website and a bunch of other stuff on an arm64 VPS.
by WolfRazu 6y ago
But Linux can run on arm just fine? I used to run my website and a bunch of other stuff on an arm64 VPS.
- rowanG077 6y agoYes but the instruction set is only a tiny part of conpatibility. Intel and amd have generally standardized on ACPI for hardware discovery for example. But ARM has not. This means there is no Generic way to know what the capabilities of arm system are. That's Just one of the issues though.
- hedora 6y agoArm standardized on dtb’s. It’s a static file that describes all the information ACPI lets you probe dynamically at boot. Edit: and also uboot, which bootstraps the kernel, and hands it a dtb.
- rowanG077 6y agoThat's the entire problem. A dtb file is unique for every different soc and that also means every single device requires a kernel update or a at the very least a patches kernel.
- tenebrisalietum 6y agoIf manufacturers would just make good datasheets available for their devices like they used to it wouldn't matter.
- est31 6y agoIf it were only dtb's it would be an easy fix. Just have a database of dtb's on the boot medium that the kernel can look for. But often the mainline kernel simply lacks drivers for the hardware the arm vendors ship. Instead the arm vendors use a forked kernel that's way outdated by the time the device enters the market. In fact, as much as I love FLOSS, that's a negative consequence of FLOSS because had Linux been proprietary, they would have had to work with the entity that develops Linux instead of just forking it.
- heavyset_go 6y agoIt isn't that the CPU architecture that's the problem, because that's well supported, it's the rest of the hardware configuration that isn't standardized and is almost always unique between ARM SoCs. ARM servers use UEFI, and have enumerable buses for hardware detection, while most ARM SoCs require a custom bootloader or a forked open source one, and can't enumerate over hardware, thus requiring something like the DeviceTree in Linux. Here's an idea of what kind of work ARM SoCs need for Linux to run on them[1]. [1] https://elinux.org/images/a/ad/Arm-soc-checklist.pdf https://elinux.org/images/a/ad/Arm-soc-checklist.pdf