成人免费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

移動應用云服務

2022-10-19 14:30:59

2021-08-09 13:31:25

PythonExcel代碼

2022-08-04 10:39:23

Jenkins集成CD

2015-07-20 14:15:28

Spring ClouDocker微服務

2022-03-29 11:11:11

TortoisGitGitee碼云

2011-03-28 16:14:38

jQuery

2021-02-04 09:00:57

SQLDjango原生

2021-02-06 14:55:05

大數據pandas數據分析

2009-04-22 09:17:19

LINQSQL基礎

2020-03-08 22:06:16

Python數據IP

2021-08-02 23:15:20

Pandas數據采集

2021-02-02 13:31:35

Pycharm系統技巧Python

2021-12-11 20:20:19

Python算法線性

2021-02-10 09:34:40

Python文件的壓縮PyCharm

2021-05-10 06:48:11

Python騰訊招聘

2021-01-21 09:10:29

ECharts柱狀圖大數據

2021-01-08 10:32:24

Charts折線圖數據可視化

2021-01-30 10:37:18

ScrapyGerapy網絡爬蟲

2021-05-17 21:30:06

Python求均值中值
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久日韩精品一区二区三区 | 成人在线中文 | 亚洲精品在线免费观看视频 | 亚洲视频免费在线播放 | 成人高清在线 | 精品国产一区二区国模嫣然 | 99视频精品 | 日韩在线免费视频 | 中文字幕第一页在线 | 99这里只有精品视频 | 亚洲高清视频在线观看 | 国产成人精品一区二 | 欧美在线视频观看 | www.天天操.com | 天天操天天干天天爽 | 亚洲精品一二区 | 99精品99| 国产高清精品一区二区三区 | 久久久久免费精品国产 | 天天搞夜夜操 | 爱爱视频日本 | 国产91视频一区二区 | 亚洲激情自拍偷拍 | www.99re| 亚洲成人99| 午夜视频一区二区 | 国产精品免费一区二区三区四区 | 国产免费一区 | 一区二区久久电影 | 熟女毛片 | 一区二区精品 | 成人午夜激情 | 日本综合在线观看 | 欧美一区2区三区4区公司二百 | 欧美日韩国产一区二区三区 | 精品久久精品 | 久草综合在线视频 | 天堂一区二区三区 | 亚洲午夜精品久久久久久app | 日韩免费中文字幕 | 久久久精品网站 |