自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你用 buildroot 構(gòu)建根文件系統(tǒng)

系統(tǒng) Linux
如果想要構(gòu)建完整的根文件系統(tǒng),大家一般都是使用buildroot,它不僅包含了 busybox 的功能,而且里面還集成了各種軟件,需要什么軟件就選擇什么軟件,不需要我們?nèi)ヒ浦病?/div>

[[406899]]

嵌入式系統(tǒng)三大部分:bootloader(uboot)、Linux內(nèi)核、根文件系統(tǒng)。

制作根文件系統(tǒng)有三大神器:busybox、buildroot、yocto。

使用 busybox 構(gòu)建文件系統(tǒng),僅僅只是幫我們構(gòu)建好了一些常用的命令和文件,像 lib 庫(kù)、/etc 目錄下的一些文件都需要自己手動(dòng)創(chuàng)建,我們還要自己去移植一些第三方軟件和庫(kù),比如 alsa、iperf、mplayer 等等。而且 busybox 構(gòu)建的根文件系統(tǒng)默認(rèn)沒有用戶名和密碼設(shè)置。

如果想要構(gòu)建完整的根文件系統(tǒng),大家一般都是使用buildroot,它不僅包含了 busybox 的功能,而且里面還集成了各種軟件,需要什么軟件就選擇什么軟件,不需要我們?nèi)ヒ浦?。buildroot 極大的方便了我們嵌入式 Linux 開發(fā)人員構(gòu)建實(shí)用的根文件系統(tǒng)。

至于 yocto 構(gòu)建根文件系統(tǒng),過于復(fù)雜,需要時(shí)間也很久,我們一般不會(huì)選擇這一種方式。

buildroot 下載

buildroot 源碼肯定是要從 buildroot 官網(wǎng)下載,官網(wǎng)地址為 https://buildroot.org/。

下載后解壓如圖:

buildroot 和 uboot、Linux kernel 一樣也支持圖形化配置,輸入如下命令即可打開圖形化配置界:

  1. make menuconfig 

 1、配置 Target options

  1. Target options 
  2.   -> Target Architecture = ARM (little endian)  
  3.   -> Target Binary Format = ELF 
  4.   -> Target Architecture Variant = cortex-A7 
  5.   -> Target ABI = EABIhf 
  6.   -> Floating point strategy = NEON/VFPv4 
  7.   -> ARM instruction set = ARM 

2、配置 Toolchain

此配置項(xiàng)用于配置交叉編譯工具鏈,設(shè)置為我們自己所使用的交叉編譯器,必須是絕對(duì)路徑。

目前,在ARM Linux的開發(fā)中,人們趨向于使用Linaro( http://www.linaro.org/ )工具鏈團(tuán)隊(duì)維護(hù)的ARM工具鏈,它以每月一次的 形式發(fā)布新的版本,編譯好的可執(zhí)行文件可從網(wǎng)址 http://www.linaro.org/downloads/ 下載。Linaro是ARM Linux領(lǐng)域中最著名最具技術(shù)成就的開源組織,其會(huì)員包括ARM、Broadcom、Samsung、TI、Qualcomm等,國(guó)內(nèi)的海思、中興、全志和中國(guó)臺(tái)灣的MediaTek 也是它的會(huì)員。

一個(gè)典型的ARM Linux工具鏈包含arm-linux-gnueabihf-gcc(后續(xù)工具省略前綴)、strip、gcc、objdump、ld、gprof、nm、readelf、 addr2line等。前綴中的“hf”顯 示該工具鏈?zhǔn)峭耆挠哺↑c(diǎn)。

  1. Toolchain 
  2.   -> Toolchain type = External toolchain 
  3.   -> Toolchain = Custom toolchain //用戶自己的交叉編譯器 
  4.   -> Toolchain origin = Pre-installed toolchain //預(yù)裝的編譯器 
  5.   -> Toolchain path =   //編譯器絕對(duì)路徑  
  6.   -> Toolchain prefix = $(ARCH)-linux-gnueabihf //前綴 
  7.   -> External toolchain gcc version = 4.9.x 
  8.   -> External toolchain kernel headers series = 4.1.x 
  9.   -> External toolchain C library = glibc/eglibc  
  10.   -> [*] Toolchain has SSP support? (NEW) //選中 
  11.   -> [*] Toolchain has RPC support? (NEW) //選中 
  12.   -> [*] Toolchain has C++ support? //選中 
  13.   -> [*] Enable MMU support (NEW) //選中 

3、配置 System configuration

用于設(shè)置一些系統(tǒng)配置,比如開發(fā)板名字、歡迎語(yǔ)、用戶名、密碼等。

  1. System configuration 
  2.  -> System hostname = Jasonangel //平臺(tái)名字,自行設(shè)置 
  3.  -> System banner = Welcome to xxxxx //歡迎語(yǔ) 
  4.  -> Init system = BusyBox //使用 busybox 
  5.  -> /dev management = Dynamic using devtmpfs + mdev //使用 mdev 
  6.  -> [*] Enable root login with password (NEW) //使能登錄密碼 
  7.   -> Root password = 123456 //登錄密碼為 123456 

4、配置 Filesystem images

此選項(xiàng)配置我們最終制作的根文件系統(tǒng)為什么格式的,配置如下:

  1. -> Filesystem images 
  2.  -> [*] ext2/3/4 root filesystem //如果是 EMMC 或 SD 卡的話就用 ext3/ext4 
  3.   -> ext2/3/4 variant = ext4 //選擇 ext4 格式 
  4.  -> [*] ubi image containing an ubifs root filesystem //如果使用 NAND 的話就用 ubifs 

