迅为IMX6ULL开发板从零开始编译 buildroot
从零开始编译 buildroot
硬件平台 :迅为i.MX6ul开发板
接下来我们就开始学习怎样一步一步配置 buildroot,使用命令:
make menuconfig
进入配置界面
1、配置 Target options
首先配置 Target options 选项,需要配置的项目和其对应的内容如下:
Target options
-> Target Architecture = ARM (little endian)
-> Target Binary Format = ELF
-> Target Architecture Variant = cortex-A7
-> Target ABI = EABIhf
-> Floating point strategy = NEON/VFPv4 -> ARM instruction set = ARM
配置好如下图:
2、配置 Toolchain
此配置项用于配置交叉编译工具链,也就是交叉编译器,这里设置为我们自己所使用的交叉编译器即
可。buildroot 其实是可以自动下载交叉编译器的,但是都是从国外服务器下载的,鉴于国内的网络环境,
强烈推荐大家设置成自己所使用的交叉编译器。需要配置的项目和其对应的内容如下:
Toolchain
-> Toolchain type = External toolchain
-> Toolchain = Custom toolchain //用户自己的交叉编译器
-> Toolchain origin = Pre-installed toolchain //预装的编译器
-> Toolchain path = /usr/local/arm/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf
-> Toolchain prefix = $(ARCH)-linux-gnueabihf //前缀
-> External toolchain gcc version = 5.x
-> External toolchain kernel headers series = 4.1.x
-> External toolchain C library = glibc/eglibc
-> [*] Toolchain has SSP support? (NEW) //选中
-> [*] Toolchain has RPC support? (NEW) //选中
-> [*] Toolchain has C++ support? //选中
-> [*] Enable MMU support (NEW) //选中
Toolchain:设置为 Custom
toolchain,使用用户自己的交叉编译器。
Toolchain
origin:设置为
Pre-installed toolchain,使用预装的交叉编译器。
Toolchain
path:交叉编译器绝对路径。
Toolchain
prefix:设置交叉编译器前缀,arm-linux-gnueabihf-gcc。
配置好如下图:
3、配置 System configuration
此选项用于设置一些系统配置,比如开发板名字、欢迎语、用户名、密码等。需要配置的 项目和其对
应的内容如下:
System configuration
-> System hostname = iTOP-IMX6UL //平台名字,自行设置
-> System banner = Welcome to iTOP-IMX6UL //欢迎语
-> Init system = BusyBox //使用 busybox
-> /dev management = Dynamic using devtmpfs + mdev //使用
mdev
-> [*] Enable root login with password (NEW) //使能登录密码
-> Root password = topeet //登录密码为 topeet
在 System configuration 选项中可以配置平台名字,登录密码等信息。
配置好如下图:
4、配置 Filesystem images
-> Filesystem images
-> [*] ext2/3/4 root filesystem //如果是 EMMC 或 SD 卡的话就用 ext3/ext4
-> ext2/3/4 variant = ext4 //选择 ext4 格式
-> [*] ubi image containing an ubifs root filesystem //如果使用
NAND 的话就用 ubifs
配置好如下图:
5、禁止编译 Linux 内核和 uboot
由于从网上下载内核源码和 uboot 然后编译他们比较耗费时间,而且新下载的内核源码,与 uboot 没有
我们开发板的配置信息,所以需要禁用它们。
禁止 Linux 内核的编译,配置如下:
> Kernel
-> [ ] Linux Kernel //不要选择编译 Linux Kernel 选项!
接着禁止编译 Uboot,配置如下:
-> Bootloaders
-> [ ] U-Boot //不要选择编译 U-Boot 选项!
6、配置 Target packages
此选项用于配置要选择的第三方库或软件、比如 alsa-utils、iperf 等工具,但是现 在我们先不选
择第三方库,先编译一下最基本的根文件系统,如果没有问题的话再重新配置选择第三方库和软件。否则
编译出问题的时候都不知道怎么找问题。
接下来重要的一步检查自己的交叉编译,默认支持的内核版本。输入命令:
vim
/usr/local/arm/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/linux/
version.h
如图:
如上图所示 LINUX_VERSION_CODE 为 262144,此值为 10 进制,转换为 16 进制为 40000,对应的 linux
内核版本为 4.0.x,在此要把该值改为与 buildroot 中配置的一致,即为 4.1.x,转换为 16 进制为 40100,
对应的十进制为 262400。(不这样的话会报错)。
使用命令“make”进行编译,等待编译完成,编译完成以后就会在 buildroot-2021.02.3/output/images
下生成根文件系统。进入到 images,可以见生成的 rootfs.tar,我们新建一个 system 文件夹。
将 rootfs.tar 拷贝到 system 下解压,并删去原来的 rootfs.tar。得到文件如下图所示:
使用命令“vim ./etc/profile”为开发板终端这是名称和路径显示功能。
添加以下内容如图:
PS1='[$USER@$HOSTNAME]$PWD# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
保存,退出。
使用命令:
tar -vcjf rootfs.tar.bz2 ./*
“ls”命令查看如图:
将生成的 rootfs.tar.bz2 替换烧写工具中的文件系统烧写到开发板,验证其正确性。
烧写成功后启动如图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人