Topics

RPi, device tree and overlays

Gordon Haverland
 

What things does device tree and overlays bring to Linux, that seems
them show up in RPi? I don't think I've seen anything like this with
Linux on PCs, but maybe I missed something.

Thanks.

--

Gord

Gordon Haverland
 

On Sat, 11 Jan 2020 13:17:26 -0700
"Gordon Haverland" <ghaverla@...> wrote:

What things does device tree and overlays bring to Linux, that seems
them show up in RPi? I don't think I've seen anything like this with
Linux on PCs, but maybe I missed something.
If I go back to 1.2.13, I compiled my own kernels. I understood a
little about hardware. But to play "20 questions" with a kernel
compile is daunting. How am I to know just what hardware is on/in my
computer? Some of it is easy to find, some is difficult.

I kept thinking, surely there has to be some hardware scanning tool
which can read or guess at most of this? So an owner only needs to
look up say 20 questions worth (and that gets saved somewhere). I've
never seen it.

Arduino came along, and instead of writing programs, I think you write
sketches. Let's dumb things down, just like these f'ing "apps". They
are programs. But, to work on Arduino looks like what I had always
thought hardware was on a PC. It's a this address, and you need to use
this baud rate, and so on.

Now I am starting to buy and use RPi and clones, and I see that they
come with this huge set of device trees and overlays. I can see that
the device tree files are related to modules the kernel needs to use
certain hardware. But there is a lot of machinery there to avoid
saying that a block of 20 bytes starting at 0xffee is used to
communicate with the hardware. It doesn't surprise me, that the
presence of the device tree files allows one to no longer get involved
in black or white listing modules.

If at some point in the future I build systems to help with brewing
wine or beer, pruning trees, planting grain/weeding/harvesting grain,
walking across the landscape to allow a balloon tethered to the robot
to view the landscape and take pictures in long IR, near IR, visible
and maybe UV; presumably I am supposed to come up with device trees to
describe all this nonstandard hardware on a RPi type computer. How
does this happen?

Thanks.

--

Gord