A40i &T3 全源碼編譯-ARM Linux內核在PC Linux的編譯方法。
本章講述方法,采用硬件平臺為 飛凌OKA40i開發板、OKT3開發板,已經驗證成功,其它平臺板卡,請參考使用。
全源碼編譯
注意:全源碼編譯消耗時間過長,不推薦使用。
1、編譯
在進行本章實驗之前,默認已經搭建好交叉編譯器環境,即交叉編譯器安裝成功。
本節介紹ARM Linux內核在PC Linux的編譯方法。
交叉編譯器路徑:lichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin。
配置交叉編譯環境:
# source /root/workspace/allwinner/A40i/bsp/lichee/env.sh
注意:使用build.sh編譯源碼不需要配置交叉編譯環境,腳本已經配置好。
1.1 制作img燒寫鏡像
注意:boot內核與文件系統一起編譯。
步驟1:配置
# cd /root/workspace/allwinner/A40i/bsp/lichee/
#./build.sh config
Welcome to mkscript setup progress All available chips: 0. sun8iw11p1 Choice: 0 All available platforms: 0. android 1. dragonboard 2. linux 3. camdroid Choice: 2 All available kernel: 0. linux-3.10 Choice: 0 All available boards: 0. OKA40i_C 1. OKT3_C 2. a40i-p3 Choice: 0 All available buildroot: 0. buildroot 1. buildroot-201611 Choice: 1 select buildroot-201611 All available float: 0. gnueabi 1. gnueabihf Choice: 1 select gnueabihf All available qt version: 0. 5.9.0 Choice: 0 select 5.9.0 create misc_config gnueabihf All available lcd resolutions: 0. 480x272 1. 800x480 2. 800x600 3. 1024x600 4. 1024x600mipi 5. 1280x800 6. 800x480_v1 7. 800x600_v1 8. 1024x600_v1 9. 1024x600mipi_v1 10. 1280x800_v1 Choice: 3 |
注意:
當編譯T3時,選擇OKT3_C;
使用LVDS屏時:
如使用為V1.2版本核心板,選擇5. 1280x800;
如使用V1.1核心板,選擇10.1280x800_v1。
快捷辦法:直接修改.buildconfig export LICHEE_RESOLUTION=1080p使用hdmi獨立顯示方法。
步驟2:編譯
# cd /root/workspace/allwinner/A40i/bsp/lichee/
#./build.sh
步驟3:編譯Qt (可選)
釋放Qt OpenGLlib到交叉編譯器位置,文件存儲位置(編譯過程報找不到GLESv2)。
1 用戶資料\Linux\linux\工具\sysroot.tar.gz
# cd /root/workspace/allwinner/A40i/bsp/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/arm-buildroot-linux-gnueabihf
# tar xvf sysroot.tar.gz
#最終生成sysroot替換沒有Mali庫的sysroot。
注意:如果出現路徑錯誤,請把/root/workspace/allwinner/A40i/bsp/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0 刪除,重新釋放壓縮包,并且復制/root/workspace/allwinner/A40i/bsp/lichee/buildroot-201611/dl/setenvs.sh到新釋放的qt-everywhere-opensource-src-5.9.0目錄中去。
#cd /root/workspace/allwinner/A40i/bsp/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0
# source setenvs.sh #虛擬機編譯的話setenv.sh 97行修改成 -j 1 表示并行編譯的現成數量,否則死機
# makeconfig
# makeall
# makeinstall
# cd /root/workspace/allwinner/A40i/bsp/lichee/
# rm -fr `find ./linux-3.10 -name “*.o” ` #編譯前要刪除linux-3.10/*.o
# ./build.sh
注意:編譯過程內核報錯,有兩種解決辦法:
1 cd /root/workspace/allwinner/A40i/bsp/lichee/
rm -fr `find ./ linux-3.10 -name “*.o” `
2 cd /root/workspace/allwinner/A40i/bsp/lichee/
cd linux-3.10
make distclean
步驟4:打包
# cd /root/workspace/allwinner/A40i/bsp/lichee/
#./build.sh pack
/root/workspace/allwinner/A40i/bsp/lichee/tools/pack/sun8iw11p1_linux_OKA40i_C_uart0-1024x600.img
生成的燒寫鏡像。
注意:客戶可根據自身要求選做,操作結束需要重新編譯,打包。
? 命令行模式程序添加
在lichee/buildroot-201611/target/user_rootfs_apps/cmd/subs 復制一個文件夾改名字
復制rtc helloworld
# cp -fr rtc helloworld
# cd helloworld
修改文件名字
#mv rtc.c helloworld.c
修改Makefile
# vi Makefile
修改后
TARGET = helloworld
@$(CC) -o $(TARGET) helloworld.c
配置參與編譯列表
cd lichee/buildroot-201611/target/user_rootfs_apps/cmd/configs
vi cmd_defconfig
添加
helloworld
qt5 gui模式程序添加
在lichee/buildroot-201611/target/user_rootfs_apps/qt5/subs 復制一個文件夾改名字
# cp -fr hello_gui helloworld
# cd helloworld
修改文件名字
#mv hello_gui.pro helloworld.pro
修改qt5工程文件
TARGET= helloworld
注意:要添加庫的路徑
LIBS += -L../../../../../../tools/pack/chips/sun8iw11p1/hal/gpu/fbdev/lib/ -lGLESv2
修改Makefile
# vi Makefile
修改后
TARGET = helloworld
配置參與編譯列表
cd lichee/buildroot-201611/target/user_rootfs_apps/qt5/configs
vi qt5_defconfig
添加
helloworld
硬件編碼解碼程序所在路徑
lichee/buildroot-201611/target/user_rootfs_misc
相關產品 >
-
FETA40i-C核心板
Allwinner A40i是全志開發的一款工業級處理器,A40i作為全國產工業級芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架構,工作溫度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飛凌嵌入式深度研究全志A40i芯片參數、原理圖、datasheet規格書推出了以FETA40i核心板為主的一系列全國產工業級嵌入式計算機板卡,并提供了用于評估的A40i工控板、 A40i開發板。 了解詳情 -
OKA40i-C開發板
國產工業級,高清輸出,豐富接口|OKA40i開發板采用底板+核心板結構,基于全志工控行業平臺級處理器四核Cortex-A7 A40i設計,主頻1.2GHz,集成MAli400MP2 GPU,內存1GB/2GB DDR3L,存儲8GB eMMC。 全志A40i工控行業芯片平臺 A40i為國產工控行業芯,全志A40i處理器代表了Allwin在智能工業控制領域的成就。飛凌嵌入式A40i系列OKA40i-C開發板是飛凌推出的一款中國芯,全國產級工業級開發板,適用于適用于基于視覺交互的工業控制產品 了解詳情