Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Kernel 4 STILL broken...
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
The_Great_Sephiroth
Veteran
Veteran


Joined: 03 Oct 2014
Posts: 1395
Location: Fayetteville, NC, USA

PostPosted: Wed Mar 02, 2016 2:15 pm    Post subject: Kernel 4 STILL broken... Reply with quote

It has been ages since we got kernel 4 in Gentoo, and to this day the ALSA in kernel 4 breaks sound on my system. I get NOTHING unless I hook up external speakers. Since this is a laptop with built-in stereo speakers, this is an issue. I see no errors or ALSA-related output in my logs, and there are no new kernel options for my soundcard in the kernel configuration, so what gives? I have no clue how to troubleshoot this beyond masking all kernels >= 4.0, which is a bad solution. Where do I begin?
_________________
Ever picture systemd as what runs "The Borg"?
Back to top
View user's profile Send private message
Buffoon
Veteran
Veteran


Joined: 17 Jun 2015
Posts: 1074
Location: EU or US

PostPosted: Wed Mar 02, 2016 2:24 pm    Post subject: Reply with quote

I'd boot with some fairly new Linux liveCD and see if sound works.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 14169

PostPosted: Thu Mar 03, 2016 1:59 am    Post subject: Reply with quote

Sound works fine for me in kernel 4.1.x. Whatever is broken is limited to select systems. I suspect this is why no one has fixed it: no one who can fix it has been provided with an adequate bug report. Try to identify the specific kernel commit that breaks sound for you.
Back to top
View user's profile Send private message
The_Great_Sephiroth
Veteran
Veteran


Joined: 03 Oct 2014
Posts: 1395
Location: Fayetteville, NC, USA

PostPosted: Thu Mar 03, 2016 3:19 am    Post subject: Reply with quote

Every version of kernel 4 kills my internal speakers. There is no specific commit. It is kernel 4, period. Here is some output.
Code:

00:00.0 Host bridge [0600]: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub [8086:2a40] (rev 07)
        Subsystem: Dell Mobile 4 Series Chipset Memory Controller Hub [1028:0233]
        Kernel driver in use: agpgart-intel
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07)
        Subsystem: Dell Mobile 4 Series Chipset Integrated Graphics Controller [1028:0233]
        Kernel driver in use: i915
00:02.1 Display controller [0380]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a43] (rev 07)
        Subsystem: Dell Mobile 4 Series Chipset Integrated Graphics Controller [1028:0233]
00:19.0 Ethernet controller [0200]: Intel Corporation 82567LM Gigabit Network Connection [8086:10f5] (rev 03)
        Subsystem: Dell 82567LM Gigabit Network Connection [1028:0233]
        Kernel driver in use: e1000e
00:1a.0 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 [8086:2937] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) USB UHCI Controller [1028:0233]
        Kernel driver in use: uhci_hcd
00:1a.1 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 [8086:2938] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) USB UHCI Controller [1028:0233]
        Kernel driver in use: uhci_hcd
00:1a.2 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 [8086:2939] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) USB UHCI Controller [1028:0233]
        Kernel driver in use: uhci_hcd
00:1a.7 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 [8086:293c] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) USB2 EHCI Controller [1028:0233]
        Kernel driver in use: ehci-pci
00:1b.0 Audio device [0403]: Intel Corporation 82801I (ICH9 Family) HD Audio Controller [8086:293e] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) HD Audio Controller [1028:0233]
        Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 [8086:2940] (rev 03)
        Kernel driver in use: pcieport
00:1c.1 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 [8086:2942] (rev 03)
        Kernel driver in use: pcieport
00:1c.2 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 3 [8086:2944] (rev 03)
        Kernel driver in use: pcieport
00:1c.3 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 [8086:2946] (rev 03)
        Kernel driver in use: pcieport
00:1d.0 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) USB UHCI Controller [1028:0233]
        Kernel driver in use: uhci_hcd
00:1d.1 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 [8086:2935] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) USB UHCI Controller [1028:0233]
        Kernel driver in use: uhci_hcd
