迅为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 替换烧写工具中的文件系统烧写到开发板,验证其正确性。

烧写成功后启动如图:

 

原文地址:https://www.cnblogs.com/topeet/p/15127549.html