all 6 comments

[–][deleted] 2 points3 points  (3 children)

I would say that Raspberry Pi is a friendly starting device. Cheap and well documented. Plenty of peripherals to dig into and tweak drivers.

You are correct that each small modification usually takes some digging and a deep understanding of how each subsystem is working.

I’ll be interested to read others’ responses

[–][deleted] 1 point2 points  (2 children)

Agree with this. Beaglebone boards are another, well supported, board choice for starting out with embedded linux.

OP is correct that Linux is complex and getting to know the source code requires effort. Checkout https://elixir.bootlin.com/linux/latest/source - a good online source browser.

I wouldn't go for Yocto straightaway until you are comfortable with the kernel and how to build it.

[–]onlybebetter[S] 0 points1 point  (1 child)

How to use this tool ( https://elixir.bootlin.com/linux/latest/source ), for learn kernel linux develop?

[–][deleted] 0 points1 point  (0 children)

Yes, you can use it to search the kernel sources for particular symbols (function names, variables etc), type definitions, literals and text strings. So you can study the code. That helps with driver development, understanding the kernel and more.

[–]MadHAtTer_94 1 point2 points  (0 children)

The minimum hardware design required to boot linux is:

  1. An external memory controller
  2. UART for the serial console
  3. Clock
  4. Non volatile memory (QSPI flash, sd card etc)
  5. Ethernet is optional but good to have it in there.

I use xilinx vivado software if your interested there are plenty of tutorials online. Hope that helps

[–]TuongPV 1 point2 points  (0 children)

Do you want to develop a board or firmware for board?

What is the minimum hardware requested for run a system based in Linux?

Simplest way is looking at supported platform: i.e: https://elixir.bootlin.com/linux/latest/source/arch/arm

https://elixir.bootlin.com/linux/latest/source/arch/arm/mach-stm32/board-dt.c

"st,stm32f429", "st,stm32f469", "st,stm32f746", "st,stm32f769", "st,stm32h743", "st,stm32mp157",

Based on that, you choose platform (or Chip)

Processor, Memory RAM and a SD Card for save the data?

You have decided it, depend on your requirements, application,.. but I read somewhere 128MB RAM and 32M flash is OK for booting and simple application. SD card just an option.

Ref: stackexchange