9. 设备树的编译与修改¶
在U-boot和kernel的源码中都有设备树文件。按照U-Boot的原⽣架构要求⼀块板卡必须对应⼀份U-Boot dts, 并且U-Boot dts⽣成的dtb是打包到U-Boot⾃⼰的镜像中的。这样就会出现各SoC平台上,N块板卡需要N份U-Boot镜像。
在算能平台中uboot的设备树和内核设备树是用的同一个文件,路径是sophon-image-build/build/boards/sg200x/sg200x_xxx/dts_riscv/sg200x_xxx.dts
通过⽀持设备树可以达到兼容板卡差异,如:regulator、clk等。
9.1. 编译设备树文件¶
借助SDK可以很方便地进行编译,进入SDK顶层目录,以sg2000_lubancat_riscv_ubuntu_sd为例:
1 2 3 4 5 6 7 8 9 10 11 | #初始化编译环境,输入当前用户的密码
source build/cvisetup.sh
#加载对应的板级配置文件
defconfig sg2000_lubancat_riscv_ubuntu_sd
#清除kernel编译输出
clean_kernel
#构建kernel
build_kernel
|
构建生成的内核和设备树打包进了sophon-image-build/install/soc_sg2000_lubancat_riscv_ubuntu_sd/boot.sd,如果是emmc则是boot.emmc。