Device Tree

Материал из Wiren Board
Версия от 03:29, 17 ноября 2013; EvgenyBoger (обсуждение | вклад) (Новая страница: «Device Tree -файлы описания аппаратной конфигурации. Они используются в Linux и, следовательно в…»)

Device Tree -файлы описания аппаратной конфигурации. Они используются в Linux и, следовательно в Wiren Board. Модификация Device Tree-файлов может понадобится при переназначении портов, подключении некоторых UEXT-устройств, при подключении 1-wire датчиков и т.д.

Подробнее про Device Tree: https://en.wikipedia.org/wiki/Device_tree , http://elinux.org/Device_Tree

Device Tree для Wiren Board находится в файле imx23-wirenboard28.dts. В нём также используется файл описания процессора, imx23.dtsi

Файлы Device Tree бывают в текстовом формате dts, который компилируется в бинарный формат dtb

Загрузка

В стандартом образе Wiren Board загрузчик U-Boot считывает dtb-файл описания Device Tree и передаёт его ядру. Имя dtb-файла задаётся в файле /boot/uEnv.txt :

#These are the default settings for some useful u-boot variables:
fdt_file=/boot/dtbs/imx23-wirenboard28.dtb

Файл dtb находится в /boot/dtbs/imx23-wirenboard28.dtb


Пересборка

Для внесения изменений в Device Tree надо скачать Device Tree в текстовом формате, скомпилировать файл imx23-wirenboard28.dts и записать результат (imx23-wirenboard28.dtb) в /boot/dtbs/

Другой способ - Сборка ядра

Загрузка

Необходимо скачать из [1] файл imx23-wirenboard28.dts и зависимости. Зависимости на настоящий момент это файлы imx23.dtsi, skeleton.dtsi:

$ mkdir dts
$ cd dts

$ wget https://raw.github.com/contactless/linux/v3.12-rc3-imxv5-x0.3/arch/arm/boot/dts/imx23-wirenboard28.dts

2013-11-17 04:24:28 (37.9 MB/s) - «imx23-wirenboard28.dts» сохранён [5255/5255]

$ wget https://raw.github.com/contactless/linux/v3.12-rc3-imxv5-x0.3/arch/arm/boot/dts/imx23.dtsi

2013-11-17 04:24:33 (272 KB/s) - «imx23.dtsi» сохранён [13052/13052]

$ wget https://raw.github.com/contactless/linux/v3.12-rc3-imxv5-x0.3/arch/arm/boot/dts/skeleton.dtsi


$ ls 
imx23.dtsi  imx23-wirenboard28.dts  skeleton.dtsi

Компилятор

Компилятор Device Tree в Ubuntu и Debian находится в пакете device-tree-compiler. Установим его:

$ sudo apt-get install device-tree-compiler

Компиляция

$ dtc -I dts -O dtb imx23-wirenboard28.dts -o imx23-wirenboard28.dtbDTC: dts->dtb  on file "imx23-wirenboard28.dts"

Установка

Скомпилированный файл необходимо записать в /boot/dtsb. Обязательно сделайте резервную копию существущего в /boot/dtsb файла!