| ▲ | Youden a day ago |
| From the article: "[...] the Linux support for various parts of the boards, not being upstreamed and mainlined, is very likely to be stuck on an older version. This is usually what causes headaches down the road [...]". The problem isn't support for the ARM architecture in general, it's the support for this particular board. Other boards like the Raspberry Pi and many boards based on Rockchip SoCs have most of the necessary support mainlined, so the experience is quite painless. Many are starting to get support for UEFI as well. |
|
| ▲ | rpcope1 20 hours ago | parent | next [-] |
| The exception (even those are questionable as running plain Debian did not work right on Pi 3B and others when I tried recently) proves the rule. You have to look really hard to find an x86 computer where things don't just basically work, the reverse is true for ARM. The power draw between the two is comparable these days, so I don't understand why anyone would bother with ARM when you've got something where you need more than minimally powerful hardware. |
| |
| ▲ | simcop2387 18 hours ago | parent [-] | | The Pi 3B doesn't have UEFI support, so it requires special support on the distro side for the boot process but for the 4 and newer you can flash (or it'll already be there, depending on luck and age of the device) the firmware on the board to support UEFI and USB boot, though installing is a bit of a pain since there's no easy images to do it with. https://wiki.debian.org/RaspberryPi4 I believe some other distros also have UEFI booting/installers setup for PI4 and newer devices because of this, though there's a good chance you'll want some of the other libraries that come with Raspberry PI OS (aka Raspbian) still for some of the hardware specific features like CSI/DSI and some of the GPIO features that might not be fully upstreamed yet. There's also a port of Proxmox called PXVirt (Formerly Proxmox Port) that exists to use a number of similar ARM systems now as a virtualization host with a nice ui and automation around it. |
|
|
| ▲ | ndriscoll a day ago | parent | prev | next [-] |
| My uninformed normie view of the ecosystem suggests that it's the support for almost every particular board, and that's exactly the issue. For some reason, ARM devices always have some custom OS or Android and can't run off-the-shelf Linux. Meanwhile you can just buy an x86/amd64 device and assume it will just work. I presume there is some fundamental reason why ARM devices are so bad about this? Like they're just missing standardization and every device requires some custom firmware to be loaded by the OS that's inevitably always packaged in a hacky way? |
| |
| ▲ | Muromec a day ago | parent | next [-] | | Its the kernel drivers, not firmware. There is no bios or acpi, so the kernel itself has to support a specifc board. In practice it means there is a dtb file that configures it and the actual drivers in the kernel. Manufacturers hack it together, flash to device and publish the sources, but dont bother with upstreaming and move on. Same story as android devices not having updates two years after release. | | |
| ▲ | ndriscoll a day ago | parent [-] | | But "no BOIS or ACPI" and requiring the kernel to support each individual board sounds exactly like the problem is the ARM architecture in general. Until that's sorted it makes sense to be wary of ARM. | | |
| ▲ | heavyset_go 13 hours ago | parent | next [-] | | It's not a problem with ARM servers or vendors that care about building well designed ARM workstations. It's a problem that's inherit to mobile computing and will likely never change unless with regulation or an open standards device line somehow hitting it out of the park and setting new expectations a la PCs. The problem is zero expectation of ever running anything other than the vendor supplied support package/image and how fast/cheap it is to just wire shit together instead of worrying about standards and interoperability with 3rd party integrators. | | |
| ▲ | MarsIronPI 12 hours ago | parent [-] | | How so? The Steam Deck is an x86 mobile PC with all the implications of everything (well, all the generic hardware e.g. WiFi, GPU IIRC) work out of the box. | | |
| ▲ | heavyset_go 12 hours ago | parent [-] | | When I say mobile, I mean ARM SoCs in the phone, embedded and IoT lineage, not so much full featured PCs in mobile form factor. |
|
| |
| ▲ | mappu 17 hours ago | parent | prev | next [-] | | What is ACPI other than a DTB baked into the firmware/bootloader? Any SBC could buy an extra flash chip and burn an outdated U-Boot with the manufacturer's DTB baked in. Then U-Boot would boot Linux, just like UEFI does, and Linux would read the firmware's fixed DTB, just like it reads x86 firmware's fixed ACPI tables. But - cui bono? You need drivers in your main OS either way. On x86 you are not generally relying on your EFI's drivers for storage, video or networking. It's actually nice that you can go without, and have one less layer. | |
| ▲ | Muromec 21 hours ago | parent | prev | next [-] | | It is more or less like wifi problem on laptops, but multiplied by the number of chips. In a way it's more of a lunux problem than arm problem. At some point the "good" boards get enough support and the situation slowly improves. We reached the state where you dont need to spec-check the laptop if you want to run linux on it, the same will happen to arm sbc I hope. | |
| ▲ | f1shy 20 hours ago | parent | prev [-] | | Is a decision of linux about how to handle HW in the ARM world. So is a little like in the middle. |
|
| |
| ▲ | bri3d 15 hours ago | parent | prev | next [-] | | It's the shape of the delivered artifact that's driven the way things are implemented in the ecosystem, not a really fundamental architecture difference. The shape of historically delivered ARM artifacts has been embedded devices. Embedded devices usually work once in one specific configuration. The shape of historically delivered ARM Linux products is a Thing that boots and runs. This only requires a kernel that works on one single device in one single configuration. The shape of historically delivered x86 artifacts is socketed processors that plug into a variety of motherboards with a variety of downstream hardware, and the shape of historically delivered x86 operating systems is floppies, CDs, or install media that is expected to work on any x86 machine. As ARM moves out of this historical system, things improve; I believe that for example you could run the same aarch64 Linux kernel on Pi 2B 1.2+, 3, and 4, with either UEFI/ACPI or just different DTBs for each device, because the drivers for these devices are mainline-quality and capable of discovering the environment in which they are running at runtime. People commonly point to ACPI+UEFI vs DeviceTree as causes for these differences, but I think this is wrong; these are symptoms, not causes, and are broadly Not The Problem. With properly constructed drivers you could load a different DTB for each device and achieve similar results as ACPI; it's just different formats (and different levels of complexity + dynamic behavior). In some ways ACPI is "superior" since it enables runtime dynamism (ie - power events or even keystrokes can trigger behavior changes) without driver knowledge, but in some ways it's worse since it's a complex bytecode system and usually full of weird bugs and edge cases, versus DTB where what you see is what you get. | |
| ▲ | Youden 21 hours ago | parent | prev [-] | | This has often been the case in the past but the situation is much improved now. For example I have an Orange Pi 5 Plus running the totally generic aarch64 image of Home Assistant OS [0]. Zero customization was needed, it just works with mainline everything. There's even UEFI [1]. Granted this isn't the case for all boards but Rockchip at least seems to have great upstream support. [0]: https://github.com/home-assistant/operating-system/releases [1]: https://github.com/edk2-porting/edk2-rk3588 | | |
| ▲ | shadowpho 15 hours ago | parent [-] | | Yeah but you can get a n100 on sale for about the same price, and it comes with a case, nvme storage (way better then sd card), power supply, proper cooling solution, and less maintanance… |
|
|
|
| ▲ | imoverclocked a day ago | parent | prev | next [-] |
| So, I agree but less than I did a few months ago. I purchased an Orange Pi 5 Ultra and was put off by the pre-built image and custom kernel. The “patch“ for the provided kernel was inscrutable as well. Now I’m running a vanilla 6.18 kernel on a vanilla uboot firmware (still a binary blob required to build that though) with a vanilla install of Debian. That support includes the NPU, GPU, 2.5G Ethernet and NVMe root/boot. I don’t have performance numbers but it’s definitely fast enough for what I use it for. |
| |
| ▲ | ekianjo 14 hours ago | parent [-] | | Interesting, where did you get an image with a 6.18 kernel that has NPU support? | | |
| ▲ | rjsw an hour ago | parent | next [-] | | NPU support in general seems to be moving pretty fast, it shares a lot of code with the graphics drivers. | |
| ▲ | imoverclocked 9 hours ago | parent | prev [-] | | I started with the published Debian image and then just built my own... and then installed onto an NVMe SSD. |
|
|
|
| ▲ | heavyset_go 13 hours ago | parent | prev | next [-] |
| There's also a risk of your DeviceTree getting pruned from the kernel in X years when it's decided that "no one uses that board anymore", which is something that's happened to several boards I bought in the 2010's, but not something that's happened to any PC I've ever owned. |
| |
| ▲ | jrmg 11 hours ago | parent | next [-] | | It’s weirded me out for a long time that we’ve gone from ‘we will probe the hardware in a standard way and automatically load the appropriate drivers at boot’ ideal we seemed to have settled on for computers in the 2000s - and still use on x86 - back to ‘we’ll write a specific description file for every configuration of hardware’ for ARM. | |
| ▲ | MarsIronPI 12 hours ago | parent | prev [-] | | Isn't this one of the benefits of ACPI? That the kernel asks the motherboard for the hardware information that on ARM SoCs is stored in the device tree? | | |
|
|
| ▲ | eleventyseven a day ago | parent | prev | next [-] |
| That makes sense, as the Pi is as easy as x86 at this point. I almost never have to compile from scratch. I'm not a compiler expert... But it seems each ARM64 board needs its own custom kernel support, but once that is done, it can support anything compiled to ARM64 as a general target? Or will we still need to have separate builds for RPi, for this board, etc? |
| |
| ▲ | StephenHerlihyy 15 hours ago | parent | next [-] | | Little bit of both. Pi still uses a sort of unique boot sequence due to it’s heritage. Most devices will have the CPU load the bootloader and then have the OS bring up the GPU. Pi sort of inverts this, having the GPU leading the charge with the CPU held at reset until after the GPU has finished it’s boot sequence. Once you get into the CPU though the Aarch64 registers become more standardized. You still have drivers and such to worry about and differing memory offsets for the peripherals - but since you have the kernel running it’s easier to kind of poke around until you find it. Pi 5 added someone complexity to this with the RP1 South Bridge which adds another layer of abstraction. Hopefully that all makes sense. Basically the Pi itself is backwards while everything else should conform. It’s not Arm specific, but how the Pi does things. | |
| ▲ | ZiiS a day ago | parent | prev | next [-] | | Apart from very rare cases, this will run any linux-arm64 binary. | |
| ▲ | ekianjo 15 hours ago | parent | prev [-] | | Fot the Pi you have to rely on the manufacturer's image too. It does not run a vanilla arm64 distro |
|
|
| ▲ | Mad_ad 21 hours ago | parent | prev | next [-] |
| With this board the SoC is the main problem.
CIX is working on mainlining that stuff for over a year and we still dont have gpu and npu support in mainline |
|
| ▲ | Muromec a day ago | parent | prev | next [-] |
| I still have to run my own build of kernel on Opi5+, so that unfortunately tracks. At least I dont have to write the drivers this decade |
| |
| ▲ | Youden 21 hours ago | parent [-] | | Why? I'm running an Orange Pi 5+ with a fully generic aarch64 image of Home Assistant OS and it works great. Is there some particular feature that doesn't work on mainline? | | |
| ▲ | ekianjo 13 hours ago | parent [-] | | for server use you can live with generic images. When you want stuff like HDMI audio out and all, generic images usually won't do. |
|
|
|
| ▲ | cmrdporcupine a day ago | parent | prev | next [-] |
| This. The issue is the culture inside many of these HW companies that is oppositional to upstreaming changes and developing in the open in general. Often an outright mediocre software development culture generally, that sees software as a pure cost centre, in fact. The "product" is seem to be the chip, the software "just" a side show (or worse, a channel by which their IP could leak). The Rockchip stuff is better, but still has similar problems. These companies need to learn that their hardware will be adopted more aggressively for products if the experience of integrating with it isn't sub-par. |
| |
| ▲ | imoverclocked 20 hours ago | parent [-] | | They exist in a strange space. They want to be a Linux host but they also want to be an embedded host. The two cultures are pretty different in terms of expectations around kernels. A Linux sysadmin will (rightly) balk at not having an upgrade path for the kernel while a lot of embedded stuff that just happens to use Linux, often has a single kernel released… ever. I’m not saying one approach is better than the other but there is definitely a lot of art in each camp. I know the one I innately prefer but I’ve definitely had eyebrows raised at me in a professional setting when expressing that view; Some places value upgrading dependencies while others value extreme stability at the potential cost of security. | | |
| ▲ | baby_souffle 19 hours ago | parent [-] | | > Some places value upgrading dependencies while others value extreme stability at the potential cost of security. Both are valid. The latter is often used as an excuse, though. No, your $50 wifi connected camera does not need the same level of stability as the WiFi connected medical device that allows doctor to remotely monitor medication. Yes, you should have a moderately robust way to update and build and distribute a new FW image for that camera. I can't tell you the number of times I've gotten a shell on some device only to find that the kernel/os-image/app-binary or whatever has build strings that CLEARLY feature `some-user@their-laptop` betraying that if there's ever going to be an updated firmware, it's going to be down to that one guy's laptop still working and being able to build the artifact and not because a PR was merged. | | |
| ▲ | imoverclocked 17 hours ago | parent [-] | | The obvious counterpoint is that a PR system is also likely to break unless it is exercised+maintained often enough to catch little issues as they appear. Without a set of robust tests the new artifact is also potentially useless to a company that has already sold their last $50 WiFi camera. If the artifact is also used for their upcoming $54.99 camera then often they will have one good version there too. The artifact might work on the old camera but the risk/reward ratio is pretty high for updating the abandonware. |
|
|
|
|
| ▲ | moffkalast 20 hours ago | parent | prev | next [-] |
| No it's definitely a problem with the ARM architecture, specifically that it's standard to make black box SoCs that nobody can write drivers for and the manufacturer gives you one binary version and then fucks off forever. It's a problem with the ARM ecosystem as a whole for literally every board (except Raspberry Pi), likely stemming from the bulk of ARM being throwaway smartphones with proprietary designs. If ARM cannot outdo x86 on power draw anymore then it really is entirely pointless to use it because you're trading off a lot, and it's basically guaranteed that the board will be a useless brick a few years down the line. |
|
| ▲ | hulitu 3 hours ago | parent | prev [-] |
| > The problem isn't support for the ARM architecture in general, Of course it is not. That's why almost every ARM board comes with it's own distro, sometimes bootloader and kernel version. Because "it is supported". /s |