Модули ядра Linux (LKM) B зависят от символов, предоставленных LKM A.
Таким образом, для сборки LKM B требуется следующее:
Я использую рецепт BitBake для построения LKM A и B. Что я делаю:
- Я распространяю файлы заголовков и таблицу символов LKM A в каталог промежуточных включений
${STAGING_INCDIR}
. - Я передаю промежуточные включения и путь к таблице символов как
KBUILD_EXTRA_SYMBOLS
переменная в Make-файл LKM B
Пример:
#BB-recipe for LKM A
# Staging of .h files and symbol-table
do_install_append () {
install -d ${STAGING_INCDIR}
install ${WORKDIR}/${PN}/src/*.h ${STAGING_INCDIR}/
install ${WORKDIR}/${PN}/Module.symvers ${STAGING_INCDIR}/rtserial.symvers
}
#BB-recipe for LKM B
do_compile () {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP
cd "${WORKDIR}/mstp"
oe_runmake KDIR="${KERNEL_SOURCE}" \
ARCH="${ARCH}" \
CROSS_COMPILE="${CROSS_COMPILE}" \
IDIR="${STAGING_INCDIR}" \
KBUILD_EXTRA_SYMBOLS="${STAGING_INCDIR}/rtserial.symvers" \
build
}
Вопросы:
- Является ли do_install_append правильной задачейразместить общие ресурсы?Я читал, что do_staging () является несколько устаревшим ...
- Где разместить таблицу символов?
Спасибо за любые советы по рекомендациям.