2016-10-07 9 views
0

私の目標は、/ etc /ディレクトリに設定ファイルをインストールするBitbakeレシピを作成し、この設定を/ect/init.dディレクトリに適用し、update -rc-d)。 私は既に別の同様の質問(Bitbake not installing my file in the rootfs image)を見ました。私はこの男がしたことをほぼ正確に行いましたが、残念ながらそれは機能しませんでした。 問題は、Bitbakeは何も文句を言わず、これらのファイルをrootfsに追加しないことです。 ここに私の現在のレシピがあります。また、スクリプトと設定ファイルをファイルと、レシピディレクトリにあるalsa-configの2つのディレクトリに配置しました。私local.confでBitbakeはrootfsに自分のファイルをインストールしません

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" 

私はラインを追加しました:

CORE_IMAGE_EXTRA_INSTALL += "alsa-config " 

してください、誰も助けることができますか?

+0

'(do_install()'で)initスクリプトもインストールする必要があります。 – 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スクリプトの実行権が不足していることを除いて、すべてがOKでした。 明日の残りの部分を確認します。 – Staszek

関連する問題