差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:ccmp2:customdt [2024/11/11 22:42] – [自定义设备树的实现] robindigi:arm-embedded:ccmp2:customdt [2025/03/31 09:48] (当前版本) robin
行 5: 行 5:
  
 一般设备树的编译是通过内核recipe来实现的,比如MP2目前是在: 一般设备树的编译是通过内核recipe来实现的,比如MP2目前是在:
-https://github.com/digi-embedded/meta-digi/blob/kirkstone/meta-digi-arm/recipes-kernel/linux/linux-dey_6.1.bb+https://github.com/digi-embedded/meta-digi/blob/scarthgap/meta-digi-arm/recipes-kernel/linux/linux-dey_6.6.bb
  
 我们一般无需更改或做一个bbapend,更方便的方法是,先手动在devshell里编译出设备树,然后在meta-custom中用文件系统复制的方式,把测试过的设备树复制到文件系统该有的位置。并通过UBoot的启动脚本在启动时加载特定设备树文件,从而让嵌入式系统镜像使用该设备树。 我们一般无需更改或做一个bbapend,更方便的方法是,先手动在devshell里编译出设备树,然后在meta-custom中用文件系统复制的方式,把测试过的设备树复制到文件系统该有的位置。并通过UBoot的启动脚本在启动时加载特定设备树文件,从而让嵌入式系统镜像使用该设备树。
  
-一般地,编译完任一个基础镜像后,在~/deyaio/dey4.0/workspace/ccmp25/tmp/work/ccmp25_dvk-dey-linux/linux-dey/6.1-r0/build/arch/arm64/boot/dts/digi中存放的是编译的结果。 +一般地,编译完任一个基础镜像后,在/home/robin/deyaio/dey5.0/workspace/ccmp25/tmp/work/ccmp25_dvk-dey-linux/linux-dey/6.6/build/arch/arm64/boot/dts/digi中存放的是编译的结果。 
-而源码则位于:~/deyaio/dey4.0/workspace/ccmp25/tmp/work-shared/ccmp25-dvk/kernel-source/arch/arm64/boot/dts/digi+而源码则位于:~/deyaio/dey5.0/workspace/ccmp25/tmp/work-shared/ccmp25-dvk/kernel-source/arch/arm64/boot/dts/digi
  
 建议使用[[https://peyoot.github.io/zh/deyaio/introduction.html |DEY AIO]]来进行系统开发,这部分包括了自定义的文件系统和自用板子设备树的实现。 建议使用[[https://peyoot.github.io/zh/deyaio/introduction.html |DEY AIO]]来进行系统开发,这部分包括了自定义的文件系统和自用板子设备树的实现。
行 48: 行 48:
 ls arch/arm64/boot/dts/digi/ ls arch/arm64/boot/dts/digi/
 然后编译 然后编译
 +make clean dtbs
 make dtbs make dtbs
 如果出错,有语法错误,及时修复再编译,直到编译成功 如果出错,有语法错误,及时修复再编译,直到编译成功
 检查dtb是否已经生成 检查dtb是否已经生成
-ls /home/rtu/deyaio/dey4.0/workspace/ccmp25/tmp/work/ccmp25_dvk-dey-linux/linux-dey/6.1-r0/build/arch/arm64/boot/dts/digi/+ls ~/deyaio/dey5.0/workspace/ccmp25/tmp/work/ccmp25_dvk-dey-linux/linux-dey/6.6/build/arch/arm64/boot/dts/digi
 目录内会有和设备树源码同文件名的dtb文件,就是我们编译好的设备树文件。 目录内会有和设备树源码同文件名的dtb文件,就是我们编译好的设备树文件。
 </code> </code>
行 57: 行 58:
 第五步:测试设备树文件 第五步:测试设备树文件
 首先要把它拷贝出来,因为目录都比较深,所以可以用deyaio的publish.sh脚本,快速拷贝相关文件到release目录内。 首先要把它拷贝出来,因为目录都比较深,所以可以用deyaio的publish.sh脚本,快速拷贝相关文件到release目录内。
 +
 +单独测试设备树,可以重新以可读写的方式mount一下linux分区
 +<code>
 +mount -o remount,rw /mnt/linux 
 +再把设备树拷入到内核分区中
 +</code>
 +
  
 第六步:编译boot.txt和install_linux_fw_sd.txt,在启动时加载自定义的设备树。 第六步:编译boot.txt和install_linux_fw_sd.txt,在启动时加载自定义的设备树。
行 81: 行 89:
  
 最后编译,应该用bitbakey -C compile u-boot-dey来实现。 最后编译,应该用bitbakey -C compile u-boot-dey来实现。
 +
 +===uboot设备树的编译===
 +
 +===反查设备树===
 +
 +$ fiptool unpack <fip-file> --out <out-folder>
 +Then decompile the extracted hw-config.bin (U-boot device tree)
 +$ dtc -I dtb -O dts -o uboot.dts hw-config.bin
 +Finally inspect the DTS file
 +$ less uboot.dts
 +
 +
 +