如何使用Buildroot為I.MX6製作根文件系統?

2021-01-16 OFweek維科網

1.引言

接觸Freescale/NXP的I.MX6處理器大概有了兩年多的時間,對於一個最初玩MCU的我來說,真是面臨了很多的挑戰。最讓我感到鬱悶和崩潰的是那個官方的基於Yocto的開發環境,搭建它要求真是太高了,機器得有上百G的空間,Ubuntu系統版本也有要求,還要能翻牆等等,另外還得去理解Yocto的架構。我在嘗試過兩次之後準備徹底的放棄研究它了。前兩天由於工作需要,不得不再一次面對要自己去編譯文件系統的問題,碰巧在網上看到有人用Buildroot弄成功過,我嘗試了下,沒太費力氣就成功了,Buildroot比Yocto簡單太多了。特以此文記錄下,希望對大家有所幫助。

2.環境介紹

對本文涉及到的硬體和軟體環境統一做個說明。

2.1.硬體

1)我使用的是米爾科技的I.MX6ULL的小板子,當時參加一個網上的活動,免費送我的,板子做的小巧精緻,和以前Freescale的Freedom開發板很像,贊,攜帶和使用太方便了。大家如果用的是I.MX其他系列,本文內容同樣適用。

2)一根Micro USB接口線,用於給小板供電、同時兼下載程序用,這個設計很好,不用單獨再接電源。

3)一個USB轉TTL串口,用於接調試串口,登錄系統用。

4)一根網線,用於連接PC和板子,驗證ssh和scp功能。

2.2.軟體

1) http://down.myir-tech.com/MYS-6ULX/ ,這個是米爾官方提供的板子資料連結,裡面包括了Uboot、Kernel、Yocto相關文件、下載工具、文檔等。

因為本文重點是Buildroot 製作根文件系統,所以其他相關內容不在這裡介紹。它提供的Mfgtool包裡已經包含了板子配套的Uboot、Kernel、設備樹文件、根文件系統。我這裡就只是把原來Yocto生成的根文件系統做個替換。

2)Buildroot,官方下載地址為:https://buildroot.org/downloads/

我使用的是buildroot-2019.02.tar.gz,較新的一個版本。我是把它解壓到Ubuntu的~(當前用戶的home目錄下)目錄下。

3)工具鏈,我這裡使用的是Linaro的gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz 這個版本,我是把它解壓到Ubuntu的/opt 目錄下。

工具鏈的官方下載連結:

關於工具鏈問題,這裡多嘮叨幾句。第一點要注意的是Buildroot可以使用已經安裝好的工具鏈,比如Linaro,但是它不支持Yocto生成的工具鏈,具體原因大家看下面這段英文描述吧,

我一開始就是用Yocto產生的工具鏈去編譯的,結果確實報了一個關於sysroot的錯誤,這裡大家要注意下。

至於我為什麼要用這個版本的工具鏈,原因是有一家模組廠,他們的一個通信模塊提供的SDK對交叉編譯鏈的gcc版本有指定要求,所以只能配合它選擇了這個版本。

3.Buildroot根文件系統製作

詳細步驟如下:

1)進入到buildroot解壓後的對應目錄中

cd buildroot-2019.02

2)用默認的配置文件生成.config文件,

sudo make imx6ulevk_defconfig

注1:imx6ulevk_defconfig 這個文件在/buildroot-2019.02/configs 目錄裡,需要根據你使用的具體晶片型號來選擇,因為我使用的6ULL,所以用這個。假設你使用的是I.MX7,那麼你就選擇imx7開頭的。

注2:因為我這邊沒加sudo編譯報錯,所以加上了sudo,你可以先不加sudo試試。

3)make menuconfig進行定製化配置

sudo make menuconfig

彈出如下界面:

Buildroot 的配置選項簡單介紹如下:

Target options

目標選項。包括處理器體系結構、二進位文件格式、架構系列、ABI、浮點運算、指令集。

