【发布时间】:2020-12-05 04:13:09
【问题描述】:
我正在使用 yocto 构建一个集成了某些层的 wlan 和特定 wifi 芯片的 linux 映像,但似乎修补其中一个文件失败(详情如下)
我做的步骤:
- 创建了工作目录
- 通过以下方式为内核 4.14.98 初始化了一个 repo:
repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-sumo -m imx-4.14.98-2.3.3.xml
- 通过
repo sync同步repo - 在当前工作目录之外创建了一个
tmp文件夹,并通过以下方式下载wifi的具体代码
repo init -u git://codeaurora.org/quic/le/le/manifest.git -b release -m CHSS.LNX_FSLS.1.0-01200-QCAAUTOHOSTHZ.xml –repo-url=git://codeaurora.org/tools/repo.git –repo-branch=caf-stable
- 回购同步
- 将
meta-qti-connectivity和wlan-opensource文件夹复制到工作目录的源文件夹中 - 下载特定wifi芯片的文件并将
meta-qticonnectivity-prop和wlanproprietary复制到工作目录的源文件夹中
所以现在我们在工作目录的源文件夹中添加了额外的 4 个目录
- 设置构建环境
- 运行
bitbake core-image-minimal
我看到以下错误:
ERROR: wpa-supplicant-git-r0 do_patch: Command Error: 'quilt --quiltrc <working_directory>/linux_image/build/tmp/work/imx8qxpmek-poky-linux/wpa-supplicant/git-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0 Output:
Applying patch 0009-Sync-with-mac80211-next.git-include-uapi-linux-nl802.patch
patching file src/drivers/nl80211_copy.h
...
15 out of 20 hunks FAILED -- rejects in file src/drivers/nl80211_copy.h
Patch 0009-Sync-with-mac80211-next.git-include-uapi-linux-nl802.patch does not apply (enforce with -f)
ERROR: wpa-supplicant-git-r0 do_patch: Function failed: patch_do_patch
- 我是 yocto 新手,从外观上看,补丁
0009-Sync-with-mac80211-next.git-include-uapi-linux-nl802.patch似乎不适用,但这是否意味着问题出在补丁文件或其引用方式上。
这个补丁文件位于wpa-supplicant子目录下的meta-fsl-bsp-release层,我没有手动添加。该子目录有一个.bbappend 文件,它通过SRC_URI 变量引用这些补丁文件,但它不包含任何.bb 文件。
我添加的其中一个元层也有wpa-supplicant 子目录,但它只有.bb 文件,没有.bbappend。
我很困惑这两个子目录有何不同,或者它们是否会发生冲突?另外,子目录不应该同时具有.bbappend 和相应的.bb 文件吗?
-
SRC_URI变量用于定位适用的补丁文件,而 wpa-supplicant 的相应.bb文件中不需要do_patch,对吧? -
相应的 bb 文件
wpa-supplicant具有以下内容:
SRC_URI = "file://wlan-opensource/wpa_supplicant_8/"
SRC_URI += "file://hostapdconf \
file://supplicantconf \
补丁文件不应该以.patch结尾吗?
另外,我在 yocto 文档中看到 file:// 中定义的路径是相对于 FILESPATH 变量的,在 bb 文件中定义为 "${BSPDIR}/sources:" - 不确定 BSPDIR 本身但我认为它指的是<top_dir>/sources,但这是否意味着hostapdconf 应该位于<top_dir>/sources?我没有看到它,但在其他子目录中
【问题讨论】:
标签: linux-kernel embedded-linux yocto bitbake