4、milk-v duo(CV1800B,C906内核)从NFS、TFTP服务器热更新uboot、linux内核

本次主要参考:
https://community.milkv.io/t/sd-milk-v-duo-u-boot-tftp-kernel/1323
https://community.milkv.io/t/freertos/1378

特别注意:以下所有操作必须再同一个终端命令行下进行,milk-v duo需要外接网以太网,PC与milk-v duo最好通过路由器连接。

在milk-v duo的SDK的目录下,预准备开发环境,参考1、milk-v duo(CV1800B,C906内核)搭建开发环境中的单步编译。

环境搭建说明(根据需求搭建服务器):

搭建NFS服务器,参考8、LCPI(F1C200S)挂载windows上的NFS服务器(LctechPi,CherryPi,Mangopi,F1C100S)
搭建TFTP服务器(自行搜索),内核无需修改(推荐使用tftpd64,不要忘记指定网卡)。
将需要更新的文件放到搭建服务器目录下,其中kernel与设备树文件,SDK已经打包在一起名为boot.sd文件,在SDK的install/soc_cv1800b_milkv_duo_sd/rawimages文件夹中;uboot文件名为fip.bin,在SDK的install/soc_cv1800b_milkv_duo_sd文件夹中。

如果需要uboot从SD卡上加载kernel并启动,热更新方法如下:

此方法每次更新文件时,需写SD卡。
开发板root目录下依次执行:

mkdir rom (如果已有无需创建)
mount /dev/mmcblk0p1 /root/rom

此时进入rom目录,会看到SD卡上相关的文件,然后将搭建服务器下的,要更新的文件依次替换,执行reboot命令重启即可。

如果需要uboot从tftp服务器上下载kernel并启动,热更新方法如下:

此方法每次更新kernel文件时无需写SD卡,但是如果需要热更新uboot,需参考上一种方法。

uboot从tftp服务器上下载kernel并启动,修改代码如下:
在SDK目录下,将u-boot-2021.10/include/configs/cv180x-asic.h打开,设置如下:

修改CONFIG_IPADDR变量,使之与TFTP服务器处于同一网段,并且没有冲突;
修改CONFIG_NETMASK、CONFIG_GATEWAYIP与PC相同;
修改CONFIG_SERVERIP为TFTP服务器的IP地址
在这里插入图片描述
修改SD_BOOTM_COMMAND变量中的“mmc dev 0 && fatload mmc 0 ${uImage_addr} boot.sd; ”命令,修改为“tftpboot ${uImage_addr} boot.sd; ”。
在这里插入图片描述

再配置uboot,执行:menuconfig_uboot,

进入Command line interface,选中 Network command并进入,选中tftpboot,nfs,ping选项(其他默认不要动),然后保存退出。

最后执行build_fsbl,编译完成之后,将新生成的fip.bin文件替换SD卡中的fip.bin文件,上电启动。以后每次重启就会从tftp服务器获取kernel文件并启动,kernel文件更新后放到tftp服务器目录,执行reboot命令重启即可。

QQ:763314235,会在第一时间处理。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值