相關焦點

  • 使用Buildroot為I.MX6製作根文件系統的解決方案
    前兩天由於工作需要,不得不再一次面對要自己去編譯文件系統的問題,碰巧在網上看到有人用Buildroot弄成功過,我嘗試了下,沒太費力氣就成功了,Buildroot比Yocto簡單太多了。特以此文記錄下,希望對大家有所幫助。2.環境介紹對本文涉及到的硬體和軟體環境統一做個說明。
  • ARM Linux根文件系統Root Filesystem的製作
    290.entry本文引用地址:http://www.eepw.com.cn/article/201611/317986.htm關於根文件系統的製作,網絡上有很多文章,大多數都只講到建幾個目錄,然後用Busybox做個Shell,有很多關鍵的東西沒有說。經過很長時間的摸爬滾打,我終於能夠白手起家建立一個根文件系統了。
  • 製作ZedBoard上linux根文件系統(ramdisk)
    linux在運行時,加載這個ramdisk8M.image.gz鏡像文件到DDR3中來執行實現根文件系統的建立,很多並不像在ubuntu中對文件系統操作那樣簡單。本小節介紹如何製作ZedBoard可運行的根文件系統ramdisk8M.image.gz鏡像文件,參照xilinx wiki 。
  • 基於busybox的嵌入式Linux根文件系統的的製作方法
    根文件系統一直是Linux系統不可或缺的組件,在嵌入式Lin-ux中,內核在啟動期間進行的最後操作之一就是安裝根文件系統。Busybox是構建嵌入式Linux根文件系統的軟體,用它製作根文件系統簡單、方便,而且設置靈活。
  • 嵌入式根文件製作方法
    (一):首先linux根文件系統的製作需要的開發環境。1:移植Linux內核版本: linux-3.0.1 (只要能用就行)2:交叉編譯工具:arm-linux-gcc 4.3.2(任選)3:文件系統製作工具:Busybox-1.13.3(任選)4:etc.tar.gz(二):交叉編譯環境的搭建(這一步我在我的博客其他文章裡面有 詳細的搭建過程,很簡單滴~)(三):創建根文件系統的目錄
  • 「正點原子FPGA連載」第十九章根文件系統構建
    Linux「三巨頭」已經完成了2個了,就剩最後一個rootfs(根文件系統)了,本章我們就來學習一下根文件系統的組成以及如何構建根文件系統。在構建根文件系統之前,我們先來看一下根文件系統裡面大概都有些什麼內容,以Ubuntu為例,根文件系統的目錄名字為『/』,沒看錯就是一個斜槓,所以輸入如下命令就可以進入根目錄中:cd / //進入根目錄進入根目錄以後輸入「ls」命令查看根目錄下的內容都有哪些,結果如下圖所示:
  • 基於S3C2440的嵌入式Linux根文件系統構建
    根文件系統一直是Linux系統不可或缺的組件,在嵌入式Lin-ux中,內核在啟動期間進行的最後操作之一就是安裝根文件系統。busybox是構建嵌入式Linux根文件系統的軟體,用它製作根文件系統簡單、方便,而且設置靈活。
  • 如何快速將 Linux 系統製作成 ISO 鏡像文件?
    選擇要備份的目錄輸入你所要備份的文件目錄,默認為根目錄要備份全系統(默認即可)。到這步驟之後軟體會自動去備份(創建「/」文件系統目錄、文件列表劃分為集合、調用 MINDI、創建 boot+data 磁碟、備份文件系統、備份大文件、運行 mkisofs、創建
  • Linux根文件系統介紹
    什麼是根文件系統本文引用地址:http://www.eepw.com.cn/article/148790.htm根文件系統首先是一種文件系統,但是相對於普通的文件系統,它的特殊之處在於,它是內核啟動時所mount的第一個文件系統,內核代碼映像文件保存在根文件系統中,而系統引導啟動程序會在根文件系統掛載之後從中把一些基本的初始化腳本和服務等加載到內存中去運行。
  • 使用VBA自動生成文件目錄製作文件管理系統
    對於文件的管理,目前市面上也有很多成熟的商業方案可以使用。在此,僅提供一種輕量級的使用EXCEL管理文件的思路。畢竟EXCEL使用起來要更為簡單一些。 Do Until file = "" '在工作表循環寫入文件名 Cells(i, 1).Value = file Cells(i, 2).Hyperlinks.Add Anchor:=Cells(i, 2), Address:=path & file, TextToDisplay
  • 嵌入式Linux根文件系統Ramdisk製作過程
    一、在一個已建好的文件系統上進行修改  設已建立好的文件系統壓縮文件為ramdisk.gz  1、解壓  #cd ramdisk.gz所在目錄  #gunzip ramdisk.gz  在解壓後,得到文件系統鏡象文件ramdisk, 覆蓋了原來的壓縮文件  2、鏡象文件掛載  鏡象文件必須經過掛載後才能看到文件系統中的各個目錄和詳細內容
  • 如何使用'fsck'修復Linux中的文件系統錯誤
    如何使用'fsck'修復Linux中的文件系統錯誤 文件系統負責組織數據的存儲和恢復方式。無論如何,隨著時間的推移,文件系統可能會被破壞並且可能無法訪問。
  • 嵌入式Linux NFS 根文件系統的構建及研究
    摘要:在嵌入式Linux系統開發過程中,根文件系統是構建嵌入式Linux系統的重要組成部分。為了方便和簡化嵌入式Linux開發過程中的調試過程,主要研究了如何使用Busybox構建出基本的嵌入式Linux根文件系統,包括Busybox的配置、編譯和安裝。
  • 交叉編譯程序:以 freetype 為例
    buildroot 來給 ARM 板編譯程序、編譯庫會很簡單,以後系統講解 buildroot 時再使用 buildroot。執行下面命令確定目錄:echo &39;| arm-buildroot-linux-gnueabihf-gcc -E -v –它會列出頭文件目錄、庫目錄(LIBRARY_PATH),你編譯出庫文件時,可以把它放入系統庫目錄。3.
  • FANUC 如何使用LADDER III軟體建立IO LINK i文件
    軟體建立IO LINK i文件當設備使用IO LINK i方式進行IO通訊時,IO模塊配置就不再包含在梯形圖內部,而是從梯形圖中獨立出一個單獨IO配置的文件,用於IO LINK i連接的IO我們使用FANUC LADDER III軟體基本都是用於編輯PMC程序的,那麼使用軟體可以建立IO LINK i相關的IO配置文件嗎?
  • Linux中文件系統分類,以及基礎使用方法
    文件系統粗略的分類:下面依次進行介紹:根文件系統根文件系統(rootfs)是內核啟動時所 mount(掛載)的第一個文件系統,內核代碼映像文件保存在根文件系中,而系統引導啟動程序會在根文件系統掛載之後從中把一些基本的初始化腳本和服務等加載到內存中去運行
  • 讓我們檢查一下fsck上次對根文件系統執行檢查的時間
    在非根文件系統上執行fsck非常簡單。但是,對於根文件系統,掛載後無法執行fsck。本快速教程介紹了如何強制檢查根文件系統的文件系統。根文件系統在此示例中,/ dev / sda1分區是作為/掛載的根文件系統。如果運行fsck來檢查根文件系統,由於/ dev / sda1已掛載,您將收到以下錯誤消息,並且無法在已掛載的文件系統上執行fsck。
  • 如何使用U盤製作系統盤「系統教程」
    在日常使用計算機時,總是會遇到一些計算機小問題,比如系統卡頓、藍屏、登錄密碼忘記了等,大部分的故障都是計算機系統引起的,那麼,擁有了U盤系統盤,你就擁有了拯救萬千電腦的神器,趕緊行動起來。一、準備工作工具工作:準備一塊U盤{8G以上容量},系統文件【GHO、ISO】,PE工具--推薦使用【wepe_64_V2.0.exe--】下載地址:
  • 中標麒麟系統恢復盤製作方法
    Ext3(Linux系統常用類型,在Windows上識別不了),如果U盤較大,創建多個分區的,可以將其他分區設置為FAT,以便於其他分區可以在所有系統上使用;5、創建需要一段時間然後右鍵點擊複製到桌面的系統鏡像文件,打開方式使用歸檔管理器;7、將系統鏡像中的ks.cfg文件複製到U盤根目錄;