1、安裝交叉編譯器
方式一(未成功):sudo apt-get install
gcc-arm-linux-gnueabihf
安裝成功後,輸入:arm-linux-gnueabihf-gcc -v
2、獲取cubieboard2的核心原始碼
可以使用命令:git clone
解壓:sudo unzip linux-sunxi-sunxi-3.4.zip
3、編譯核心
切換到管理員模式:sudo su
3.1 生成配置檔案
有兩種方式:
a、修改核心原始碼根目錄下的makefile,令arch=arm,cross_compile=arm-linux-gnueabihf-。然後執行命令:make sun7i_defconfig
b、直接執行命令: make arch=arm cross_compile=arm-linux-gnueabihf- sun7i_defconfig
出現錯誤:recipe for target 'scripts/basic/fixdep' failed
解決辦法:sudo apt-get install build-essential
3.2 執行配置檔案
make arch=arm cross_compile=arm-linux-gnueabihf- menuconfig
3.3 開始編譯核心
執行命令:make arch=arm cross_compile=arm-linux-gnueabihf- -j4 uimage modules dtbs
如果是多處理系統可以新增選項-jn ,n為數字,表示多處理器的數量,可以加快編譯速度。
出現錯誤:include/linux/compiler-gcc.h:103:30: fatal error: linux/compiler-gcc5.h: 沒有那個檔案或目錄 compilation terminated.
出現錯誤: `return_address'被多次定義
解決辦法:
1)、在核心原始碼根目錄下,執行命令:sudo vim arch/arm/include/asm/ftrace.h,找到如圖所示**的所在行,將 extern 替換為 static。
2)、在核心原始碼根目錄下,執行命令:sudo vim arch/arm/kernel/return_address.c,找到如圖所示**的所在行,將以下**全部注釋或刪除。
繼續編譯。
出現錯誤:gcc:沒有那個檔案或目錄
解決辦法:sudo apt-get install lsb-core
出現錯誤:缺少libstdc++.so 6
解決辦法:
sudo apt-get install lib32stdc++6
sudo apt-get install libc6-i386
sudo apt-get install libstdc++6
4 測試
5 參考文章
樹莓派/raspberrypi 核心編譯
入手cubieboard2之製作最新linux系統
關於arch/arm/kernel/return_address.c:66:7: error: redefinition of 『return_address'的錯誤解決方案
Cubieboard安裝Apache2伺服器
cubieboard安裝apache2伺服器 1.更新軟體sudo apt get update 2.安裝apache2和輔助管理工具sudo apt get install apache2 apache2 utils 3.配置埠sudo vim etc apache2 ports.conf 這裡改...
交叉編譯(2) 交叉編譯鏈
什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...
建立交叉編譯環境
這是arm linux的,還有arm elf的,不知道什麼區別.解壓 mkdir arm cd arm mv path to arm linux cross.tar.bz2 tar jxvfarm linux cross.tar.bz2 修改path gedit bashrc 新增 export p...