A40i &T3 全源碼編譯-ARM Linux內(nèi)核在PC Linux的編譯方法。

原創(chuàng) 2020-12-08 09:36:00 A40i T3 全志T3 國(guó)產(chǎn)工業(yè)級(jí)T3

本章講述方法,采用硬件平臺(tái)為 飛凌OKA40i開(kāi)發(fā)板、OKT3開(kāi)發(fā)板,已經(jīng)驗(yàn)證成功,其它平臺(tái)板卡,請(qǐng)參考使用。

全源碼編譯

注意:全源碼編譯消耗時(shí)間過(guò)長(zhǎng),不推薦使用。

1、編譯

在進(jìn)行本章實(shí)驗(yàn)之前,默認(rèn)已經(jīng)搭建好交叉編譯器環(huán)境,即交叉編譯器安裝成功。

本節(jié)介紹ARM Linux內(nèi)核在PC Linux的編譯方法。

交叉編譯器路徑:lichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin。

配置交叉編譯環(huán)境:

# source  /root/workspace/allwinner/A40i/bsp/lichee/env.sh

注意:使用build.sh編譯源碼不需要配置交叉編譯環(huán)境,腳本已經(jīng)配置好。


1.1 制作img燒寫(xiě)鏡像

注意:boot內(nèi)核與文件系統(tǒng)一起編譯。

步驟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

注意:

當(dāng)編譯T3時(shí),選擇OKT3_C;

使用LVDS屏?xí)r:

如使用為V1.2版本核心板,選擇5. 1280x800;

如使用V1.1核心板,選擇10.1280x800_v1。

快捷辦法:直接修改.buildconfig  export LICHEE_RESOLUTION=1080p使用hdmi獨(dú)立顯示方法。

步驟2:編譯

# cd /root/workspace/allwinner/A40i/bsp/lichee/

#./build.sh

步驟3:編譯Qt (可選)

釋放Qt OpenGLlib到交叉編譯器位置,文件存儲(chǔ)位置(編譯過(guò)程報(bào)找不到GLESv2)。

1 用戶資料\Linux\linux\工具\(yùn)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替換沒(méi)有Mali庫(kù)的sysroot。

注意:如果出現(xiàn)路徑錯(cuò)誤,請(qǐng)把/root/workspace/allwinner/A40i/bsp/lichee/buildroot-201611/dl/qt-everywhere-opensource-src-5.9.0 刪除,重新釋放壓縮包,并且復(fù)制/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 #虛擬機(jī)編譯的話setenv.sh 97行修改成 -j 1 表示并行編譯的現(xiàn)成數(shù)量,否則死機(jī)

# makeconfig

# makeall

# makeinstall

# cd /root/workspace/allwinner/A40i/bsp/lichee/

# rm -fr `find ./linux-3.10 -name “*.o” ` #編譯前要?jiǎng)h除linux-3.10/*.o

# ./build.sh   

注意:編譯過(guò)程內(nèi)核報(bào)錯(cuò),有兩種解決辦法:

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

生成的燒寫(xiě)鏡像。

 

注意:客戶可根據(jù)自身要求選做,操作結(jié)束需要重新編譯,打包。

命令行模式程序添加

在lichee/buildroot-201611/target/user_rootfs_apps/cmd/subs 復(fù)制一個(gè)文件夾改名字

復(fù)制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 復(fù)制一個(gè)文件夾改名字

# cp -fr hello_gui   helloworld

# cd helloworld

修改文件名字

#mv hello_gui.pro helloworld.pro

修改qt5工程文件

TARGET= helloworld

注意:要添加庫(kù)的路徑

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

相關(guān)產(chǎn)品 >

  • FETA40i-C核心板

    Allwinner A40i是全志開(kāi)發(fā)的一款工業(yè)級(jí)處理器,A40i作為全國(guó)產(chǎn)工業(yè)級(jí)芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架構(gòu),工作溫度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飛凌嵌入式深度研究全志A40i芯片參數(shù)、原理圖、datasheet規(guī)格書(shū)推出了以FETA40i核心板為主的一系列全國(guó)產(chǎn)工業(yè)級(jí)嵌入式計(jì)算機(jī)板卡,并提供了用于評(píng)估的A40i工控板、 A40i開(kāi)發(fā)板。 了解詳情
    FETA40i-C核心板
  • OKA40i-C開(kāi)發(fā)板

    國(guó)產(chǎn)工業(yè)級(jí),高清輸出,豐富接口|OKA40i開(kāi)發(fā)板采用底板+核心板結(jié)構(gòu),基于全志工控行業(yè)平臺(tái)級(jí)處理器四核Cortex-A7 A40i設(shè)計(jì),主頻1.2GHz,集成MAli400MP2 GPU,內(nèi)存1GB/2GB DDR3L,存儲(chǔ)8GB eMMC。 全志A40i工控行業(yè)芯片平臺(tái) A40i為國(guó)產(chǎn)工控行業(yè)芯,全志A40i處理器代表了Allwin在智能工業(yè)控制領(lǐng)域的成就。飛凌嵌入式A40i系列OKA40i-C開(kāi)發(fā)板是飛凌推出的一款中國(guó)芯,全國(guó)產(chǎn)級(jí)工業(yè)級(jí)開(kāi)發(fā)板,適用于適用于基于視覺(jué)交互的工業(yè)控制產(chǎn)品 了解詳情
    OKA40i-C開(kāi)發(fā)板

推薦閱讀 換一批 換一批