成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你用 buildroot 構建根文件系統

系統 Linux
如果想要構建完整的根文件系統,大家一般都是使用buildroot,它不僅包含了 busybox 的功能,而且里面還集成了各種軟件,需要什么軟件就選擇什么軟件,不需要我們去移植。

[[406899]]

嵌入式系統三大部分:bootloader(uboot)、Linux內核、根文件系統。

制作根文件系統有三大神器:busybox、buildroot、yocto。

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

如果想要構建完整的根文件系統,大家一般都是使用buildroot,它不僅包含了 busybox 的功能,而且里面還集成了各種軟件,需要什么軟件就選擇什么軟件,不需要我們去移植。buildroot 極大的方便了我們嵌入式 Linux 開發人員構建實用的根文件系統。

至于 yocto 構建根文件系統,過于復雜,需要時間也很久,我們一般不會選擇這一種方式。

buildroot 下載

buildroot 源碼肯定是要從 buildroot 官網下載,官網地址為 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

此配置項用于配置交叉編譯工具鏈,設置為我們自己所使用的交叉編譯器,必須是絕對路徑。

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

一個典型的ARM Linux工具鏈包含arm-linux-gnueabihf-gcc(后續工具省略前綴)、strip、gcc、objdump、ld、gprof、nm、readelf、 addr2line等。前綴中的“hf”顯 示該工具鏈是完全的硬浮點。

  1. Toolchain 
  2.   -> Toolchain type = External toolchain 
  3.   -> Toolchain = Custom toolchain //用戶自己的交叉編譯器 
  4.   -> Toolchain origin = Pre-installed toolchain //預裝的編譯器 
  5.   -> Toolchain path =   //編譯器絕對路徑  
  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

用于設置一些系統配置,比如開發板名字、歡迎語、用戶名、密碼等。

  1. System configuration 
  2.  -> System hostname = Jasonangel //平臺名字,自行設置 
  3.  -> System banner = Welcome to xxxxx //歡迎語 
  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

此選項配置我們最終制作的根文件系統為什么格式的,配置如下:

  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 內核和 uboot

buildroot 不僅僅能構建根文件系統,也可以編譯 linux 內核和 uboot。當配置 buildroot,使能 linux 內核和 uboot 以后 buildroot 就會自動下載最新的 linux 內核和 uboot 源碼并編譯。但是我們一般都不會使用 buildroot 下載的 linux 內核和 uboot,因為 buildroot 下載的 linux 和 uboot官方源碼,里面會缺少很多驅動文件,而且最新的 linux 內核和 uboot 會對編譯器版本號有要求,可能導致編譯失敗。因此我們需要配置 buildroot,關閉 linux 內核和 uboot 的編譯,只使用buildroot 來構建根文件系統,首先是禁止 Linux 內核的編譯,配置如下:

  1. -> Kernel  
  2.  -> [ ] Linux Kernel //不要選擇編譯 Linux Kernel 選項! 

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

  1. -> Bootloaders  
  2. -> [ ] U-Boot //不要選擇編譯 U-Boot 選項! 

6、配置 Target packages

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

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

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

buildroot 編譯過程會很耗時,請耐心等待!編譯完成以后就會在 buildroot-2019.02.6/output/images 下生成根文件系統,即可使用。

編譯過程需要一定的額外內存,注意需要留好內存,否則會報錯如下:

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

buildroot 下的 busybox 配置

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

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

  1. sudo make busybox-menuconfig 

輸入以后就會打開 buildroot 下的 busybox 配置界面,需要什么功能,使能即可。可以在busybox中修改文件,使其對中文支持,這一點可以百度設置。

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

本文轉載自微信公眾號「嵌入式Linux系統開發」,可以通過以下二維碼關注。轉載本文請聯系嵌入式Linux系統開發公眾號。

 

責任編輯:姜華 來源: 嵌入式Linux系統開發
相關推薦

2012-01-11 13:40:35

移動應用云服務

2021-08-09 13:31:25

PythonExcel代碼

2022-10-19 14:30:59

2015-07-20 14:15:28

Spring ClouDocker微服務

2011-03-28 16:14:38

jQuery

2021-02-04 09:00:57

SQLDjango原生

2021-02-06 14:55:05

大數據pandas數據分析

2022-08-04 10:39:23

Jenkins集成CD

2022-03-29 11:11:11

TortoisGitGitee碼云

2009-04-22 09:17:19

LINQSQL基礎

2021-05-10 06:48:11

Python騰訊招聘

2021-01-21 09:10:29

ECharts柱狀圖大數據

2021-01-08 10:32:24

Charts折線圖數據可視化

2021-08-02 23:15:20

Pandas數據采集

2020-03-08 22:06:16

Python數據IP

2021-02-02 13:31:35

Pycharm系統技巧Python

2021-12-11 20:20:19

Python算法線性

2021-02-10 09:34:40

Python文件的壓縮PyCharm

2017-10-27 10:29:35

人臉識別UbuntuPython

2021-06-05 23:51:21

ECharts氣泡圖散點圖
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一道本在线 | 97超碰免费 | 久久精品国产一区二区 | 国产成人精品一区二区三区在线 | 国产成人精品一区 | 日韩毛片在线免费观看 | 亚洲精品播放 | 最新国产精品视频 | 欧美日日 | 成人免费视频网站在线观看 | 亚洲一级淫片 | 日本三级线观看 视频 | 视频精品一区 | 91高清在线观看 | 国产韩国精品一区二区三区 | 日韩在线91 | 亚洲精品久久久久久久久久久 | 日本一本在线 | 精品日韩 | 中文字幕福利 | 成人免费视频网站在线看 | 久久香蕉网 | 久久国产欧美一区二区三区精品 | 99亚洲精品视频 | 四虎影音 | 男女久久久 | 亚洲人的av | 黄网站免费在线 | 日本一区二区不卡 | 激情欧美一区二区三区 | 天天射影院| 国产98色在线 | 日韩 | 亚洲高清在线 | 成人午夜免费网站 | 成人在线电影在线观看 | 精品av| 伊人无码高清 | 欧美一a一片一级一片 | 999www视频免费观看 | 精品视频在线观看 | 美女一级a毛片免费观看97 |