ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

A40i &T3 全源码编译-ARM Linux内核在PC Linux的编译方法

2020-12-29 14:00:18  阅读:412  来源: 互联网

标签:buildroot helloworld cd 编译 A40i 源码 Linux lichee


本章讲述方法,采用硬件平台为 飞凌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. camdroidChoice: 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

点此了解飞凌嵌入式A40i核心板>>

标签:buildroot,helloworld,cd,编译,A40i,源码,Linux,lichee
来源: https://blog.csdn.net/ningmengzier/article/details/111902393

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有