当前位置:   article > 正文

dtbo镜像文件_dtbo文件

dtbo文件


12.1. DTBO镜像文件的概述

DTBO镜像文件,全称为“Device Tree Binary Overlay”,即设备树二进制叠加层。该文件是Android Pie中在硬件兼容性方面的重大变化,它可以将设备树中的参数动态加载而不需要重新编译内核。它充分利用了设备树的优点与灵活性,避免了修改设备树的不必要麻烦,同时又不失灵活性,并且在内存使用上相比Device Tree Blob(DTB)更为优秀。

12.2. DTBO镜像文件的创建

DTBO镜像文件的创建需要使用device tree compiler(DTC),这是一个Linux内核源代码中的模块。具体步骤如下:

1. 编写DTBO源文件,例如example.dts;
2. 将DTBO源文件编译成DTBO文件,例如example.dtbo:dtc -I dts -O dtb -o example.dtbo example.dts
  • 1
  • 2

这些命令将创建一个二进制DTBO文件,称为“example.dtbo”。这个文件现在可以被用来替换包中的一个现存DTBO文件,或者用作“叠加层”来修改正在使用的DTB。

12.3. DTBO镜像文件的使用

DTBO镜像文件被作为叠加层加载时,将会在系统启动之后被加载。主要有两种方式加载:

  1. 加载一个全新的DTBO文件。
 1. 使用adb将DTBO镜像文件传输到设备上;
 2. 在设备上的/system/etc/device-tree/overlay/ 目录下新建一个目录,并将DTBO文件移入此目录中;
 3. 将overlay目录名添加到 /system/etc/device-tree/overlay/overlay.dtbo 的末尾(或创建一个新的文件包含所有的overlay文件名),即:
overlay-user
 4. 在终端执行如下命令,使叠加层生效:
echo overlay-user.dtbo > /sys/kernel/config/device-tree/overlays/0/status
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

上述命令将 /system/etc/device-tree/overlay/overlay-user.dtbo 文件加载至默认设备树(即 /boot/dt.img)中。

2 . 更改一个现存的DTB文件。
在这种情况下,DTBO会修改默认设备树以添加额外的数据,例如一些新的节点或者属性。更改现有DTB文件的方法如下:

1. 使用adb将DTBO镜像文件传输到设备上;
2. 直接将DTBO文件加载到DTB文件上:
cat example.dtbo >> /sys/firmware/fdt
  • 1
  • 2
  • 3

12.4. DTBO镜像文件的示例

下面是一个简单的DTBO文件示例,该文件用于添加一个新的设备树节点:

/dts-v1/;
/plugin/;
#include <dt-bindings/gpio/gpio.h>
#include "../imx6ul-pinfunc.h"
/* W1(DS18B20) on 40Pin Header Pin#7 (GPIO1_IO18) */
&w1 {
	compatible = "ds18b20-gpio";
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_w1>;
	w1-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
};

&iomuxc {
	pinctrl_w1: w1grp {
		fsl,pins = <
					MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x110b0
				>;
	};
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/1005063
推荐阅读
相关标签
  

闽ICP备14008679号