Cách tạo Raspberry Pi sử dụng thẻ âm thanh USB bên ngoài làm mặc định


17

Có ai biết làm thế nào để thay đổi ưu tiên khởi động card âm thanh?

Tất cả các hướng dẫn đều bảo tôi chỉnh sửa /etc/modprobe.d/alsa-base.conf, nhưng tập tin bị thiếu trong Raspbian Jesse .


Upvote sắp xuất hiện ngay trong Google - tháng 6 năm 2018
SDsolar

Câu trả lời:


10

Các tập tin bạn đang tìm kiếm nằm ở /usr/share/alsa/alsa.conf. Nó không được gọi alsa-base.confalsa.conf

Tất cả văn bản có liên quan trong tệp đó chỉ cần chạy sudo nano /usr/share/alsa/alsa.confthay đổi card âm thanh mặc định thành 1 hoặc bất cứ thứ gì bạn thích rõ ràng là 0 mặc định vì vậy không phải là tôi cũng đã xóa # khỏi dòng có ghi ... load card-specific configuration files(theo yêu cầu) và bây giờ tôi có âm thanh phát ra từ thẻ âm thanh cirrus của tôi đang chạy debian 8 jessie trên ras pi2


1
Tôi đã thực hiện một vài sửa lỗi định dạng nhanh. Có lẽ một bản sao của phần có liên quan của tệp cấu hình alsa sẽ làm cho câu trả lời của bạn tốt hơn nữa.
Journeyman Geek

2
Không phải là "tải các tệp cấu hình dành riêng cho thẻ (theo yêu cầu)" một nhận xét?
Silic

Đây thực sự chỉ là một bình luận để giải thích khối mã bên dưới nó
PTS

Vâng. Câu trả lời một phần. Không đủ thông tin có thẩm quyền ở đây để tôi quyết định nâng cấp. ... Và dòng đó là một bình luận không thể thực thi được. Và bản thân khối không được bình luận.
SDsolar

13

Điều này làm việc cho tôi trên Raspbian Jessie.

Nếu bạn không cần chip âm thanh trên bo mạch (tức là đầu ra analog hoặc âm thanh hdmi), hãy tắt nó và sau đó thiết bị âm thanh USB có thể trở thành thiết bị chính:

  1. Vô hiệu hóa âm thanh trên tàu.
    • Mở /etc/modprobe.d/raspi-blacklist.confvà thêm blacklist snd_bcm2835.
  2. Cho phép thiết bị âm thanh USB là thiết bị mặc định.
    • Mở /lib/modprobe.d/aliases.confvà nhận xét ra dòngoptions snd-usb-audio index=-2
  3. Khởi động lại
    • sudo reboot
  4. Kiểm tra nó ra.
    • $ aplay /usr/share/sounds/alsa/Front_Center.wav

Tôi đã cập nhật câu trả lời để sử dụng một chiến lược khác để vô hiệu hóa âm thanh trên bo mạch. Cách này tốt hơn vì nó không phá vỡ applet âm thanh trên máy tính để bàn.
leif81

Bước đầu tiên rất quan trọng nhưng tôi đã không tìm thấy nó ở bất cứ nơi nào khác. Upvote. Phần còn lại đã lỗi thời. Tháng 6 năm 2018: Đã biết đi vào /usr/share/alsa/alsa.confvà thay đổi nó để nói cả hai default.ctl.card 1default.pcm.card 1- sau đó, hãy khởi động lại và thử alsa -lchỉ xem USB hiển thị và đó là thẻ số 1. Tôi đã cài đặt mplayerđể thử nghiệm và nó là tuyệt vời. Họ đã khóa câu hỏi này để trả lời vì vậy đây là.
SDsolar

@SDsolar Vui mừng khi được giúp đỡ. Mặc dù tôi không nghĩ Bước 2 đã lỗi thời? Bạn có một cách khác để đặt thiết bị làm mặc định. Tốt để biết.
leif81

Nó có thể là một vấn đề phiên bản. Chẳng hạn, cả hệ thống 16.04 LTS của tôi đều được nâng cấp ngay lập tức từ đĩa CD cài đặt 14.04. Vì vậy, có những dấu tích của cả hai cách làm việc, đặc biệt là những thứ liên quan đến quá trình khởi động đã thay đổi theo v15. Trong trường hợp của tôi, các tệp modprobe.d tồn tại nhưng chúng đều trống. Vì vậy, cuối cùng thật tốt khi câu trả lời này cho thấy cả hai cách nếu bạn đưa vào nhận xét của tôi. -> Bạn chắc chắn đã giải quyết vấn đề lớn nhất của tôi bằng alsamixercách đưa vào danh sách đen bcm2835. Tôi đã tìm kiếm cao và thấp và chỉ có câu trả lời của bạn có mảnh ghép cuối cùng. TNX MCH
SDsolar

3

Tôi đã gặp vấn đề với điều này trên các phiên bản gần đây của Raspbian (Jessie).

Có một tập tin được gọi aliases.conftrong /lib/modprobe.dđó có chứa dòng options snd-usb-audio index=-2. Dòng đó ghi đè lên các /etc/modprobe.d/tệp, vì vậy bạn cần thay đổi tệp đó. Nhận xét với # dòngoptions snd-usb-audio index=-2

