IMX6ULL 编译官方镜像和SDK

日期:2024-10-11 19:09:13

说明:其工程使用了yocto快速构建,集成到客户的工作环境中,是在标准yocto上配置了NXP自己的芯片。

思路简要:
1.拉repo仓库,等待
2.bitbake编译整包
3.bitbake编译工具链

步骤:
1.确定需要的版本
在这里选择版本,是BSP配置的仓库。查看其分支。自述文件里面有已测试过的芯片(boards),以及命令。

alt text

2.下载
fq安装repo以及其他包。

mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo  > ~/bin/repo
chmod a+x ~/bin/repo
PATH=${PATH}:~/bin

安装的包:

sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 python3-subunit zstd liblz4-tool file locales libacl1

以最新版本来:

mkdir <release>
cd <release>
repo init -u https://github.com/nxp-imx/imx-manifest.git -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml
repo sync

git配置:

git config --global user.name "Your Name"
git config --global user.email "Your Email"
git config --list

3.编译

#设置为6ull  fb ,同意下协议
MACHINE=imx6ull14x14evk DISTRO=fsl-imx-fb source ./imx-setup-release.sh -b build
# 整编  
bitbake imx-image-full
# 编译工具链
bitbake imx-image-full -c populate_sdk

alt text

alt text

alt text

整编的会很慢,是需要把kernel uboot 文件系统里面的包全部拉取下来,然后编译,80核的服务器,编译IMX6ULL的SDK需要4个小时左右,这个主要是多线程去拉仓库就会快点,如果核数太少的话编译可能会报错的。IMX8MP编译需要8个小时,一万多个包需要拉取编译。

alt text

小技巧:

1.更换文件系统的QT版本:

进入QT的文件夹里面。git切换分支

alt text

2.增加QT插件(例如:opengl):

新的yocto工程会自动编译QT插件

老版本的需要使用命令

bitbake opengl-es-cts

包含到镜像里面,然后在conf文件中加入

IMAGE_INSTALL:append = opengl-es-cts

3.yocto编译软件deb包:

因为yocto工程默认是debian的包管理,会在编译的时候自动生成deb包的。

位置:

alt text

4.yocto编译位置:

都在tmp/work下

  1. bitbake常用命令:
# 清理镜像编译的缓存 不会删除下载源代码包   应该只是清理打好包的镜像 其他的不动
bitbake -c cleansstate core-image-minimal
# 查看所有包
bitbake -s
# 查看包的详细信息
bitbake -e 《pack》
# 查看编译路径  实际上Git仓库的下载路径
bitbake -e python3-pyqt6 | grep ^S=
# 查看配方路径
bitbake -e sip3-native | grep ^FILE=
# 查看下载包的路径
bitbake -e python3-pyqt6 | grep ^DL_DIR=

Tips:
其实GitHub上的README.md上有的,但是只是几条命令,可能会云里雾里的,所以整理记录下。官方文档也有个IMXLXYOCTOUG_6.6.23_2.0.0.pdf。
NXP官方的代码,之前是放到自己的gitlab仓库里面的,之后有个改版都放到了github上面。所以老版本编译的时候git的commit对不上会报错,需要手动解决。
repo仓库拉新不拉旧,新版本repo拉的人多,在github上是属于热数据,下载会比较快。所以用老版本是痛苦的。
fq访问github上节点最好选择新加坡,因为github的亚洲服务器在新加坡。我经验上时间段上凌晨至早上访问最好。
现在最新的工程版本6.6.36 2_1_0整个拉下来有60G左右,注意流量。
太老的版本需要注意你的环境换成ubuntu16 18,最新的用22.(主要是glic的版本问题以及其他的库问题),不同的qt

Q:如何确定自己需要的版本?

A:主要是看适配的qt版本,以及你想要什么新的功能,或者修复bug,一般来说同一客户如非必要,就一直是同一个版本了。
比如你的自制板选择的SOC没有GPU,那么qt的版本只能选择到最高的5.12版本,这是支持linuxfb插件的最高的稳定版本了。

posted @ 2026-06-18 17:48  杨旭0324  阅读(20)  评论(0)    收藏  举报