am335x-pru0-fwは何をしますか?

am335x-pru0-fwは何をしますか?

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バージョンを使用してください。

おすすめ記事