建立CubieBoard2交叉編譯鏈

2021-08-02 04:58:58 字數 1627 閱讀 6808

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...