This service is available only in Japanese-language.

Yocto 全般

vmdkとwic.vmdk

お世話になっております。
Bitbake実行後に生成されたイメージに関しての質問です。

Mortyで以下のような定義をmachine.confに記載してvmdkを出力していました。
IMAGE_FSTYPES = "vmdk"
上記をVirtualBoxで起動させて使用できることは確認していました。

その後、yoctoのベースをrockoまでアップデートし、
IMAGE_FSTYPESの仕様が変更になっていたため、以下のように記載を変更しました。
IMAGE_FSTYPES = "wic.vmdk"
そうしたところ、VirtualBoxでmortyでうまくできていたやり方で起動させようとすると、
no bootable medium
と表示されてしまい起動できない様子です。

Vmdkとwic.vmdkに何か差異があるかご存知でしょうか?

VirtualBoxを用いた起動手順は以下です。
1.VirtualBoxを起動させる
2.右上の「新規」を選択
3.名前を適当に設定して(e.g. hogehoge)、タイプとバージョンを以下に設定して次へ
タイプ:Linux
バージョン:Other Linux(32-bit)
4.メモリーのサイズを設定(適当)
5.ハードディスクは「仮想ハードディスクを追加しない」を選択。作成を押すと警告が出ますが「続ける」を選択
6.VirtualBoxマネージャーで左側の一覧から生成したマシンを右クリックで設定を選択
7.ストレージを選択して、ストレージデバイスの設定の下のほうにある追加削除のためのアイコン(4つならんでいるやつ)の内、一番左を選択し、
「SATAコントローラを追加」を選択
8.追加されたSATAで、ハードディスクにプラスマークの付いたアイコンを選択し、先ほど用意したvmdkを追加する
9.ここまでできたら起動させる。

よろしくお願いいたします。

bitbake の各コマンドの効能について

お世話になります。

自分の作成したプログラム(bbファイルを作成し、パッケージとしてIMAGE_INSTALL_appendに含めています)で boost を使用する必要があり warrior に boost v1.69.0 のbbがありましたのでこれを採用していました。
ところが boostが提供する spawn に問題があるとわかり、 zeus-next の boost v1.71.0 のbbを自身のレイヤーに組み込んでこちらを使用することとなりました。結果としてOSイメージを見る限りうまく組み込めたようです。
その後、事情により v1.69.0 に戻すこととなりましたので、組み込んだbbを削除し、v1.69.0 のbbを復活させました。

その後のbitbake で boost を組み込んでいる自身のプログラムがリンクエラーを起こすようになりました。ログを確認する限り、もう使用しないはずの v1.71.0 の共有ライブラリをリンクしようとしていることがわかりました。
boost の状態としては build/tmp/work/aarch64-poky-linux/boost/1.69.0-r0 となっており、v1.71.0 の成果物ではないようです。

上記を解消するために、いわゆる boost を make clean してオブジェクトファイル等の中間ファイルや関係するリンク事情などまっさらの状態にするイメージで bitbake -c cleanall パッケージ名(自分のプログラム/core-image-baseとも試行) を実行してみましたがリンクエラーは変わらず、でした。

できるだけかみ砕いて教えていただきたいのですが、下記の2つはなにをどこまで掃除してくれるものなのでしょうか?
①bitbake -c cleanall core-image-base
②bitbake -c cleansstate core-image-base

また、今回のように依存関係まで含めてまっさらの状態から bitbake を行いたい場合はどのように対処するべきでしょうか。
# do_fetchはさすがにもう行わないものとして。

以上、よろしくお願いいたします。

Bitbakeビルド処理の流れと各処理に関して

bitbakeのCI/CDへの導入を検討しているのですが、bitbakeコマンド具体的な内部処理の流れがわからず困っております。
bitbakeコマンド実行時の、タスク処理について伺わせてください。

・bitbakeコマンドを実行するとdo_fetch、do_unpack、dopatchなどのタスクが順で処理がされていくと考えているのですが、
各タスクの実行順番と処理内容について教えて頂けませんか?

・各タスクによって、どのディレクトリにどのようなファイルができあがるのか、教えて頂けませんか?

ROOTFSにファイルコピーおよびモジュールの自動ロードする方法についてご教授ください

