Tôi đã mua một card âm thanh USB. Tôi muốn thiết lập máy tính để bàn Linux của mình để nó thích thiết bị USB hơn, nếu nó được cắm và tự động chuyển đổi khi thiết bị được (chưa) cắm. Có thể, và làm thế nào?
Tôi đã mua một card âm thanh USB. Tôi muốn thiết lập máy tính để bàn Linux của mình để nó thích thiết bị USB hơn, nếu nó được cắm và tự động chuyển đổi khi thiết bị được (chưa) cắm. Có thể, và làm thế nào?
Câu trả lời:
Tìm thẻ của bạn với
$ cat /proc/asound/cards
Để có được tên thẻ ALSA hợp lệ, hãy sử dụng aplay
:
$ aplay -l
và sau đó tạo /etc/asound.conf
bằng cách sau:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
Thay thế "thẻ 1" bằng số hoặc tên thẻ của bạn được xác định ở trên.
Ngoài ra, bạn có thể thay đổi thứ tự thẻ của mình để thẻ USB của bạn sẽ là thẻ 0 và nó sẽ hoạt động mà không cần chỉnh sửa asound.conf
.
defaults.pcm.card 1 defaults.ctl.card 1
forum.palemoon.org/viewtopic.php?t=9661#p66016
đây là phương pháp để chọn card âm thanh mặc định trong Alsa. Bạn có thể muốn cài đặt Alsa cho phương thức này để hoạt động nếu bạn đang sử dụng Pulse Audio.
mèo / Proc / asound / mô-đun
sẽ liệt kê các mô-đun âm thanh của bạn. Đầu ra của lệnh sẽ như thế này (ví dụ):
0 snd_hda_intel
1 snd_usb_intel
bạn có thể dễ dàng hiểu cái nào là card âm thanh usb của bạn từ phía trên.
nano /etc/modprobe.d/alsa-base.conf
chỉnh sửa alsa-base.conf này theo cách sao cho thẻ ưa thích của bạn có chỉ số = -2 / 0 và thẻ khác có chỉ số = -1 / 1 (gắn với -2 và -1)
tùy chọn snd_hda_intel index = -1
tùy chọn snd_usb_intel index = -2
trong trường hợp này thiết bị usb là thiết bị ưa thích.
nếu bạn có hai thẻ differnt có cùng tên từ đầu ra, như thế này:
tùy chọn snd_hda_intel
tùy chọn snd_hda_intel
ban hành lệnh này để tìm ra cái nào:
mèo / Proc / asound / thẻ
sau đó chỉnh sửa các mô-đun theo cách này:
tùy chọn snd_hda_intel enable = 1 index = 0
tùy chọn snd_hda_intel enable = 0 index = 1
khởi động lại có thể là cần thiết. vì vậy bạn có thể phải chuyển đổi thủ công các card âm thanh của mình.
Tôi cũng không thể nhận đầu ra từ thiết bị USB của mình. cat /proc/asound/modules
Đầu ra của tôi là:
0 snd_hda_intel
1 snd_hda_intel
2 snd_usb_audio
Tôi đã thử cả hai câu trả lời được mô tả ở đây mà không giúp được gì (với nhiều kết hợp chỉ mục và rất nhiều khởi động lại). Tôi nghĩ vấn đề là thiết bị USB của tôi khởi tạo sau khi khởi động. Dù thế nào đi nữa, vì vậy giải pháp làm việc của tôi là đưa vào danh sách đen 2 thiết bị âm thanh khác bằng cách cập nhật /etc/modprobe.d/blacklist.conf
dưới dạng:
blacklist snd_hda_intel
Câu trả lời từ Matija Nalis chỉ có một nửa làm việc cho tôi (alsamixer đã thay đổi mặc định, nhưng những thứ khác như aplay và firefox vẫn bướng bỉnh với mặc định sai). Ví dụ này từ wiki debian làm việc cho tôi (trên máy tính xách tay CentOS-6):
defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0
Đối với hồ sơ: ALSA là tài liệu kém, và đặc biệt là công cụ rất đơn giản này như chọn thẻ nào để sử dụng là quá khó. Tệ hơn, nó dường như thay đổi giữa các hệ thống. Ngoài ra, tôi đã nhận được thẻ "Generic_1" từ aplay -l trong đó nó xuất hiện dưới dạng "thẻ 1" trong danh sách. Những người khác dường như đang sử dụng nó, vì vậy tôi cũng làm như vậy ... điều đó có nghĩa là tôi không thể nói.
Mặc dù bạn có thể thay đổi thẻ alsa mặc định bằng cách chỉnh sửa .asoundrc hoặc hệ thống asound.conf, có một số vấn đề quan trọng với phương pháp này.
Nó dễ vỡ và yêu cầu khởi động lại ứng dụng để được vinh danh.
Nếu bạn muốn chuyển đổi thẻ một cách nhanh chóng thì bạn thực sự cần phải sử dụng một máy chủ âm thanh trừu tượng hóa các ứng dụng từ soundcard một cách chính xác như pulseaudio.
Đây là một biến thể của câu trả lời của Matija Nalis và Tel. Đây là những gì làm việc cho tôi:
~ / .asoundrc
defaults.pcm.!card 1
defaults.ctl.!card 1
(Odroid C0, Debian Jessie, âm thanh HDMI dưới dạng thẻ 0 và USB Sound Card là thẻ 1 theo aplay -l)
Lưu ý: các phương thức khác không hoạt động với tôi, vì / Proc / asound / mô-đun không tồn tại và không có mô-đun âm thanh hdmi nào trong danh sách đen hoặc được đặt ở mức ưu tiên thấp, nó được nhúng vào kernel. Có vẻ như tôi đã phải biên dịch lại kernel mà không có hỗ trợ âm thanh hdmi để vô hiệu hóa nó hoàn toàn.