5、禁止編譯 Linux 內(nèi)核和 uboot

buildroot 不僅僅能構(gòu)建根文件系統(tǒng),也可以編譯 linux 內(nèi)核和 uboot。當(dāng)配置 buildroot,使能 linux 內(nèi)核和 uboot 以后 buildroot 就會(huì)自動(dòng)下載最新的 linux 內(nèi)核和 uboot 源碼并編譯。但是我們一般都不會(huì)使用 buildroot 下載的 linux 內(nèi)核和 uboot,因?yàn)?buildroot 下載的 linux 和 uboot官方源碼,里面會(huì)缺少很多驅(qū)動(dòng)文件,而且最新的 linux 內(nèi)核和 uboot 會(huì)對(duì)編譯器版本號(hào)有要求,可能導(dǎo)致編譯失敗。因此我們需要配置 buildroot,關(guān)閉 linux 內(nèi)核和 uboot 的編譯,只使用buildroot 來構(gòu)建根文件系統(tǒng),首先是禁止 Linux 內(nèi)核的編譯,配置如下:

  1. -> Kernel  
  2.  -> [ ] Linux Kernel //不要選擇編譯 Linux Kernel 選項(xiàng)! 

接著禁止編譯 Uboot,配置如下:

  1. -> Bootloaders  
  2. -> [ ] U-Boot //不要選擇編譯 U-Boot 選項(xiàng)! 

6、配置 Target packages

此選項(xiàng)用于配置要選擇的第三方庫(kù)或軟件、比如 alsa-utils、ffmpeg、iperf、ftp、ssh等工具,可以按需選擇。

配置完成以后就可以編譯 buildroot 了,編譯完成以后 buildroot 就會(huì)生成編譯出來的根文件系統(tǒng)壓縮包,我們可以直接使用。輸入如下命令開始編譯:

  1. sudo make //注意,一定要加 sudo,而且不能通過-jx 來指定多核編譯?。?! 

buildroot 編譯過程會(huì)很耗時(shí),請(qǐng)耐心等待!編譯完成以后就會(huì)在 buildroot-2019.02.6/output/images 下生成根文件系統(tǒng),即可使用。

編譯過程需要一定的額外內(nèi)存,注意需要留好內(nèi)存,否則會(huì)報(bào)錯(cuò)如下:

  1. g++: internal compiler error: Killed (program cc1plus) 
  2. Please submit a full bug report 

buildroot 下的 busybox 配置

buildroot 在構(gòu)建根文件系統(tǒng)的時(shí)候也是要用到 busybox 的,既然用到了 busybox 那么就涉及到 busybox 的配置。buildroot 會(huì)自動(dòng)下載 busybox 壓縮包,buildroot 下載的源碼壓縮包都存放在/dl 目錄下,在 dl 目錄下就有一個(gè)叫做“busybox”的文件夾,此目錄下保存著 busybox 壓縮包。

在 buildroot下打開 busybox 的配置界面輸入如下命令:

  1. sudo make busybox-menuconfig 

輸入以后就會(huì)打開 buildroot 下的 busybox 配置界面,需要什么功能,使能即可??梢栽赽usybox中修改文件,使其對(duì)中文支持,這一點(diǎn)可以百度設(shè)置。

編譯完畢以后,會(huì)生成 rootfs.tar,拷貝出來以后,可以對(duì)其進(jìn)行解壓然后使用nfs掛載到板子上,或者直接使用SD卡燒錄。編譯出來的文件系統(tǒng)即可使用,如果需要什么命令和工具,在 make menuconfig 中使能再次編譯即可。

本文轉(zhuǎn)載自微信公眾號(hào)「嵌入式Linux系統(tǒng)開發(fā)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系嵌入式Linux系統(tǒng)開發(fā)公眾號(hào)。

 

責(zé)任編輯:姜華 來源: 嵌入式Linux系統(tǒng)開發(fā)
相關(guān)推薦

2012-01-11 13:40:35

移動(dòng)應(yīng)用云服務(wù)

2021-08-09 13:31:25

PythonExcel代碼

2022-10-19 14:30:59

2015-07-20 14:15:28

Spring ClouDocker微服務(wù)

2021-02-06 14:55:05

大數(shù)據(jù)pandas數(shù)據(jù)分析

2011-03-28 16:14:38

jQuery

2021-02-04 09:00:57

SQLDjango原生

2022-03-29 11:11:11

TortoisGitGitee碼云

2022-08-04 10:39:23

Jenkins集成CD

2009-04-22 09:17:19

LINQSQL基礎(chǔ)

2021-05-10 06:48:11

Python騰訊招聘

2021-01-21 09:10:29

ECharts柱狀圖大數(shù)據(jù)

2021-01-08 10:32:24

Charts折線圖數(shù)據(jù)可視化

2021-02-10 09:34:40

Python文件的壓縮PyCharm

2021-02-02 13:31:35

Pycharm系統(tǒng)技巧Python

2020-03-08 22:06:16

Python數(shù)據(jù)IP

2021-08-02 23:15:20

Pandas數(shù)據(jù)采集

2021-12-11 20:20:19

Python算法線性

2017-10-27 10:29:35

人臉識(shí)別UbuntuPython

2021-06-05 23:51:21

ECharts氣泡圖散點(diǎn)圖
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)