00:1d.2 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 [8086:2936] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) USB UHCI Controller [1028:0233]
        Kernel driver in use: uhci_hcd
00:1d.7 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 [8086:293a] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) USB2 EHCI Controller [1028:0233]
        Kernel driver in use: ehci-pci
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev 93)
00:1f.0 ISA bridge [0601]: Intel Corporation ICH9M-E LPC Interface Controller [8086:2917] (rev 03)
        Subsystem: Dell ICH9M-E LPC Interface Controller [1028:0233]
        Kernel driver in use: lpc_ich
00:1f.2 SATA controller [0106]: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] [8086:2929] (rev 03)
        Subsystem: Dell 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] [1028:0233]
        Kernel driver in use: ahci
00:1f.3 SMBus [0c05]: Intel Corporation 82801I (ICH9 Family) SMBus Controller [8086:2930] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) SMBus Controller [1028:0233]
        Kernel driver in use: i801_smbus
03:01.0 FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd R5C832 IEEE 1394 Controller [1180:0832] (rev 04)
        Subsystem: Dell R5C832 IEEE 1394 Controller [1028:0233]
        Kernel driver in use: firewire_ohci
03:01.1 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 21)
        Subsystem: Dell R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1028:0233]
        Kernel driver in use: sdhci-pci
03:01.2 System peripheral [0880]: Ricoh Co Ltd R5C843 MMC Host Controller [1180:0843] (rev 11)
        Subsystem: Dell R5C843 MMC Host Controller [1028:0233]
        Kernel driver in use: sdhci-pci
0c:00.0 Network controller [0280]: Intel Corporation WiFi Link 5100 [8086:4232]
        Subsystem: Intel Corporation WiFi Link 5100 AGN [8086:1321]
        Kernel driver in use: iwlwifi

Works in 3.x, fails on all versions of 4.x. It has me stumped.
_________________
Ever picture systemd as what runs "The Borg"?
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7167

PostPosted: Thu Mar 03, 2016 8:20 am    Post subject: Reply with quote

read https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt
many laptop have broken or weird implementation and need a special model pass to the driver.
Back to top
View user's profile Send private message
The_Great_Sephiroth
Veteran
Veteran


Joined: 03 Oct 2014
Posts: 1395
Location: Fayetteville, NC, USA

PostPosted: Thu Mar 03, 2016 3:26 pm    Post subject: Reply with quote

I have not had to pass a model to the driver in 2.x or 3.x, but even so, how would I know which model to pass. None of the information in the file you linked says anything about a Latitude E6400 laptop. I am currently in 3.18.25 where sound works, but I build the codec into the kernel. I like having my laptop hardware in my kernel, and let pluggable hardware be built as modules.

*UPDATE*

The Dell website lists this as an IDT 92HDxxx, but it does not say which exact model.

*UPDATE*

Forgot I could do this.
Code:

~ $ head -1 /proc/asound/card0/codec#0
Codec: IDT 92HD71B7X
~ $ head -1 /proc/asound/card0/codec#1
Codec: Conexant ID 2c06
~ $ head -1 /proc/asound/card0/codec#2
Codec: Intel Cantiga HDMI

However, the STAC92HD71B* section in the file you linked has nothing about the laptop version of this card.
_________________
Ever picture systemd as what runs "The Borg"?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 14169

PostPosted: Fri Mar 04, 2016 2:10 am    Post subject: Reply with quote

The_Great_Sephiroth wrote:
Every version of kernel 4 kills my internal speakers. There is no specific commit. It is kernel 4, period.
I assume you phrased it this way because you are frustrated and unwilling to answer the question accurately. There is always a first-bad commit, whether or not you know its name. A literal reading of your statement is that you believe v4.0-rc1, the first kernel to call itself 4.x, breaks your sound. This is unlikely, since it was only a Makefile change; no code changes were included. You could try reverting that commit to check whether it is the problem. As usual, a git bisect run is your best bet.
Back to top
View user's profile Send private message
The_Great_Sephiroth
Veteran
Veteran


Joined: 03 Oct 2014
Posts: 1395
Location: Fayetteville, NC, USA