ROOTFSにファイルコピーおよびモジュールの自動ロードをさせたいためにレシピファイルを作成し、
bitbakeコマンドを実行した結果、ROOTFSに何も反映されません。
作成内容に誤りがあるのか、それとも他にいい方法があるのかアドバイスをいただけないでしょうか。

【実現したいこと】
 予め生成したファイルをROOTFSに格納し、
 モジュール(*.ko)を自動ロードさせたい

【レシピファイル作成内容】
■フォルダーツリー
 build-qt5
 downloads
 sources
  ├base
  │ └conf
  |   └bblayers.conf(BBLAYERS変数に新規追加するmeta-wlanを追加)
  └poky
    ├bitbake
    (中略)
    ├meta-skeleton
    └meta-wlan ★本ディレクトリ以降新規追加(meta-skeletonベースに変更)
      ├conf
      │ └layer.conf(内容は"skeleton"を"wlan"に置換したのみ)
      │
      └recipes-wlan
        └images
         ├files(コピー元の無線LAN関連モジュールおよび設定ファイルを格納)
         │ ├wf200.pds
         │ ├wfm_wf200_C0.sec
         │ ├wfx.ko
         │ ├hostapd.conf
         │ └wpa_pass.conf
         │
         └wlan.bb(下記参照)

■wlan.bb内容
----------------------------------------------------------------
LICENSE="Original"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"

FILESEXTRAPATHS_prepend := '${THISDIR}:'

SRC_URI += "file://files/fileA
SRC_URI += "file://files/fileB
SRC_URI += "file://files/fileC
SRC_URI += "file://files/fileD
SRC_URI += "file://files/fileE

inherit module kernel-module-split

do_install() {
install -d "${D}/lib/firmware"
install -m 644 "${WORKDIR}/files/fileA" "${D}/lib/firmware"
install -m 644 "${WORKDIR}/files/fileB" "${D}/lib/firmware"

install -d "${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless"
install -m 644 "${WORKDIR}/files/fileC" "${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless"

install -d "${D}/etc"
install -m 644 "${WORKDIR}/files/fileD" "${D}/etc"

install -d "${D}/home"
install -m 644 "${WORKDIR}/files/fileE" "${D}/home"
}

FILES_${PN} = "/lib/firmware/fileA /lib/firmware/fileB /lib/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/fileC /etc/fileD /home/fileE"

KERNEL_MODULE_AUTOLOAD += "module_name"
[EOF]
----------------------------------------------------------------

openembedded ベースのBSPのバージョンを簡単に知る方法は

社内からの質問です。

Yocto Project ベースのBSPの場合、documentation/poky.ent や poky/meta-poky/conf/distro/poky.conf を
見ることでYocto Projectでのバージョンを確認することができますが、openembedded-coreをベースとした
BSPの場合バージョンを簡単に調べる方法は無いでしょうか?

レシピのエラー

第三者作成のレシピをbitbakeしています。
以下のエラーがでて解消ができません。
キャストが明示的に記載されていないことでエラーがになっていることはわかっています。
レシピの書き方などの知識がなく、レシピに記載されている何の変数がobject で何ならstrなのかも区別がつきません。
レシピ内で関数や変数の型を判断する方法はありませんでしょうか?

++++++++++++++++
Exception: TypeError: Can't covert 'NonType' object to str implicitly.
++++++++++++++++

ターゲットマシン上にプログラム構築環境をインストールしたい

社内で問い合わせが有りました。

ターゲットボード上にプログラムの構築環境をインストールしたい場合、どのように指定すれば良いのか?

yocto で作成したOS中(fstabで指定された)ルートデバイスが見当たらない

質問させていただきます(私が他で質問しているものとは関連性はないと思います)。
機種としましては「http://www.iwavejapan.co.jp/product/imx6UL%20SODIMM.html」となります。

yocto BSPでOSイメージを作成し、これを対象のNANDに焼いて起動して中身をチェックしました。
以下がfstabのルートデバイスの指定です。
 /dev/root / auto defaults 1 1
--------
mountの結果(一部分)
 iWave-G18M:~# mount
 rootfs on / type rootfs (rw)
--------

しかし、/dev の中に /dev/rootfs が見当たりません。これはいったいどういうことでしょうか?

※通常のx86系linuxであれば、たとえば /dev/sda1 がルートデバイスになることは存じております。

Yoctoって、どう読むの?

Yoctoの発音を教えてください。

ページ