如何配置JACK音频服务器以自动使用特定卡?

时间:2012-10-06 20:40:29

标签: audio ubuntu alsa

我在HP Pavilion dm1 4200sg上网本上运行Ubuntu 12.04工作室。这几乎是一个全新的安装。我尝试通过运行

来启动jackd服务器
jackd -R -d alsa

并且输出失败:

JACK server starting in realtime mode with priority 10
control device hw:0
control device hw:0
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
control device hw:0
ALSA: Cannot open PCM device alsa_pcm for playback. Falling back to capture-only mode
Cannot initialize driver
JackServer::Open() failed with -1
Failed to open server

运行aplay -l会提供以下输出:

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

我通过运行

找到了
jackd -R -d alsa -d hw:1

jackd成功启动。我想配置我的机器,以便hw:1是默认选项(即使原始'jackd -R -d alsa'命令工作)。任何人都可以帮我这样做吗?

我已经尝试将〜/ .asoundrc编辑为

pcm.!default {
     type hw
     card 1
}

ctl.!default {
     type hw
     card 1
}

但这似乎不起作用。我在这里离开了我的舒适区,任何帮助都会受到赞赏。谢谢!

3 个答案:

答案 0 :(得分:2)

我找到了解决方法。它不配置JACK服务器,但会改变声卡的列表顺序。

我第一次进入终端:

sudo lshw -c multimedia

显示了两张卡使用的模块。他们都使用'snd-hda-intel'。

然后我进入了终端:

cat /proc/asound/card0/id
cat /proc/asound/card1/id

分别给卡0和1提供了'通用'和'SB'。

然后我将以下两行添加到文件'/etc/modprobe.d./alsa-base.conf'的末尾

options snd-hda-intel id=SB index=0
options snd-hda-intel id=Generic index=1

重新启动机器后,卡'SB'被加载到位置0和

jackd -R -d alsa

正确启动。

答案 1 :(得分:0)

  • 首先,打开alsa-base.conf: sudo gedit /etc/modprobe.d/alsa-base.conf

  • 找到以下行: “期权snd-hda-intel index = -2”
    并将其更改为: “#options snd-hda-intel index = -2”

重新启动计算机,然后重试。您可能必须为程序设置正确的声音设备(alsa)。

答案 2 :(得分:0)

首先,在终端窗口中,运行以下命令: cat / proc / asound / cards。 你会看到输出有点像这样:

 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfcef8000 irq 16
 1 [DSP            ]: H-DSP - Hammerfall DSP
                      RME Hammerfall DSP + Digiface at 0xfcff0000, irq 20
 2 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfe57c000 irq 32

每张声卡的“名称”在方括号内。

有了这些信息,您现在可以将特定设备称为,例如hw:DSP,现在您可以执行命令:

jackd -d alsa -d hw:DSP

这就是全部,取自: http://www.jackaudio.org/faq/device_naming.html