Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Lenovo Yoga 900 Hardware Kernel Options
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
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Sun Jul 23, 2017 1:02 pm    Post subject: Lenovo Yoga 900 Hardware Kernel Options Reply with quote

Hello,

I am brand new in Gentoo and I struggle to set all kernel options for my touchpad, touchscreen, audio and controllers in my Lenovo Yoga 900-13ISK correctly.

I tried to get my touchpad work with evdev synaptics as well as libinput. I completely worked through the handbook. Use Kernel 4.9.

Currently I have the x86-synaptics driver installed and have a 50-synaptics.conf in /etc/X11/xorg.conf.d/.

Firstly I would like to fix my touchpad, controllers, afterwards touchscreen and audio. I only managed to fix wifi. It is very hard to find the right kernel options in make menuconfig from the kernel modules in use from the internet lspci -k for my notebook. Also I didn't find the right options in the Internet.

Here is my prompt of

Code:
 lspci -k
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 08)
   Subsystem: Lenovo Skylake Host Bridge/DRAM Registers
   Kernel driver in use: skl_uncore
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07)
   Subsystem: Lenovo HD Graphics 520
   Kernel driver in use: i915
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
   Subsystem: Lenovo Skylake Processor Thermal Subsystem
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
   Subsystem: Lenovo Sunrise Point-LP USB 3.0 xHCI Controller
   Kernel driver in use: xhci_hcd
   Kernel modules: xhci_pci
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
   Subsystem: Lenovo Sunrise Point-LP Thermal subsystem
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
   Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
   Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller
00:15.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 (rev 21)
   Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
   Subsystem: Lenovo Sunrise Point-LP CSME HECI
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
   Subsystem: Lenovo Sunrise Point-LP SATA Controller [AHCI mode]
   Kernel driver in use: ahci
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
   Kernel driver in use: pcieport
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 (rev f1)
   Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
   Subsystem: Lenovo Sunrise Point-LP LPC Controller
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
   Subsystem: Lenovo Sunrise Point-LP PMC
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
   Subsystem: Lenovo Sunrise Point-LP HD Audio
   Kernel driver in use: snd_hda_intel
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
   Subsystem: Lenovo Sunrise Point-LP SMBus
   Kernel driver in use: i801_smbus
01:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
   Subsystem: Intel Corporation Wireless 8260
   Kernel driver in use: iwlwifi
   Kernel modules: iwlwifi
02:00.0 SD Host controller: O2 Micro, Inc. Device 8620 (rev 01)
   Subsystem: Lenovo Device 3800


Code:

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2b Intel Corp.
Bus 001 Device 003: ID 5986:068c Acer, Inc
Bus 001 Device 002: ID 04d9:a086 Holtek Semiconductor, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


From the internet and a working fedora live stick I see that several pci devices not use a driver yet:

Code:

00:00.0 Host bridge [0600]: Intel Corporation Sky Lake Host Bridge/DRAM Registers [8086:1904] (rev 08)
    Subsystem: Lenovo Skylake Host Bridge/DRAM Registers [17aa:3800]
00:02.0 VGA compatible controller [0300]: Intel Corporation Sky Lake Integrated Graphics [8086:1916] (rev 07)
    Subsystem: Lenovo Skylake Integrated Graphics [17aa:3800]
    Kernel driver in use: i915_bpo
    Kernel modules: i915_bpo
00:04.0 Signal processing controller [1180]: Intel Corporation Skylake Processor Thermal Subsystem [8086:1903] (rev 08)
    Subsystem: Lenovo Skylake Processor Thermal Subsystem [17aa:3800]
    Kernel driver in use: proc_thermal
    Kernel modules: processor_thermal_device
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller [8086:9d2f] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP USB 3.0 xHCI Controller [17aa:3800]
    Kernel driver in use: xhci_hcd
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Thermal subsystem [8086:9d31] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP Thermal subsystem [17aa:3800]
00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller [8086:9d60] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller [17aa:3800]
    Kernel driver in use: intel-lpss
    Kernel modules: intel_lpss_pci
00:15.1 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller [8086:9d61] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller [17aa:3800]
    Kernel driver in use: intel-lpss
    Kernel modules: intel_lpss_pci
00:15.3 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller [8086:9d63] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller [17aa:3800]
    Kernel driver in use: intel-lpss
    Kernel modules: intel_lpss_pci
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-LP CSME HECI [8086:9d3a] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP CSME HECI [17aa:3800]
    Kernel driver in use: mei_me
    Kernel modules: mei_me
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] [8086:9d03] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP SATA Controller [AHCI mode] [17aa:3800]
    Kernel driver in use: ahci
    Kernel modules: ahci
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port [8086:9d14] (rev f1)
    Kernel driver in use: pcieport
    Kernel modules: shpchp