PostPosted: Fri Mar 04, 2016 7:46 pm    Post subject: Reply with quote

Sorry, I wasn't frustrated, just not thinking like you are. I meant it as, since the very first version marked as stable in Gentoo, my sound has not worked. I do not remember the first version which showed up when I did "emerge --sync && emerge -avuND --with-bdeps=y @world", but whatever it was, that was when the sound issue cropped up. It still works flawlessly on 3.18.xx though.

As for git, I am NOT a git guy. I can do a few basics, that's it. If you can explain to me how to emerge the various versions, I can do that. I am thinking "emerge -av gentoo-sources-4.0-rc1", but am probably off here.
_________________
Ever picture systemd as what runs "The Borg"?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 14169

PostPosted: Sat Mar 05, 2016 1:48 am    Post subject: Reply with quote

You cannot use emerge for this purpose. The Gentoo developers package only specific milestones likely to be of interest to the general userbase. You need to visit points between those milestones. Git bisect will pick points for you to test, then you build those intermediate versions and tell Git whether the bug was present in that version. Based on your feedback, Git will pick another version to test. This iterates until it has found a specific commit that caused the problem.
Back to top
View user's profile Send private message
Buffoon
Veteran
Veteran


Joined: 17 Jun 2015
Posts: 1074
Location: EU or US

PostPosted: Sat Mar 05, 2016 2:33 am    Post subject: Reply with quote

Bisecting is fun of course (I bisected MythTV backend once, that was extra fun because the database version cannot be downgraded). However, make oldconfig can sometimes get things wrong, in particular if some option has been moved. Did you verify all options are still correct in version 4? My 2¢.
Back to top
View user's profile Send private message
khayyam
Watchman
Watchman


Joined: 07 Jun 2012
Posts: 6228
Location: Room 101

PostPosted: Sat Mar 05, 2016 1:02 pm    Post subject: Reply with quote

The_Great_Sephiroth wrote:
As for git, I am NOT a git guy. I can do a few basics, that's it. If you can explain to me how to emerge the various versions, I can do that. I am thinking "emerge -av gentoo-sources-4.0-rc1", but am probably off here.

The_Great_Sephiroth ... there is a guide to git-bisecting the kernel on the wiki, and Rob Landley's instructions might also be of help.

best ... khay
Back to top
View user's profile Send private message
Yamakuzure
Advocate
Advocate


Joined: 21 Jun 2006
Posts: 2273
Location: Bardowick, Germany

PostPosted: Mon Mar 07, 2016 8:44 am    Post subject: Reply with quote

Your output says:
Code:
00:1b.0 Audio device [0403]: Intel Corporation 82801I (ICH9 Family) HD Audio Controller [8086:293e] (rev 03)
        Subsystem: Dell 82801I (ICH9 Family) HD Audio Controller [1028:0233]
        Kernel driver in use: snd_hda_intel
Google (Keywords: "Dell 82801I (ICH9 Family) HD Audio Controller [1028:0233]") leads to the Linux Hardware Database Entry saying the Model is "Latitude E6400". (check!)

Using google again (Keywords "linux kernel intel HD driver Latitude E6400") leads to the Arch Wiki Entry for your hardware stating in section "Audio" to use:
Code:
$ cat /etc/modprobe.d/modprobe.conf
options snd-hda-intel model=dell-m4-1
That one is listed under "STAC92HD71B*" in the already linked HD-Audio-Models.txt.

But the Arch Wiki only goes up to kernel 3.18.

So looking into the kernel-4.3.5 menuconfig there is:
Code:
Device Drivers ->
    Sound Card Support ->
        Advanced Linux Sound Architecture ->
            HD Audio ->
                Build IDT/Sigmatel HD-audio codec support
Which has "STAC9200" as an example what to drive with it.
So if you have the correct model set up (see above) and the IDT driver build (as a module) it should work.

If not, the output of "alsamixer" might be illuminating, because it lists the exact chips for each sound cards detected.
_________________
Important German:
  1. "Aha" - German reaction to pretend that you are really interested while giving no f*ck.
  2. "Tja" - German reaction to the apocalypse, nuclear war, an alien invasion or no bread in the house.
