linux 系统移植(第十九期)---- BusyBox 构建根文件系统---- Ubuntu20.04

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

[一、BusyBox 简介](#一、BusyBox 简介)

[二、BusyBox 的下载](#二、BusyBox 的下载)

[三、编译 BusyBox 构建根文件系统](#三、编译 BusyBox 构建根文件系统)

[四、修改 Makefile,添加编译器](#四、修改 Makefile,添加编译器)

总结


前言

上一期对根文件系统作了一个简单的简介,接下来这期博客我们要开始讲解如何构建根文件系统。


一、BusyBox 简介

之前的博客讲解到根文件系统里面就是一堆的可执行文件和其他文件组成的,难道得一个一个的从网上去下载这些文件吗? 显然是不可能的,其实有人帮我们"收集"好了这些文件,并将其打包,我们可以直接拿来用了,这个软件叫做 BusyBox,他是一个集成了大量的 Linux 命令和工具的软件,一般我们下载好BusyBox的源码,然后配置BusyBox,选择自己想要的功能,最后编译即可。

二、BusyBox的下载

BusyBox 可以在其官网下载到

链接:BusyBox

如下图所示::

在官网左侧的"Get BusyBox"栏有一行"Download Source",点击"Download Source"即可打开 BusyBox 的下载页 ,如下图:

这里我们可以直接使用开发板提供的资料:busybox-1.29.0.tar.bz2

BusyBox准备好以后就可以构建根文件系统了。

三、编译 BusyBox 构建根文件系统

一般我们在 Linux 驱动开发的时候都是通过 nfs 挂载根文件系统的,在设置的 nfs 服务器目录中创建一个名为 rootfs 的子目录,使用如下命令创建名为 rootfs 的子目录:

复制代码
mkdir rootfs

创建好的 rootfs 子目录就用来存放我们的根文件系统了。 将 busybox-1.29.0.tar.bz2 发送到 Ubuntu 中,存放位置大家随便选择。然后使用如下命令将其解压:

复制代码
tar -vxjf busybox-1.29.0.tar.bz2

解压完成以后进入到 busybox-1.29.0 目录中,此目录中的文件和文件夹如下图所示:

四、修改 Makefile ,添加编译器

同 Uboot 和 Linux 移植一样,打开 busybox 的顶层 Makefile,添加 ARCH 和 CROSS_COMPILE

的值,如下所示:

复制代码
164 CROSS_COMPILE ?= /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-


......

190 ARCH ?= arm

在上述代码中 CORSS_COMPILE 使用了绝对路径!主要是为了防止编译出错。


总结

这期博客我们要开始讲解如何构建根文件系统。

相关推荐
忆挽篱笙歌4 小时前
冯诺依曼+操作系统+进程
linux·ubuntu
xixiaoyunya4 小时前
实验室检测数据内网自动化备份方案:满足合规可追溯的落地实践
服务器·网络·自动化
资深电气设计5 小时前
TPO卷材研发常见问题:强度与柔韧性为何难兼顾?埃克森美孚威达美™6102的技术参考
运维·物联网·创业创新·业界资讯
优化Henry5 小时前
光路异常告警排查实战:LTE室分与5G小区两个案例解析
运维·网络·学习·5g·tdd
Apipi*5 小时前
30天速通Linux 第九章Linux网络编程
linux·运维·网络
报错小能手5 小时前
Channel面试题。Sync面试题
linux·服务器·windows
天远数科5 小时前
零信任架构实战:基于天远风控经营异常预警构建自动化电子签章前置合规网关
运维·人工智能·架构·自动化
xiaoqiMikko5 小时前
Linux 实战(五):DNS、hosts、CLOSE-WAIT、SSH 权限与改端口 —— 三台真机实测
linux·centos
Linux-lucky5 小时前
43-Linux学习之旅之Shell 脚本(二)
linux·运维·学习·ubuntu·dash
yv798an5 小时前
从 OpenSBI 引导到 C++17 异步运行时:自制 RISC-V 嵌入式专有 NAS 踩坑全记录
linux