如果单独修改设备树,要全编译、再下载全部的固件的话,耗时比较长,这里以修改canfd模式到can1.0模式进行设备树的修改,单独编译kernel,并在Ubuntu下用upgrade_tool下载固件
can的设备树在OK3568-linux-source/kernel/arch/arm64/boot/dts/rockchip
目录下的rk3568.dts文件中,用vscode打开:
找到rockchip,canfd-1.0全部修改也can-1.0并保存。
回到OK3568-linux-source目录执行./build.sh kernel。等到编译完成:
upgrade_tool工作在目录:/OK3568-linux-source/tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool
进入该目录。目录下有文档专门介绍工具如何使用。主要命令如下:
我们这里生成的boot.img在目录~/forlinx_4.19/OK3568-linux-source/kernel/boot.img
把usb接到下载串口,按住Recover键,重启进入下载模式注意usb识别后要选择连接到ubuntu的虚拟机
然后执行更新命令:
pgrade_Tool/Linux_Upgrade_Tool$ sudo ./upgrade_tool di -b ~/forlinx_4.19/OK3568-linux-source/kernel/boot.img
Not found config.ini
Program Data in /home/lugl/forlinx_4.19/OK3568-linux-source/tools/linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool
directlba=1,first4access=1,gpt=1
Download boot start...(0x00008000)
Compare data failed in checking,exit download image!
这样就单独更新了boot.img固件。
进入终端就可以手动启动can总线了。
[root@ok3568:/]# ip link set can0 type can bitrate 500000
RTNETLINK answers: Device or resource busy
[root@ok3568:/]# ip link set can0 down
[root@ok3568:/]# ip link set can0 type can bitrate 500000
[root@ok3568:/]# ip link set can0 up
【总结】如何只是单独编译某个固件,只需要单儿烧写就行了,在linux下用命令来直接烧录,就比较快捷方便。
更多回帖