Linux移植加载内核、设备树、根文件系统的几种方法总结(TFTP、nfs、SD卡、eMMC)

Linux移植加载kernel image、dtb、rootfs文件系统的几种方法总结

  • 前言
  • 一、TFTP
    • 1、u-boot移植DM9000A
    • 2、宿主机安装TFTP服务器
    • 3、复制rootfs到SD卡
    • 4、tftp的使用
  • 二、NFS
    • 1、Ubuntu安装nfs服务器
    • 2、把rootfs配置为nfs服务的专有文件夹
    • 3、nfs的使用
  • 三、fatload命令加载内核
  • 四、制作ramdisk到SD卡
  • 五、根文件系统的几种加载方式
  • 六、SD卡的驱动问题汇总
  • 遗留问题


前言

我的开发板是exynos4412,NandFlash中有官方提供的提供的linux-3.5。想移植Linux-6.1,又不想破坏NandFlash中原有的操作系统(毕竟更完善一些),一直尝试用TFTP、nfs、SD卡方式来加载kernel image、dtb、rootfs文件系统。现把我的博客总结一下,供大家参考。
这个过程中,碰到了很多问题,但是最后发现最主要是前2个原因:

  1. 设备树的写法不正确
  2. u-boot的bootargs缺项
  3. 少数需要修改内核、u-boot的make配置
  4. 极少数问题需要修改内核中的驱动

一、TFTP

1、u-boot移植DM9000A

首先,要在u-boot中移植dm9000a网卡的驱动,有2种方法。

  • 第一种方法比较简单,只涉及网卡驱动,好理解
    为Exynos4412移植2022版U-Boot(三)——添加DM9000网卡驱动
  • 第二种方法更规范,但是涉及设备树解析

你可能感兴趣的:(linux,ubuntu,驱动开发,嵌入式硬件)