Theo ALSA Wiki , dưới tiêu đề có nội dung " Cách chọn một đơn hàng cụ thể cho nhiều thẻ được cài đặt ", nó ghi như sau:
Thẻ nào là thẻ số 0, 1 và theo mặc định được xác định theo thứ tự tải mô-đun. Điều này đặc biệt hữu ích để chọn thẻ nào trở thành thẻ mặc định.
Về lý thuyết, do đó, có thể chọn thẻ nào trong số một số thẻ đã cài đặt trở thành thẻ 0, thẻ mặc định, bằng cách đảm bảo mô-đun trình điều khiển của nó được tải trước. (Lưu ý: điều này giả định rằng mỗi card âm thanh yêu cầu một trình điều khiển khác nhau. Nếu bạn có hai soundcard cùng loại, vui lòng bỏ qua phần tiếp theo.)
Có hai cách để đạt được điều này, tùy chọn "cũ" index của mô-đun trình điều khiển thẻ và tùy chọn khe cắm (và mới) thay thế của mô-đun snd.
Nó ghi lại hai phương pháp để làm điều này:
- Phương thức "index =" cũ hơn
- Phương thức "slot =" mới hơn
Cái trước là những gì hướng dẫn cài đặt Jasper khuyên dùng. Đó cũng là điều mà phần lớn các giải pháp ngoài kia nói về. Tuy nhiên, đây là phương pháp cũ hơn và có thể không hoạt động trên các hình ảnh Raspbian Jessie hiện tại.
Một sự kết hợp của cả hai phương pháp là những gì làm việc cho tôi.
Trước hết, hãy kiểm tra xem thứ tự thẻ của bạn đã được nạp vào:
$ cat /proc/asound/modules
0 snd_bcm2835
1 snd_usb_audio
Đếm thẻ bắt đầu từ 0
đó mặc định bcm2835
được tải trước và thẻ USB có mic của tôi được tải thứ hai.
Để sắp xếp lại các thẻ của tôi, trước tiên tôi tạo một tệp có tên /etc/modprobe.d/alsa-base.conf
. Nó có thể được đặt tên bất cứ điều gì bạn muốn miễn là nó kết thúc .conf
. Sau đó tôi đã thêm vào như sau:
# 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
Các ý kiến nên giải thích những gì mỗi dòng làm. Khi bạn làm điều đó, có vẻ như bạn phải khởi động lại máy để nó hoạt động.
Khi bạn khởi động lại, bạn sẽ có thể ghi lại một số âm thanh bằng thẻ mặc định mà giờ là mic của bạn:
$ arecord temp.wav
và sau đó phát nó, chỉ định thẻ là 1 và thiết bị là 0, nơi đầu ra loa của bạn sẽ là:
aplay -D plughw:1,0 temp.wav
Tôi ban đầu chỉ thêm dòng với slots
nó. Điều này làm việc trong việc biến thẻ USB của tôi thành thẻ mặc định nhưng nó đã bị lập chỉ mục sai. Ví dụ, một khi tôi đã làm điều đó, đây là giao diện của tôi /proc/asound/modules
:
$ cat /proc/asound/modules
1 snd_usb_audio
2 snd_bcm2835
Lý tưởng nhất, nó sẽ trông như thế này:
0 snd_usb_audio
1 snd_bcm2835
Và đó là lý do tại sao tôi cũng sử dụng index
phương pháp để đạt được điều này.