1

When I have some Linux distribution installed on a x64 system, for example I can pretty much unplug my storage drive put it into another x64 machine, install a few HL drivers, like the graphics driver and it will most likely run without any hassle.

When it comes to ARM systems, especially ARM SoCs, like smartphones of any sort, there is a completely different picture. There is a different build of the same OS (for a example a OEM Android distro) for every singly smartphone.

My question is: Why is that?

I understand that unlike PCs with there standardized architecture, there are lots and lots of SoC chips and architectures. But with the device tree in mind I ask myself why there isn't a way to put the device tree, as the hardware description, together with the bootloader on some ROM chip and build the Linux OS independently from any hardware specs, at least within some defined limits.

2

I ask myself why there isn't a way to put the device tree, as the hardware description, together with the bootloader on some ROM chip and build the Linux OS independently from any hardware specs, at least within some defined limits.

Answer: Cheapness. Nobody wants to pay for the ROM chip. The SoC has a boot ROM in it, but the device tree varies depending on the circuit the SoC is in, so that's no good. You'd need a separate "BIOS chip" like x86 boards have to make this work.

You can sort of make it work by treating the SD card that most ARM boards boot from as the BIOS chip; just put U-Boot and the device tree on it, and have U-Boot load the kernel from a USB drive. Then the USB drive would be (fairly) portable from ARM board to ARM board.

In terms of optimization, while you can compile for ARM generically, it really pays off to target a specific processor (much more so than on x86_64).

  • Thank you for your answer. Unfortunately I can't upvote yet, but I will do when I am allowed to. – flxh Dec 19 '16 at 7:00
  • meta @flxh: as the question-asker (also called OP = Original Poster) you can accept an answer with the checkmark. See unix.stackexchange.com/tour -- as the UI should have told you to do when you first came here. This not only gives rep to the answerer, but lets other potential answerers know not to spend time looking at this question anymore. – dave_thompson_085 Dec 19 '16 at 8:05
  • I know about the checkmark - I'm quite active in other stack exchange sites. However usually what I do is waiting for another day, and then decide what answer helped me the most. – flxh Dec 19 '16 at 8:45
  • Still not enough reputations. You could help me out by upvoting my question :) – flxh Dec 19 '16 at 17:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.