mirror of
https://github.com/EmbedDevIOT/obsidian-vault-.git
synced 2026-11-06 00:13:26 +03:00
vault backup: 2026-03-03 22:22:20
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#DeviceTree #Boot #Linux
|
||||
## Hardware starting. Процесс запуска и инициализации
|
||||
Далее описан процесс запуска и инициализации оборудования следующих уровней:
|
||||
Firmware layer
|
||||
Hardware descriptional layer
|
||||
kernal initialization stage
|
||||
|
||||
1. Power On
|
||||
2. Starting GPU on SoC
|
||||
3. ROM внутри Video Core начинает выполнение.
|
||||
4. GPU читает SD карту (загружаются)
|
||||
Файлы расположены в `/boot или /firmware/boot`
|
||||
1. ==bootcode.bin== - FirstStage Bootloader.
|
||||
Он инициализирует SDRAM и загружает прошивку start.elf
|
||||
2. ==start.elf== - Second Stage Bootloader
|
||||
Инициализирует систему и загружает ядро линукс, управляет памятью
|
||||
3. ==config.txt== - файл конфигурации
|
||||
Основной конфигурационный файл системы, считываемый GPU используемый для настройки оборудования
|
||||
4. ==cmdline.txt==
|
||||
файл конфигурации, передаваемый ядру линукс при загрузке
|
||||
5. ==device tree== - подгружается дерево устройств. (файлы *dtb)
|
||||
Передается в kernel. Хранятся в каталоге boot / firmware / overlays
|
||||
5. Только после этого GPU включает ARM CPU
|
||||
6. ARM начинает выполнение linux kernal
|
||||
|
||||
## Device tree - Описание аппаратной конфигурации.
|
||||
|
||||
#DeviceTree
|
||||
Device Tree — это **описание аппаратной конфигурации конкретной платы**.
|
||||
Применяется GPU до запуска ядра.
|
||||
Device Tree Overlays - фрагмент device tree, который:
|
||||
добавляет новое устройство
|
||||
включает отключенный контроллер
|
||||
меняет параметры существующего узла
|
||||
|
||||
Пример изменения конфигурации DT без перекомпиляции ядра
|
||||
Открыть config.txt и добавить `dtoverlay=i2c-rtc,ds3231`
|
||||
|
||||
Что происходит:
|
||||
1. GPU загрузит основной DTB
|
||||
2. GPU применит overlay
|
||||
3. GPU передаст модифицированный DT ядру
|
||||
4. Ядро увидит новое устройство
|
||||
5. Драйвер RTC автоматически загрузится
|
||||
|
||||
Если удалить узел устройства (например SPI) из Device Tree то ядро просто не создаст SPI контроллер.
|
||||
|
||||
Команды для работы:
|
||||
`cat /proc/device-tree/model` - модель платы для которой device tree создан
|
||||
`ls /proc/device-tree/` - дерево устройств, которое kernel получил от GPU
|
||||
`ls /sys/bus/platform/devices` - вывод устройств, которые kernel создал на основе DT
|
||||
`lsmod` - просмотр загруженных модулей
|
||||
|
||||
## Commands
|
||||
Система:
|
||||
`vcgencmd get_config int` - параметры, которые передает GPU
|
||||
`cat /etc/os-release` - просмотр версии системы
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user