00:1c.5 PCI bridge [0604]: Intel Corporation Sunrise Point-LP PCI Express Root Port [8086:9d15] (rev f1)
    Kernel driver in use: pcieport
    Kernel modules: shpchp
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-LP LPC Controller [8086:9d48] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP LPC Controller [17aa:3800]
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-LP PMC [8086:9d21] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP PMC [17aa:3800]
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-LP HD Audio [8086:9d70] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP HD Audio [17aa:3800]
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel, snd_soc_skl
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)
    Subsystem: Lenovo Sunrise Point-LP SMBus [17aa:3800]
    Kernel modules: i2c_i801
01:00.0 Network controller [0280]: Intel Corporation Wireless 8260 [8086:24f3] (rev 42)
    Subsystem: Intel Corporation Wireless 8260 [8086:1130]
    Kernel driver in use: iwlwifi
    Kernel modules: iwlwifi, wl
02:00.0 SD Host controller [0805]: O2 Micro, Inc. Device [1217:8620] (rev 01)
    Subsystem: Lenovo Device [17aa:3800]
    Kernel driver in use: sdhci-pci
    Kernel modules: sdhci_pci


As far as I realise I miss the following modules/drivers:
SD Host card: sdhci_pci
Intel Corporation Sunrise Point-LP PCI Express Root Port: shpchp
Intel Audio: snd_hda_intel, snd_soc_skl
Intel Corporation Sunrise Point-LP CSME HECI: mei_me
Intel Corporation Sunrise Point-LP Serial IO I2C Controller: intel_lpss_pci
Intel Corporation Skylake Processor Thermal Subsystem: processor_thermal_device

How can I activate/load them?

Many thanks in advance! Urgent help is very appreciated!

Regards
Richard
Back to top
View user's profile Send private message
Telemin
l33t
l33t


Joined: 25 Aug 2005
Posts: 734
Location: Glasgow, UK

PostPosted: Sun Jul 23, 2017 1:49 pm    Post subject: Reply with quote

Dear Richard,

Welcome to Gentoo :)

This seems to be a common issue at the moment because people aren't expecting their touchpads to be on the I2C bus. You are on the right lines, you should enable the CONFIG_MFD_INTEL_LPSS_PCI option in the kernel, that will get you the drivers to talk to the I2C bus.
You will also need most likely need CONFIG_I2C_HID and CONFIG_I2C_DESIGNWARE_*

(Hint hit "/" in menuconfig and search for LPSS and I2C to help you find things)

-Telemin-
_________________
The Geek formerly known as -Freestyling-
When you feel your problem has been solved please add [Solved] to the topic title.
Please adopt an unanswered post
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sun Jul 23, 2017 2:00 pm    Post subject: Reply with quote

Spargeltarzan,

Welcome to Gentoo.

Here is a process that will find most of the modules. You have done the hard bit by discovering the module names.

You can use the
Code:
make menuconfig
seach function.
Go into make menuconfig and press /.
Enter
Code:
i915
anh the search will show you all the kernel symbols with i915 in their name.
They will have a number next to them. Press the number to go to the place in the configuration where you can change that option.

That was just for practice but do it anyway. Now it gets harder.

You are missing shpchp, so try that. If it does not work, there are two reasons.
The module name does not appear in the kernel symbol name. Unfortunately there are a few like that.
More commonly, something that the symbol you are searching for is needed to be on for the symbol to be visible.
There are a few extra steps. Press the 'z' key to show all the hidden symbols.
Now the search will work but the item you want cannot be selected. Go to the item and read the help.

Using shpchp an an example, You will discover that the help includes
Code:
Depends on: HOTPLUG_PCI [=n]

This means that
Code:
SHPC PCI Hotplug driver
cannot be selected until the depends on evaluates to true.
If it appears at all it will be
Code:
 - -   SHPC PCI Hotplug driver
where '- -' means forced off.
Apply the process recursively, in this case, find HOTPLUG_PCI.

Rebuild and reinstall your kernel. Reboot to test.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Sun Jul 23, 2017 4:55 pm    Post subject: Reply with quote

Thank you both, I have got the touchpad working! In my gnome settings the touchpad is not listed, do I need to install something additional?

Currently in my lspci -k only two drivers are missing:

Code:

