如何使Raspberry Pi默认使用外部USB声卡


17

有谁知道如何更改声卡启动优先级?

所有教程都告诉我进行编辑/etc/modprobe.d/alsa-base.conf,但是Raspbian Jesse中缺少该文件。


即将在Google上
投票

Answers:


10

您要查找的文件位于/usr/share/alsa/alsa.conf。它不alsa-base.conf只是alsa.conf

所有相关文本都在该文件中,只需运行即可sudo nano /usr/share/alsa/alsa.conf将默认声卡更改为1或您更喜欢的任何一个,显然0为默认值,这样一来,我也从表示... load card-specific configuration files(应要求)的行中删除了#,现在我有声音从我的cirrus声卡传来的声音在ras pi2上运行debian 8 jessie


1
我已经做了一些快速的格式修复。也许alsa配置文件相关部分的副本会让您的答案更好。
Journeyman Geek

2
“加载特定于卡的配置文件(应要求)”不是评论吗?
SILENT

确实只是注释,以解释其下方的代码块
PTS 2015年

是的 部分答案。这里没有足够的权威信息供我决定是否赞成。...而该行是不可执行的注释。并且该块本身未注释掉。
SDsolar

13

这在Raspbian Jessie上对我有用。

如果不需要板载音频芯片(即模拟输出或hdmi音频),请禁用它,然后USB音频设备可以成为主要设备:

  1. 禁用板载音频。
    • 打开/etc/modprobe.d/raspi-blacklist.conf并添加blacklist snd_bcm2835
  2. 允许USB音频设备为默认设备。
    • 打开/lib/modprobe.d/aliases.conf并注释掉行options snd-usb-audio index=-2
  3. 重启
    • sudo reboot
  4. 测试一下。
    • $ aplay /usr/share/sounds/alsa/Front_Center.wav

我更新了答案,以使用不同的策略来禁用板载音频。这样比较好,因为它不会破坏桌面音频小程序。
leif81

第一步至关重要,但我在其他任何地方都没有找到它。赞成。其余的已经过时了。2018年6月:已经知道进入/usr/share/alsa/alsa.conf并改变它说两者default.ctl.card 1default.pcm.card 1-再经过这一切,重新启动并尝试alsa -l只看到USB显示,它是卡#1。我安装mplayer了该测试,它很棒。他们已经锁定了这个问题的答案,所以就在这里。
SDsolar

@SDsolar很高兴提供帮助。虽然我不认为步骤2已过时?您可以通过另一种方式将设备设置为默认设备。很高兴知道。
leif81

这可能是版本问题。例如,我的16.04 LTS系统都立即从14.04安装CD进行了升级。因此,这两种工作方式都有痕迹,尤其是在v15下更改的引导过程中涉及的事情。在我的情况下,存在modprobe.d文件,但它们都是空白的。所以最后,如果您加上我的评论,则此答案可以同时显示两种方式。->绝对可以alsamixer通过将bcm2835列入黑名单来解决我最大的问题。我搜寻了高低,只有你的答案才是难题的最后一部分。TNX MCH
SDsolar

3

我在Raspbian(Jessie)的最新版本中遇到了问题。

有一个名为的文件aliases.conf/lib/modprobe.d其中包含options snd-usb-audio index=-2。该行将覆盖/etc/modprobe.d/文件,因此您需要更改该文件。用#号注释掉options snd-usb-audio index=-2

在“ /usr/share/alsa/alsa.conf我未注释“按需加载特定于卡的配置文件””中,并用以下内容替换了其内容.asoundrc:主文件夹中的隐藏文件:

pcm.!default plughw:Device
ctl.!default plughw:Device

该解决方案的缺点是不会出现桌面声音小程序。因此,要控制音量,请使用alsamixerUSB声音接收器上的应用程序或物理声音级别按钮。

参考资料:

  1. https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=124016&p=857433&hilit=usb+audio#p857433
  2. http://alsa.opensrc.org/Asoundrc#Default_PCM_device

2

Raspberry Pi StackExchange此处描述的方法对我有用。我正在运行Raspian Jessie。

新的信息是我必须创建一个新.conf文件而不要编辑/usr/share/alsa/alsa.conf

要对卡进行重新排序,我首先创建一个名为“文件”的文件/etc/modprobe.d/alsa base.conf. ,只要它以.conf结尾即可。然后,我添加了以下内容:

# This sets the index value of the cards but doesn't reorder.
options snd_usb_audio index=0   
options snd_bcm2835 index=1

# Does the reordering.
options snd slots=snd_usb_audio,snd_bcm2835

2

我对先前的回答给出了一些模棱两可的指示不满意,因此我想我会记录一个更清晰的解决方案。

这里的一篇好文章显示了如何测试您要使用的设备和卡。

aplay -l在插入USB设备之前和之后,找到您的硬件设备编号和卡号。

对于我的系统,USB设备列为 card 1: CODEC [USB Audio CODEC], device 0 ...

您可以确认设备正在使用

aplay -D hw:1,0 InsertYourWavFileHere.wav

确保将有效的wav音频文件复制到当前目录中,并进行适当的重命名。如果可行,则可以对这些值进行硬编码,以使它们将成为alsa处理的所有其他音频中播放的默认值(大多数情况下)

如其他人所述,要编辑默认值,请配置文件:

sudo nano /usr/share/alsa/alsa.conf

您将要更改的特定行只有几页。您可以使用Cntl + W进行搜索,也可以向下滚动。

更改:

defaults.pcm.card 0 defaults.pcm.device 0

至:

defaults.pcm.card 1 defaults.pcm.device 0

按Control + x保存配置文件,然后nano会要求您确认编辑,然后按Y和Enter。


当您说“将有效的wav音频文件复制到当前目录并适当地重命名”时,您能否解释您的意思?这是否指的aplay是“确认设备正在运行” 的命令?通过当前名称和完整路径指定有效的wav音频文件还不够吗?
G-Man说'Resstate Monica''De​​c

@ G-man是的,通过完整或有效路径指定任何wav音频文件应该没问题。在我的特定示例中,我曾经使用过,InsertYourWavFileHere.wav但是./audio/test.wav如果您在名为test.wav的音频子目录中有一个wav文件,则可以轻松地替换它。如果真是这样,那么它也 aplay -D hw:1,0 ./audio/test.wav 应该工作。
topher217

0

更改alsa.conf(defaults.ctl.card 1 defaults.pcm.card 1)和(load card-specific configuration files (on request))之后,您必须修改asoundrc文件并放入:

pcm.!default { type hw card 0 }
pcm.default.card 1.

会没事的


0

我在这里给出了完整的文章,涵盖了以上所有内容以及更多内容。包括清除ALSA配置文件中的一些误解和陷阱。

相关的要点是禁用被调用的Broadcom音频模块snd_bcm2835,并确保snd_usb_audio仅加载该模块。这可以通过两种方式之一完成。

  • /boot/config.txt文件中
  • 在模块黑名单文件中。

然后将您的ALSA配置设置为指向snd_usb_audio索引。


-1

我已经尝试过很多人对配置更改的建议。Kodi继续将音频输出到hdmi。我终于发现Kodi在System | 音频,您可以选择要输出到哪个音频卡!一看就很明显。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.