差别

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

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:ccmp2:customdt [2024/10/23 20:28] robindigi:arm-embedded:ccmp2:customdt [2025/03/11 16:54] (当前版本) robin
行 48: 行 48:
 ls arch/arm64/boot/dts/digi/ ls arch/arm64/boot/dts/digi/
 然后编译 然后编译
 +make clean dtbs
 make dtbs make dtbs
 如果出错,有语法错误,及时修复再编译,直到编译成功 如果出错,有语法错误,及时修复再编译,直到编译成功
行 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,在启动时加载自定义的设备树。
行 80: 行 88:
 </code> </code>
  
-最后编译:bitbake 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 
 + 
 + 
 + 
 + 
 + 
 +下面改用在meta-digi或meta-custom内实现。 
 + 
 +====meta-digi中修改或创建uboot的安装脚本==== 
 +在另一个章节会尝用自己的layer来创建uboot的安装脚本,这涉及到对yocto配方的理解和掌握,初学者并容易。 
 +但对meta-digi的修改则容易很多,只需有办法管理git和repo源的在upstream更新或是重建项目时,能很快重新应用相关的改动。本章节记叙这一最常见的用法。 
 + 
 +1、repo下meta-digi版本变动和管理 
 +deyaio在初始化项目时,已经为meta-digi指定了版本,我们进入meta-digi源码目录时,可以用git branch -a来查询可用的分支,此时一般是这样的: 
 +<code> 
 +robin@dev-all-in-one-ubuntu:~/deyaio/dey4.0/sources/meta-digi$ git branch -a 
 +* (no branch) 
 +  remotes/digi/gatesgarth 
 +  remotes/digi/jethro 
 +  remotes/digi/kirkstone 
 +  remotes/digi/kirkstone_ccmp2-cc91-beta 
 +  remotes/digi/morty 
 +  remotes/digi/rocko 
 +  remotes/digi/thud 
 +  remotes/digi/zeus 
 +  remotes/m/main -> digi/kirkstone 
 +</code> 
 +由于是通过repo初始化项目,因此当前本地文件本没有使用任一分支,而是由repo init和repo sync拉取源码时的分离头指针。可以用git show或git log -1来查得相关远程分支和哈希值。 
 + 
 +我们可以直接检出或切换本地分支来做修改或开发,以便不影响远程分支的情况下保留自己的工作内容。 
 + 
 +<code> 
 +git checkout -b dev 
 +进行修改操作后,我们可以放入自己的fork出的meta-digi分支下管理,如果涉及到多个layer的变动,也可以在上一级目录里建一个git,把各种变更都放在一个库中管理起来。 
 + 
 +任何时候,我们想恢复项目和官方源同步时,我们可以到deyaio目录下,用git reflog配合git reset --hard + git clean -df 即可 
 +用这个方法可以快速在本地修改版本和官方源之间切换。 
 + 
 +</code>
  
-后记:上面installer_plc_fw_sd.scr的编译不成功,所以改用在meta-custom实现 
  
 ====meta-custom中添加uboot的脚本并编译==== ====meta-custom中添加uboot的脚本并编译====
行 88: 行 143:
 在deyaio中,到deyaio/dey4.0/meta-cutom下,用下面命令检出并切换这个测试分支: 在deyaio中,到deyaio/dey4.0/meta-cutom下,用下面命令检出并切换这个测试分支:
 <code> <code>
-git fetch origin dev+git remote -v 
 +git fetch peyoot dev
 git checkout dev git checkout dev
 </code> </code>