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

ric*_*rdr 5 audio ubuntu alsa

我正在HP Pavilion dm1 4200sg上网本上运行Ubuntu 12.04 studio。这几乎是全新安装。我尝试通过运行启动Jackd服务器

jackd -R -d alsa
Run Code Online (Sandbox Code Playgroud)

它失败,输出:

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
Run Code Online (Sandbox Code Playgroud)

运行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
Run Code Online (Sandbox Code Playgroud)

我发现跑步

jackd -R -d alsa -d hw:1
Run Code Online (Sandbox Code Playgroud)

jackd成功启动。我想配置我的机器,使hw:1是默认选项(即,使原始的'jackd -R -d alsa'命令起作用)。谁能帮我做到这一点?

我试过编辑〜/ .asoundrc为

pcm.!default {
     type hw
     card 1
}

ctl.!default {
     type hw
     card 1
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。我现在不在我的舒适范围内,任何帮助将不胜感激。谢谢!

ric*_*rdr 4

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

我首先进入终端:

sudo lshw -c multimedia
Run Code Online (Sandbox Code Playgroud)

它显示了两张卡正在使用哪些模块。他们都使用“snd-hda-intel”。

然后我进入终端:

cat /proc/asound/card0/id
cat /proc/asound/card1/id
Run Code Online (Sandbox Code Playgroud)

其中卡 0 和卡 1 的 ID 分别为“Generic”和“SB”。

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

options snd-hda-intel id=SB index=0
options snd-hda-intel id=Generic index=1
Run Code Online (Sandbox Code Playgroud)

重新启动机器后,卡“SB”被加载到位置 0 并

jackd -R -d alsa
Run Code Online (Sandbox Code Playgroud)

正确启动。