[alsa-devel] Digital Input on ALC3661 (from laptop HDMI IN) not working under Linux
Oliver Freyermuth
o.freyermuth at googlemail.com
Mon Feb 2 20:26:21 CET 2015
Am 02.02.2015 um 08:05 schrieb Raymond Yau:
>
>>
>> >> I have an Alienware 17 laptop (sometimes called M17RX5) which has a
>> > Realtek ALC3661.
>> >>The problem I describe here should also be valid for the Alienware 18
>> > (all the late 2013 models, which are still the most current). At least
>> > some scattered forum reports suggest so.
>> >
>> >>The card works almost perfect in Linux, but one functionality is
>> > missing: The laptop features an HDMI input, and the Realtek card is
>> > supposed to take care of the incoming digital audio.
>> > This works fine in Windows, but in Linux, I only get the video and the
>> > audio stays missing.
>> >
>> >> Here you can find my alsa-info:
>>
>>http://www.alsa-project.org/db/?f=0a0502e49212a0436a30fde9d4ee56163bbc2ebc
> <http://www.alsa-project.org/db/?f=0a0502e49212a0436a30fde9d4ee56163bbc2ebc>
>> >
>> > The only digial input is node 0x0a
>> >
>> > Try hda-jack-retask to change node 0x1f with pin default [Jack]
> digital In
>>
>> Thanks a lot for your suggestion!
>> I tried, 0x0a stays as "not present" but I can select it in alsa-mixer
>> as expected. Sadly, I can only record silence.
>> Also setting Jack Detection to "Present" in the advanced overrides of
>> hdajackretask did not help.
>
> http://git.alsa-project.org/?p=alsa-tools.git;a=blob;f=hdajackretask/README;hb=HEAD
>
> You have to select "show unconnected pin" and "advanced override"
>
> Change the pin default of node 0x1f to 0x3c61130 [Jack] SPDIF In
>
> Set as boot default and reboot
>
> Digital capture device 1 will be created after you fix the pin default
> of node 0x1f
>
> Turn on iec958 capture switch and try
>
> arecord -D IEC958:CARD=PCH -f dat -v test.wav
Thanks a lot for your continued help!
Here's what I did - the sad news, I still record only silence:
1. use hdajackretask as you explained, apply as boot default.
2. I got the following files:
/etc/modprobe.d/hda-jack-retask.conf (below the automatic comment):
options snd-hda-intel
patch=hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw
/lib64/firmware/hda-jack-retask.fw:
[codec]
0x10ec0668 0x102805aa 0
[pincfg]
0x12 0x99a30140
0x14 0x90170110
0x15 0x0321101f
0x16 0x03211020
0x18 0x40030008
0x19 0x03a11030
0x1a 0x411111f0
0x1b 0x411111f0
0x1d 0x41000001
0x1e 0x411111f0
0x1f 0x03c61130
It contains exactly the line 0x1f 0x03c61130, so I hope I clicked
correctly in the GUI.
3. After reboot, I see in dmesg (I assume this means it worked):
[ 6.021374] snd_hda_intel 0000:00:1b.0: Applying patch firmware
'hda-jack-retask.fw'
[ 6.021468] snd_hda_intel 0000:01:00.1: Disabling MSI
[ 6.021471] snd_hda_intel 0000:01:00.1: Applying patch firmware
'hda-jack-retask.fw'
[ 6.022749] snd_hda_intel 0000:00:1b.0: irq 29 for MSI/MSI-X
4. I activate S/PDIF capture in alsamixer (IEC958 is not shown there,
but S/PDIF appeared new after the change).
5. arecord -L tells me at the end:
iec958:CARD=PCH,DEV=0
HDA Intel PCH, ALC3661 Digital
IEC958 (S/PDIF) Digital Audio Output
6. I run, as suggested:
arecord -D iec958:CARD=PCH -f dat -v test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz,
Stereo
Hooks PCM
Its setup is:
stream : CAPTURE
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 24000
period_size : 6000
period_time : 125000
tstamp_mode : NONE
period_step : 1
avail_min : 6000
period_event : 0
start_threshold : 1
stop_threshold : 24000
silence_threshold: 0
silence_size : 0
boundary : 6755399441055744000
Slave: Hardware PCM card 1 'HDA Intel PCH' device 1 subdevice 0
Its setup is:
stream : CAPTURE
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 24000
period_size : 6000
period_time : 125000
tstamp_mode : NONE
period_step : 1
avail_min : 6000
period_event : 0
start_threshold : 1
stop_threshold : 24000
silence_threshold: 0
silence_size : 0
boundary : 6755399441055744000
appl_ptr : 0
hw_ptr : 0
But I get only silence, I tried to first attach the HDMI + switch to the
video and start recording when everything is connected (i.e. when I
would hear audio in Windows).
I also tried to just record with the HDMI-cable connected and audio
coming in (but not switched to video - in this case, I would hear
nothing in Windows, but the audio should still arrive).
Both cases, I record just silence.
Any further ideas?
Thanks a lot for your assistance!
>
>> >
>> > Node 0x1f [Pin Complex] wcaps 0x400681: Stereo Digital
>> > Pincap 0x00000020: IN
>> > Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
>> > Conn = 1/8, Color = Black
>> > DefAssociation = 0xf, Sequence = 0x0
>> > Misc = NO_PRESENCE
>> > Pin-ctls: 0x20: IN
>> > Unsolicited: tag=00, enabled=0
>> > Power states: D0 D1 D2 D3 EPSS
>> >
>> >>In Windows, I observe the HDMI-IN audio routing to the speakers is only
>> > done if the Realtek Audio Service is running. In Linux, I observe
>> > keypress-events when I either switch manually to the HDMI-in signal
> and also
>> > if a new signal is detected (something (the UEFI?) injects a keypress
>> > then).
>> > I assume the service in Windows catches these events and changes
>> > "something" in the Realtek Audio Settings. I see no special recording
>> > device in Windows, nor any explicit HDMI-input setting, nor any related
>> > setting in the driver. Dell links a standard Realtek driver in their
>> > support section.
>>
>
More information about the Alsa-devel
mailing list