【发布时间】:2018-08-22 06:24:20
【问题描述】:
我有几个硬件平台(相同的 cpu 等)需要不同的 asound.conf 文件。
我控制目标平台的方式是通过 MACHINE 变量和目标图像(即 MACHINE=machine_1 nice bitbake machine-1-bringup-image)
通常,如果只是替换 conf 文件,我会创建一个 alsa-state.bbappend 并创建一个 do_install_append 函数来替换它。
但是,由于不同的硬件平台需要不同的 conf 文件,我不确定如何处理它。
我尝试在附加文件 do_install_append 函数中添加一些逻辑,但没有成功。它并不总是选择正确的文件(就像它认为没有任何改变,所以它使用以前缓存的 conf?)
这是我尝试过的附加文件之一的示例:
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += " \ file://asound_MACHINE1.conf \
file://asound_MACHINE2.conf \ "
do_install_append() {
echo " alsa-state.bbappend MACHINE: ${MACHINE}"
if [ "${MACHINE}" = "machine_1" ]; then
echo " machine_1"
echo " installing ${WORKDIR}/asound_MACHINE1.conf to ${D}${sysconfdir}/asound.conf"
install -m 644 ${WORKDIR}/asound_MACHINE1.conf {D}${sysconfdir}/asound.conf
else
echo " installing ${WORKDIR}/asound_MACHINE2.conf to ${D}${sysconfdir}/asound.conf"
install -m 644 ${WORKDIR}/asound_MACHINE2.conf ${D}${sysconfdir}/asound.conf
fi
}
我可以根据逻辑在日志中看到正确的回声。
无论如何,我不认为我要走的路是处理这个问题的最佳方式。
是否有一种“标准”方法可以根据目标图像或 MACHINE 变量安装不同的文件?
【问题讨论】: