A. 如何将dtb文件反编译成dtd
我相信,爱可以排除万难。只是,万难之后,又有万难,这是我更相信的。
B. dtb是什么文件怎么打开
dtb是可以减少linux内核版本的数量的文件。同一份linux 内核代码可以在多个板卡上运行,每个板卡可以使用自己的dtb文件。
1,在linux内核启动过程中会解析dtb文件,根据dtb文件中设备列表进行加注各个外设的驱动模块。
2,PC机在启动时会自动扫描外设,而在嵌入式中,linux内核启动过程中只是解析dtb文件,从而加载对应的模块。
3,编译linux内核时必须选择某外设模块,并且dtb中包括该外设的信息。在linux内核启动过程中才能自动加载该模块。
C. linux编译u-boot时显示[arch/arm/dts/zynq-zc702.dtb]错误
在编译uboot的时候,会出现出错,因此我们要首先做 make disclean. 将原来的一些中间文件清理干净。
因此在编译Uboot依次执行 1.make disclean
2.make smdk2440_config
3. make
就可以编译通过了
D. 如何将dtb反编译成dts
由于device tree会将一个node的信息分布在各个文件里,查看起来很不方便,比如如下例子,ldb在三个文件中都有配置:
imx6qdl-sabresd.dtsi:
&ldb {
status = "okay";
.......
};
imx6qdl.dtsi:
ldb: ldb@020e0008 {
#address-cells = <1>;
#size-cells = <0>;
......
};
imx6q.dtsi:
&ldb {
compatible = "fsl,imx6q-ldb", "fsl,imx53-ldb";
.......
}
其实device tree编译之后最终是会被全部放在一个.dtb结尾的文件,
比如这里是imx6q-sabresd-ldo.dtb,用如下命令就可以看到整个ldb node的内容,而且也可以作为编译之后的检查。
[kris@ecovacs:~/kernel_imx/scripts/dtc]$
./dtc -I dtb -O dts ../../arch/arm/boot/dts/imx6q-sabresd-ldo.dtb > ~/f.dts
E. 请教linux启动过程中dtb的作用
是如何使用dtb文件的?
我的理解是,在linux内核启动过程中会解析dtb文件,根据dtb文件中设备列表进行加注各个外设的驱动模块。不知这样理解是否正确?
答“正确,解析dtb并创建platform
device
过程请参见of_platform_populate和of_platform_bus_probe。
dtb文件中外设列表,和在linux内核中使能各个外设驱动模块(设置*或M)有什么关系?
是否可以这么理解,要想一份linux
kernel可以运行在多块板卡上,必须在linux
kernel配置中包括所有这些板卡的driver
模块,这样在linux启动过程中才能根据dtb
中的列表进行加载模块。
答:dtb里面最后被kernel解析,并创建为platform
device,
相应的
你也必须要有platform
driver
才行。
是否可以这么理解?PC机在启动时会自动扫描外设,而在嵌入式中,linux内核启动过程中只是解析dtb文件,从而加载对应的模块。
答:因为PC机基本就是暗指X86,这样X86架构上外设都是基于PCI或者PCIE总线,这类总线可以在启动的时候,动态扫描。
嵌入式里面,ARM和PowerPC,
SOC
主要的设备控制器都是基于soc总线,其不像pci/pcie总线可以动态的扫描。所以需要dtb。
是否可以这么理解?编译linux内核时必须选择某外设模块,并且dtb中包括该外设的信息。在linux内核启动过程中才能自动加载该模块。
答:对
F. Ubuntu编译u-boot时显示[arch/arm/dts/zynq-zc702.dtb]错误
最好贴上完整的log,这样才知道整个状况。
G. 编译linux内核设备树文件使用什么命令
Linux源码的arch/powerpc/boot/dts/目录下存放了很多dts文件,可以作为参考文件。另外dtc编译器在内核源码2.6.25版本之后已经被包含进去。在2.6.26版本之后,生成blob的简单规则已经加入makefile,如下命令:
$ make ARCH=powerpc canyonlands.dtb
也可以根据自己的硬件修改好dts文件后,用下面类似命令生成dtb文件。
$ dtc -f -I dts -O dtb -R 8 -S 0x3000 test.dts > mpc836x_mds.dtb
$ mkimage -A ppc -O Linux -T flat_dt -C none -a 0x300000 -e 0 -d mpc836x_mds.dtb mpc836x_mds.dtu
H. linux怎么调用dts生成dtb
dtb文件作用的描述是,使用dtb可以减少linux内核版本的数量。同一份linux 内核代码可以在多个板卡上运行,每个板卡可以使用自己的dtb文件。
1,在linux内核启动过程中会解析dtb文件,根据dtb文件中设备列表进行加注各个外设的驱动模块。
2,PC机在启动时会自动扫描外设,而在嵌入式中,linux内核启动过程中只是解析dtb文件,从而加载对应的模块。
3,编译linux内核时必须选择某外设模块,并且dtb中包括该外设的信息。在linux内核启动过程中才能自动加载该模块。
要使用dtb,需要uboot启动内核时,在bootm命令中指定dtb的位置,格式为:
bootm uImage_addr ramdisk_addr dtb_addr
如果没有ramdisk,就需要写成bootm uImage_addr - dtb_addr,用“-”表示没有ramdisk
I. dts编译生成dtb需要到内核源码下么
楼主为什么要编译在一起 现在做的都是分别生成内核和文件系统待烧录的文件,再下载到开发板上 开发板上的芯片会设置分区,对应加载的文件
J. dtb是什么文件怎么打开
dtb是可以减少linux内核版本数量的文件,打开方式如下:
1、首先,网络搜索框中输入UltraEdit,然后单击网络一下,如下图所示,然后进入下一步。