00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
   Subsystem: Lenovo Sunrise Point-LP LPC Controller
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
   Subsystem: Lenovo Sunrise Point-LP PMC


I activated the INTEL_PMC_CORE (http://cateee.net/lkddb/web-lkddb/INTEL_PMC_CORE.html)and LPC_ICH (http://cateee.net/lkddb/web-lkddb/LPC_ICH.html) as I found evidence for fixing this but for me it doesn't work still. Any idea what is missing?

For my HD Audio the snd_hda_intel is active only but in my live stick snd_hda_intel and snd_soc_skl is active. I didn't work through pulseaudio section yet, will I need the additional driver to get audio work?

Currently I have
Code:
<M>   ALSA for SoC audio support  ---> 
 --- ALSA for SoC audio support   

and nothing else in the section is selected. Can't activate ALSA for SoC audio support, this is my help output:

Code:
│ Symbol: SND_SOC [=m]                                                    │ 
  │ Type  : tristate                                                        │ 
  │ Prompt: ALSA for SoC audio support                                      │ 
  │   Location:                                                             │ 
  │     -> Device Drivers                                                   │ 
  │       -> Sound card support (SOUND [=y])                                │ 
  │         -> Advanced Linux Sound Architecture (SND [=y])                 │ 
  │   Defined at sound/soc/Kconfig:5                                        │ 
  │   Depends on: SOUND [=y] && !M68K && !UML && SND [=y]                   │ 
  │   Selects: SND_PCM [=y] && AC97_BUS [=n] && SND_JACK [=y] && \          │ 
  │ REGMAP_I2C [=y] && REGMAP_SPI [=n]


I actually fulfill "depends on" SOUND=y SND=y. M68K and UML is unknown.
Can you see what blocks this driver?

[Moderator edit: changed [quote] tags to [code] tags to preserve output layout; added [code] tags to preserve output layout. -Hu]


Last edited by Spargeltarzan on Sun Jul 23, 2017 5:06 pm; edited 2 times in total
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sun Jul 23, 2017 5:01 pm    Post subject: Reply with quote

Spargeltarzan,

Make friends with wgetpaste and put your entire dmesg onto a pastbin site.
Its too large for a post. Post the link.
Its all the kernel startup messages.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Sun Jul 23, 2017 5:18 pm    Post subject: Reply with quote

Cool feature, here is the link https://paste.pound-python.org/show/BLY86K3aTuUGJ6h1T5rX/
If you know how to highlight the output correctly, let me know and I will repost.

I can see some direct firmware loading failures for i915 and iwlwifi...

Thank you,
Regards
Richard
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sun Jul 23, 2017 5:57 pm    Post subject: Reply with quote

Spargeltarzan,

Things like i915 and iwlwifi come in two pieces. The kernel driver and firmware.
The firmware must be available when the kernel driver is initialised.
So for i915, i915/skl_dmc_ver1_26.bin must be built into the kernel binary.

For iwlwifi, which is a loadable module,
Code:
 emerge linux-firmware
will fix at the next start of iwlwifi.

linux-firmware actually provides both sets of firmware.
After linux-firmware is installed, rebuild your kernel to include i915/skl_dmc_ver1_26.bin

Code:
[    3.175304] sdhci: Secure Digital Host Controller Interface driver
[    3.175304] sdhci: Copyright(c) Pierre Ossman
[    3.176636] sdhci_pci: Unknown symbol sdhci_pci_spt_drive_strength (err 0)
indicates that you have a bit missing.
Possibly the kernel binary and the modules don't match because you forgot to mount /boot for the kernel install?
Code:
[    0.000000] Linux version 4.9.34-gentoo (root@lenovo-yoga) (gcc version 5.4.0 (Gentoo 5.4.0-r3 p1.3, pie-0.6.5) ) #9 SMP Sun Jul 23 16:16:28 CEST 2017

Thats the 9th build of this kernel and it was built at Sun Jul 23 16:16:28 CEST 2017. Does that look right?
Your SD card reader is not working.

Code:
[    1.902598] hdaudio hdaudioC0D0: Unable to bind the codec
[    1.902769] hdaudio hdaudioC0D2: Unable to bind the codec

You have two sound devices. One, HDMI, may not have a codec but the codec is the bit that that makes you analogue speakers work.
In the Sound HDA Intel menu, there is a whole list of codecs. Select them all.
Once you know the one you need, you can deselect the rest at some future kernel update.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Sun Jul 23, 2017 7:06 pm    Post subject: Reply with quote

NeddySeagoon wrote:
Spargeltarzan,

Things like i915 and iwlwifi come in two pieces. The kernel driver and firmware.
The firmware must be available when the kernel driver is initialised.
So for i915, i915/skl_dmc_ver1_26.bin must be built into the kernel binary.

For iwlwifi, which is a loadable module,
Code:
 emerge linux-firmware
will fix at the next start of iwlwifi.

linux-firmware actually provides both sets of firmware.
After linux-firmware is installed, rebuild your kernel to include i915/skl_dmc_ver1_26.bin

I had linux-firmware already installed, I did now a recompile with /boot mounted. Did make && make modules_install and finally make install for the new kernel. Hope you meant this with include i915/skl_dmc_ver1_26.bin... But I think nothing changed since linux-firmware was already installed.

Quote:

Code:
[    3.175304] sdhci: Secure Digital Host Controller Interface driver
[    3.175304] sdhci: Copyright(c) Pierre Ossman
[    3.176636] sdhci_pci: Unknown symbol sdhci_pci_spt_drive_strength (err 0)
indicates that you have a bit missing.
Possibly the kernel binary and the modules don't match because you forgot to mount /boot for the kernel install?
[/code]
Yes, I forgot. Should /boot always be mounted? I think I fixed my former missing kernel modules without mounted /boot.

Code:
[    0.000000] Linux version 4.9.34-gentoo (root@lenovo-yoga) (gcc version 5.4.0 (Gentoo 5.4.0-r3 p1.3, pie-0.6.5) ) #9 SMP Sun Jul 23 16:16:28 CEST 2017

Thats the 9th build of this kernel and it was built at Sun Jul 23 16:16:28 CEST 2017. Does that look right?
Your SD card reader is not working.
[/code]

Yes, I did many, many recompiles. Don't have a SD card with me now to check.

Quote:

Code:
[    1.902598] hdaudio hdaudioC0D0: Unable to bind the codec
[    1.902769] hdaudio hdaudioC0D2: Unable to bind the codec


You have two sound devices. One, HDMI, may not have a codec but the codec is the bit that that makes you analogue speakers work.
In the Sound HDA Intel menu, there is a whole list of codecs. Select them all.
Once you know the one you need, you can deselect the rest at some future kernel update.

Unfortunately in Gnome I only have a dummy audio. No audio card at all. I included all codecs in HD Audio PCI. I didn't find a specific Intel Codec Menu...

Code:

<*> HD Audio PCI                                                                                                      │ │ 
  │ │                                               [*] Build hwdep interface for HD-audio driver                                                                         │ │ 
  │ │                                               -*- Allow dynamic codec reconfiguration                                                                               │ │ 
  │ │                                               [*] Support digital beep via input layer                                                                              │ │ 
  │ │                                               (1)   Digital beep registration mode (0=off, 1=on)                                                                    │ │ 
  │ │                                               [*] Support initialization patch loading for HD-audio                                                                 │ │ 
  │ │                                               <M> Build Realtek HD-audio codec support                                                                              │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build Analog Device HD-audio codec support                                                                        │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build IDT/Sigmatel HD-audio codec support                                                                         │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build VIA HD-audio codec support                                                                                  │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build HDMI/DisplayPort HD-audio codec support                                                                     │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build Cirrus Logic codec support                                                                                  │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build Conexant HD-audio codec support                                                                             │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build Creative CA0110-IBG codec support                                                                           │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build Creative CA0132 codec support                                                                               │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               [ ]   Support new DSP code for CA0132 codec                                                                           │ │ 
  │ │                                               <M> Build C-Media HD-audio codec support                                                                              │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               <M> Build Silicon Labs 3054 HD-modem codec support                                                                    │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               {M} Enable generic HD-audio codec parser                                                                              │ │ 
  │ │                                                     *** Set to Y if you want auto-loading the codec driver ***                                                      │ │ 
  │ │                                               (0) Default time-out for HD-audio power-save mode       
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sun Jul 23, 2017 8:08 pm    Post subject: Reply with quote

Spargeltarzan,

You need to find and populate
Code:
CONFIG_EXTRA_FIRMWARE
in menuconfig.
Press / enter EXTRA_FIRMWARE to find the location.
When you populate that, another entry will appear.
Code:
 (firmware) Firmware blobs root directory (NEW)


Change it to (/lib/firmare) Firmware blobs root directory, so that the kernel picks up firmware from /lib/firmware
and populate EXTRA_FIRMWARE with i915/skl_dmc_ver1_26.bin.
This a a space separated list of firmware files to be included, with respect to Firmware blobs root directory

What does lsmod show for codecs?
The kernel says
Code:
*** Set to Y if you want auto-loading the codec driver ***
Y is * not M, so your codes may not load.
You can load them one at a time with modprobe .. if you can discover their .ko names.
modprobe <name> drop the .ko.
They will be in /lib/modules/<kernel-ver>/... somewhere.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Sun Jul 23, 2017 9:11 pm    Post subject: Reply with quote

NeddySeagoon wrote:
Spargeltarzan,

You need to find and populate
Code:
CONFIG_EXTRA_FIRMWARE
in menuconfig.
Press / enter EXTRA_FIRMWARE to find the location.
When you populate that, another entry will appear.
Code:
 (firmware) Firmware blobs root directory (NEW)


Change it to (/lib/firmare) Firmware blobs root directory, so that the kernel picks up firmware from /lib/firmware
and populate EXTRA_FIRMWARE with i915/skl_dmc_ver1_26.bin.
This a a space separated list of firmware files to be included, with respect to Firmware blobs root directory

Thank you! This dmesg error for i915 disappeared now! It only remains for the iwlwifi
Quote:

[ 3.161068] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-26.ucode failed with error -2
[ 3.161232] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-25.ucode failed with error -2
[ 3.162203] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-24.ucode failed with error -2
[ 3.162213] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-23.ucode failed with error -2


It is actually not a big deal since wifi works, I am very impressed about all possible customization Gentoo gives and therefore I ask myself, can I fix this 4 errors in a similar way? Maybe with the same flag?
Thus, do you think future updates might break my system when the 915/skl_dmc_ver1_26.bin increases in version?

Quote:

What does lsmod show for codecs?
The kernel says
Code:
*** Set to Y if you want auto-loading the codec driver ***
Y is * not M, so your codes may not load.
You can load them one at a time with modprobe .. if you can discover their .ko names.
modprobe <name> drop the .ko.
They will be in /lib/modules/<kernel-ver>/... somewhere.


Thanks for this hint too! Reading carefully helps, now my system plays sound!

Here is my recent dmesg output https://paste.pound-python.org/show/pAKcglU51Wm0Fgfogzb3/
It seems that snd_hda_codec_realtek is my codec, I will disable all others again.

Regards
Richard
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sun Jul 23, 2017 9:25 pm    Post subject: Reply with quote

Spargeltarzan,

It looks like the iwlwifi has some future proofing
Code:
[    3.158675] Intel(R) Wireless WiFi driver for Linux
[    3.158676] Copyright(c) 2003- 2015 Intel Corporation
[    3.161068] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-26.ucode failed with error -2
[    3.161232] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-25.ucode failed with error -2
[    3.162203] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-24.ucode failed with error -2
[    3.162213] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-23.ucode failed with error -2
[    3.171863] iwlwifi 0000:01:00.0: loaded firmware version 22.391740.0 op_mode iwlmvm

It tried to load progressively lower versions of firmmare until 22.391740.0 worked.
The other errors can be ignored.

Your
Code:
[    3.161442] sdhci: Secure Digital Host Controller Interface driver
missing symbol error has gone.

And you are on
Code:
[    0.000000] Linux version 4.9.34-gentoo (root@lenovo-yoga) (gcc version 5.4.0 (Gentoo 5.4.0-r3 p1.3, pie-0.6.5) ) #19 SMP Sun Jul 23 22:48:08 CEST 2017
version 19 of your kernel built today.

If 915/skl_dmc_ver1_26.bin increases in versiot it will not harm your current kernel as its built in.
Its something to look out for at kernel upgrades though.

All in all, your dmesg looks good.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Wed Aug 02, 2017 5:25 pm    Post subject: Reply with quote

Hi,

I am trying my best to get automatic screen rotation of my Yoga working. Loaded every sensor as a module in the menu, but still nothing happens. As I read in Gnome documentation iio-sensors should be included in Gnome 3.22.

With lspci and lsusb I cannot find a hint for the sensors.

Under fedora screen rotation works fine. However, after the screen was rotating, the touchscreen input didn't rotate with it so it was impossible to "hit" all the buttons.

Anyone has experience to get this working with Gentoo?
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Sat Aug 26, 2017 8:35 pm    Post subject: Reply with quote

Nobody knows how to get the gyroscope working?
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sat Aug 26, 2017 9:19 pm    Post subject: Reply with quote

Spargeltarzan,

Its the accelerometer you need, not the gyroscope.
Screen rotation is detected by measuring earths gravity.

If the accelerometer does not appear in lsusb or lspci, it will be on the i2c bus or even a GPIO pin.

Not everything rotating when it should is a bit harder to fix.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Sun Aug 27, 2017 7:58 am    Post subject: Reply with quote

Hi,

I activated every driver in Device Drivers --> Industrial I/O Support --> Accelerometers as a module. (M)

Software IIO device, software triggers support, IIO configuration via configfs, IIO callback buffer for push in-kernel interfaces in the upper menu I have still deactivated.

Have Kernel 4.12.5 and Gnome 3.22 with X11.

My current lspci -k shows I2C is active.
Code:

lenovo-yoga /usr/src/linux # lspci -k
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 08)
   Subsystem: Lenovo Skylake Host Bridge/DRAM Registers
   Kernel driver in use: skl_uncore
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07)
   Subsystem: Lenovo HD Graphics 520
   Kernel driver in use: i915
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
   Subsystem: Lenovo Skylake Processor Thermal Subsystem
   Kernel driver in use: proc_thermal
   Kernel modules: processor_thermal_device
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
   Subsystem: Lenovo Sunrise Point-LP USB 3.0 xHCI Controller
   Kernel driver in use: xhci_hcd
   Kernel modules: xhci_pci
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
   Subsystem: Lenovo Sunrise Point-LP Thermal subsystem
   Kernel driver in use: intel_pch_thermal
   Kernel modules: intel_pch_thermal
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
   Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller
   Kernel driver in use: intel-lpss
   Kernel modules: intel_lpss_pci
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
   Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller
   Kernel driver in use: intel-lpss
   Kernel modules: intel_lpss_pci
