聲明
本博客所記錄的關于正點原子i.MX6ULL開發板的學習筆記,(內容參照正點原子I.MX6U嵌入式linux驅動開發指南,可在正點原子官方獲取正點原子Linux開發板 — 正點原子資料下載中心 1.0.0 文檔),旨在如實記錄我在學校學習該開發板過程中所遭遇的各類問題以及詳細的解決辦法。其初衷純粹是為了個人知識梳理、學習總結以及日后回顧查閱方便,同時也期望能為同樣在學習這款開發板的同學或愛好者提供一些解決問題的思路和參考。我盡力保證內容的準確性和可靠性,但由于個人知識水平和實踐經驗有限,若存在錯誤或不嚴謹之處,懇請各位讀者批評指正。
責任聲明:雖然我力求提供有效的問題解決辦法,但由于開發板使用環境、硬件差異、軟件版本等多種因素的影響,我的筆記內容不一定適用于所有情況。對于因參考本筆記而導致的任何直接或間接損失,我不承擔任何法律責任。使用本筆記內容的讀者應自行承擔相關風險,并在必要時尋求專業技術支持。
1 交叉編譯器安裝
Ubuntu 自帶的 gcc 編譯器是針對 X86 架構的!要編譯的 ARM 架構的代碼,需要一個在 X86 架構的 PC 上運行,可以編譯 ARM 架構代碼的 GCC 編譯器,這個編譯器就叫做交叉編譯器,總結一下交叉編譯器就是:
1、它肯定是一個 GCC 編譯器。
2、這個 GCC 編譯器是運行在 X86 架構的 PC 上的。
3、這個 GCC 編譯器是編譯 ARM 架構代碼的,也就是編譯出來的可執行文件是在 ARM 芯片上運行的。
交叉編譯器中“交叉”的意思就是在一個架構上編譯另外一個架構的代碼,相當于兩種架構“交叉”起來了。
交叉編譯器有很多種,本文所采用的編譯器是參照正點原子官方教程的,使用 Linaro 出品的交叉編譯器
Linaro GCC 編譯器下載地址如下:
Linaro Releases
目前最新的版本是7.5.0,但是正點原子教程里面說明7.3.1 版本編譯器的時候發現編譯完成后的 uboot 無法運行。所以這里作為記錄筆記與正點原子官方教程保持一致,采用4.9版本的編譯器。感興趣的可以試試最新版本。
下載鏈接:Linaro Releases
根據自己所使用的 Ubuntu 系統類型選擇合適的版本
32位選擇:
64位選擇:
或者去正點原子官網下載i.MX6ULL Linux阿爾法開發板 — 正點原子資料下載中心 1.0.0 文檔,在5、開發工具->1、交叉編譯器中可以找到(推薦)
在當前用戶根目錄下創建了一個名為“linux”的文件夾,在這個 linux 文件夾里面再創建一個名為“tool”的文件夾,用來存放一些開發工具。使用前面已經安裝好的 FileZilla (參照Ubuntu 和 Windows 文件互傳(FTP)這篇文章)將交叉編譯器拷貝到 Ubuntu 中剛剛新建的“tool”文件夾中
在 Ubuntu 中創建目錄: /usr/local/arm,命令如下:
sudo mkdir /usr/local/arm
完成以后將剛剛拷貝的交叉編譯器復制到/usr/local/arm 這個目錄中,在終端使用命令“ cd” 進入 到 存放 有交叉編譯器的目錄, 比如 我 前面 將交 叉 編譯 器拷 貝 到了 目錄“/home/zuozhongkai/linux/tool”中,然后使用如下命令將交叉編譯器復制到/usr/local/arm 中:
拷貝完成以后在/usr/local/arm 目錄中對交叉編譯工具進行解壓,解壓命令如下:
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
解壓完成以后會生成一個名為“gcc-linaro-4.9.4-2017.01-x86_64_arm-linuxgnueabihf”的文件夾,這個文件夾里面就是我們的交叉編譯工具鏈。
修改環境變量,使用 VI 打開/etc/profile 文件,命令如下:
sudo vi /etc/profile
打開/etc/profile 以后,在最后面輸入如下所示內容:
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
修改好以后就保存退出,重啟 Ubuntu 系統,交叉編譯工具鏈(編譯器)就安裝成功了。
2. 安裝相關庫
在使用交叉編譯器之前還需要安裝一下其它的庫,命令如下:
sudo apt-get install lsb-core lib32stdc++6
若Ubuntu 版本過高可能會出現報錯,如下所示:
因為在較新的 Ubuntu 系統(如 20.04、22.04、24.04)中,lsb-core被拆分成更小的包,通常改用?lsb-release?或其他相關包。
解決方法:
1:直接安裝lsb-release(推薦)
sudo apt updatesudo apt install lsb-release lib32stdc++6
2:啟用 Universe 倉庫后重試
sudo add-apt-repository universesudo apt updatesudo apt install lsb-core lib32stdc++6
3:安裝完整的 LSB 組件(適用于舊版系統)
如果系統較舊(如 Ubuntu 18.04 或更早),可以嘗試:
sudo apt install lsb-core lsb-release lib32stdc++6?
3. 交叉編譯器驗證
查看一下交叉編譯工具的版本號,輸入如下命令:
arm-linux-gnueabihf-gcc -v
如果交叉編譯器安裝正確的話就會顯示版本號
可以看出當前交叉編譯器的版本號為 4.9.4,說明交叉編譯工具鏈安裝成功。