mirror of
https://github.com/EmbedDevIOT/obsidian-vault-.git
synced 2026-11-06 02:13:27 +03:00
57 lines
3.0 KiB
Markdown
57 lines
3.0 KiB
Markdown
#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 - Описание аппаратной конфигурации.
|
|
[Device Tree wiki](https://www.altlinux.org/Device_Tree)
|
|
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 контроллер.
|
|
|
|
[[Linux - Commands]]
|
|
|
|
## Commands
|
|
Система:
|
|
`vcgencmd get_config int` - параметры, которые передает GPU
|
|
`cat /etc/os-release` - просмотр версии системы
|
|
|
|
|
|
|
|
|