00:15.3 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #3 (rev 21)
   Subsystem: Lenovo Sunrise Point-LP Serial IO I2C Controller
   Kernel driver in use: intel-lpss
   Kernel modules: intel_lpss_pci
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
   Subsystem: Lenovo Sunrise Point-LP CSME HECI
   Kernel driver in use: mei_me
   Kernel modules: mei_me
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
   Subsystem: Lenovo Sunrise Point-LP SATA Controller [AHCI mode]
   Kernel driver in use: ahci
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
   Kernel driver in use: pcieport
   Kernel modules: shpchp
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 (rev f1)
   Kernel driver in use: pcieport
   Kernel modules: shpchp
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
   Subsystem: Lenovo Sunrise Point-LP LPC Controller
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
   Subsystem: Lenovo Sunrise Point-LP PMC
   Kernel driver in use: intel_pmc_core
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
   Subsystem: Lenovo Sunrise Point-LP HD Audio
   Kernel driver in use: snd_hda_intel
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
   Subsystem: Lenovo Sunrise Point-LP SMBus
   Kernel driver in use: i801_smbus
01:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)
   Subsystem: Intel Corporation Wireless 8260
   Kernel driver in use: iwlwifi
   Kernel modules: iwlwifi
02:00.0 SD Host controller: O2 Micro, Inc. Device 8620 (rev 01)
   Subsystem: Lenovo Device 3800
   Kernel driver in use: sdhci-pci
   Kernel modules: sdhci_pci



