
BeagleBone Blackを起動すると、次のエラーが発生します。これはどういう意味ですか?am335x-pru0-fw
何をすべきか?
カーネルバージョン:
$ uname -a
Linux arm 4.1.15-ti-rt-r40 #1 SMP PREEMPT RT Fri Jan 8 09:44:57 UTC 2016 armv7l armv7l armv7l GNU/Linux
dmesg
丸太:
[ 21.428541] remoteproc1: Direct firmware load for am335x-pru0-fw failed with error -2
[ 21.428582] remoteproc1: failed to load am335x-pru0-fw
[ 21.445653] remoteproc1: Direct firmware load for am335x-pru0-fw failed with error -2
[ 21.445674] remoteproc1: request_firmware failed: -2
[ 21.450762] pru-rproc 4a334000.pru0: rproc_boot failed
[ 21.594364] pru-rproc: probe of 4a334000.pru0 failed with error -2
BeagleBone Blackにadau1761オーディオコーデックを統合しようとしています。サウンドカードを作成しました。しかし、音は再生されません。上記のエラーはこれに関連していますか?
答え1
カーネルログメッセージ
これらのカーネルログメッセージはPRUのRemoteprocドライバ(prussまたはpru_rprocを介して)によって印刷され、ドライバは理想的には/ lib / firmwareに存在する必要があるPRUファームウェアをロードしようとします。
PRUは使用中のI2Sバスを妨害しないでください。実際にロードするファームウェアがないため、起動すらできません。
カーネルログからこれらのメッセージを削除するには、/etc/modprobe.d/fbdev-blacklist.conf ファイルに次の行を追加します。
blacklist pru_rproc
blacklist pruss_intc
blacklist pruss
I2Sバスの使用
実際にI2を調べたことはありませんが、読んだ内容に基づいていくつかの提案をすることができます。
I2Sバスを使用するには、正しいピンで正しいマルチプレクサモードを使用する必要があります。
まず、HDMIを無効にしないでください。メインプロセッサは実際にこのI2Sバスを使用してオーディオをHDMIチップに転送します。 ARMからHDMIチップへのパスでのみこのバスを使用する必要があります。 HDMIが無効になると、ARMはHDMIが唯一のユーザーであるI2Sバスにオーディオデータを出力できないことがあります。
この説明を使用して、ボードに使用するピンを決定します。
- どのピンを使用したいのかを知ったら、次を使用してください。 このテーブルはここにあります。このピンのマルチプレクサモードを決定します。私はあなたのカバレッジソースを注意深く見ていませんが、それについての専門家ではありませんが、あなたのカバレッジソースに正しい多重化パターンがあることを2回確認してください。
その後、次のようなものを使用できます。
$ cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins
ピンの結果マルチプレクサを見てください。
編集する:
最新のカーネルにアップデートしてください。これは通常多くの助けになります。ビーグルボーンの構成とデータをそのまま維持するapt-getを使用してこれを行うことができます。
特にリアルタイムカーネルが必要ない場合は、非RTバージョンを使用してください。