当用户需要定制自定义设备树文件时,如开启UART0串口功能,可以通过修改源码包中对应形态的dts文件以重新编译内核DTB文件,并重构驱动包进行安装。
若Atlas 200I A2 加速模块环境已存在NPU驱动,只需升级dt.img,获取制作dt.img使用的Ascend-hdk-310b-sdk-soc_<version>.zip时,软件包的版本需与当前Atlas 200I A2 加速模块的驱动版本号保持一致。否则,版本号不一致,升级dt.img后Atlas 200I A2 加速模块环境无法登录,只能通过重新烧写系统镜像进行恢复。
apt-get install -y python3 make gcc unzip pigz bison flex libncurses-dev squashfs-tools bc device-tree-compiler libssl-dev cmake rpm2cpio
su - root
cd /opt
tar -xzvf Ascend310B-source.tar.gz
cd Ascend310B-source
vim dts/hi1910b/hi1910BL/hi1910B-asic-M100-B51.dts
此处以使能UART0串口作为控制台设备为例进行配置(Atlas 200I DK A2 开发者套件默认已使能UART0串口配置)。
chosen { bootargs = "console=ttyAMA0,115200 log_redirect=0x1fc000@0x22741000 root=/dev/mmcblk1p1 rw rdinit=/sbin/init rodata=off syslog earlycon=pl011,mmio32,0xC4010000 loglevel=5 initrd=0x2BA00000,300M rootwait mpam=of enable_ascend_share_pool ascend_enable_all enable_sp_multi_group_mode init_all_gicr enable_fpga no_console_suspend use_kallsyms_lookup_symbol selinux=0 systemd.unified_cgroup_hierarchy=0 fbcon=map:6"; };
cd /opt/Ascend310B-source
bash build.sh dtb
出现如下回显,且生成“dt.img”文件表示编译内核DTB文件成功。
generate /opt/Ascend310B-source/output/dt.img success! sign /opt/Ascend310B-source/output/dt.img success!
编译后的dt.img文件会自动存放于“Ascend310B-source/output”目录下。
cd /opt
boot_tool get boot_sel
boot from eMMC
boot from SD
dd if=dt.img of=/dev/mmcblk1 count=4096 seek=114688 bs=512
852+1 records in 852+1 records out 436480 bytes (436 kB, 426 KiB) copied, 0.113982 s, 3.8 MB/s
建议用户在调测阶段仅升级主区与备区中的其中一个dt.img文件。
reboot
建议查看串口日志确认升级重启进展。