In lsusb -t also for every device a driver is active.
Code:

lenovo-yoga /usr/src/linux # lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 6: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 6: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 7: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 7: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M



In the Gnome settings I can rotate the screen and the touchscreen input rotates with it; so if we fix the accelerometer I believe all will work as supposed to.

Any idea how to find my accelerometer?

Regards,
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sun Aug 27, 2017 10:10 am    Post subject: Reply with quote

Spargeltarzan,

It looks like the accelerometer is an i2c bus or a GPIO pin.

Making drivers for these devices as modules is a good first step but the are not normally auto loaded.
Look in the lsmod output.

Modprobe the drivers one at a time and test.
Do not keep anything loaded you don't need. Some drivers fight with other drivers then neither will work.

Its also possible that Fedora has a kernel patch that Gentoo does not. If its easy to boot Fedora, where it works, remove modules until it doesn't work.
Then you have found a needed module.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Sun Aug 27, 2017 2:16 pm    Post subject: Reply with quote

Hi,

thanks for quick reply!

In my fedora I see that several modules are loaded:
hid_sensor_gyro_3d
hid_sensor_accel_3d
hid_sensor_magn_3d
hid_sensor_incl_3d
hid_sensor_rotation
hid_sensor_als
hid_sensor_trigger
hid_sensor_iio_common

