PetalinuxでWavファイルを再生する(2)
動作確認とTIPS
公開日:2023年7月31日
前回記事 で Zybo Z7-20 用 Petalinux のconfigが完了したので、buildおよび動作確認してみます。
実行
$ petalinux-build
$ petalinux-package --boot --force --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot
以前の記事 同様、microSDカードにPetalinux イメージを書き込みます。
※既に一度 Petalinux 用に書き込んだSDカードであれば、パーティション再設定は不要なので、"microSDカードのパーティション設定" はスキップし、イメージ書き込みができます。
さらに、音声再生のための wavファイルを用意し、これもSDカードへコピーしておきます。
$ sudo cp sample.wav /media/(username)/ROOT/home/petalinux/
その後、シリアルターミナル上でログインを行います(こちらも以前の記事を参考にしてください)。ログイン後、
##Petalinux側
$ aplay -v -D speexrate sample.wav
で音声再生できれば成功です。
speexrate を指定しているのは、 前回記事 でサウンドカードドライバでの周波数変換の対応が出来ていないためです。明示的に変換指定をしています。
TIPS
aplay エラー
aplay を実行した際、
##Petalinux側
ALSA lib ../../alsa-lib-2.3.6.2/rc/confmisc.c:165(snd_conig_get_card) Cannot get card index for 0
というエラーが出た場合、サウンドデバイスがロードされていないことが原因で /dev/snd/ 以下に必要なデバイス (controlC0) が見つけられずにエラーを出している可能性があります。
カーネルの設定 ( petalinux-config -c kernel ) でのモジュール有効化の際に、 [\*] ではなく [M] を指定している可能性があります([M] は起動時の自動ロードがされない)。 [\*] と設定し直すか、次のコマンドで OS 起動後に明示的にロードしましょう。
##Petalinux側
$ modprobe zybo_p1_snd_card
※文中に記載されている各種名称、会社名、商品名などは各社の商標もしくは登録商標です。