对于初学者,从工程应用角度去移植uboot、kernel、最小根文件系统

写一篇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

猜你喜欢

转载自blog.csdn.net/weixin_45519751/article/details/108630213