Back to top
View user's profile Send private message
The_Great_Sephiroth
Veteran
Veteran


Joined: 03 Oct 2014
Posts: 1395
Location: Fayetteville, NC, USA

PostPosted: Tue Mar 08, 2016 2:52 am    Post subject: Reply with quote

Yamakuzure, I did not realize that the m4-1 model applied to my system. I have never had to specify it before. Things always just worked. I had searched various combinations before, but never came up with that result. I'll try it now and post the results.
_________________
Ever picture systemd as what runs "The Borg"?
Back to top
View user's profile Send private message
Yamakuzure
Advocate
Advocate


Joined: 21 Jun 2006
Posts: 2273
Location: Bardowick, Germany

PostPosted: Tue Mar 08, 2016 1:55 pm    Post subject: Reply with quote

I hope it helped! I keep my fingers crossed for you!

But there is one thing I forgot: When sound did not want to work on my DELL (Precision M4800) I found out that the sound system did not like me to just enable all the codecs and let the driver chose the right one. My system needs the REALTEK codec, but whenever I built SIGMATEL or CMEDIA, too, the sound card just went silent.

So if it does not work, make sure you only have the codecs enabled you need.

On my machine it looks like this, and I guess you just need SIGMATEL and CONEXANT instead of REALTEK
Code:
 /usr/src/linux # grep -P "SND_HDA_(INTEL|CODEC)" .config
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
# CONFIG_SND_HDA_CODEC_SIGMATEL is not set
# CONFIG_SND_HDA_CODEC_VIA is not set
CONFIG_SND_HDA_CODEC_HDMI=m
# CONFIG_SND_HDA_CODEC_CIRRUS is not set
# CONFIG_SND_HDA_CODEC_CONEXANT is not set
# CONFIG_SND_HDA_CODEC_CA0110 is not set
# CONFIG_SND_HDA_CODEC_CA0132 is not set
# CONFIG_SND_HDA_CODEC_CMEDIA is not set
# CONFIG_SND_HDA_CODEC_SI3054 is not set
And apart from that, I do not think you really *must* specify the model.

What if you hit another issue, that your sound devices are detected in the wrong order?

I had that and the solution was to switch the ordering by hand: (I have HDMI and PCH. You have HDMI, PCH, and what is the Conexant device?)
  1. Tell the kernel in which order your sound devices should be:
    Code:
     $ grep snd /etc/conf.d/modules
    module_snd_hda_intel="id=HDMI,PCH index=1,0 enable_msi=1"
    "id" lists the devices as they are detected. "index" assigns new index values.
  2. Tell ALSA that exact ordering and the correct number of sound cards:
    Code:
     $ grep option /etc/modprobe.d/alsa.conf
    options snd-hda-intel id=HDMI,PCH index=1,0 enable_msi=1
    options snd cards_limit=2
    The same here with "id" and "index". The goal is to have PCH as device 0 (the default) and HDMI as device 1.
But I do not know how the Conexant device fits into this.

So how did I found out how the "id" list above must look? With dmesg:
Code:
 $ dmesg | grep HDA
[    7.098771] input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card1/input10
[    7.098814] input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card1/input11
[    7.098853] input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card1/input12
[    7.104557] input: HDA Intel PCH Line Out as /devices/pci0000:00/0000:00:1b.0/sound/card0/input13
[    7.104598] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input14
So the first card detected is HDMI. And before I changed the ordering above, it got assigned to card0.
The second was PCH, assigned to card1. For a mobile laptop that was just wrong.

To really confirm, that the ordering is correct, you can use asound:
Code:
 # LC_ALL=C aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC3226 Analog [ALC3226 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


On your system there should be a third device listed. With the options above, you can order them exactly like you need them.
_________________
Important German:
  1. "Aha" - German reaction to pretend that you are really interested while giving no f*ck.
  2. "Tja" - German reaction to the apocalypse, nuclear war, an alien invasion or no bread in the house.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum