This service is available only in Japanese-language.

実行モジュールのサイズについて

いつもお世話になっております。
コンパイル時点のモジュールと、Image展開されるモジュールが異なっているため
実行できない現象が発生しております。

①bitbake アプリケーション
この時点では、アプリケーションのサイズが133KBでした。
②bitbake core-image-minimal
アプリケーションのレシピ
do_install() {
install -d ${D}${bindir}
install -m 0755 ../コンパイルディレクトリ/アプリケーション.com ${D}${bindir}
}
core-image-minimalのrootfsにある/usr/binにアプリケーションが配置されていますが
サイズは103KBと小さくなっていました。

①のアプリケーションを対象ボードで動作するのに対し、
パッケージ化された②では実行できないアプリケーションになっておりました。

出来上がったモジュールをそのままコピーして配置していると思っておりましたが、
最適化?のような圧縮する処理があるのでしょうか?
installのやり方などご教授願えないでしょうか?

アプリケーションをコンパイルする段階では、デバッグシンボル付きで構築されます。
do_package タスクを実行する際に、通常インストールの対象となるパッケージには
デバッグシンボルを除去したものが含まれます。

イメージレシピのbuildを実行した際にrootfsディレクトリ以下に展開されるものは、
パッケージフィードに保存されているデバッグシンボル除去済の実行形式ファイルと
なりますので、サイズは異なっています。

現在二つのファイルが御座います。どちらも自作のアプリケーション(app)です。

1つ目はdo_compileで作成されたappで、この時にgなどオプションを全て削除して作成しております。
(実際にlog.do_compileを確認しました)
その後、do_installにて指定フォルダへ展開。Image作成後のrootfsを確認すると
do_compileで作成されたappとrootfsに展開されているappが異なっていました。

2つ目はSDKを用いて作成したappを展開した場合です。
こちらにつきましては、回答頂いたデバッグシンボルが除去されたものになっている可能性がございます。
1つ目のappinstallタイミングに2つ目のappもinstallしています。

do_compile後に、do_pacageでシンボルが削除されているんですね。
シンボルを削除させたくない場合の良い方法はないでしょうか?(do_pacageで細工すれば可能でしょうか?)

>do_compile後に、do_pacageでシンボルが削除されているんですね。
>シンボルを削除させたくない場合の良い方法はないでしょうか?(do_pacageで細工すれば可能でしょうか?)
ここにつきましては、何か対策など無いでしょうか?

INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"

出来上がったモジュールを確認したところ、多少の内容が変更されていますが、恐らく問題ないと思われます。
(すみませんまだ確認前段階でご連絡しております)

一つ気になったこととして、個別のレシピにのみSTRIPさせないということは可能でしょうか?
今回実施すると、イメージのサイズが4倍程度増加したため、個別のSTRIP解除などが出来れば、
サイズの増加を抑えられると考えております。

自作レシピとのことですので、レシピ内に記載することで、当該レシピにのみ適用となります。

local.conf以外にオプションを設定できないと考えておりました。
自作レシピに単体で入れることが出来るんですね。大変勉強になりました。
ありがとうございました。