Làm thế nào để tạo một thiết bị card âm thanh giả trong máy chủ Linux?


20

Tôi muốn chạy chương trình Linux yêu cầu soundcard trên máy chủ không có soundcard. Có thể tạo ra một soundcard giả? Tôi hoàn toàn không biết gì về hệ thống âm thanh Linux. Hãy chỉ cho tôi đi đúng hướng.

Tôi đã làm theo ví dụ này: http://alsa.opensrc.org/.asoundrc nhưng không được.

PS: Có một câu hỏi tương tự: Làm thế nào để tạo một thiết bị âm thanh ảo trong Linux? . Nhưng điều này hoàn toàn khác trong bối cảnh người dùng đang tạo bí danh cho soundcard đã có sẵn.


Chỉnh sửa:
Tôi muốn một thiết bị giả được tạo trong / dev / .. để bất kỳ ứng dụng nào cần thiết bị âm thanh sẽ tìm thấy nó.
Tôi hoàn toàn không biết, làm thế nào alsa hoạt động. Vì vậy, tôi chỉ đơn giản là làm theo ví dụ. Tôi đã tạo /etc/asound.conf với:

pcm.card0 {
    type hw
    card 0
}
ctl.card0 {
    type hw
    card 0
}

aplay -Lđưa cho tôi:

null
    Discard all samples (playback) or generate zero samples (capture)

Vâng, có một thứ như thiết bị âm thanh "giả" trong Alsa. Nhưng bạn cần giải thích chính xác những gì "không giải quyết được" cho bạn. Thông báo lỗi, không được phát hiện bởi phần mềm, v.v. Ngoài ra, mục tiêu "chương trình linux" có sử dụng ALSA không? Bởi vì nếu không, việc làm rối với các tệp cấu hình ALSA sẽ không cung cấp cho bạn nhiều.
haimg

Tôi muốn một thiết bị âm thanh ảo được tạo trong / dev / ...
ssapkota

Xem chỉnh sửa để biết thêm.
ssapkota

Câu trả lời:


14

Bạn cần tải một trình điều khiển âm thanh giả . Vui lòng xem Alsa Wiki để biết thông tin chi tiết, nhưng đây là những điều cơ bản:

  1. Tải trình điều khiển:

    modprobe snd-dummy; modprobe snd-pcm-oss; modprobe snd-mixer-oss; modprobe snd-seq-oss

  2. Có tệp .asoundrc thích hợp (bạn có nó được bảo hiểm)

  3. Cấu hình tự động tải các trình điều khiển. Thêm cái này vào /etc/modules.conf:

    Phần # OSS / miễn phí - thẻ # 1
    bí danh âm thanh-khe-0 snd-thẻ-0
    alias âm thanh-dịch vụ-0-0 snd-trộn-oss
    bí danh âm thanh-dịch vụ-0-1 snd-seq-oss
    bí danh âm thanh-dịch vụ -0-3 snd-pcm-oss
    bí danh âm thanh-dịch vụ-0-8 snd-seq-oss
    bí danh âm thanh-dịch vụ-0-12 snd-pcm-oss

Thực tế có khá nhiều điều liên quan, tôi khuyên bạn nên truy cập trang Wiki ở trên để được giải thích chi tiết hơn.


Một câu hỏi. Có thể tạo trình điều khiển thiết bị nhân Linux mô phỏng card âm thanh sang Linux rồi alsa, OSS, v.v.? Tôi đang đọc thiết bị Linux và tự hỏi nếu nó có thể.
deFreitas

Mô-đun cốt lõi cho trình sắp xếp chuỗi dường như hiển thị dưới dạng snd-seq-dummy bây giờ.
DBrown

11

Tôi cũng gặp vấn đề với điều này khi cố gắng để thiết bị Dummy Sound hoạt động trên Raspberry Pi chạy Raspian (phái sinh của Debian). Pi on có đầu ra âm thanh nhưng không có đầu vào và tôi muốn sử dụng một ứng dụng tìm kiếm cả hai, mặc dù tôi chỉ cần một đầu ra (PJSIP).

Tuy nhiên, thông tin trên không hoạt động với tôi và trang WiKi cũng không. Sau khi nói chuyện với một người dùng trong danh sách gửi thư ALSA, họ đề nghị rằng thông tin trên trang WikI đã hết hạn, tuy nhiên, họ đã cho tôi biết về cách giải quyết vấn đề này.

Đầu tiên, tôi chỉ cần tải mô-đun 'snd-dummy' bằng cách sử dụng:

sudo modprobe snd-dummy

Tuy nhiên, thiết bị không có mặt sau khi khởi động lại. Trên Pi, mô-đun này có thể được tải thông qua tệp '/ etc / mô-đun', chỉnh sửa tệp này để tải trình điều khiển tạo ra kết quả mong muốn:

sudo nano /etc/modules

Tệp / etc / mô-đun của tôi chỉ đơn giản trông như thế này:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
snd-dummy

Vì vậy, trình điều khiển mặc định tải trước, sau đó trình điều khiển Dummy tải thứ hai. Công việc hoàn thành!

Chúc may mắn

Chris


@logoff bạn có nghĩ sẽ làm việc trong một container docker cũng như trên rasberry pi không?
thataustin

@thataustin Tôi đoán bạn cần cấp quyền truy cập vào phần cứng cho bộ chứa Docker. Tôi khuyên bạn nên thử trước mà không cần Docker và nếu bạn thành công, hãy thử với Docker.
đăng xuất

0

Tôi cũng sử dụng nó cho Linphone trên RaspberryPi, vì nó yêu cầu thiết bị đầu vào, tuy nhiên tôi phải thêm fake_buffer = 0 param, nếu không, thiết bị chụp giả sẽ thu được nhiều tiếng ồn ngẫu nhiên, và điều đó thật kỳ lạ ... bạn có thể làm nó như:

sudo modprobe snd-dummy fake_buffer=0
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.