LoginSignup
9
4

More than 3 years have passed since last update.

Ultra96 ボードで petalinux 2019.1 を動かすメモ

Last updated at Posted at 2019-06-29

久々の投稿です。

悪戦苦闘の結果、ultra96 (version 1 基板?) 上で petalinux 2019.1 を動かすことが出来たので、メモします。

準備

Vivado で ultra96 ボードを選択し(ultra96ボードの定義ファイルは avnet の GitHub に落ちています)、プロジェクトを作成します。
ZynqMP+ を配置し、クロックのみ配線します(右側に出ているクロック端子を左の2つのクロック端子に直配線します)。

通常通り bitstream 作成を行い、Vivado SDK にエクスポートします。この時、bitstream を含むようにします。

wpa_supplicant.conf の編集

自分が使う AP に合わせて wpa_supplicant.conf を編集します。

wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
        key_mgmt=WPA-PSK
        ssid="[ssid]"
        psk=[wpa_passphrase で生成したパスワード]
}

などとすれば OK。

petalinux プロジェクトの作成

コンソール
petalinux-create -t project -n ultra96 --template zynqMP

などとして、ultra96 プロジェクトを作成します。ultra96 ディレクトリに cd で移動します。

コンソール
petalinux-config --get-hw-description=[Vivado SDK 用の hdf を含むディレクトリ]

でハードウェア情報を取り込みます。

デバイスツリーの修正

デバイスツリーを修正して、デバイスが認識できるようにします。
微妙な感じですが、私が適用したものをここに置きましたのでご参考までに。
device-tree ディレクトリ以下にあるファイルを ultra96/project-spec/meta-user/recipes-bsp/device-tree 以下にコピーします。

kernel の設定

nl80211 および wl18xx デバイスドライバを利用するように設定します。petalinux のデフォルトでは両方とも使用するようになっているようです。

roofs への iw, wifi-firm アプリの追加

コンソール
petalinux-create -t apps -n iw
petalinux-create -t apps -n wifi-firm

を実行し、iw, wifi-firm アプリを生成します。これらはここに置いてある iw, wifi-firm で置き換えます。

ちなみに iw は iw-5.0 の Makefile を bitbake 用に書き換えたものです。wifi-firm は TI wl18xx 用のファームウェアです。公式版はここに置いてあることになっていますが、私の手持ちとちょっと違うようです。

ライブラリ、アプリの有効化

コンソール
petalinux-config -c rootfs

を実行し、libnl, wpa_supplicant, iw, wifi-firm を選択する。

コンパイル実行

petalinux-build を叩いて bitbake を起動する。気長に待つ。
途中ワーニングが出るが気にしない。

BOOT.BIN 作成と SD イメージ作成

後は SD カードを用意していつもの作業。
SD カードは fdisk で予めパーティションを2つ切っておきます。

コンソール
cd images/linux
petalinux-build --force --boot --fsbl zynqmp_fsbl.elf --fpga system.bit --pmufw pmufw.elf --u-boot
sudo mount -t vfat /def/sdd1 /mnt
sudo cp BOOT.BIN image.ub /mnt
sudo umount /mnt
sudo dd if=rootfs.ext4 of=/dev/sdd2
sudo e2fsck -f /dev/sdd2
sudo resize2fs /dev/sdd2

私の環境では SD カードスロットが /dev/sdd* でしたが、それぞれの環境に合わせてください。
SD カードを ultra96 に挿して起動すると wifi が起動するはずです。

お疲れ様でした。

問題点

  1. wpa_supplicant.conf-sane はコンフィグ時に定期的に監視しているらしく、いつの間にか置き換え前の内容に戻ってしまう場合があります。
    その場合は改めて wpa_supplicant.conf-sane をコピーして bitbake を起動し直すと良いようです。

  2. ユーザは最初 root しかいませんが、ssh は root によるログインを禁止しているため、結局ネットワーク経由では最初は入れません!
    この問題は新たなユーザを useradd 等で作成すると解決できますが、bitbake 時に予め作っておく方法が分かりませんでした。

9
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4