You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yocto构建LS1046ARDB根文件系统时libusb依赖冲突求助

LS1046ARDB Yocto根文件系统libusb依赖冲突解决

问题背景

为LS1046ARDB开发板构建Yocto根文件系统时,新增的依赖libusb的自定义配方编译正常,但根文件系统构建阶段出现libusb依赖冲突。已尝试在配方文件和local.conf中排除libusb,问题未解决。

错误日志(翻译后)

ERROR: ls-image-main-22.04.1-r0 do_rootfs: 无法调用dnf。命令 '/home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/recipe-sysroot-native/usr/bin/dnf -v --allowerasing --rpmverbosity=info -y -c /home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/rootfs/etc/dnf/dnf.conf --setopt=exit-on-err=false --setopt=reposdir=/home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/rootfs/etc/yum.repos.d --installroot=/home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/rootfs --setopt=logdir=/home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/temp --repofrompath=oe-repo,/home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/oe-rootfs-repo --nogpgcheck install autobridge blktrace can-utils cdx cmm cpufrequtils distrobootscr dpa-app fci fio i2c-tools iozone3 iperf2 iperf3 ipsec-demo ipsec-tools kernel-devicetree kernel-image kernel-modules libcli libpkcs11 linuxptp lmbench lmsensors-sensors makedevs mmc-utils netdata netperf openssl-engines packagegroup-fsl-tools-core packagegroup-fsl-tools-extended pciutils perf qcom rt-tests secure-obj secure-obj-module strongswan sysfsutils tcpdump ubuntu-main ubuntu-main-dbg ubuntu-main-dev ubuntu-main-doc udev-extraconf udev-rules-qoriq usbutils watchdog' 返回值1:
主配置在设置opt前没有exit-on-err属性。
DNF版本: 4.11.1
缓存目录: /home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/rootfs/var/cache/dnf
从/home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/oe-rootfs-repo添加oe-repo仓库
主配置在设置opt前没有exit-on-err属性。
用户代理: 回退到'libdnf': 无法检测操作系统或基础架构
仓库: 使用oe-repo的缓存
oe-repo: 使用2024年3月1日周五下午1:29:54 UTC的元数据。
上次元数据过期检查: 0:00:01前,在2024年3月1日周五下午1:29:55 UTC。
--> 开始依赖项解析
--> 依赖项解析完成
**错误:
问题: 包ubuntu-main-22.04.1-r0.aarch64与libusb-1.0-0-1.0.26-r0.aarch64提供的libusb-1.0-0冲突
- 包ubuntu-main-22.04.1-r0.aarch64废弃了libusb-1.0-0-1.0.26-r0.aarch64提供的libusb-1.0-0
- 包qcom-1.0-r0.ls1046ardb需要libusb-1.0.so.0()(64bit),但没有可用的提供者能被安装
- 冲突请求
(尝试添加'--skip-broken'跳过无法安装的包)**

ERROR: 失败日志存储在: /home/labuser/NEERAJ/ASK_1046/DISTRO/build_ls1046ardb/tmp/work/ls1046ardb-fsl-linux/ls-image-main/22.04.1-r0/temp/log.do_rootfs.3213332
ERROR: 任务(/home/labuser/NEERAJ/ASK_1046/DISTRO/sources/meta-nxp-desktop/recipes-fsl/images/ls-image-main.bb:do_rootfs)执行失败,退出码'1'
注意: 任务汇总: 尝试执行4421个任务,其中4409个无需重新运行,1个失败。

总结: 1个任务失败:
/home/labuser/NEERAJ/ASK_1046/DISTRO/sources/meta-nxp-desktop/recipes-fsl/images/ls-image-main.bb:do_rootfs
总结: 有5条警告信息。
总结: 有1条错误信息,返回非零退出码。

问题根源

  • ubuntu-main包通过Obsoletes和Conflicts规则,会替换系统中的libusb-1.0-0包
  • qcom包依赖libusb-1.0.so.0库,但ubuntu-main替换后未提供该库的兼容版本,导致依赖链断裂

解决方案

方案1:调整ubuntu-main安装策略

如果ubuntu-main是必需组件,修改镜像配方ls-image-main.bb,排除其对libusb的冲突规则:

# 移除原ubuntu-main,改用不含libusb冲突的版本(若存在)
IMAGE_INSTALL_remove = "ubuntu-main"
IMAGE_INSTALL_append = "ubuntu-main-nolibusb"

# 或者直接指定dnf安装时排除冲突项
ROOTFS_PKGMANAGE_EXTRA_ARGS += "--exclude libusb-1.0-0"

方案2:修复qcom包的依赖

修改qcom配方(或在local.conf中覆盖),使其依赖ubuntu-main提供的libusb兼容版本:

# 在qcom.bb或local.conf中添加
RDEPENDS:qcom = "${@bb.utils.contains('IMAGE_INSTALL', 'ubuntu-main', 'ubuntu-main', 'libusb-1.0-0', d)}"

方案3:强制保留libusb并忽略废弃规则

在local.conf中添加配置,让dnf忽略ubuntu-main对libusb的废弃声明:

EXTRA_IMAGE_FEATURES += "package-management"
ROOTFS_POSTPROCESS_COMMAND += "force_libusb_install;"

force_libusb_install() {
    ${ROOTFS_PKGMANAGE_CMD} --setopt=obsoletes=0 install libusb-1.0-0
}

方案4:移除ubuntu-main(非必需时)

如果ubuntu-main不是根文件系统必需的,直接从镜像中移除相关包:

# 在ls-image-main.bb或local.conf中添加
IMAGE_INSTALL_remove = "ubuntu-main ubuntu-main-dbg ubuntu-main-dev ubuntu-main-doc"

内容的提问来源于stack exchange,提问作者Sathya Nagaphani M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:05:57