1. 程式人生 > >全志H3 u-boot 編譯(一)

全志H3 u-boot 編譯(一)

因為工作需要,最近開始折騰全志方案。手上的開發板式FriendlyARM的nanopi-M1-plus,友善之臂的板子做的還是可以滴,板子尺寸非常小,該有的介面都有,以後擴充套件的介面也基本預留出來了。

言歸正傳,這個板子的相關使用說明都需要從Wiki上查詢,Wiki上雖然也提供相關程式碼下載(百度雲盤),但是主要是工具類軟體和已編譯過的韌體,沒有相關原始碼。

如果是需要重新移植、編譯uboot,kernel的需要到https://github.com/friendlyarm下載,倉庫裡的原始碼基本能滿足使用,全志原廠的BSP的資料夾(h3_lichee)。

h3_lichee資料夾下主要包含了uboot、Linux kernel和檔案系統。

step 1   下載BSP檔案

國內下載github上的程式碼主要問題就是速度慢,還有一個問題就是這個檔案在倉庫中的時間太久了,下載的時候會出現下載失敗的現象(我就是每次到50%的時候就失敗,真是折騰死了~~)

後來在clone命令後加了depth=1,差不多半個小時就把檔案給搬下來了。具體命令如下:

git clone --depth=1 https://github.com/friendlyarm/h3_lichee.git  <target dir>

上面命令執行完後可以再執行

git fetch --unshallow

這樣就把完整的h3_lichee檔案下載下來了

step 2 準備編譯環境

虛擬機器(版本無所謂)+Ubuntu(14.04 LTS)

注意,一定要用14.4這個版本,否則到時候編譯的時候會遇到巨大的坑(自己一開始用了16.4的版本,折騰了2天沒搞定,後來發現是版本問題)

Ubuntu準備好後,接下來就要安裝交叉編譯工具和編譯依賴包,交叉編譯工具直接從Wiki提供的百度雲盤上下載,把壓縮檔案放到 lichee/brandy/toolchain/目錄下就好了,不需要解壓縮。

編譯依賴包的安裝就比較麻煩了,因為涉及到Ubuntu版本的問題,下面所有的操作只能保證在Ubuntu 14.04 LTS下能成功

1)備份/etc/apt/sources.list

2)修改/etc/apt/sources.list內的更新源,把原有的內容刪掉,新增新的源(這裡推薦使用清華大學維護源,親測了其他很多源都不行),https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/   這個地址直接裡面選擇對應版本號

3)sources.list 檔案更新完後,在終端執行  apt-get update

4)在終端執行下面命令(最好逐條執行,因為有些依賴包安裝會出現其他附屬依賴包的安裝)

sudo apt-get install gawk git gnupg flex bison gperf build-essential

sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libg11-mesa-glx:i386    其中libg11-mesa-glx:i386依賴包安裝會碰到些麻煩,不過只要依據系統提示來補充安裝所需依賴包就能搞定

sudo apt-get install libg11-mesa-dev g++-multilib mingw32 tofrodos

sudo apt-get install python-markdown libxm12-utils xsltproc zliblg-dev:i386

上面的依賴包一定要保證安裝完,否則後續的lichee檔案編譯會出問題

step 3 編譯lichee

安裝交叉編譯器
編譯器下載地址:http://download.friendlyarm.com/nanopim1plus,在toolchain檔案裡面,下載gcc-linaro-arm.tar.xz,將該壓縮包放置在lichee/brandy/toochain/目錄下即可,無需解壓,無需手動安裝編譯器。

首先要把整個lichee資料夾編譯下,才能再單獨編譯uboot和核心
cd lichee/fa_tools
./build.sh -b nanopi-m1-plus -p linux -t all

執行上述命令就能成功編譯整個lichee檔案,這之後就可以根據需要單獨編譯uboot, kernel等檔案