Các thiết bị ALSA như thế nào là hw: 0,0 có nghĩa là gì? Làm thế nào để tôi tìm ra để sử dụng?


63

Tôi đã tìm kiếm nhiều lần và không thể tìm thấy bất kỳ lời giải thích nào về "hw: 0,0" nghĩa là gì. Làm cách nào để xác định số lượng thẻ âm thanh USB của tôi? MPD yêu cầu tôi nhập một cái gì đó như thế này:

audio_output {
        type                    "alsa"
        name                    "Sound Card"
        device                  "hw:0,0"     # optional
        format                  "44100:16:2" # optional
}

Nếu tôi thực hiện "alsamixer -c 1" thì nó sẽ mở điều khiển âm lượng của thẻ USB, nhưng điều đó thực sự không giúp tôi.

Tôi có thể tìm danh sách tên / số thiết bị trên hệ thống của mình ở đâu? Họ có kiên cường để thay đổi phần cứng? Nếu tôi loại bỏ thẻ 2, thẻ 3 có trở thành thẻ 2 không? Có những cách khác để xác định thiết bị? Tôi có thể tìm tài liệu cho bất kỳ điều này ở đâu?


Vì vậy, những gì đã kết thúc làm việc?
quack quixote

Chuyển sang PulseAudio làm việc, loại. :) Nhưng tôi đã phải đăng nhập cục bộ và sửa đổi định tuyến âm thanh. Sau đó, tôi quyết định MPD hút và bỏ cuộc.
endolith

Trên thực tế "hw: 1,0" có thể đã hoạt động, nhưng nó cho biết thiết bị đang được sử dụng (bởi Pulse?) Tôi đã không thử phương pháp khác, nhưng hy vọng điều này sẽ giúp người khác.
endolith

Câu trả lời:


48

Câu trả lời của JohnT cho một cơ bản tốt. Tôi sẽ theo dõi nó với cách tìm các thiết bị trên hệ thống của bạn. Sử dụng "aplay -l" để nhận danh sách các thiết bị trên hệ thống của bạn. Các hw: X, Y đến từ bản đồ này của phần cứng của bạn - trong trường hợp này, X là thẻ số, trong khi Y là thiết bị số.

$ aplay -l   # note lower-case "L" option
**** List of PLAYBACK Hardware Devices ****
card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM]
  Subdevices: 3/3
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2

Vì đây là những thiết bị USB có thể không phải lúc nào cũng có cùng số thiết bị mỗi lần chúng được cắm, nên thiết bị hw: X, Y có thể thay đổi. Câu trả lời đơn giản nhất là, đối với một hệ thống máy tính để bàn, hãy thử các công cụ cấu hình Gnome / KDE / Xfce và xem liệu chúng có đủ thông minh để nhận các thay đổi hay không.

Cách phức tạp, nếu bạn không làm điều này với một hệ thống máy tính để bàn, sẽ ... thú vị. Bạn có thể thoát khỏi việc sử dụng các bí danh thiết bị thay vì "hw: X, Y" - đây là những gì đầu ra của "aplay -L" hiển thị. Công cụ "Something: CARD = FOO, DEV = Y" là bí danh và có thể sẽ không thay đổi giữa các plugin thiết bị khác nhau, trong đó X trong "hw: X, Y" có thể. (Giả sử rằng bạn đang sử dụng cùng một khóa USB mỗi lần.)

$ aplay -L
default:CARD=CK804
    NVidia CK804, NVidia CK804
    Default Audio Device
front:CARD=CK804,DEV=0                 # hw:0,0
    NVidia CK804, NVidia CK804
    Front speakers
surround40:CARD=CK804,DEV=0            # hw:0,1
    NVidia CK804, NVidia CK804
    4.0 Surround output to Front and Rear speakers

Vì vậy, lệnh aplay của bạn sẽ trở thành "aplay -D front: CARD = CK804, DEV = 0 somefile.wav" và bạn có thể sử dụng cùng một tên devic trong .asoundrc của bạn.


Nếu bạn cần một cái gì đó ổn định hơn ở mức thấp hơn, các thiết bị kernel thực tế, udev là thứ bạn muốn - đó là hệ thống cho phép cắm các thiết bị nóng vào hệ thống. Bạn có thể viết các quy tắc cho udev (và đây là trang man ) sẽ cho phép các thiết bị có cùng tên khi được cắm.


3
Aha! Tôi đã nói aplay -L, không cung cấp đầu ra giống như aplay -l. thở dài
endolith

1
Làm thế nào bạn có thể nói đó surround40:CARD=CK804,DEV=0hw:0,1? Theo như tôi có thể nói thì nó được hw:0,0đề cập đến DEV=0, nhưng trong một cấu hình khác (4 kênh chứ không phải 2 như trong front:CARD=CK804,DEV=0).
zpon

19

hw:0,0chỉ định thiết bị mặc định, trên card âm thanh mặc định. Để truy cập thiết bị đầu tiên của soundcard thứ hai, bạn sẽ chỉ định hw:1,0. Đây là những quy định trong của bạn .asoundrc. Thêm về tất cả những điều này ở đây .


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.