where in my gentoo only 4 modules are loaded.
hid_sensor_gyro_3d
hid_sensor_accel_3d
hid_sensor_trigger
hid_sensor_iio_common

I tried to modprobe the rest of the modules, but:
Code:

modprobe: FATAL: Module hid_sensors_rotation not found in directory /lib/modules/4.12.5-gentoo


There are plenty of I2C or GPIO entries in the kernel available all with very non-self-explaining names and descriptions. How to figure out what is missing? Or any other issue why the modules are not available?

Regards
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sun Aug 27, 2017 4:01 pm    Post subject: Reply with quote

Spargeltarzan,

Make friends with the search and goto features in make menuconfig.

Press / to search and enter a symbol name, or a symbol name fragment. Try hid_sensor (its not case sensitive)
This will give you a list of kernel symbols and the help, that contain your search fragment.
Notice that they are numbered, in recent kernels anyway. Press the number to go to the option.

Read the Depends on: ...

Heres an example from my kernel.
Code:
  │ Symbol: HID_SENSOR_ACCEL_3D [=n]                                                                                                        │ 
  │ Type  : tristate                                                                                                                        │ 
  │ Prompt: HID Accelerometers 3D                                                                                                           │ 
  │   Location:                                                                                                                             │ 
  │     -> Device Drivers                                                                                                                   │ 
  │ (1)   -> Industrial I/O support (IIO [=n])                                                                                              │ 
  │         -> Accelerometers                                                                                                               │ 
  │   Defined at drivers/iio/accel/Kconfig:137                                                                                              │ 
  │   Depends on: IIO [=n] && HID_SENSOR_HUB [=n]                                                                                           │ 
  │   Selects: IIO_BUFFER [=n] && IIO_TRIGGERED_BUFFER [=n] && HID_SENSOR_IIO_COMMON [=n] && HID_SENSOR_IIO_TRIGGER [=n]

