जब साउंड कार्ड और एचडीएमआई दोनों इंटेल एचडीए ड्राइवर का उपयोग करते हैं तो ध्वनि काम नहीं करती है। उनके डिवाइस लोडिंग ऑर्डर का आदान-प्रदान कैसे करें?


10

मेरे पास एक एसर एस्पायर वन 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 का उपयोग करने के लिए होते हैं ड्राइवर मॉड्यूल, इसलिए यह इस मामले में लागू नहीं होता है।

उस ने कहा, क्या सही कार्ड इंडेक्स को परिभाषित करने का कोई तरीका है जब डिवाइस समान एएलएसए चालक मॉड्यूल (इंटेल एचडीए इस मामले में) का उपयोग करते हैं?

जवाबों:


10

मुझे आखिरकार इस समस्या का जवाब दूसरे फोरम के इस पोस्ट के आधार पर मिला (संदर्भ के लिए "प्रयास 1 बी देखें")। इसके अनुसार, कोई मॉड्यूल आईडी को निर्दिष्ट कर सकता है, भले ही उपयोग किया गया ड्राइवर एक ही हो:

alias char-major-116 snd
alias snd-card-0 snd-hda-intel
alias snd-card-1 snd-hda-intel

options snd cards_limit=2

options snd-hda-intel id=SB index=0
options snd-hda-intel id=HDMI index=1

इस प्रकार सही कार्ड आदेश देने और उम्मीद के मुताबिक ध्वनि कार्य करना:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

इसी तरह के अन्य मामलों में आवेदन करने के लिए, आप /proc/asoundअपने कार्ड के लिए सहानुभूति का निरीक्षण कर सकते हैं, वे आपके वांछित मॉड्यूल आईडी होंगे:

$ ls -l /proc/asound/
total 0
lrwxrwxrwx 1 root root 5 Jan 26 19:19 HDMI -> card1
lrwxrwxrwx 1 root root 5 Jan 26 19:19 SB -> card0
dr-xr-xr-x 4 root root 0 Jan 26 19:19 card0
dr-xr-xr-x 3 root root 0 Jan 26 19:19 card1
-r--r--r-- 1 root root 0 Jan 26 19:19 cards
-r--r--r-- 1 root root 0 Jan 26 19:19 devices
-r--r--r-- 1 root root 0 Jan 26 19:19 hwdep
-r--r--r-- 1 root root 0 Jan 26 19:19 modules
dr-xr-xr-x 2 root root 0 Jan 26 19:19 oss
-r--r--r-- 1 root root 0 Jan 26 19:19 pcm
dr-xr-xr-x 2 root root 0 Jan 26 19:19 seq
-r--r--r-- 1 root root 0 Jan 26 19:19 timers
-r--r--r-- 1 root root 0 Jan 26 19:19 version
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.