2016-10-07 10 views
0

Моя цель - создать рецепт Bitbake, который установит файл конфигурации в каталоге/etc и скрипт, который будет применять этот конфиг в каталоге /ect/init.d (и вызывать обновление -rc-д). Я уже видел другой подобный вопрос (Bitbake not installing my file in the rootfs image). Я сделал почти то, что сделал этот парень, но, к сожалению, это не сработало. Проблема в том, что Bitbake ничего не жалуется, но просто не добавляет эти файлы в rootfs. Вот мой текущий рецепт. Я также поместил свои сценарии и файлы конфигурации в два каталога: файлы и alsa-config, которые находятся внутри каталога рецептов.Bitbake не устанавливает мои файлы в мои корневые файлы

SUMMARY = "Alsa Config" 
DESCRIPTION = "Adds alsa configuration file, and startup script that applies it." 

LICENSE = "MIT" 
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 

SRC_URI += " \ 
      file://my-alsa-config \ 
      file://asound.state \ 
" 

PACKAGE_ARCH = "${MACHINE_ARCH}" 

S = "${WORKDIR}" 

INITSCRIPT_NAME = "my-alsa-config" 
INITSCRIPT_PARAMS = "defaults 99 01" 

inherit autotools update-rc.d 

do_install() { 
install -m 0644 ${WORKDIR}/asound.state ${D}${sysconfdir} 
} 

FILES_${PN} += "${sysconfdir}/asound.state" 

В моей local.conf я добавил строку:

CORE_IMAGE_EXTRA_INSTALL += "alsa-config " 

Пожалуйста, может кто-нибудь помочь?

+0

Вы также должны установить сценарий инициализации (в 'do_install()'). – jku

+0

Спасибо за подсказку! Это заставило меня сделать несколько вещей, которые решили проблему :) – Staszek

ответ

0

К счастью, я смог решить проблему. Вот решение:

SUMMARY = "Alsa Config" 
DESCRIPTION = "Adds alsa configuration file, and startup script that applies it." 

LICENSE = "MIT" 
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 

SRC_URI += " \ 
      file://my-alsa-config \ 
      file://asound.state \ 
" 
PACKAGE_ARCH = "${MACHINE_ARCH}" 

S = "${WORKDIR}" 

INITSCRIPT_NAME = "my-alsa-config" 
INITSCRIPT_PARAMS = "defaults 99 01" 

inherit autotools update-rc.d 

do_install() { 
install -d ${D}${sysconfdir}/init.d/ 
install -m 0755 ${WORKDIR}/my-alsa-config ${D}${sysconfdir}/init.d/ 
install -m 0644 ${WORKDIR}/asound.state ${D}${sysconfdir}/ 
} 

FILES_${PN} += "${sysconfdir}/asound.state \ 
       ${sysconfdir}/my-alsa-config" 

Немного комментариев:

  1. PACKAGE_ARCH должен быть установлен правильно. В моем случае, когда у меня его не было, выполнение разрешений для файла сценария по какой-то причине не было установлено.
  2. do_install() должен создать каждый каталог, который необходим. Даже если я знаю, что в моих rootfs будет каталог/etc, я должен его создать. И я не уверен, что это необходимо, но на самом деле лучше иметь слэш в конце каталога установки, на всякий случай.
  3. Идентификационные скрипты, которые должны быть установлены для запуска при запуске, также должны быть установлены;)
  4. Сценарии должны иметь соответствующие разрешения.
+0

'PACKAGE_ARCH' должен быть неактуальным для этой проблемы, и косые черты не нужны, также' $ {sysconfdir} 'по умолчанию помещается в' FILES _ $ {PN} ', поэтому никаких добавлений не требуется. –

+0

Ну, может быть, PACKAGE_ARCH не имеет значения, но это не так. Эта строка была последней добавленной, прежде чем она начала работать. Без него все было в порядке, за исключением отсутствия исполнения на скрипте init. Завтра я проверю остальное. – Staszek

 Смежные вопросы

  • Нет связанных вопросов^_^