写一篇CSDN总结从工程的角度(非原理而通俗的)去讲解uboot kernel 最小根文件系统(包括busybox) NFS 这几个部分。各部分分别为一篇文章,使用超链接。

目录

  • 前言
  • 一、uboot、kernel、最小根文件系统基础知识
    • 1.1、什么是uboot、kernel、最小根文件系统
      • 1.1.1 uboot
      • 1.1.2 kernel
      • 1.1.3 文件系统
    • 1.2、uboot、kernel、最小根文件系统之间的关系
  • 二、移植uboot
  • 三、移植内核
  • 四、移植根文件系统 / 构建根文件系统 / NFS
    • 4.1移植根文件系统
    • 4.2构建根文件系统

前言

本文的目的是,,通俗的、从工程应用角度(而非着重原理)去移植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

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

  1. 移植busybox构建最小根文件系统

    Busybox:瑞士军刀,里面装有很多小命令. STEP 1:构建目录结构  创建根文件系统目录,主要包括以下目录 /dev  /etc /lib  /usr  /var /proc /tmp /ho ...

  2. omapl138移植uboot系列之启动TI官方移植的Linux内核(启动内核第一篇)

    启动TI官方移植的Linux内核 和编译uboot一样,Linux内核的编译也是三板斧,首先修改Makefile中的ARCH和CROSS_COMPILE,然后找到你要编译的板卡执行make xx_de ...

  3. 从需求的角度去理解Linux系列:总线、设备和驱动

    <从需求的角度去理解Linux系列:总线.设备和驱动>是一篇有关如何学习嵌入式Linux系统的方法论文章,也是从需求的角度去理解Linux系统软件的开篇.这是作者精心撰写的经验总结,希望嵌 ...

  4. 移植U-BOOT之支持烧写YAFFS文件系统以及制作U-BOOT补丁

    今天,我们来移植U-BOOT让其支持YAFFS文件系统映像的烧写,以及最后的终极目标,制作Uboot补丁,因为我们信心苦苦移植好了Uboot,如果换一个地方的或者换一台电脑之类的,我们也不想再浪费时间 ...

  5. jz2440开发板移植U-boot之修改代码支持DM9000网卡

    今天我们来移植U-boot到jz2440开发板,修改代码支持DM9000网卡.查看之前写的移植记录请点击链接:点击查看之前的移植记录 现在大多数开发板都支持DM9000网卡.我们的U-boot源码里面 ...

  6. 移植uboot之修改代码支持NorFlash记录续集二

    先说一个事:我会在最后把移植好的uboot,内核,分别做一个补丁文件,以后如果用到相同的uboot以及内核都可以直接下载我这个补丁进行打补丁操作就可以直接用~ 上一个移植uboot续集,我们解决了无法 ...

  7. 移植uboot之修改代码支持NorFlash记录

    学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 今天我们的任务是修改uboot源码支持NorFlash. 上两篇关于 ...

  8. fpga烧写bin文件_S3C2440移植uboot之编译烧写uboot

    @[TOC] 移植环境 主 机:VMWare--ubuntu16.04 开发板:S3C2440 编译器:arm-linux-gcc-4.3.2.tgz u-boot:u-boot-2012.04.01 ...

  9. uboot研读笔记 | 05 - 移植uboot 2012.04到JZ2440(支持Nand Flash读写)

    项目开源地址:https://github.com/Mculover666/uboot-jz2440 0. 教程完整目录 00 - 嵌入式Linux系统中Bootloader的作用和基本运行原理 01 ...

最新文章

  1. NVIDIA 自动驾驶软件平台
  2. pythonjs语法_Python语法精解:JSON语法
  3. Jquery UI dialog 详解
  4. python学习笔记day08 文件功能详解
  5. Python error: Unable to find vcvarsall.bat
  6. linux文件名中文乱码解决
  7. unable to execute dex:GC overhead limit exceeded unable to execute dex:java heap space 解决方案
  8. thinkphp的增删改查
  9. ajax post 请求 一直提示 404 not found textStatus error
  10. 基于相关系数的影像匹配_论文推送 | 基于最优匹配算法的像控点电子点之记制作研究...
  11. python读写word、excel、csv、json文件
  12. 华为模拟器ensp与真实机器连接使用的配置内容一
  13. #扒一扒网易云课堂python课程,发现还是有不少可以白嫖的免费好资源
  14. 男女逗段,瞅瞅有没有说到你
  15. 【Python讲义】WEEK 8
  16. 一文助你入门HTML(❤ ω ❤)
  17. kubernetes用户使用token安全认证教程
  18. ByteBuffer和String互转
  19. DNA核苷酸含量计算
  20. Cocos精品《热血传奇》|五千个日夜 同一个传奇

热门文章

  1. 实例004 计算正方形的周长
  2. Linux下客户端主动Close,服务端阻塞的read函数不会马上返回
  3. 蓝桥试题 算法提高 珠心算测验 JAVA
  4. 初识压缩感知Compressive Sensing
  5. 第二章网页前端基础与HTTP协议
  6. 智能反射面(IRS)信道建模与仿真
  7. t440 linux指纹识别,ThinkPad X220 Ubuntu 14.10 上安装指纹识别
  8. 11111错误问题解决-------Mybatis扩展操作
  9. mac osx 优化上网速度
  10. C++ QT QNetworkAccessManager 基操