मेरे पास एक एसर एस्पायर वन 522 नेटबुक है जिसमें एक इंटेल एचडीए साउंड कार्ड है जो कॉनेक्सेंट सीएक्स20584 चिपसेट पर आधारित है। हालाँकि केडीई स्टार्ट करते समय आउटपुट साउंड करता है, फ्लैश और शायद कई अन्य ऐप जो /dev/dsp
डिवाइस की तलाश करते हैं, वे इसके माध्यम से साउंड आउटपुट नहीं कर सकते, एक बहुत बेकार मल्टीमीडिया अनुभव प्रदान करते हैं।
जब मैंने अपने ALSA प्लेबैक उपकरणों के साथ जाँच की aplay -l
, तो मैं देख सकता था कि मुख्य ऑडियो डिवाइस को 0 के बजाय कार्ड 1 के रूप में पहचाना जा रहा है, जिसे HDMI के बजाय हुक किया जा रहा था:
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: CONEXANT Analog [CONEXANT Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
इस तरह से मुझे एक मिल जाता है /dev/dsp1
, लेकिन ऐसा लगता है कि अधिकांश ऐप केवल उपयोग करने के लिए हार्डकोडेड हैं /dev/dsp
, इसलिए मैं कार्ड इंडेक्स का आदान-प्रदान करने का कोई तरीका ढूंढ रहा हूं। एएलएसए प्रलेखन के माध्यम से कुछ शोध के बाद, मैंने एचडीएमआई और इंटेल एचडीए द्वारा उपयोग किए गए ड्राइवर मॉड्यूल को इस /etc/modprobe.d/asound.conf
फ़ाइल के साथ अनुक्रमित करने की कोशिश की :
options snd cards_limit=2
options snd-hda-codec-conexant index=0
options snd-hda-codec-hdmi index=1
options snd slots=snd-hda-codec-conexant,snd-hda-codec-hdmi
हालांकि यह काम नहीं किया, और एक उत्तर के लिए मेरी अंतहीन खोज पर कुछ भूल गए लिंक के आधार पर, ऐसा इसलिए लगता है क्योंकि ये index
निर्देश मॉड्यूल लोडिंग ऑर्डर को समन्वित करने वाले हैं, लेकिन ये दोनों Conexant और HDMI कोडेक एक ही इंटेल HDA का उपयोग करने के लिए होते हैं ड्राइवर मॉड्यूल, इसलिए यह इस मामले में लागू नहीं होता है।
उस ने कहा, क्या सही कार्ड इंडेक्स को परिभाषित करने का कोई तरीका है जब डिवाइस समान एएलएसए चालक मॉड्यूल (इंटेल एचडीए इस मामले में) का उपयोग करते हैं?