yoctoにiptablesを追加すると、ミラーdo_rootfsが失敗します。

yoctoにiptablesを追加すると、ミラーdo_rootfsが失敗します。

私の画像はlocal.confカーネル4.13(リソースに設定されています)とすべてのレシピで正しく構築されています。

私のイメージにiptablesレシピ(v1.6)を追加しようとすると、次のエラーでdo_rootfs操作が失敗します。

ERROR: image-dev-0.7-r0 do_rootfs: Error executing a python function in exec_python_func() autogenerated:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:license_create_manifest(d)
     0003:
File: '/home/yocto/sources/poky/meta/classes/license.bbclass', lineno: 48, function: license_create_manifest
     0044:    pkg_dic = {}
     0045:    for pkg in sorted(image_list_installed_packages(d)):
     0046:        pkg_info = os.path.join(d.getVar('PKGDATA_DIR'),
     0047:                                'runtime-reverse', pkg)
 *** 0048:        pkg_name = os.path.basename(os.readlink(pkg_info))
     0049:
     0050:        pkg_dic[pkg_name] = oe.packagedata.read_pkgdatafile(pkg_info)
     0051:        if not "LICENSE" in pkg_dic[pkg_name].keys():
     0052:            pkg_lic_name = "LICENSE_" + pkg_name
Exception: FileNotFoundError: [Errno 2] No such file or directory: '/media/yocto/build/tmp/pkgdata/machine/runtime-reverse/kernel-4.14.1-fslc+ga4f7f0ac8250'

ERROR: image-dev-0.7-r0 do_rootfs: Function failed: license_create_manifest
ERROR: Logfile of failure stored in: /media/yocto/build/tmp/work/machine-linux-gnueabi/image-dev/0.7-r0/temp/log.do_rootfs.49245
ERROR: Task (/home/yocto/sources/meta-mymeta/recipes-images/images/image-dev.bb:do_rootfs) failed with exit code '1'

エラーとログを見ると、iptablesは必要なカーネルモジュールがインストールされると予想していますが(良い)バージョンは4.14-fslc(不良)です。私の階層には4.14カーネルもありません。

カーネルモジュールのレシピをイメージに手動で追加すると、同じことが起こります。

質問は次のとおりです。 私のYoctoが4.13カーネルで構築されていて、4.14カーネルモジュールをインストールしたいのはなぜですか?

それから次の質問: Yocto に 4.13 カーネルモジュールをビルドしてインストールするようにどのように言いますか?


アップデート1:

kernel-module-x-tablesもっと詳しく見た後、モジュールを例にしてみましょう。エラーログによると、4.14用に作成され使用されます。ところでbuildlog-filesを見るとkernel-module-x-tables4.13でもビルドになりましたが、このバージョンはまったく使われていません。


アップデート2:

pokyを最新のrockoバージョンにアップデートし、カーネルを4.19.13にアップグレードしましたが、iptablesなしで画像が正常に動作します。エラーはまだ存在しますが、少し変更されました。いくつかのiptablesモジュールに4.14カーネルモジュールを再インストールしようとしましたが、今4.14.24-stable必要な他のメタレイヤでこのカーネルバージョンを見つけました。

ただし、ビルドログに基づいてyoctoでビルドされた4.19.13モジュールをインストールする必要があります。

その他の制限により、4.16+ カーネルが必要です。残念ながら、4.14.24しか使用できません。

ベストアンサー1

これらのパッケージは、アップストリームソースで同期状態を維持しないようです。あなたのオプションは、4.13互換パッケージのソースを見つけるか(現在のツリーの外側でパッケージオプションを提供しますが、あなたの投稿はターゲットプラットフォームを表していません)、4.14ソースに更新することです。

別のオプションは、iptablesの要件を1.6より前のバージョンに戻すことです。

おすすめ記事