Buildrootにautotoolsパッケージを追加するには?

Buildrootにautotoolsパッケージを追加するには?

他に成功せずにbuildrootにパッケージを追加しようとしています。私が追加したいパッケージはscewという自動化されたツールパッケージです。パッケージを追加するためのビルドルートガイドに従い、make menuconfigパッケージを実行するとパッケージが一覧表示されますが、make最終的なrootfs.tar

.mkまた、インストール用に別の単純なファイルをコピーし、whichそれに応じて変数名とURLを変更しました。私のコピーは次のとおりですscew.mk

SCEW_VERSION = 1.1.3
SCEW_SITE = http://savannah.nongnu.org/download/scew/
SCEW_LICENSE = GPLv3
SCEW_LICENSE_FILES = COPYING

$(eval $(autotools-package))

私の同じディレクトリでは、Config.in次のようになります。

config BR2_PACKAGE_SCEW
   bool "scew"
   help
   google scew

また、次の行を追加しましたpackage/Config.in

menu "My Packages"

 menu "Packages I Wrote"
 source "package/MyPackages/packagesIWrote/hello/Config.in"
 source "package/MyPackages/packagesIWrote/helloworld/Config.in"
 endmenu

 menu "External Packages"
 source "package/MyPackages/external-packages/scew/Config.in"
 endmenu

endmenu

この部分はパッケージがリストされていて選択できるのでうまくいくようです。 hello および helloworld パッケージは、このウェブサイトからインポートされたパッケージ追加ガイドのコピーです(フランス語で書かれています)。Hello Worldを追加

hello worldパッケージも機能しません。私はこの問題についてただ思い浮かんでいて、私が何を間違っているのかわからないように見えるので、どんなアドバイスでも喜んで受け入れます。

答え1

見てこのプロジェクト非常に良い例があります。

buildroot-packages/package/Config.inパッケージを追加するには編集してください。

menu "buildroot-packages [external repo]"
    source package/hola/Config.in
endmenu

フォルダに.inファイルを追加します。buildroot-packages/package/hola/Config.in

config BR2_PACKAGE_HOLA
    bool "hola"
    depends on BR2_PACKAGE_SOME_PACKAGE
    help
        hola is an example of a program build with autotools for to be added
        to buildroot

        http://stackoverflow.com/users/4059304/simonppg

comment "hola no needs any toolchain w/ dynamic library, threads"

.mkも追加してください。buildroot-packages/package/hola/hola.mk

HOLA_VERSION = v0.0.1
HOLA_SITE = https://bitbucket.org/simonppg/hola
HOLA_SITE_METHOD = git
HOLA_AUTORECONF = YES
HOLA_DEPENDENCIES = some_package

$(eval $(autotools-package))

次のガイドラインに従ってください。同じプロジェクトパッケージを buildroot ディレクトリにインストールまたは削除します。

答え2

ステージングディレクトリは、最終イメージを構築するために必要なヘッダーや中間ステップツールには役立ちますが、rootfsでは必要ではなく、削除されたライブラリや実行可能ファイルを構築するためにも使用されます。

ステージングからターゲットディレクトリにコピーする操作は、通常、選択したターゲット$(TARGET_DIRECTORY)rootfs設定(たとえば、crushfs、squashfsなど)で実行されますが、通常rootfsに含まれるファイルのリストは、プラットフォーム設定ターゲット(純粋な共通、テキストファイルのプラットフォームコンテンツなど)です。

答え3

同じ問題があるようです。他のパッケージは実行可能ファイルをビルドし、それをディレクトリに削除しますが、./project_build_arm/my_device/root/usr/bin/私が追加したパッケージはビルドしてからディレクトリに削除します./build_arm/staging_dir/usr/bin/

この問題を解決するために、これまでに行ったことは、削除されたバイナリを間違ったディレクトリから正しいディレクトリにコピーすることです。スマートでも正確ではありませんが、(絆創膏で)動作します。

問題が何であれ、かなり高度な方法で行われているように見えるので、ビルドルートの経験がある人ならば、上記の説明だけで問題の実際の原因を診断するのに十分です。

…それとも自分で見つけましたか?

関連情報