कैसे अलसा एक पसंदीदा ध्वनि डिवाइस स्वचालित रूप से लेने के लिए?


36

मैंने एक USB साउंड कार्ड खरीदा है। मैं अपने लिनक्स डेस्कटॉप को स्थापित करना चाहूंगा ताकि यह यूएसबी डिवाइस को प्राथमिकता दे, अगर यह प्लग किया गया है और डिवाइस के (स्वचालित रूप से) प्लग किए जाने पर स्वचालित रूप से स्विच हो जाता है। क्या यह संभव है, और कैसे?


डेबियन इसके बजाय पल्सीडियो का उपयोग करती है।
Braiam

जवाबों:


36

के साथ अपना कार्ड खोजें

$ cat /proc/asound/cards

मान्य ALSA कार्ड नाम पाने के लिए, उपयोग करें aplay:

$ aplay -l

और फिर /etc/asound.confनिम्नलिखित के साथ बनाएँ :

pcm.!default {
    type hw
    card 1
}

ctl.!default {
    type hw           
    card 1
}

ऊपर दिए गए अपने कार्ड की संख्या या नाम के साथ "कार्ड 1" बदलें।

वैकल्पिक रूप से, आप अपने कार्ड के आदेश को बदल सकते हैं , इसलिए आपका यूएसबी कार्ड कार्ड 0 होगा और यह संपादन के बिना काम करेगा asound.conf


2
मैंने आपके सुझाव की कोशिश की, लेकिन जब USB कार्ड अनप्लग हो जाता है, तो अंतर्निहित कार्ड में स्विच करने के बजाय ऑडियो पूरी तरह से काम करना बंद कर देता है।
पेट्र पुडलक

2
RPI2 का उपयोग करते हुए, इस समाधान ने मेरे लिए काम किया। बाकी सभी की कोशिश की, लेकिन जब तक मैंने ऐसा नहीं किया तब तक कुछ भी काम नहीं किया। (खदान पर "कार्ड 0" का उपयोग करना पड़ा)।
रोब गिब्बन्स

2
उपरोक्त कॉन्फ़िगरेशन का उपयोग करते हुए, palemoon पर youtube में ध्वनि मेरे लिए काम नहीं करती थी, इस कॉन्फ़िगरेशन ने काम किया: defaults.pcm.card 1 defaults.ctl.card 1 forum.palemoon.org/viewtopic.php?t=9661#p66016
aaditya1234

एक दिन के लिए अटक गया! और आपने अभी-अभी मेरी गांड बचाई है!
आलमीन जू

2
सामान्य लोगों के उत्तर में गूढ़ बैच प्रसंस्करण हैकिंग का उपयोग न करें। आउटपुट से कॉलम निकालने वाले एक-लाइनर को लिखने के बजाय, शब्दों में वर्णन करें कि पूर्ण आउटपुट में वांछित जानकारी कैसे ढूंढें।
स्ज़ेप्पन होल्सिज़ेस्की

16

यह अलसा में डिफ़ॉल्ट साउंड कार्ड के चयन की विधि है। यदि आप पल्स ऑडियो का उपयोग कर रहे हैं तो आप इस विधि के लिए अलसा को स्थापित करना चाह सकते हैं।

बिल्ली / proc / asound / मॉड्यूल

आपके ध्वनि मॉड्यूल को सूचीबद्ध करेगा। कमांड का आउटपुट इस तरह होगा (जैसे):

0 snd_hda_intel

1 snd_usb_intel

आप बहुत आसानी से समझ सकते हैं कि कौन सा ऊपर से आपका यूएसबी साउंड कार्ड है।

नैनो /etc/modprobe.d/alsa-base.conf

इस alsa-base.conf को इस तरह से संपादित करें कि आपके पसंदीदा कार्ड में एक इंडेक्स = -2 / 0 है और दूसरे कार्ड में इंडेक्स = -1 / 1 (स्टिक -2 और -1 के साथ है)

विकल्प snd_hda_intel इंडेक्स = -1

विकल्प snd_usb_intel इंडेक्स = -2

इस मामले में usb डिवाइस पसंदीदा डिवाइस है।

अगर आपके पास आउटपुट से एक ही नाम के दो अलग-अलग कार्ड हैं, जैसे:

विकल्प snd_hda_intel

विकल्प snd_hda_intel

इस आदेश को यह पता लगाने के लिए जारी करें कि कौन सा है:

cat / proc / asound / कार्ड

इस तरह से मॉड्यूल संपादित करें:

विकल्प snd_hda_intel सक्षम करें = 1 अनुक्रमणिका = 0

विकल्प snd_hda_intel सक्षम करें = 0 इंडेक्स = 1

रिबूट आवश्यक हो सकता है। इसलिए आपको अपने साउंड कार्ड को मैन्युअल रूप से स्विच करना पड़ सकता है।


"आउटपुट को संशोधित करने" से आपका क्या मतलब है? मैं आउटपुट को कैसे संशोधित कर सकता हूं?
पेट्र पुडलक

मैंने उत्तर में आवश्यक बदलाव किए हैं। इस संस्करण की शुरुआत करें। यह मदद करता है। यह तरीके आपके द्वारा उपयोग किए जाने वाले लिनक्स के स्वाद के अनुसार भिन्न हो सकते हैं।
अशिल्द्र

धन्यवाद। मैं सेटअप को कैसे सत्यापित कर सकता हूं? मैंने कार्ड की पहचान की, उपयुक्त विकल्पों को जोड़ा, रिबूट किया, लेकिन मुझे कोई भी बदलाव नहीं दिखता है - फिर भी आंतरिक (इंटेल) कार्ड पसंदीदा है।
पेट्र पुडलक

