主機平臺:ubuntu14.04.5
目標平臺:SAIL-IMX7D核心板
虛擬機:VMware-workstantion-full-12.5.5
編譯工具鏈:gcc-linaro-arm-linux-gnueabihf-
1 Linux開發環境搭建
1.1 安裝編譯器
IMX7D Linux系統常用編譯器的版本是gcc-linaro-arm-linux-gnueabihf-4.9。
編譯器的安裝包在/光盤/linux/交叉編譯器/中,
gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz壓縮包是交叉編譯器安裝包。將安裝包拷貝到Ubuntu的 /dianyu 目錄下。
如果Ubuntu沒有/dianyu目錄,可以使用 #mkdir /dianyu 創建一個新目錄。修改 /dianyu 權限,命令: #chmod 777 /dianyu
在Ubuntu中新建目錄 /usr/local/arm,命令 #mkdir -p /usr/local/arm。
將gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz解壓縮到/usr/local/arm,命令
#tar xvf /dianyu/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz -C /usr/local/arm
如圖所示:
上述命令執行完成后,即可完成編譯器安裝。同時設置一下環境變量,執行命令:
#export PATH=/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/:$PATH
1.2 設置、升級開發環境依賴庫
將 /光盤/通用工具/工具腳本 中setup-package-install.sh文件拷貝到Ubuntu中的 /dianyu 目錄下,如圖所示:
修改/setup-package-install.sh權限,命令#chmod 777 setup-package-install.sh
命令: #./setup-package-install.sh ,如圖所示:
報錯,bash: ./setup-package-install.sh: /bin/sh^M: bad interpreter: No such file or directory執行vi setup-package-install.sh,回車
將每行后面的^M刪掉(若不報錯可直接進行下一步)。刪完后保存退出。
重新執行./setup-package-install.sh 選擇Y,回車,如圖所示:
這里直接回車,默認是Yes。如圖所示:
正在從源服務器下載配置環境的安裝包。如圖所示:
安裝完成后,如圖所示:
若安裝失敗,則輸入命令:# apt-get update
然后再重新輸入命令:#./setup-package-install.sh 進行安裝。
2 SAIL-IMX7D內核編譯
將/光盤/linux/源代碼/sail-imx7d-linux-4.1.15.tar.gz 拷貝到Ubuntu系統中的/dianyu 目錄中。
在終端中執行命令:#cd /dianyu
然后執行解壓縮命令:#tar zxvf sail-imx7d-linux-4.1.15.tar.gz,將sail-imx7d-linux-4.1.15.tar.gz解壓縮到 /dianyu 目錄下。解壓工作完成后,在 /dianyu目錄下自動生成 sail-imx7d-linux-4.1.15 目錄。sail-imx7d-linux-4.1.15 目錄就是linux內核源碼了。
使用命令 #cd sail-imx7d-linux-4.1.15
進入sail-imx7d-linux-4.1.15目錄
執行清理編譯產生的中間文件。命令: #make clean
編譯內核。命令:#make zImage ZIMAGE_LOADADDR=0x10008000
如圖所示:
正在編譯,如下圖所示:
編譯報錯(如果不報錯,可跳過此步,若出現其他錯誤,請自行百度),如下圖所示:
報錯提示為缺少lzop,命令apt-get install lzop,安裝lzop,如下圖所示:
安裝完成后,重新編譯內核,成功,如下圖所示:
編譯dts。命令:#make sail-imx7d.dtb,如下圖所示:
編譯成功如圖所示:
其中zImage、sail-imx7d.dtb即為linux系統下的內核源碼。
3 說明
搭建linux開發環境時主要的問題是/setup-package-install.sh文件,首先是權限問題,更改其權限為777,其次是在拷貝到虛擬機里時會在每一行后面多出^M,只有使用vi打開才能看到。配置好環境變量后,編譯內核源碼一般不會出現問題,若出現問題則根據實際情況尋找解決辦法。