IMX6ULL 编译官方镜像和SDK
日期:2024-10-11 19:09:13
说明:其工程使用了yocto快速构建,集成到客户的工作环境中,是在标准yocto上配置了NXP自己的芯片。
思路简要:
1.拉repo仓库,等待
2.bitbake编译整包
3.bitbake编译工具链
步骤:
1.确定需要的版本
在这里选择版本,是BSP配置的仓库。查看其分支。自述文件里面有已测试过的芯片(boards),以及命令。

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



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

小技巧:
1.更换文件系统的QT版本:
进入QT的文件夹里面。git切换分支

2.增加QT插件(例如:opengl):
新的yocto工程会自动编译QT插件
老版本的需要使用命令
bitbake opengl-es-cts
包含到镜像里面,然后在conf文件中加入
IMAGE_INSTALL:append = opengl-es-cts
3.yocto编译软件deb包:
因为yocto工程默认是debian的包管理,会在编译的时候自动生成deb包的。
位置:

4.yocto编译位置:
都在tmp/work下
- 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插件的最高的稳定版本了。
本文来自博客园,作者:杨旭0324,转载请注明原文链接:https://www.cnblogs.com/allalonewithyou/p/20637777,个人邮箱:yaonie4444@foxmail.com

浙公网安备 33010602011771号