Petlainux在编译kernel的时间,默认编译过程复杂,需要上层开始解析所有层的bb文件,并且最后会打包文件 系统,耗时较久,过程中很多工作不是我们需要的,如果需要调试linux 内核,频繁编译版本,会浪费很多时间。我们需要在Petalinux工程的基础上实现Linux内核源码的单独编译、打包镜像,提升开发效率。
petalinux-build
petalinux-devtool modify linux-xlnx
yuyl$
find . -name .config
./components/yocto/workspace/sources/linux-xlnx/.config
./build/tmp/work-shared/zynqmp-generic/kernel-build-artifacts/.config
./build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.15.36+gitAUTOINC+19984dd147-r0/linux-zynqmp_generic-standard-build/.config
./build/tmp/work/zynqmp_generic-xilinx-linux/u-boot-xlnx/v2021.01-xilinx-v2022.2+gitAUTOINC+b31476685d-r0/build/.config`
这里使用./build/tmp/work-shared/zynqmp-generic/kernel-build-artifacts/.config作为Linux的配置文件
将其拷贝到linux的config目录,并重新命名为 xilinx_customer_defconfig:
cp ./build/tmp/work-shared/zynqmp-generic/kernel-build-artifacts/.config ./components/yocto/workspace/sources/linux-xlnx/arch/arm64/configs/xilinx_customer_defconfig
source /projworkspace/video/sdk/environment-setup-cortexa72-cortexa53-xilinx-linux
cd components/yocto/workspace/sources/linux-xlnx/
make ARCH=arm64 xilinx_customer_defconfig
make ARCH=arm64 -j 32
编译完成,生成的带压缩的和不带压缩的Image在下面的目录:
Image.gz: ./components/yocto/workspace/sources/linux-xlnx/arch/arm64/boot/Image.gz
Image: ./components/yocto/workspace/sources/linux-xlnx/arch/arm64/boot/Image
这2个文件即可满足调试使用,不需要做第三步;
如果需要打包成带ramdisk的image.ub,请继续第三步。
`find . -name fit-image-petalinux-image-minimal.its
cp ./build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.15.36+gitAUTOINC+19984dd147-r0/linux-zynqmp_generic-standard-build/fit-image-petalinux-image-minimal.its images/linux/fit-image-petalinux-image-minimal.its`
cp ./components/yocto/workspace/sources/linux-xlnx/arch/arm64/boot/Image.gz images/linux/linux.bin
mkimage -f fit-image-petalinux-image-minimal.its -v image.ub
cp ./components/yocto/workspace/sources/linux-xlnx/arch/arm64/boot/Image images/linux/
修改its文件关于Kernel部分的压缩属性:
data = /incbin/("Image");
compression = "none";
上面是为了快速编译linux内核做的工作,在完成调试后,重新使用petalinux编译会出现下面错误,无法重新编译:
ERROR: linux-xlnx-5.15.36+git999-r0 do_kernel_configme: Could not generate a .config for zynqmp-generic-standard
需要做一些清理,再重新编译即可。
petalinux-build -x mrproper -f
mkimage -f fit-image-petalinux-image-minimal.its -v image.ub
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。