Device Tree/en: различия между версиями
(Новая страница: «Device Tree are files describing the hardware configuration. They are used in Linux and therefore in the Wiren Board controllers firmware. Modification of Device…») |
|||
(не показано 25 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | <languages/> | ||
Device Tree | Device Tree are files describing the hardware configuration. They are used in Linux and therefore in the Wiren Board controllers firmware. Modification of Device Tree-files may be required when re-assigning ports, connecting some UEXT-devices, when connecting 1-Wire sensors, etc. | ||
Modification of Device Tree files may be required when | |||
Подробнее про Device Tree: https://en.wikipedia.org/wiki/Device_tree , http://elinux.org/Device_Tree | |||
Device Tree | Device Tree для Wiren Board находится в файле [https://github.com/contactless/linux/blob/v3.12-rc3-imxv5-x0.3/arch/arm/boot/dts/imx23-wirenboard28.dts imx23-wirenboard28.dts]. В нём также используется файл описания процессора, [https://github.com/contactless/linux/blob/v3.12-rc3-imxv5-x0.3/arch/arm/boot/dts/imx23.dtsi imx23.dtsi] | ||
Device Tree | Файлы Device Tree бывают в текстовом формате dts, который компилируется в бинарный формат dtb | ||
== Загрузка == | |||
В стандартом образе Wiren Board загрузчик [[Special:MyLanguage/U-Boot|U-Boot]] считывает dtb-файл описания Device Tree и передаёт его ядру. | |||
Имя dtb-файла задаётся в файле [https://github.com/contactless/wirenboard/blob/master/rootfs/configs/boot/uEnv.txt /boot/uEnv.txt] : | |||
<pre> | <pre> | ||
Строка 19: | Строка 19: | ||
</pre> | </pre> | ||
Файл dtb находится в /boot/dtbs/imx23-wirenboard28.dtb (для Wiren Board rev. 2.8), в /boot/dtbs/imx23-wirenboard32.dtb (для Wiren Board Smart Home rev. 3.5) | |||
== Пересборка == | |||
Для внесения изменений в Device Tree надо скачать Device Tree в текстовом формате, скомпилировать файл imx23-wirenboard28.dts и записать результат (imx23-wirenboard28.dtb) в /boot/dtbs/ | |||
Другой способ - [[Special:MyLanguage/Сборка ядра|Сборка ядра]] | |||
===Загрузка=== | |||
Необходимо скачать из [https://github.com/contactless/linux/tree/v3.13-imxv5-x0.1/arch/arm/boot/dts] файл imx23-wirenboardXX.dts, соответствующий версии устройства и зависимости. Зависимости на настоящий момент это файлы imx23.dtsi, skeleton.dtsi. | |||
Основной DTS-файл: | |||
imx23-wirenboard32.dts для Wiren Board Smart Home rev. 3.5 | |||
imx23- | imx23-wirenboard28.dts для Wiren Board rev. 2.8 | ||
: | : | ||
Строка 43: | Строка 46: | ||
$ cd dts | $ cd dts | ||
$ #export WB_BRANCH=v3.12-rc3-imxv5-x0.3 # | $ #export WB_BRANCH=v3.12-rc3-imxv5-x0.3 # для ядра 3.12 | ||
$ export WB_BRANCH=v3.13-imxv5-x0.1 | $ export WB_BRANCH=v3.13-imxv5-x0.1 | ||
$ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/mxs-pinfunc.h | $ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/mxs-pinfunc.h | ||
Строка 50: | Строка 54: | ||
$ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/imx23-wirenboard28.dts | $ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/imx23-wirenboard28.dts | ||
2013-11-17 04:24:28 (37.9 MB/s) - «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/$WB_BRANCH/arch/arm/boot/dts/imx23.dtsi | $ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/imx23.dtsi | ||
2013-11-17 04:24:33 (272 KB/s) - «imx23.dtsi» | 2013-11-17 04:24:33 (272 KB/s) - «imx23.dtsi» сохранён [13052/13052] | ||
$ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/skeleton.dtsi | $ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/skeleton.dtsi | ||
Строка 63: | Строка 67: | ||
imx23.dtsi imx23-wirenboard28.dts skeleton.dtsi | imx23.dtsi imx23-wirenboard28.dts skeleton.dtsi | ||
imx23-pinfunc.h mxs-pinfunc.h | imx23-pinfunc.h mxs-pinfunc.h | ||
</pre> | </pre> | ||
===Компилятор=== | |||
Компилятор Device Tree в Ubuntu и Debian находится в пакете device-tree-compiler. Установим его: | |||
<pre> | <pre> | ||
Строка 74: | Строка 81: | ||
</pre> | </pre> | ||
gcc | |||
Также требуется gcc | |||
<pre> | <pre> | ||
Строка 80: | Строка 88: | ||
</pre> | </pre> | ||
=== | |||
===Компиляция=== | |||
<pre> | <pre> | ||
Строка 89: | Строка 98: | ||
</pre> | </pre> | ||
===Установка=== | |||
Скомпилированный файл необходимо записать в /boot/dtsb. | |||
<b> Обязательно сделайте резервную копию существущего в /boot/dtsb файла!</b> |
Версия 18:35, 24 апреля 2019
Device Tree are files describing the hardware configuration. They are used in Linux and therefore in the Wiren Board controllers firmware. Modification of Device Tree-files may be required when re-assigning ports, connecting some UEXT-devices, when connecting 1-Wire sensors, etc.
Подробнее про 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 (для Wiren Board rev. 2.8), в /boot/dtbs/imx23-wirenboard32.dtb (для Wiren Board Smart Home rev. 3.5)
Пересборка
Для внесения изменений в Device Tree надо скачать Device Tree в текстовом формате, скомпилировать файл imx23-wirenboard28.dts и записать результат (imx23-wirenboard28.dtb) в /boot/dtbs/
Другой способ - Сборка ядра
Загрузка
Необходимо скачать из [1] файл imx23-wirenboardXX.dts, соответствующий версии устройства и зависимости. Зависимости на настоящий момент это файлы imx23.dtsi, skeleton.dtsi.
Основной DTS-файл:
imx23-wirenboard32.dts для Wiren Board Smart Home rev. 3.5
imx23-wirenboard28.dts для Wiren Board rev. 2.8
$ mkdir dts $ cd dts $ #export WB_BRANCH=v3.12-rc3-imxv5-x0.3 # для ядра 3.12 $ export WB_BRANCH=v3.13-imxv5-x0.1 $ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/mxs-pinfunc.h $ wget https://raw.github.com/contactless/linux/$WB_BRANCH/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/$WB_BRANCH/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/$WB_BRANCH/arch/arm/boot/dts/skeleton.dtsi $ wget https://raw.github.com/contactless/linux/$WB_BRANCH/arch/arm/boot/dts/imx23-pinfunc.h $ ls imx23.dtsi imx23-wirenboard28.dts skeleton.dtsi imx23-pinfunc.h mxs-pinfunc.h
Компилятор
Компилятор Device Tree в Ubuntu и Debian находится в пакете device-tree-compiler. Установим его:
$ sudo apt-get install device-tree-compiler
Также требуется gcc
$ sudo apt-get install gcc
Компиляция
$ gcc -E -Wp,-MD,imx23-wirenboard28.dtb.d.pre.tmp -nostdinc -I. -undef -D__DTS__ -x assembler-with-cpp -o .imx23-wirenboard28.dtb.dts.tmp imx23-wirenboard28.dts $ cat .imx23-wirenboard28.dtb.dts.tmp | grep -v "^#" | dtc -I dts -O dtb -o imx23-wirenboard28.dtb DTC: dts->dtb on file "-"
Установка
Скомпилированный файл необходимо записать в /boot/dtsb. Обязательно сделайте резервную копию существущего в /boot/dtsb файла!