For me, HID_SENSOR_ACCEL_3D cannot be selected as it Depends on: IIO [=n] && HID_SENSOR_HUB [=n] which are both off.
The Depends on: must evaluate to true before the option can be selected, so I would need to choose those to options too.

In some places in the kernel, anything whose Depends on: is false will not appear in menuconfig, nor in searches.
Pressing z toggles show/hide hidden symbols, you may need to do that too.

A point to ponder. Are you using the kernel you think you are?
If, say HID_SENSOR_DEVICE_ROTATION is on when you look but its not in your modules, something went wrong with your kernel build/install.
Run
Code:
uname -a
and look at the time/date. That's the time/date when your running kernel was built.
If you have made a new kernel since then, you are not using it. Maybe you forgot to mount /boot ?
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Mon Aug 28, 2017 8:14 am    Post subject: Reply with quote

Thanks for quick reply, there really was an issue with my kernel built. My clock had a wrong time and config files were from future. However, I didn't trust to delete these files that's why I set my pc time to future now. With this successful build I will wait until time moves...

These modules are loaded shown with lsmod
Code:

hid_sensor_incl_3d     16384  0
hid_sensor_rotation    16384  0
hid_sensor_custom      20480  0
hid_sensor_magn_3d     16384  0
hid_sensor_accel_3d    16384  0
hid_sensor_gyro_3d     16384  0
hid_sensor_als         16384  0
hid_sensor_trigger     16384  12 hid_sensor_incl_3d,hid_sensor_als,hid_sensor_accel_3d,hid_sensor_magn_3d,hid_sensor_gyro_3d,hid_sensor_rotation
hid_sensor_iio_common    16384  7 hid_sensor_incl_3d,hid_sensor_als,hid_sensor_accel_3d,hid_sensor_trigger,hid_sensor_magn_3d,hid_sensor_gyro_3d,hid_sensor_rotation


However, my screen doesn't rotate. In my fedora in the panel there is a "lock autorotating" button which enables/disables it. Any idea how I find out the sensor is recognized and how to enable it in GNOME? There is nothing in the settings...


In my fedora some modules are marked as "used":
Code:

hid_sensor_als         16384  1
hid_sensor_magn_3d     16384  1
hid_sensor_gyro_3d     16384  0
hid_sensor_accel_3d    16384  1
hid_sensor_incl_3d     16384  0
hid_sensor_rotation    16384  0
hid_sensor_trigger     16384  12 hid_sensor_incl_3d,hid_sensor_als,hid_sensor_accel_3d,hid_sensor_magn_3d,hid_sensor_gyro_3d,hid_sensor_rotation
hid_sensor_iio_common    16384  7 hid_sensor_incl_3d,hid_sensor_als,hid_sensor_accel_3d,hid_sensor_trigger,hid_sensor_magn_3d,hid_sensor_gyro_3d,hid_sensor_rotation
industrialio_triggered_buffer    16384  6 hid_sensor_incl_3d,hid_sensor_als,hid_sensor_accel_3d,hid_sensor_magn_3d,hid_sensor_gyro_3d,hid_sensor_rotation

