当我启动 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
我正在尝试将 adau1761 音频编解码器与 BeagleBone Black 集成。我创建了一个声卡。但无法播放任何声音。上述错误与此有关吗?
答案1
内核日志消息
这些内核日志消息由 PRU 的 Remoteproc 驱动程序(通过 pruss 或 pru_rproc)打印出来,并且驱动程序正在尝试加载 PRU 固件,理想情况下该固件应位于 /lib/firmware。
PRU 不应干扰您正在使用的 I2S 总线。实际上,它们甚至没有启动,因为没有固件可以加载到它们上。
如果您仍然想删除内核日志中的这些消息,只需在 /etc/modprobe.d/fbdev-blacklist.conf 文件中添加以下行:
blacklist pru_rproc
blacklist pruss_intc
blacklist pruss
使用I2S总线
我实际上并没有研究过 I2s,但我可以根据我所读到的内容向您建议一些内容:
现在,要使用 I2S 总线,您需要在右侧引脚上使用正确的复用器模式。
首先,您可能不应该禁用 HDMI。主处理单元实际上使用此 I2S 总线将音频传输到 HDMI 芯片。您只需在从 ARM 到 HDMI 芯片的路线之间使用该总线。如果禁用 HDMI,ARM 可能不会将音频数据输出到 I2S 总线上,对于 ARM 来说,HDMI 是唯一的用户。
请使用此描述来决定您希望在板上使用哪些引脚。
- 一旦您知道您想要使用的引脚,请使用 这张表在这里决定这些引脚上的多路复用器模式。我没有仔细看过你的覆盖源,我也不是这方面的专家,但请检查两次你的覆盖源中是否有正确的多路复用模式。
然后你可以使用类似的东西:
$ cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins
查看引脚上产生的多路复用器。
编辑 :
请更新到最新的内核,这通常会有很大帮助。您可以使用 apt-get 来完成此操作,这将使 beaglebone 上的配置和数据保持完整。
如果您特别不想要实时内核,请使用非 RT 版本