Linux开发移植总述

一个最小完整的Linux操作系统包括
bootloader(常用uboot)、Linux kernel、rootfs(根文件系统比如BusyBox、Yocto、Buildroot、Ubuntu-base)

bootloader作用:初始化DDR等外设,然后将Linux kernel从flash(Nand、Nor flash、SD、MMC)拷贝到DDR中,然后启动Linux内核。bootloader有很多,Uboot比较常用。Uboot可以看做是一个裸机代码,一个裸机的综合例程。现在的uboot已经支持液晶屏、USB和网络等高级功能。
通过uboot可以挂载rootfs,挂载rootfs后,就可以在文件系统下验证app应用或者驱动程序,app应用或者驱动程序就像windos下的应用程序,安装在某个盘后才能运行。而Linux下不分盘,只有一个根目录结构,可以认为相当于安装操作系统C盘。

在uboot下可以下载更新重新内核映像文件zImage和设备树比如imx6ull-14x14-evk.dtb。
 tftp 80800000 zImage
 tftp 83000000 imx6ull-14x14-evk.dtb
 bootz 8080000083000000

构建rootfs(根文件系统)
构建好rootfs(根文件系统),在这个最小完整的系统上编写、测试 Linux 驱动,移植一些第三方组件,逐步的完善这个最小系统。最终得到一个功能完善、驱动齐全、相对完善的操作系统。
根文件系统由uboot bootargs环境变量指定,一般用于nfs挂载在系统开发调试阶段,需要网络支持。发布阶段根文件系统跟uboot、Linux kernel一起烧录固话到flash(Nand、Nor flash、SD、MMC)中。nfs挂载bootargs设置样例如下图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u014783785/article/details/106230387