Regards
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Mon Aug 28, 2017 9:00 am    Post subject: Reply with quote

Spargeltarzan,

It probably worth starting a new thread. I don't have a Lenovo Yoga 900 and I gave up Gnome early in Gnome 3.

Your clock being in error will mess up most rebuilds.
Make compares the timestamp of output files with that of the files needed to make the output file.
If the output file is newer than all the input files, there is nothing to to.
If time goes backwards, that may not be correct.

Some build systems check that the output file is newer than all the input files and rebuild the output file if the check fails.
On a system with no RTC, that check can take 48 years to pass.

In the case of the kernel, starting the build with the
Code:
make clean
step removes all the output files, so that they all have to be regenerated anyway.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Spargeltarzan
Apprentice
Apprentice


Joined: 23 Jul 2017
Posts: 293

PostPosted: Mon Aug 28, 2017 8:08 pm    Post subject: Reply with quote

Hi,

I managed to get the rotation working with the iio-sensor-proxy. I needed to build a custom ebuild from github sources since its not available in Gentoo repos but it works! (I needed to migrate to GNOME with systemd since iio-sensor-proxy needs it. Systemd fixed also some little other stuff, wifi autoconnecting with networkmanager works now and remembering display brightness after reboot)

The github known issues page states that it might only work after suspending/resuming the notebook but the issue should be fixed with a commit in kernel 4.12, but the correct version number is not stated. For me in kernel 4.12.5 I observed the standby issue. Will probably try a later kernel later.

Also the keyboard becomes locked when turning the yoga into a tablet, what is really comfortable, but the touchpad is not disabled - well, not so important. Probably this results due to non-working F6 key to disable/enable it, as stated also in Archlinux docu. Someone maybe knows a fix in the meantime? But it is interesting that auto-disabling the touchpad while typing on the keyboard works! So somehow the touchpad can be disabled.

I am happy that rotation works now!!
Back to top
View user's profile Send private message
jlm
n00b
n00b


Joined: 27 May 2018
Posts: 8

PostPosted: Sun May 27, 2018 7:38 pm    Post subject: Reply with quote

Hi there!
I dig dead threads.... I'm new to gentoo, and just acquired a yoga 900-13ISK
after strugling with windows and my dualboot, I'm configuring the laptop.... I just discover this thread after lot of test and probe

I started a wiki page on https://wiki.gentoo.org/wiki/Yoga_900

so far I got almost all working appart the wifi and the sound (of course not even tried to perform rotation etc...) and seems that I miss some usb driver too according to the post

I wonder if you can send me your kernel config and help me update the wiki to make an install guide.... because it's pain in the ass...

thanks a lot, hopping you still have the 900!
Back to top
View user's profile Send private message
jlm
n00b
n00b


Joined: 27 May 2018
Posts: 8

PostPosted: Sun May 27, 2018 7:43 pm    Post subject: Reply with quote

at this time when trying to
Code:
modprobe snd_hda_codec_realtek
I get
Code:
[  524.924113] soundcore: exports duplicate symbol register_sound_dsp (owned by kernel)


same things seems to happen for wifi
Code:
[    3.562830] rfkill: exports duplicate symbol rfkill_alloc (owned by kernel)
:roll: but I can' t find what builtin driver has the symbol....
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 43223
Location: 56N 3W

PostPosted: Sun May 27, 2018 8:54 pm    Post subject: Reply with quote

jlm,

The duplicate symbol errors mean you have made a mess of installing the kernel or its modules.
You now have some things both built in and as modules.

You made snd_hda_codec_realtek as a module and everything installed properly.
Then you rebuilt the kernel with it built in but failed to install the matching modules.
If you used genkernel, the initrd can also be involved.

To get back to being self consistent, mount /boot, regenerate your initrd, if any, and do the kernel and modules install steps.
There is no need to rebuild your kernel. It will be self consistent in the build location.
Well, it will unless your system time took a step backwards.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
jlm
n00b
n00b


Joined: 27 May 2018
Posts: 8

PostPosted: Mon May 28, 2018 9:41 pm    Post subject: Reply with quote

right! indeed, got some issue with wrong kernel modules installed.... after cleanup all is loading fine now...
got somehow the iw working, at least the scan, but still have issues with wpa_suplicant... didn't tried the webcam and sdcard, soundcard yet.....
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