【f1c200s/f1c100s】系统运行期间替换内核镜像和设备树

【f1c200s/f1c100s】系统运行期间替换内核镜像和设备树

前言

前端时间调试自己设计的mango-pi时,由于uboot没有移植USB驱动和网卡驱动,每次更新内核和设备树都需要重新插拔SD卡,非常影响调试效率,后面SD卡都给撸秃噜皮儿了😂。然后就在想能不能不关机更新内核镜像和设备树,因为我发现ubuntu好像在根文件系统下是可以找得到一个vmlinuz的,因为内核运行是将整个内核镜像文件拷贝到内存中执行的 ,所以可以在根文件系统中直接把镜像替换掉,那估计可行,很遗憾的是,在我自己构建的debian根文件系统中并没有找到。
在这里插入图片描述


方法

后面反应过来,我们内核镜像和设备树不是保存在SD卡中一个vfat格式分区中的吗?uboot是直接在这个分区中去加载内核和设备树到内存的,那就意味着我们可以在根文件系统中挂载这个分区,然后将里面的镜像和设备树替换掉直接重启不就好了。

在根文件系统挂载镜像所在分区

使用fdisk -l查看分区信息,这里100M大小的即为镜像所在分区,将它挂载到/mnt目录。

root@mangopi:~# fdisk -l
Disk /dev/mmcblk0: 14.9 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000ad027

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        2048   206847   204800  100M 83 Linux
/dev/mmcblk0p2      206848 31116287 30909440 14.8G 83 Linux
root@mangopi:~# mount /dev/mmcblk0p
mmcblk0p1  mmcblk0p2
root@mangopi:~# mount /dev/mmcblk0p
mmcblk0p1  mmcblk0p2
root@mangopi:~# mount /dev/mmcblk0p1 /mnt/
root@mangopi:~# cd /mnt/
root@mangopi:/mnt# ls
'System Volume Information'   boot.scr   suniv-f1c100s-mangopi.dtb   zImage

通过NFS拷贝镜像到/mnt目录

然后将编译出的镜像和设备树从虚拟机中拷贝到/mnt目录替换掉原有镜像和设备树即可。
然后重启。

root@mangopi:~# cp nfs/zImage nfs/suniv-f1c100s-mangopi.dtb /mnt/
root@mangopi:~# reboot
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
全志F1C100S芯片是一款广泛应用于嵌入式系统的ARM处理器,支持运行Linux操作系统设备树(Device Tree)作为一种硬件描述语言,被广泛应用于嵌入式系统中,用于描述硬件设备的信息。 要在运行Linux系统的全志F1C100S芯片上添加设备树,需要按照以下步骤进行: 1. 首先,了解全志F1C100S芯片的硬件架构和设备信息。通过查阅芯片的数据手册,获得芯片中的各个设备及其相关寄存器地址、中断信息等。 2. 在Linux内核源码中找到与全志F1C100S芯片相关的设备树文件(一般以.dts或.dtb文件格式存在)。这些文件位于arch/arm/boot/dts目录下。 3. 复制芯片相关的设备树文件,命名为相应的名称。根据需要,在设备树文件中添加新设备的描述。可以参考其他设备的描述,了解设备树的结构和语法规则。 4. 编辑设备树文件,添加新设备的描述信息。根据设备手册中的相关信息,包括设备的名称、地址、中断等,正确地描述设备的各个属性。 5. 编译设备树文件。使用设备树编译器(dtc)将设备树文件编译为设备树二进制文件(.dtb)。 6. 更新内核配置文件。在Makefile或Kconfig文件中,确保设备树文件被正确引用和编译进内核镜像中。 7. 编译内核。使用交叉编译工具链将内核源码编译为可在全志F1C100S芯片上运行的二进制文件。 8. 烧写内核。将编译好的内核镜像烧写到全志F1C100S芯片的存储介质中,如SPI Flash、SD卡等。 9. 启动系统。按照相应的启动方式(如从SPI Flash、SD卡启动),启动全志F1C100S芯片上的Linux系统。 通过以上步骤,我们可以成功地在运行Linux系统的全志F1C100S芯片上添加设备树,使得系统能够正确地识别和管理新添加的设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liangtao`

请作者喝杯咖啡吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值