• linux系统移植到开发板简要过程(移植bootloader引导加载程序---移植linux内核---制作根文件系统)


     一.标准linux启动过程图

            对于linux启动流程分析,我们需要移植bootloader引导加载程序---移植linux内核---制作根文件系统镜像文件;

    二.为什么进行系统移植?

            对于不同的硬件平台,linux系统启动流程大体相同,但是资源需求有差异,所以需要对已有平台的linux系统的各种配置资源进行少量修改和裁剪,移植到已有的开发板上,使其在开发板上能运行;

    三.移植bootloader引导加载程序(uboot移植)

    1.uboot简介

    • bootloader:引导加载程序统称;
    • uboot是bootloader中,其中一种加载引导程序;
    • 在嵌入式开发中,常用引导加载程序为uboot,相当于电脑bios;

    2.uboot特点作用

    1. uboot是一个开源分布式软件;

    2. uboot支持多种硬件架构平台(ARM/X86/POWERPC/.........);

    3. uboot是一个裸机开发程序;

    4. uboot是一个短命鬼,主要引导内核进行启动,内核启动成功之后,生命周期就结束;

    5. uboot引导内核进行启动时,会给内核传递两个参数(bootcmd/bootargs),bootcmd参数:自启动命令 ==> 进入自启动模式;bootargs参数:自启动参数 ==> 将ubuntu指定文件夹,挂载到开发板中;

    四.移植linux内核

    1.移植原因

            uboot已经移植成功,uboot主要作用引导内核进行启动,会给内核传递两个参数(bootcmd / bootargs);

            需要内核的五大功能:

    • 内存管理(内存是计算机系统中最主要的资源,内存申请释放等),
    • 文件管理(在Linux系统中一切皆是文件,通过文件系统格式进行ext2/ext3/ext4格式进行管理),
    • 进程管理(进程是在计算机系统中资源分配的最小单元,进程创建/销毁/调度),
    • 网络管理(内核支持各种网络标准协议和网络设备,通过网络协议栈,完成数据收发),
    • 设备管理(Linux 系统中几乎每个系统操作最终都映射到一个或多个物理设备上,字符设备 / 块设备);

    2.linux内核特点

    1. linux内核是开源的,内核中由C语言和汇编语言实现;
    2. linux内核支持多种硬件架构平台;
    3. linux内核具有很好的移植性和裁剪性;
    4. linux内核可以采用模块化方式进行编译;

    五.制作根文件系统

    1.什么是根文件系统?

    • 根文件系统(rootfs):系统运行时,必须依赖的一些脚本和库相关文件;
    • 根文件系统镜像文件(ramdisk.img):将rootfs以某种格式进行压缩;

    2.为什么制作根文件系统?

            内核已经成功,并且uboot可以引导内核进行启动成功,我们不能直接操作内核,内核空间属于3G~4G,应用层空间属于0G~3G , 用户是不可以直接操作内核空间;

            在Linux系统中一切皆是文件,文件是计算机系统的软件资源,操作系统本身和大量的用户程序、数据都是以文件形式组织和存放的,我们可以通过控制rootfs文件,间接控制开发板;

    3.制作工具

            根文件系统制作网址:Index of /downloads

    4.测试工具

            通过nfs服务器进行测试,将~/nfs/rootfs目录挂载到开发板上,串口工具对~/nfs/rootfs操作;

  • 相关阅读:
    RNN与LSTM
    全面理解使用Pod
    java毕业设计校园商铺mybatis+源码+调试部署+系统+数据库+lw
    基于springboot零食商城
    MySQL数据库所用到的八十八张表(七到十二)
    深入JS 中三类循环原理和性能
    java多线程这一篇就差不多了
    Spire.PDF for NET 8.7.2
    【Python笔记-设计模式】适配器模式
    智能微型断路器在道路照明、园区照明、隧道照明中的应用-安科瑞 时丽花
  • 原文地址:https://blog.csdn.net/weixin_46260677/article/details/132795512