4 ms·
Using vendor kernels is standard in embedded development. Upstreaming takes a long time so even among well-supported boards you either have to wait many years f
by Aurornis 7mo ago
Using vendor kernels is standard in embedded development. Upstreaming takes a long time so even among well-supported boards you either have to wait many years for everything to get upstreamed or find a board where the upstreamed kernel supports enough peripherals that you're not missing anything you need.
I think it's a good thing that people are realizing that these SBCs are better used as development tools for people who understand embedded dev instead of as general purpose PCs. For years now you can find comments under every Raspberry Pi or other SBC thread informing everyone that a mini PC is a better idea for general purpose compute unless you really need something an SBC offers, like specific interfaces or low power.
- apatheticonion 7mo agoI have always found it perplexing. Why is that required? Is it the lack of drivers in upstream? Is it something to do with how ARM devices seemingly can't install Linux the same way x86 machines can (something something device tree)?
- girvo 7mo agoYeah lack of peripheral drivers upstream for all the little things on the board, plus (AIUI) ARM doesn't have the same self-describing hardware discovery mechanisms that x86 computers have. Basically, standardisation. They're closer to MCUs in that way, is how I found it (though my knowledge is way out of date now, been years since I was doing embedded)
- apatheticonion 7mo agoI've just been doing some reading. The driver situation in Linux is a bit dire. On the one hand there is no stable driver ABI because that would restrict the ability for Linux to optimize. On the other hand vendors (like Orange Pi, Samsung, Qualcomm, etc etc) end up maintaining long running and often outdated custom forks of Linux in an effort to hide their driver sources. Seems..... broken
- mort96 7mo agoSomehow, this isn't a problem in the desktop space, even though new hardware regularly gets introduced there too which require new drivers.
- doubled112 7mo agox86 hardware has a standard way to boot and bring up the hardware, usually to at least a minimum level of functionality. ARM devices aren't even really similar to one another. As a weird example, the Raspberry Pi boots from the GPU, which brings up the rest of the hardware.
- mort96 7mo agoIt's not just about booting though. We solve this with hardware-specific devicetrees, which is less nice in a way than runtime discovery through PCI/ACPI/UEFI/etc, but it works. But we're not just talking about needing a hardware-specific devicetree; we're talking about needing hardware-specific vendor kernels. That's not due to the lack of boot standardization and runtime discovery.
- gspr 7mo agoPlease forgive this naive question from someone with zero knowledge in the area: What's stopping ARM/RISCV-based stuff from using ACPI/UEFI?
- mort96 7mo agoNothing, and there has been a push for more standardization including adopting UEFI in the ARM server space. It's just not popular in the embedded space. You'd have to ask Qualcomm or Rockchip about why.
- gspr 7mo agoSo we can hope for a future where cheap ARM/RISC-V SBCs are as pleasant to use as any bog standard x86?
- megous 7mo agoOr you can just upstream what you need yourself.
- pylotlight 7mo agoWhat's the feasibility these days of using AI assistanted software maintenance for drivers? Does this somewhat bridge the unsupported gap by doing it yourself or is this not really a valid approach?
- KeplerBoy 7mo agoThat's just the new normal. Everyone is doing AI assisted work, but that doesn't mean the work goes away. Someone still has to put in meaningful effort to get the AI to do it and ship it.
- leoedin 7mo agoI've found AI tools to be pretty awful for low level work. So much of it requires making small changes to poorly documented registers. AI is very good at confidently hallucinating what register value you should use, and often is wrong. There's often such a big develop -> test cycle in embedded, and AI really only solves a very small part of it.