try> विकल्प snd-usb-Intel enable = 1 index = 0 (सक्षम करने के लिए)> विकल्प snd-hda-Intel enable = 0 index = 1 (अक्षम करने के लिए) या> विकल्प snd-hda-Intel enable = 0 index = 0> विकल्प snd-usb-Intel enable = 1 index = 1 और रिबूट
Ashildr

यानी, usb को enable = 0 या 1 का उपयोग करते हुए दूसरे को अक्षम करें, इसके विपरीत भी करें। मुझे यकीन नहीं है कि जो आपके लिए काम करेगा। आवश्यक है। मैं u yor समस्या हल करना चाहता हूं
Ashildr

4

मैं भी अपने USB डिवाइस से उत्पादन प्राप्त नहीं कर सका। मेरा cat /proc/asound/modulesआउटपुट था:

0 snd_hda_intel

1 snd_hda_intel

2 snd_usb_audio

मैंने यहाँ वर्णित दोनों उत्तर देने की कोशिश की है, जो मदद नहीं की (कई सूचकांक संयोजन और बहुत से पुनरारंभ के साथ)। मुझे लगता है कि समस्या मेरे USB डिवाइस को बूट-अप के बाद शुरू करने की थी। जो भी हो, इसलिए मेरा काम करने वाला समाधान अद्यतन करके अन्य 2 साउंड डिवाइस को ब्लैक लिस्ट कर रहा है /etc/modprobe.d/blacklist.conf:

blacklist snd_hda_intel

3

मतिजा नालिस के जवाब से केवल आधे ने मेरे लिए काम किया (अलसमीकर ने डिफ़ॉल्ट रूप से बदल दिया, लेकिन अनिल और फ़ायरफ़ॉक्स जैसी अन्य चीजें गलत तरीके से गलत डिफ़ॉल्ट के साथ अटक गईं)। डेबियन विकी के इस उदाहरण ने मेरे लिए काम किया (CentOS-6 लैपटॉप पर):

defaults.pcm.!card Generic_1
defaults.ctl.!card Generic_1
defaults.pcm.!device 0
defaults.ctl.!device 0

रिकॉर्ड के लिए: एएलएसए को खराब रूप से प्रलेखित किया गया है, और विशेष रूप से यह बहुत ही सरल सामान है जैसे कि कार्ड का उपयोग करना बहुत कठिन है। इससे भी बुरी बात यह है कि यह व्यवस्थाओं के बीच बदलाव है। इसके अलावा, मुझे उस "Generic_1" टैग को aplay -l से मिला जहां यह सूची में "कार्ड 1" के रूप में आता है। दूसरे लोग इसका इस्तेमाल करते दिख रहे थे, इसलिए मैंने भी वही किया ... इसका मतलब है कि मैं यह नहीं कह सकता।


1

जब आप संपादन .asoundrc या सिस्टम asound.conf द्वारा डिफ़ॉल्ट एल्सा कार्ड को बदल सकते हैं, तो इस दृष्टिकोण के साथ कुछ महत्वपूर्ण मुद्दे हैं।

यह नाजुक है, और सम्मानित होने के लिए एप्लिकेशन पुनरारंभ की आवश्यकता होती है।

यदि आप फ्लाई पर कार्ड स्विच करना चाहते हैं, तो आपको वास्तव में एक साउंडसेवर का उपयोग करने की आवश्यकता है जो साउंडकार्ड से एप्लिकेशन को सही ढंग से एब्सट्रैक्ट करता है जैसे कि पल्सेडियो।


Skype बीटा जैसे कुछ एप्लिकेशन हालांकि इसे अनदेखा करते हैं और डिफ़ॉल्ट ALSA कार्ड से कनेक्ट होते हैं। जब Skype एचडीए के बजाय एचडीएमआई पहला उपकरण है, तो स्काइप के लिए कोई ऑडियो नहीं है।
मैक्स एन

-1

यहां मतिजा नलिस और तेल के उत्तर का एक प्रकार है। इसी से मेरा काम बना है:

~ / .Asoundrc

defaults.pcm.!card 1
defaults.ctl.!card 1

(ओड्रोइड C0, डेबियन जेसी, एचडीएमआई ऑडियो कार्ड के रूप में 0 और यूएसबी साउंड कार्ड को कार्ड के रूप में 1 -प्ले -एल के अनुसार)

नोट: अन्य तरीके मेरे लिए काम नहीं करते थे, जैसे कि / proc / asound / मॉड्यूल मौजूद नहीं है और कोई hdmi ऑडियो मॉड्यूल को ब्लैकलिस्ट या कम प्राथमिकता में रखने के लिए नहीं है, इसे कर्नेल में एम्बेड किया गया है। ऐसा लगता है कि मैं इसे पूरी तरह से अक्षम करने के लिए hdmi ऑडियो समर्थन के बिना कर्नेल को फिर से जोड़ना होगा।


sudo modprobe $ soundcard_driver वह करेगा जो आप / proc / asound / मॉड्यूल के लिए चाहते हैं
linuxdev2013

@ linuxdev2013 आप ऐसे ड्राइवर को कैसे मॉडिफाई कर सकते हैं जो मोडप्रो-सक्षम नहीं है? जैसा कि ऊपर बताया गया है, यह एक मॉड्यूल नहीं है, यह कर्नेल में एम्बेडेड है।
Astooooooo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.