前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Petalinux下 快速编译Linux

Petalinux下 快速编译Linux

原创
作者头像
Frank-大龙
修改2024-12-03 10:02:16
修改2024-12-03 10:02:16
1100
举报
文章被收录于专栏:Petalinux

一、需求

Petlainux在编译kernel的时间,默认编译过程复杂,需要上层开始解析所有层的bb文件,并且最后会打包文件 系统,耗时较久,过程中很多工作不是我们需要的,如果需要调试linux 内核,频繁编译版本,会浪费很多时间。我们需要在Petalinux工程的基础上实现Linux内核源码的单独编译、打包镜像,提升开发效率。

二、实现

2.1 完整的编译一遍Petalinux工程

petalinux-build

2.2 下载Linux源码

petalinux-devtool modify linux-xlnx

2.3 修改linux源码

2.4 Linux .config文件

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

2.5 source sdk env

source /projworkspace/video/sdk/environment-setup-cortexa72-cortexa53-xilinx-linux

2.6 compile

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,请继续第三步。

三、打包image.ub

3.1 查找its文件:

`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`

3.2 打包

3.2.1 打包压缩的Image

3.2.1.1 拷贝zip过的Image文件,并重命名为linux.bin

cp ./components/yocto/workspace/sources/linux-xlnx/arch/arm64/boot/Image.gz images/linux/linux.bin

3.2.1.2 打包

mkimage -f fit-image-petalinux-image-minimal.its -v image.ub

3.2.2 打包不压缩的Image

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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、需求
  • 二、实现
    • 2.1 完整的编译一遍Petalinux工程
  • 2.2 下载Linux源码
  • 2.3 修改linux源码
  • 2.4 Linux .config文件
  • 2.5 source sdk env
  • 2.6 compile
  • 三、打包image.ub
    • 3.1 查找its文件:
    • 3.2 打包
      • 3.2.1 打包压缩的Image
      • 3.2.2 打包不压缩的Image
  • 四、调试结束清理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档