1. 程式人生 > 其它 >迅為IMX6ULL開發板從零開始編譯 buildroot

迅為IMX6ULL開發板從零開始編譯 buildroot

迅為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 替換燒寫工具中的檔案系統燒寫到開發板,驗證其正確性。

燒寫成功後啟動如圖: