Linux-buildroot,
- ■ buildroot
- ■ 1、简介
- ■ 2、下载
- ■ 2、编译
- ■ 问题一:buildroot 编译的时候会先从网上下载所需的软件源码,下载cmake-3.8.2.tar.gz或下载很慢的情况
- ■ buildroot-构建根文件系统
- ■ 1、配置 buildroot
- ■ 2、
- ■ 3、
- ■ buildroot-构建 linux 内核
- ■ 1 、
- ■ 2 、
- ■ 3 、
- ■ buildroot-构建uboot
- ■ 1 、
- ■ 2 、
- ■ 3 、
- ■ buildroot-第三方软件和库的配置
- ■ 1、使能 alsa-lib
- ■ 2、
- ■ 3、
- ■ buildroot-busybox
- ■ 1、busybox下载解压
- ■ 2、打开 busybox 的配置界面
- ■ 3、编译busybox
- ■ 4、重新编译 buildroot
■ buildroot
■ 1、简介
一种傻瓜式的方法或软件,它不仅包含了 busybox 的功能,而且里面还集成了各种软件,需要什么软件就选择什么软件,不需要我们去移植。答案肯定是有的, buildroot 就是这样一种工具。
buildroot 下载后进行配置,比如设置交叉编译器、设置目标 CPU 参数等,最主要的就是选择所需要的第三方库或软件。
一切配置好以后就可以进行编译,编译完成了以后就会在一个文件夹里面存放好编译结果,也就是根文件系统。
类似 buildroot 的软件 yocto工具。
■ 2、下载
buildroot 源码肯定是要从 buildroot 官网下载,官网地址为 https://buildroot.org/
官网地址
■ 2、编译
-
sudo make //注意,一定要加 sudo,而且不能通过-jx 来指定多核编译!!!
buildroot 编译的时候会先从网上下载所需的软件源码,有些软件源码可能下载不下来,这个时候就需要我们自行处理,
buildroot 编译过程会很耗时,可能需要几个小时.
编译完成以后就会在 buildroot-2019.02.6/output/images 下生成根文件系统,
编译出来了多种格式的 rootfs,比如 ext2、 ext4、 ubi 等。其中rootfs.tar 就是打包好的根文件系统, -
新建 buildrootfs文件夹,拷贝到里面解压
cd /home/zuozhongkai/linux/nfs //进入到 nfs 目录下
mkdir buildrootfs //创建 buildrootfs 目录
cd buildrootfs //进入到 buildrootfs 目录
cp …/…/IMX6ULL/tool/buildroot-2019.02.6/output/images/rootfs.tar ./ //拷贝到 rootfs.tar
tar
tar -vxf rootfs.tar //解压缩 rootfs.tar
rm rootfs.tar //删除 rootfs.tar -
不编译 Linux 内核
-
禁止编译 Uboot
-> Bootloaders
-> [ ] U-Boot //不要选择编译 U-Boot 选项!
■ 问题一:buildroot 编译的时候会先从网上下载所需的软件源码,下载cmake-3.8.2.tar.gz或下载很慢的情况
我 们可以自 行 到 https://cmake.org/files/v3.8/cmake-3.8.2.tar.gz 这个网站上去将 cmake-3.8.2.tar.gz 这个源码下载下
来,然后拷贝到 Ubuntu 中 buildroot 源码目录下的 dl 文件夹中, dl 文件夹专用用于存放下载下来的源码。
■ buildroot-构建根文件系统
■ 1、配置 buildroot
- 下载解压buildroot
tar -vxjf buildroot-2019.02.6.tar.bz2
//解压完成以后就会得到一个名为“buildroot-2019.02.6”的目录,此目录就是我们解压得到的 buildroot 源码。 - make menuconfig //图形化配置界面
1)配置 Target options
2)配置 Toolchain
3)
■ 2、
■ 3、
■ buildroot-构建 linux 内核
■ 1 、
■ 2 、
■ 3 、
■ buildroot-构建uboot
■ 1 、
■ 2 、
■ 3 、
■ buildroot-第三方软件和库的配置
我在前面学习的时候需要自行移植一些第三方的库和软件,
比如 alsa-lib、 alsa-utils 等等,
现在我们不需要自行移植这些第三方软件和库了,可以直接在 buildroot 里面配置使能。
比如我们现在配置使能 alsa-lib、 alsa-utils 这两个软件和库。
■ 1、使能 alsa-lib
■ 2、
■ 3、
■ buildroot-busybox
buildroot 在构建根文件系统的时候也是要用到 busybox 的,既然用到了 busybox 那么就涉及到 busybox 的配置。
buildroot 会自动下载 busybox 压缩包, buildroot 下载的源码压缩包都存放在/dl 目录下,在 dl 目录下就有一个叫做“busybox”的文件夹,
要想编译 busybox,busybox-1.29.3.tar.bz2压缩包进行解压缩 buildroot 将所有解压缩后的软件保存在/output/build 软件中
■ 1、busybox下载解压
要想编译 busybox,busybox-1.29.3.tar.bz2压缩包进行解压缩 buildroot 将所有解压缩后的软件保存在/output/build 软件中
■ 2、打开 busybox 的配置界面
sudo make busybox-menuconfig 输入以后就会打开 buildroot 下的 busybox 配置界面
■ 3、编译busybox
配置好以后就可以重新编译 buildroot 下的 busybox
进入到 buildroot 源码目录下,输入如下命令查看当前 buildroot 所有配置了的目标软件包,也就是 packages:
cd buildroot
sudo make show-targets //列出了当前 buildroot 中所有使能了的 packages 包
sudo make busybox // 重新编译 busybox
■ 4、重新编译 buildroot
sudo make 重新编译 buildroot, //重新编译完成以后查看一下 output/images 目录下 rootfs.tar 的创建时间是否为刚刚编译的