写一篇CSDN总结从工程的角度(非原理而通俗的)去讲解uboot kernel 最小根文件系统(包括busybox) NFS 这几个部分。各部分分别为一篇文章,使用超链接。
目录
前言
本文的目的是,,通俗的、从工程应用角度(而非着重原理)去移植uboot、kernel、最小根文件系统。目的是带你实现“把一个驱动程序运行于空白开发板上”
一、uboot、kernel、最小根文件系统基础知识
1.1、什么是uboot、kernel、最小根文件系统
先通俗说一下:
1.1.1 uboot
uboot就是通用bootloader。
bootloder的作用就是启动内核的,说白了,他的功能就是板子一上电先运行bootloder,bootloder上面有板子初始化的各种程序(如关闭看门狗、初始化串口、设置栈等等)。最后bootloder还会把内核从flash转移到内存中去运行,实现了启动内核。
1.1.2 kernel
系统内核(Kernel)是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能。内核里面大部分内容都是驱动程序。
1.1.3 文件系统
Linux文件系统(File System)中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。
1.2、uboot、kernel、最小根文件系统之间的关系
好,到这里你可能对uboot、kernel、最小根文件系统的理解似懂非懂,你可以去深入的看下面这几篇文章:
一文搞懂嵌入式uboot、kernel、文件系统的关系
Linux内核与根文件系统的关系详解
对于初学者,看了上面两篇文章也许还是有点不明白。没关系,我们来一步步操作,去亲手移植uboot、kernel、最小根文件系统(在这过程中先别纠结每步操作为什么),最终你就会慢慢理解了。
二、移植uboot
去看这篇文章,照着一步一步操作就行,先不用管每步为什么:
https://blog.csdn.net/weixin_45519751/article/details/107667326
三、移植内核
看下面这篇文章,只看第一节,照着一步步操作:
https://editor.csdn.net/md/?articleId=107714997

四、移植根文件系统 / 构建根文件系统 / NFS
根文件系统是内核的一部分,其实你在本文上一节“移植内核”中,所移植的内核已经包含有文件系统了。
不信?你可以给开发板上电然后进入uboot,然后在uboot菜单栏输入“q”命令退出菜单栏,然后输入erase nand root就把文件系统删除了。
这时候你重新给开发板上电然后进入uboot然后在菜单栏输入"b"命令进入系统,你会发现你进不去了,会提示你缺少了文件系统。
好,那我们移植一个文件系统到开发板中呗,操作如下:
4.1移植根文件系统
看这篇文章的第一节
https://blog.csdn.net/weixin_45519751/article/details/107727542
4.2构建根文件系统
看这篇文章的第二、三、四章
https://blog.csdn.net/weixin_45519751/article/details/107727542