前回のmeta-ultra96v2をwifi動作(+bluetooth, i2c, usb対応)させた話。 お手本はultra96v2向けのpetalinux projectで生成されるもの。
改訂版のmeta-ultra96v2はここ。 ビルド用のrepoはここだけど、時間が立つとこの記事に記載以上のものが追加される予定。(主にros2関係) petlainux-image-minimal-ultra96hwのビルドで同じものが生成されるようにはしておく。
今回はimageを新しく作成している。petalinux-image-minimalをコピーし、 必要なイメージをappendしている。 wifiだけ動かすつもりがどうせだからとHW動かすのに必要そうなものを乗せて、 petalinux-image-minimal-ultra96v2hwというimageを新しく作成した。
Wifi設定
CORE_IMAGE_EXTRA_INSTALL_appendで必要なパッケージを追加していく。 ultra96-ap-setupが必要そうなので、追加したが、エラーとなった。
対象の機能はCOMPATIBLE_MACHINEでultra96-zynqmpが指定されているため、 ultra96v2-zynqmpはCOMPATIBLEではないとのことであった。
ポイントはmeta-ultra96v2/conf/machine/ultra96v2-zynqmp.confに、 MACHINEOVERRIDES =. "ultra96-zynqmp:"を指定することだった。 これによってultra96v2-zynqmpのMACHINE設定はultra96-zynqmpとしても扱われるようになるため、 ultra96-zynqmp向けの設定を利用することができるようになる。 派生開発を行う際に非常に有用だなと思った。
他に必要となりそうなwilc,wilc3000-fw,wpa-supplicantとethtoolとbluetooth,i2c,usb関連ファイルを追加した。 Wifiは使えると便利なので確認したけどbluetooth,i2c,usbは使う時が来たときに確認する。
sdイメージへのファイル追加
実機動作させる際にpetalinux-image-minimal-ultra96v2hw-ultra96v2-zynqmp.wic.qemu-sdを使用しても 立ち上がらなかったので中を除いてみるとboot.binが無い様だった。
meta-ultra96v2/conf/machine/ultra96v2-zynqmp.confのIMAGE_BOOT_FILESにboot.binを追加して事なきを得た。 こうしておくと以下のようにsdのデバイスに対してddするだけでよくなるので便利。 この方法だとroot領域拡張するには少し工夫がいるので注意は必要。
dd if=<build_directory>/tmp/deploy/images/petalinux-image-minimal-ultra96v2hw-ultra96v2-zynqmp.wic.qemu-sd of=/dev/sdX
準備
https://github.com/Xilinx/yocto-manifests に記載の通り、repo環境を整える。
curl -k https://storage.googleapis.com/git-repo-downloads/repo > repo
chmod a+x repo
sudo mv repo /usr/local/bin/
manifestを取得し、yocto環境を整える
cd <petalinux-project-path>
repo init -u http://github.com/akira-nishiyama/petalinux-ros2-manifests -b main
repo sync
source setupsdk
この後環境を整える。 build/conf/local.confを開き、末尾のコメントアウトされている部分を編集する。 xsaは指定しないとエラーになるかも。(デフォルト設定があるかどうかよく知らない) QB_TAP_OPTはお好みで。
HDF_EXT_ultra96v2-zynqmp = "xsa"
HDF_BASE_ultra96v2-zynqmp = "file://"
HDF_PATH_ultra96v2-zynqmp = "<xsa-file-path>/<yourdesign.xsa>"
QB_TAP_OPT_forcevariable = "-netdev tap,id=net0,ifname=tap0"
もしも適当なxsaが無い場合はこれを使用してxsa生成すると良いかも。 5a685e1e648a6ba7814c3b99ba6bafd71ceab74bが記事作成時点のデータとなっている。 以下のようにしてxsaが得られる。 windows環境で動くようにはしていないのであしからず。
cd
git clone https://github.com/akira-nishiyama/vivado_cmake_helper.git
gic clone https://github.com/akira-nishiyama/ultra96v2_4z
source <path>/<to>/Vivado/2019.2/settings.sh
source vivado_cmake_helper/setup.sh
cd ultra96v2_4z
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=<xsa-file-path>
make
make install
ビルド
設定したら今度は以下のコマンドを発行。
cd <petalinux-project-path>/build
MACHINE=ultra96v2-zynqmp bitbake petalinux-image-minimal-ultra96v2hw
動作確認
ddでwic.qemu-sdを書き込み動作。 シリアルを確認するとrootでログインしているのが確認できる。 wifiの電波も飛んでいるので、接続の上、以下のコマンドで192.168.2.1にsshでrootアクセス可能なことを確認した。
ssh 192.168.2.1 -l root
0 件のコメント:
コメントを投稿