官网地址
安装编译相关的环境
sudo apt install -y sed make binutils build-essential gcc g++ patch gzip bzip2 perl tar cpio unzip rsync file bc wget libncurses-dev
sudo apt install -y wget python libncurses5 bzr cvs git mercurial rsync subversion
使用get下载
git clone git://git.buildroot.net/buildroot
# 进入目录
cd buildroot
我使用当前最新的版本2023.08-rc1
选择要编译的板子
在configs目录下有默认支持板子的配置
imx6ull板子的配置为imx6ullevk_defconfig,使用以下命令选择配置的板子
make imx6ullevk_defconfig
更改配置信息
make menuconfig
在 Toolchain中选择内核的版本要和使用的内核版本一致,我使用的内核版本是6.1.x,如果没有需要的内核版本可以下载老版本的buildroot
在Kernel中取消内核的编译,我们不使用buildroot直接编译的内核,buildroot编译的内核相关驱动比不上NXP官方提供的内核完善。
在Filesystem images只选择生成tar格式的根文件系统,后面我们将使用nfs挂载我们的文件系统
在Bootloaders中取消Bootloaders的生成,我们使用NXP提供的U-Boot。
其它的为默认配置
编译
make -j4
编译错误解决
错误信息
ERROR: vfat(boot.vfat): could not setup zImage
新版板的buildroot制作文件系统默认需要生成sdcard.img镜像,sdcard.img镜像的生成需要使用到zImage文件,但是是我们在前面生成根文件时把内部编译的uboot和kernel都去掉,没有编译生成zImage,所以,在生成sdcard.img的时候(这个镜像集成了uboot,kernel,rootfs),找不到zImage,生成失败。
我们需要对Makefile文件进行修改,去除掉sdcard.img镜像生成,注释掉Makefile 815行的语句
# 重新编译
make -j4
编译结束,需要的文件位置
所有编译的输出都位于output文件
主要是两个文件夹,一个是images,保存根文件的镜像输出
一个是host目录,host目录下面的bin目录有我们以后编译系统需要使用的交叉编译工具链
设置交叉编译器的路径
#进入工具链目录
cd output/host/bin/
#获取目录的绝对路径
pwd
#打开文件,并移到文件结尾
vim ~/.bashrc +$
#在文件结尾加上以下信息
export PATH=$PATH:<上面获取的绝对路径> #例如 export PATH=$PATH:/home/q123/samba/imx6ull/buildroot/output/host/bin
#保存完成关闭终端重新打开终端即可生效
标签:buildroot,文件,make,文件系统,生成,编译,内核,IMX6ULL,制作
From: https://www.cnblogs.com/Hlc-/p/17647373.html