Trong /usr/share/alsa/alsa.conftôi chưa nhận xét các tệp cấu hình dành riêng cho thẻ tải (theo yêu cầu), và tôi cũng thay thế nội dung .asoundrclà một tệp ẩn trong thư mục nhà của bạn bằng:

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

Nhược điểm của giải pháp này là applet âm thanh máy tính để bàn sẽ không xuất hiện. Vì vậy, để kiểm soát âm lượng, hãy sử dụng alsamixerứng dụng hoặc các nút mức âm thanh vật lý trên khóa âm thanh USB.

Tài liệu tham khảo cho việc này:

  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

Phương pháp được mô tả ở đây tại Raspberry Pi StackExchange làm việc cho tôi. Tôi đang chạy Raspian Jessie.

Thông tin mới là tôi phải tạo một .conftệp mới và không chỉnh sửa /usr/share/alsa/alsa.conf:

Để sắp xếp lại các thẻ của mình, 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ứ thứ gì bạn muốn miễn là nó kết thúc bằng .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

2

Tôi không hài lòng với các câu trả lời trước đó đưa ra một số hướng dẫn mơ hồ, vì vậy tôi đoán rằng tôi sẽ ghi lại một giải pháp rõ ràng hơn.

Một bài đăng tốt ở đây cho thấy cách kiểm tra thiết bị và thẻ nào bạn đang tìm cách sử dụng.

Tìm số thiết bị phần cứng và số thẻ của bạn bằng cách sử dụng aplay -ltrước và sau khi cắm thiết bị usb của bạn vào.

Đối với hệ thống của tôi, thiết bị usb được liệt kê là card 1: CODEC [USB Audio CODEC], device 0 ...

Bạn có thể xác nhận thiết bị đang hoạt động với

aplay -D hw:1,0 InsertYourWavFileHere.wav

Đảm bảo sao chép tệp âm thanh wav hợp lệ vào thư mục hiện tại của bạn và đổi tên một cách thích hợp. Nếu điều này hoạt động, thì bạn có thể mã hóa các giá trị này sao cho chúng sẽ trở thành mặc định cho phát trong số tất cả các âm thanh khác được xử lý bởi alsa (hầu hết các trường hợp)

Để chỉnh sửa giá trị mặc định của bạn, tập tin cấu hình alsa như những người khác đã nêu:

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

Các dòng cụ thể bạn sẽ muốn thay đổi là một vài trang. Bạn có thể tìm kiếm với Cntl + W hoặc chỉ cần cuộn xuống.

Thay đổi:

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

Đến:

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

Lưu tệp cấu hình bằng cách nhấn control + x, sau đó nano sẽ yêu cầu bạn xác nhận các chỉnh sửa của mình và bạn nhấn Y và Enter.


Bạn có thể giải thích những gì bạn đang nói khi bạn nói không, sao chép một tập tin âm thanh wav hợp lệ vào thư mục hiện tại của bạn và đổi tên một cách thích hợp? Đây có phải là đề cập đến aplaylệnh để xác nhận thiết bị đang hoạt động không? Nó không đủ tốt để chỉ định một tệp âm thanh wav hợp lệ theo tên hiện tại và đường dẫn đầy đủ của nó?
G-Man nói 'Phục hồi Monica'

@ G-man Có, chỉ định bất kỳ tệp âm thanh wav nào theo đường dẫn đầy đủ hoặc hợp lệ của nó sẽ ổn. Trong ví dụ cụ thể của tôi, tôi đã sử dụng InsertYourWavFileHere.wavnhưng điều này có thể dễ dàng được thay thế bằng ./audio/test.wavnếu bạn có tệp wav trong thư mục con âm thanh có tên test.wav chẳng hạn. Nếu đó là trường hợp, thì aplay -D hw:1,0 ./audio/test.wav cũng nên làm việc như vậy.
topher217

0

Sau khi thay đổi alsa.conf ( defaults.ctl.card 1 defaults.pcm.card 1) và ( load card-specific configuration files (on request)), bạn phải sửa đổi tệp asoundrc của mình và đặt vào:

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

Sẽ ổn thôi


0

Tôi đã đưa ra một bài viết đầy đủ ở đây bao gồm tất cả những điều trên và nhiều hơn nữa. Bao gồm xóa một số hiểu lầm và cạm bẫy trong các tệp cấu hình ALSA.

Điều cần thiết có liên quan là vô hiệu hóa mô-đun âm thanh Broadcom được gọi snd_bcm2835và đảm bảo rằng chỉ snd_usb_audiođược tải nắm tay và duy nhất. Điều này có thể được thực hiện theo một trong hai cách.

  • Trong /boot/config.txttập tin
  • Trong tập tin danh sách đen mô-đun.

Sau đó đặt cấu hình ALSA của bạn để trỏ đến snd_usb_audiochỉ mục.


-1

Tôi đã thử rất nhiều đề xuất của mọi người về thay đổi cấu hình. Kodi tiếp tục đưa âm thanh ra hdmi. Cuối cùng tôi đã thấy rằng Kodi có một thiết lập trong System | Âm thanh cho phép bạn chọn thẻ âm thanh nào để phát ra! Vì vậy, rõ ràng một khi bạn nhìn thấy nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.