petalinux2023.1编译pmu-rom-native...fetch error问题
问题起因
win10操作系统安装vmware,vmware上安装客户端操作系统ubuntu 18.04.2 LTS
在无法连接internet的电脑上编译petalinux2023.1时,可以通过下载相应的离线包进行编译。但是总是报错
ERROR: pmu-rom-native-1.0-r0 do_fetch: Bitbake Fetcher Error: NetworkAccess('http://petalinux.xilinx.com/sswreleases/rel-v2023/downloads/openDownload%3Ffilename%3DPMU_ROM.tar.gz', "/usr/bin/env wget -t 2 -T 30 --passive-ftp -O '/home/xx/xx/xxx/xx/build/downloads/openDownload?filename=PMU_ROM.tar.gz.tmp' -P /home/xx/xx/xxx/xx/build/downloads 'http://petalinux.xilinx.com/sswreleases/rel-v2023/downloads/openDownload%3Ffilename%3DPMU_ROM.tar.gz'")
ERROR: Logfile of failure stored in: /home/xx/xx/xxx/xx/build/tmp/work/x86_64-linux/pmu-rom-native/1.0-r0/temp/log.do_fetch.118597
ERROR: Task (/home/xx/xx/xxx/xx/components/yocto/layers/meta-xilinx/meta-xilinx-core/recipes-bsp/pmu-firmware/pmu-rom-native.bb:do_fetch) failed with exit code '1'
原因
是离线包通过windows上的解压工具进行解压,把原文件名中的linux下合法但windows下不合法的字符“?”重新命名为windows下合法的字符“_”
官网文件名:
windows下解压后文件名:
解决方法
方法1
在ubuntu系统中解压离线包
方法2
保持离线包解压文件名不变,
找到工程路径下的components/yocto/layers/meta-xilinx/meta-xilinx-core/recipes-bsp/pmu-firmware/pmu-rom-native.bb文件,用文本编辑器打开:
把文件名中的“?”修改为windows下合法的“_”,因为已经设置过编译过程使用本地镜像,http的链接可以不用修改,会在编译时自动转向本地文件。
SRC_URI = "http://petalinux.xilinx.com/sswreleases/rel-v2023/downloads/openDownload_filename=PMU_ROM.tar.gz"
也可直接修改为本地文件的路径:
SRC_URI = "file://PMU_ROM.tar.gz"
再次编译,红色错误提示已经消失,改为黄色警告提示:
最后编译成功: