home.social

#devicetree — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #devicetree, aggregated by home.social.

  1. Строим свой остров: как создать минимальный Linux для Raspberry Pi

    Ещё три года назад меня просили рассказать, как собрать минимальный Linux для Raspberry Pi, — и сейчас я выполняю эту просьбу. Несмотря на то, что первоначальной целью Raspberry Pi было создание дешёвого устройства для обучения базовым навыкам программирования, информации о том как, создать минимальный Linux для Raspberry Pi в интернете немного. Я хочу восполнить этот пробел для желающих начать погружение в embedded-разработку. Linux для встраиваемых систем, включая Raspberry Pi, и Linux для PC имеют ряд различий. Различия касаются используемых загрузчиков, платформо-зависимого кода ядра, файловых систем и прочего. Для встраиваемых систем большое значение имеет Board Support Package (BSP), который обычно сопровождает различные системы на кристалле (System on Chip — SoC) или одноплатные компьютеры (Single Board Computer — SBC). Чтобы сделать статью интереснее и полезнее, я рассмотрю создание Linux для Raspberry Pi 3 и для Raspberry Pi 4 и укажу на различие этих одноплатных компьютеров в контексте загрузки и сборки ядра Linux. Также мы соберём и запустим downstream и upstream Linux-ядра для Raspberry Pi. Под Raspberry Pi 3 и Raspberry Pi 4 подразумеваются модели Raspberry Pi 3 Model B и Raspberry Pi 4 Model B соответственно. А обе модели называются в статье Raspberry Pi. Как и в моей прошлой статье по сборке Linux для PC собирать мы будем без использования Buildroot или Yocto Project , только сделаем его более практичным, так как он будет поддерживать работу с SD-картой. Такие сборки минимального Linux без Buildroot и Yocto Project мне чем-то напоминают высадку на необитаемый остров, где вы вынуждены минимальным набором инструментов благоустраивать свою жизнь. Да, вашей жизни ничего не угрожает, но определённая закалка в виде полученных базовых знаний остаётся. Поэтому системе Linux, создаваемой в статье, я дал кодовое название Robinson Linux. Я надеюсь, что после прочтения статьи вам будет гораздо проще собрать Linux для другого одноплатного компьютера, например, Orange Pi. Кому интересно погрузиться в embedded-разработку, добро пожаловать под кат.

    habr.com/ru/companies/ruvds/ar

    #linux #embedded_linux #raspberry_pi #linux_kernel #crosscompilation #devicetree #bootloader #uart #arm #статьи_ruvds

  2. Строим свой остров: как создать минимальный Linux для Raspberry Pi

    Ещё три года назад меня просили рассказать, как собрать минимальный Linux для Raspberry Pi, — и сейчас я выполняю эту просьбу. Несмотря на то, что первоначальной целью Raspberry Pi было создание дешёвого устройства для обучения базовым навыкам программирования, информации о том как, создать минимальный Linux для Raspberry Pi в интернете немного. Я хочу восполнить этот пробел для желающих начать погружение в embedded-разработку. Linux для встраиваемых систем, включая Raspberry Pi, и Linux для PC имеют ряд различий. Различия касаются используемых загрузчиков, платформо-зависимого кода ядра, файловых систем и прочего. Для встраиваемых систем большое значение имеет Board Support Package (BSP), который обычно сопровождает различные системы на кристалле (System on Chip — SoC) или одноплатные компьютеры (Single Board Computer — SBC). Чтобы сделать статью интереснее и полезнее, я рассмотрю создание Linux для Raspberry Pi 3 и для Raspberry Pi 4 и укажу на различие этих одноплатных компьютеров в контексте загрузки и сборки ядра Linux. Также мы соберём и запустим downstream и upstream Linux-ядра для Raspberry Pi. Под Raspberry Pi 3 и Raspberry Pi 4 подразумеваются модели Raspberry Pi 3 Model B и Raspberry Pi 4 Model B соответственно. А обе модели называются в статье Raspberry Pi. Как и в моей прошлой статье по сборке Linux для PC собирать мы будем без использования Buildroot или Yocto Project , только сделаем его более практичным, так как он будет поддерживать работу с SD-картой. Такие сборки минимального Linux без Buildroot и Yocto Project мне чем-то напоминают высадку на необитаемый остров, где вы вынуждены минимальным набором инструментов благоустраивать свою жизнь. Да, вашей жизни ничего не угрожает, но определённая закалка в виде полученных базовых знаний остаётся. Поэтому системе Linux, создаваемой в статье, я дал кодовое название Robinson Linux. Я надеюсь, что после прочтения статьи вам будет гораздо проще собрать Linux для другого одноплатного компьютера, например, Orange Pi. Кому интересно погрузиться в embedded-разработку, добро пожаловать под кат.

    habr.com/ru/companies/ruvds/ar

    #linux #embedded_linux #raspberry_pi #linux_kernel #crosscompilation #devicetree #bootloader #uart #arm #статьи_ruvds

  3. Строим свой остров: как создать минимальный Linux для Raspberry Pi

    Ещё три года назад меня просили рассказать, как собрать минимальный Linux для Raspberry Pi, — и сейчас я выполняю эту просьбу. Несмотря на то, что первоначальной целью Raspberry Pi было создание дешёвого устройства для обучения базовым навыкам программирования, информации о том как, создать минимальный Linux для Raspberry Pi в интернете немного. Я хочу восполнить этот пробел для желающих начать погружение в embedded-разработку. Linux для встраиваемых систем, включая Raspberry Pi, и Linux для PC имеют ряд различий. Различия касаются используемых загрузчиков, платформо-зависимого кода ядра, файловых систем и прочего. Для встраиваемых систем большое значение имеет Board Support Package (BSP), который обычно сопровождает различные системы на кристалле (System on Chip — SoC) или одноплатные компьютеры (Single Board Computer — SBC). Чтобы сделать статью интереснее и полезнее, я рассмотрю создание Linux для Raspberry Pi 3 и для Raspberry Pi 4 и укажу на различие этих одноплатных компьютеров в контексте загрузки и сборки ядра Linux. Также мы соберём и запустим downstream и upstream Linux-ядра для Raspberry Pi. Под Raspberry Pi 3 и Raspberry Pi 4 подразумеваются модели Raspberry Pi 3 Model B и Raspberry Pi 4 Model B соответственно. А обе модели называются в статье Raspberry Pi. Как и в моей прошлой статье по сборке Linux для PC собирать мы будем без использования Buildroot или Yocto Project , только сделаем его более практичным, так как он будет поддерживать работу с SD-картой. Такие сборки минимального Linux без Buildroot и Yocto Project мне чем-то напоминают высадку на необитаемый остров, где вы вынуждены минимальным набором инструментов благоустраивать свою жизнь. Да, вашей жизни ничего не угрожает, но определённая закалка в виде полученных базовых знаний остаётся. Поэтому системе Linux, создаваемой в статье, я дал кодовое название Robinson Linux. Я надеюсь, что после прочтения статьи вам будет гораздо проще собрать Linux для другого одноплатного компьютера, например, Orange Pi. Кому интересно погрузиться в embedded-разработку, добро пожаловать под кат.

    habr.com/ru/companies/ruvds/ar

    #linux #embedded_linux #raspberry_pi #linux_kernel #crosscompilation #devicetree #bootloader #uart #arm #статьи_ruvds

  4. @haui

    I couldn't resist to have a quick look into the device tree file(s) in the kernel sources of Bianbu Linux:

    see here: gitee.com/bianbu-linux/linux-6

    On a quick look (didn't check entry by entry) the 'riscv,isa-extensions' entries per cpu seems to match your table.

    Anyway as I said before, I think this does not need to reflect the real capabilities of the SOC too.

  5. @haui

    Regarding this I found an article from RedHat:

    see research.redhat.com/blog/artic

    According to the article the DeviceTree can be used to get that information, but since that's just a configuration describing the hardware it could be incomplete too.

  6. "Operating system provided device-trees" by Heinrich Schuchardt

    While it was not the initial goal, in practice, when booting Linux, device trees need to be coupled with a given kernel version.

    This brings its own sets of challenge, because the bootloader needs to patch the device tree to provide information to the OS.

    When using EFI, there is now the EFI_DT_FIXUP_PROTOCOL.

    Outside of EFI, the flash-kernel tool helps picking the correct device tree depending on the board model.

    The way forward would be to use Unified Kernel Images, which would contain all device trees for supported platform, with the efistub used to select the correct one.

    #OSFC #OSFC2024 #DeviceTree

  7. I thought that booting Seriously Bad Computers in ACPI mode is crippled compared to booting in DeviceTree mode.

    NanoPC-T6 is otherwise. Same 6.11-rc2 kernel gives working system in ACPI mode and fail-to-boot one in DT.

    DT = no USB, no PCIe while rootfs is on NVME cause it worked fine in ACPI mode.

    And DT is from 6.11-rc2 kernel.

    #SystemNotReady #ACPI #DeviceTree #SBC #RK3588 #FriendlyELEC #NanoPC-T6

  8. How are you supposed to "attach" #uart based sensor driver to a serial port in #linux when NOT using a #devicetree ? #iio