Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Kernel doesn't load on Lenovo X1 Carbon 12th Gen (no output)
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
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Sun Nov 17, 2024 10:29 am    Post subject: Kernel doesn't load on Lenovo X1 Carbon 12th Gen (no output) Reply with quote

I have a Lenovo X1 Carbon 12th Gen and the Linux kernel directly crashes immediately after loading. I probably missed some important kernel config, but I don't have any clue which one.

Configuration

Boot manager: refind (refind does load)
Kernel: 6.11.8 with EFI stub support
Partition layout: nvme0n1p1 (EFI System), ..., nvme01p4 (Linux Swap), nvme01p5 (Linux Root), nvme01p6 (Linux Home)

Output on console after invoking Gentoo from refind
Code:
Starting vmlinuz-6.11.8-gentoo.efi
Using load options 'udev.log_priority=5 emergency initrd=\EFI\Gentoo\initramfs-6.11.8.img'
EFI stub: Loaded initrd from command line option
After that: nothing (no disk activity, no flashing keyboard lights, nada, ...)

he kernel does not use any modules, everything is built-in statically. The initramfs does not contain anything critical but only contains the firmware for the Bluetooth adapter, wifi adapter and intel microcode. Some (not all) potentially relevant kernel settings
Code:
CONFIG_FB=y
CONFIG_FB_EFI=y
CONFIG_FB_SIMPLE=y
CONFIG_DRM=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_I915=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
CONFIG_BLK_DEV_NVME=y
CONFIG_NVME_MULTIPATH=y
CONFIG_NVME_HWMON=y
Link to complete kernel config: https://pastebin.com/L7XDLUVf

Note, the recent Gentoo Minimal Install Image does actually boot in UEFI mode, so it is probably something wrong with my kernel. What am I missing?[/bug]
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Sun Nov 17, 2024 11:02 am    Post subject: Reply with quote

I can see from your kernel configuration that you have some experience with it. Everything is configured for the console and also for accessing the hard disk. But it could be that you have a special PCI controller. Boot again with the MinimalCD and do a “lspci -nnk” and check if you need the kernel module “vmd” (which is very often used in Intel machines). If so, this is exactly what is missing (# CONFIG_VMD is not set). (See also: https://wiki.gentoo.org/wiki/User:Pietinger/Experimental/Manual_Configuring_Current_Kernel#Accessing_the_Root_Partition )

Also missing:
Code:
# CONFIG_FB_EFI is not set

CONFIG_EXTRA_FIRMWARE=""

# CONFIG_X86_INTEL_LPSS is not set

without this module these module (you have already enabled) will never work:
Code:
CONFIG_MFD_INTEL_LPSS=y
CONFIG_MFD_INTEL_LPSS_PCI=y

Maybe you need also (depends on your machine):
Code:
# CONFIG_EFI_HANDOVER_PROTOCOL is not set

_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Sun Nov 17, 2024 11:13 am    Post subject: Reply with quote

I assume I do not need the kernel module "vmd". lspci from the installation media does not list it. Here ist the pastebin for lspci: https://pastebin.com/Y0JuUngQ
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Sun Nov 17, 2024 11:23 am    Post subject: Reply with quote

Uii ... a brand new MeteorLake ... please check with "dmesg | grep firmware" - after booting with our LIVECD (not the minimalCD; because of graphics driver) - needed firmware files, and put it into CONFIG_EXTRA_FIRMWARE. Does this help (together with my already mentioned changes)?
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Sun Nov 17, 2024 11:41 am    Post subject: Reply with quote

Maybe you need also: CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Sun Nov 17, 2024 11:44 am    Post subject: Reply with quote

I enabled CONFIG_VMD and CONFIG_EFI_HANDOVER_PROTOCOL to give it a try. No luck with that. (But I did expect that.)

I will try the Live Image. I am downloading ... However, please note that the Minimal Installation CD is able to boot and uses i915. So I doubt it is a firmware problem, but I will try anyway.

The minimal installation CD loaded the following FW files:
  • regulatory.db
  • regulatory.db.p7s
  • iwlwifi-ma-b0-gf-a0-83.ucode
  • iwlwifi-ma-b0-gf-a0.pnvm
  • iwl-debug-yoyo.bin
  • intel/ibt-0180-0041.sfi
  • intel/ibt-0180-0041.ddc
  • intel/sof-ipc4/mtl/sof-mtl.ri
I already have put those FW into my initramfs except for iwl-debug-yoyo.bin, because I wasn't able to find out which Gentoo Package provides that one. Note that the minimal installation CD is able to use FB on i915 without any graphics FW. Hence, I expect the Live Image to show nothing else.
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Sun Nov 17, 2024 12:08 pm    Post subject: Reply with quote

nagmat84 wrote:
[...] Note that the minimal installation CD is able to use FB on i915 without any graphics FW. Hence, I expect the Live Image to show nothing else.

Yes ... but you have enabled your i915 statically into the kernel (and then you need the firmware files also already in your kernel; your initramfs would be too late). The LiveCD has i915 as module and therefore can load the firmware files from /lib/firmware (because all modules which are NOT statically configured will be loaded/initialized AFTER the kernel has access to the root partition).

P.S.: The module CONFIG_X86_INTEL_LPSS is most important (because it initializes some chipsets).
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Sun Nov 17, 2024 1:43 pm    Post subject: Reply with quote

I tried to other things, both without success:

I compiled my kernel with i915 as a module in case this would have been the culprit and loaded too early. There is no difference, the kernel hangs directly on or after loading the initramfs.

I booted from the Live CD. The module intel_vpu of Live CD tried to load some additional firmware "vpu_37xx.bin, "mtl_vpu.bin" and "intel/vpu/vpu_37xx_v0.0.bin". However this failed as the FW was not available. But this does not seem to be related to graphics.
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Sun Nov 17, 2024 4:24 pm    Post subject: Reply with quote

nagmat84 wrote:
[...] There is no difference, the kernel hangs directly on or after loading the initramfs.

Hmmm ... problem is I have no experience with refind ... and maybe we must check the init-script of the initramfs ...

nagmat84 wrote:
I booted from the Live CD. The module intel_vpu [...] But this does not seem to be related to graphics.

Yes, it is not related to graphics. VPU is the (old) modul name of Intels NPU (this is a CPU-integrated inference accelerator) ->
Code:
Device Drivers  --->
    [*] Compute Acceleration Framework  --->
        <*>   Intel NPU (Neural Processing Unit)

_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Sun Nov 17, 2024 4:54 pm    Post subject: Reply with quote

pietinger wrote:

Hmmm ... problem is I have no experience with refind ... and maybe we must check the init-script of the initramfs ...


I don't believe that the problem is related to refind. The problem remains the same when I try to boot the EFI stub directly from firmware. I have used refind several times now and never had those kinds of problems.

I installed a distribution kernel and can boot that one from refind with a bit more (but not full) success:
  • iwlwifi returns the error: "0000:00:14.3: Not valid error log pointer 0x002798A8 for RT uCode"
  • A kernel bug with: "BUG kernel NULL pointer dereference; #PF: supervisor write access in kernel mode; #PF: error_code(0x0002) - not-present page". Immediately above those lines is a warning from "skl_hda_dsp_generic" which says "ASoC: Parent card not yet available, widget card binding deferred". However, I do not know if the kernel bug is related to that preceding line or if they are unrelated
  • Immediately after that, there is an OOPS from udev-worker with "RIP: 0010:sof_ipc4_update_cpc_from_manifest+0x13a/0x5160 [snd_sof]
  • Finally, SDDM (my display manager) does not start with the error "no display found"
But at least I am able to get a console.

pietinger wrote:

Yes, it is not related to graphics. VPU is the (old) modul name of Intels NPU (this is a CPU-integrated inference accelerator) ->
Code:
Device Drivers  --->
    [*] Compute Acceleration Framework  --->
        <*>   Intel NPU (Neural Processing Unit)
Fine, but the dmesg output still attribute it to the DRM (direct rendering manager). Is it possible that the failure to load the VPU firmware also prevents the graphics card from functioning?
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Sun Nov 17, 2024 10:23 pm    Post subject: Reply with quote

nagmat84 wrote:
[...] Is it possible that the failure to load the VPU firmware also prevents the graphics card from functioning?

AFAIK: No. I know some settings without any VPU (NPU) module.

But if you have now a console we can now inspect more. I would like to see your current kernel .config and the complete output of "dmesg" and I would like to ask how you have created your kernel .config? (make oldconfig for a prevoius one, or completely new ... or edited an old one?)
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Sun Nov 17, 2024 10:59 pm    Post subject: Reply with quote

This is not a direct answer to the previous post, because I was busy trying different things, but I made some progress.
  • gentoo-sources-6.11.8 with my custom configuration does not boot at all. This is variant which this post has been about originally and whose config is in the pastebin above.
  • gentoo-kernel-6.6.58 (stable) with the configuration that is shipped with the ebuild produces the kernel null pointer error and the Oops which I wrote about in my previous posting. I don't get a graphical login, because sddm cannot find a usable display, but at least I get a console.
  • genoo-kernel-6.11.8 (testing) with the configuration that is shipped with the ebuild simply works. There are no errors in dmesg, no firmware problems and I get a graphical output.


Note: Refind invokes all three kernel in the exact same way and all three kernels use initramfs which include the exact same set of files I assume that proofs that the problem actually lies within the kernel and is not a problem due to refind or some missing firmware files.

I guess one can assume that 6.6.58 might just be too old for my hardware. The null pointer exception within the kernel indicates a kernel bug. So let's forget that kernel version. I only accidentally emerged that, because I forgot to unmask ~amd64 for gentoo-kernel.

So the interesting question is what is the crucial difference between gentoo-sources-6.11.8 with my custom configuration and gentoo-kernel-6.11.8 with the distribution-provided configuration that makes the first one unbootable and the latter one working smoothly?

Quote:
I would like to see your current kernel .config and the complete output of "dmesg" and I would like to ask how you have created your kernel .config?


My custom kernel config for gentoo-sources-6.11.8 which does not work is in the pastebin. The working config for gentoo-kernel-6.11.8 is the distribution provided configuration.

I have been using an older generation of the same Laptop model, i.e. Lenovo X1 Carbon 3rd gen which has already been running kernel 6.11.8. I took that configuration as a starting point for my new Laptop Lenovo X1 Carbon 12th gen, enabled the options for the new devices (USB4/Thunderbolt, NVMe, PCIE, different sound card, different Bluetooth adapter, touch input, ...) and disabled the options for the non-existing devices (i.e. different camera model, etc.)

I took the kernel config of my previous laptop as a starting point, because it was already tuned for an Intel-only, low-power system.
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Mon Nov 18, 2024 1:37 am    Post subject: Reply with quote

nagmat84 wrote:
This is not a direct answer to the previous post, because I was busy trying different things, but I made some progress.
  • gentoo-sources-6.11.8 with my custom configuration does not boot at all. This is variant which this post has been about originally and whose config is in the pastebin above.
  • gentoo-kernel-6.6.58 (stable) with the configuration that is shipped with the ebuild produces the kernel null pointer error and the Oops which I wrote about in my previous posting. I don't get a graphical login, because sddm cannot find a usable display, but at least I get a console.
  • genoo-kernel-6.11.8 (testing) with the configuration that is shipped with the ebuild simply works. There are no errors in dmesg, no firmware problems and I get a graphical output.

[...]
So the interesting question is what is the crucial difference between gentoo-sources-6.11.8 with my custom configuration and gentoo-kernel-6.11.8 with the distribution-provided configuration that makes the first one unbootable and the latter one working smoothly?

I see these main differences:

1. Our gentoo dist-kernel has not this command line parameters:
Code:
CONFIG_CMDLINE="rd.vconsole.font=eurlatgr rd.vconsole.keymap=de-latin1 rd.locale.LANG=de_DE.UTF-8 init=/lib/systemd/systemd random.trust_cpu=on"

(perhaps irrelevant)

2. Not these:
Code:
# CONFIG_X86_X2APIC is not set
# CONFIG_X86_INTEL_LPSS is not set
CONFIG_NR_CPUS=16

(perhaps irrelevant)

3. And our gentoo dist-kernel supports every file compression of the initramfs, while you have only:
Code:
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_RD_GZIP is not set
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
CONFIG_RD_LZ4=y

... so, are you sure your (used) initramfs is compressed with LZ4 (and not gzip) ?


BTW: I would disable CONFIG_SYSFB_SIMPLEFB=y and enable: # CONFIG_I2C_HID_ACPI is not set
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
dmpogo
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 3439
Location: Canada

PostPosted: Mon Nov 18, 2024 5:14 am    Post subject: Reply with quote

nagmat84 wrote:
This is not a direct answer to the previous post, because I was busy trying different things, but I made some progress.
  • gentoo-sources-6.11.8 with my custom configuration does not boot at all. This is variant which this post has been about originally and whose config is in the pastebin above.
  • gentoo-kernel-6.6.58 (stable) with the configuration that is shipped with the ebuild produces the kernel null pointer error and the Oops which I wrote about in my previous posting. I don't get a graphical login, because sddm cannot find a usable display, but at least I get a console.
  • genoo-kernel-6.11.8 (testing) with the configuration that is shipped with the ebuild simply works. There are no errors in dmesg, no firmware problems and I get a graphical output.




I have the same machine and it is still in the box :) My understanding was that Intel Core Ultra support in 6.6 is still iffy. As I see 'Intel Meteor Lake Graphics declared stable' only in 6.7, but 6.9 still had work on that continuing
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Mon Nov 18, 2024 7:11 am    Post subject: Reply with quote

Yes, I am absolutely sure that the initramfs is compressed with LZ4. I manually unpacked all three initramfs with cpio and LZ4 to check if and how they differ. (They don't.) And there should be an early kernel error if the kernel wasn't able to decompress the initramfs. Shouldn't it?

I don't believe the embedded kernel command line is the problem. It's only for localization.

We have to wait until next weekend until I can do more tests. I don't have the laptop with me during the workweek.

One other difference between the distribution kernel and the custom kernel are the IIO-related config options (IIO = industrial input output?). For what are those? Can this be the culprit?


Last edited by nagmat84 on Mon Nov 18, 2024 4:58 pm; edited 1 time in total
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Mon Nov 18, 2024 3:54 pm    Post subject: Reply with quote

nagmat84 wrote:
[...] One other difference between the distribution kernel and the custom kernel are the IIO-related config options (IIO = industrial input output?). For what are those? Can this be the culprit?

I dont think so. But you can check it: Boot with our dist-kernel and check the loaded modules with "lsmod". If they do not appear there, they are definitely not necessary.
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Tue Nov 19, 2024 9:57 pm    Post subject: Reply with quote

pietinger wrote:
BTW: I would disable CONFIG_SYSFB_SIMPLEFB=y and enable: # CONFIG_I2C_HID_ACPI is not set
I will enable CONFIG_I2C_HID_ACPI as soon as I get back to the laptop. Your advice regarding CONFIG_SYSFB_SIMPLEFB puzzles me. But this is should be discussed in a separate thread: https://forums.gentoo.org/viewtopic-t-1171808.html
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Sun Nov 24, 2024 6:41 pm    Post subject: Reply with quote

I am lost and hit a dead end. I took the distribution-provided kernel configuration for 6.11.8 from /etc/portage/savedconfig, copied that configuration to the kernel sources for 6.12.1, ran "make oldconfig" and compiled gentoo-sources-6.12.1 myself. I ran "make all && make modules_install && make install" and everything was fine. The kernel booted. So rEFInd and my Dracut configiuration are definitely fine, too.

Then, I took my custom kernel config and ran "make oldconfig". Then I incorporated all the tips from here (i.e. enabled CONFIG_I2C_HID_ACPI, disabled CONFIG_SYSFB_SIMPLEFB, etc.). Additionally I inspected lspci, usb-devices and lsmod what else is loaded by the kernel with the distribution-provided configuration. I ran
Code:
egrep --recursive --include='Makefile' -i -e 'CONFIG_.* <paste-module-name-here>\.o' .
to figure out which configuration options my custom kernel might be missing and enabled all those, too. Additionally, I also built all firmware files into the kernel just as a safety measure. The result: I get an unbootable kernel which does not even print a single line on the console. WTF?!?!?

Here are some pastebins:
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Sun Nov 24, 2024 8:00 pm    Post subject: Reply with quote

These MUST be activated:
Code:
# CONFIG_X86_X2APIC is not set
 
# CONFIG_X86_INTEL_LPSS is not set

(X86_INTEL_LPSS I already mentioned as very important ...)

To be on a safe side, I recommend (just do it):
Code:
1.
# CONFIG_CPUSETS_V1 is not set
# CONFIG_EFI_HANDOVER_PROTOCOL is not set
2.
CONFIG_CMDLINE_BOOL=y
CONFIG_X86_INTEL_TSX_MODE_AUTO=y
CONFIG_X86_ACPI_CPUFREQ=y
3.
CONFIG_MODULE_SIG=y
4.
# CONFIG_AGP is not set
2.
CONFIG_DRM_XE=m
1.
# CONFIG_FB_VESA is not set

1. Enable it
2. Disable it
3. Disable it - I want to be on a safe side (when everything works, we can switch back ONE option at a time)
4. Enable it and enable then Intel

Do all changes in "make menuconfig" - NOT in an editor.
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
dmpogo
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 3439
Location: Canada

PostPosted: Sun Nov 24, 2024 9:53 pm    Post subject: Reply with quote

pietinger wrote:

To be on a safe side, I recommend (just do it):
[code]1.

4.# CONFIG_AGP is not set
4. Enable it and enable then Intel



This is what interested me for a while, why enabling AGP on the machine with no AGP bus - what is it needed for ? I actually do indeed have it enabld on intel laptop, but not on nividia machines
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Mon Nov 25, 2024 12:31 am    Post subject: Reply with quote

dmpogo wrote:
This is what interested me for a while, why enabling AGP on the machine with no AGP bus - what is it needed for ?

Yes, usually it is only necessary for (very) old systems ... but it would just be too embarrassing for me if I didn't list something and in the end it would be necessary (I've been in IT too long and have experienced too many “impossible” things :twisted: ).
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Tue Nov 26, 2024 8:26 pm    Post subject: Reply with quote

Good news first. I implemented all recommendations by @pietinger and finally got a booting kernel. Yipeeh! This means I finally have a baseline from where I can start reverting some of the changes (like module signing) until I find the crucial settings (I guess it will be CONFIG_X86_X2APIC and CONFIG_X86_INTEL_LPSS). When I will have found out, I am going to report back.

However, first I need to find some other missing pieces. Unfortunately, the touchpad and touchscreen both stopped working. I assume it is some missing driver which has been statically built into the distribution kernel, because I couldn't find anything suspicious with "lsmod". Once again, I put my hope into this fantastic forum community.

Here are the pastebins for the custom kernel which implements pietinger's recommendations:

Here are some of the differences which caught my eye. "-" always is the distribution kernel, "+" is the custom kernel.

Some addresses seems to have changes, but I assume that is harmless and expected:
Code:
-efi: ACPI=0x4bafe000 ACPI 2.0=0x4bafe014 SMBIOS=0x4e208000 SMBIOS 3.0=0x4e1fb000 TPMFinalLog=0x4b998000 MEMATTR=0x78cf9018 ESRT=0x78d03018 INITRD=0x480eff98 RNG=0x4bafc018 TPMEventLog=0x4baf3018
+efi: ACPI=0x4bafe000 ACPI 2.0=0x4bafe014 SMBIOS=0x4e208000 SMBIOS 3.0=0x4e1fb000 TPMFinalLog=0x4b998000 MEMATTR=0x78903018 ESRT=0x78910398 INITRD=0x4809af98 RNG=0x4bafc018 TPMEventLog=0x4baf3018
-efi: Remove mem90: MMIO range=[0xc0000000-0xcfffffff] (256MB) from e820 map
+efi: Remove mem94: MMIO range=[0xc0000000-0xcfffffff] (256MB) from e820 map
-esrt: Reserving ESRT space from 0x0000000078d03018 to 0x0000000078d032f8.
+esrt: Reserving ESRT space from 0x0000000078910398 to 0x0000000078910678.
-e820: update [mem 0x78d03000-0x78d03fff] usable ==> reserved
+e820: update [mem 0x78910000-0x78910fff] usable ==> reserved
-NODE_DATA(0) allocated [mem 0x85ffd52c0-0x85fffffff]
+NODE_DATA(0) allocated [mem 0x85fffc8c0-0x85fffffff]
-e820: update [mem 0x78a07000-0x78b4bfff] usable ==> reserved
+e820: update [mem 0x78612000-0x78756fff] usable ==> reserved
-PM: hibernation: Registered nosave memory: [mem 0x78a07000-0x78b4bfff]
-PM: hibernation: Registered nosave memory: [mem 0x78d03000-0x78d03fff]
+PM: hibernation: Registered nosave memory: [mem 0x78612000-0x78756fff]
+PM: hibernation: Registered nosave memory: [mem 0x78910000-0x78910fff]
-e820: reserve RAM buffer [mem 0x78a07000-0x7bffffff]
-e820: reserve RAM buffer [mem 0x78d03000-0x7bffffff]
+e820: reserve RAM buffer [mem 0x78612000-0x7bffffff]
+e820: reserve RAM buffer [mem 0x78910000-0x7bffffff]


The distribution kernel has an additional "Device empty" at
Code:
 Zone ranges:[code]DMA      [mem 0x0000000000001000-0x0000000000ffffff]
   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
   Normal   [mem 0x0000000100000000-0x000000085fffffff]
-  Device   empty[/code]


The distribution kernel additionally shows the following dmesg lines
Code:
-DMA: preallocated 4096 KiB GFP_KERNEL pool for atomic allocations
-DMA: preallocated 4096 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
-DMA: preallocated 4096 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations

-pci 0000:00:06.0: PTM enabled (root), 4ns granularity
-pci 0000:00:06.1: PTM enabled (root), 4ns granularity
-pci 0000:00:07.0: PTM enabled (root), 4ns granularity
-pci 0000:00:07.2: PTM enabled (root), 4ns granularity
-pci 0000:00:1c.0: PTM enabled (root), 4ns granularity

-shpchp: Standard Hot Plug PCI Controller Driver version: 0.4


Moreover, the distribution kernel prints some more lines regarding USB devices, but maybe this is simply due to a higher verbosity, because I am not missing any USB devices
Code:
-usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.12
-usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
-usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.12
-usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
-usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.12
-usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
-usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.12
-usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
-usb 3-6: New USB device found, idVendor=30fa, idProduct=0300, bcdDevice= 1.00
-usb 3-6: New USB device strings: Mfr=0, Product=1, SerialNumber=0
-usb 3-7: New USB device found, idVendor=06cb, idProduct=0123, bcdDevice= 0.00
-usb 3-7: New USB device strings: Mfr=0, Product=0, SerialNumber=1
-usb 3-9: New USB device found, idVendor=2ac1, idProduct=20c9, bcdDevice=42.21
-usb 3-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3
-usb 3-10: New USB device found, idVendor=8087, idProduct=0033, bcdDevice= 0.00
-usb 3-10: New USB device strings: Mfr=0, Product=0, SerialNumber=0


The custom kernel shows this output which makes me leery
Code:

+ALSA device list:
+  No soundcards found.


And here probably the important part about a lot of missing input devices
Code:
input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2

+input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input3

-input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
+input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4

+input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input6

-input: TPPS/2 Elan TrackPoint as /devices/platform/i8042/serio1/input/input5
-input: USB OPTICAL MOUSE  as /devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.0/0003:30FA:0300.0001/input/input6
-input: ELAN901C:00 04F3:4250 Touchscreen as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN901C:00/0018:04F3:4250.0002/input/input7
-input: ELAN901C:00 04F3:4250 as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN901C:00/0018:04F3:4250.0002/input/input8
-input: ELAN901C:00 04F3:4250 as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN901C:00/0018:04F3:4250.0002/input/input9
-input: ELAN901C:00 04F3:4250 as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN901C:00/0018:04F3:4250.0002/input/input14
-input: ELAN901C:00 04F3:4250 UNKNOWN as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN901C:00/0018:04F3:4250.0002/input/input15
-input: ELAN901C:00 04F3:4250 UNKNOWN as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-1/i2c-ELAN901C:00/0018:04F3:4250.0002/input/input16
-input: ELAN06D4:00 04F3:32B5 Mouse as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN06D4:00/0018:04F3:32B5.0003/input/input18
-input: ELAN06D4:00 04F3:32B5 Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN06D4:00/0018:04F3:32B5.0003/input/input20

-input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input21

-input: Intel HID events as /devices/platform/INTC1070:00/input/input22
+input: Intel HID events as /devices/platform/INTC1070:00/input/input7

-input: PC Speaker as /devices/platform/pcspkr/input/input23

-input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input24
+input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input8

-input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input25
-input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input26
-input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input27
-input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input28
-input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input29
The custom kernel only finds 6 input devices, while the distribution kernel goes up to 29. I tried to "grep" in the kernel sources which drivers are responsible for the lines, but was not able to pinpoint the relevant parts.

Moreover, lspci shows the following differences
  • different IRQs (maybe irrelevant?)
  • for "00:05.0 Multimedia controller: Intel Corporation Meteor Lake IPU"
    • missing "kernel driver in use: intel-ipu6"
    • missing flag "bus master"
  • for "00:1f.3 Audio device: Intel Corporation Meteor Lake-P HD Audio Controller"
    • different capability "MSI: Enabled+" vs. "MSI: Enabled-"



I believe, the differences in "lsusb" can be ignored. One time I had connected an external USB mouse and a USB-C-to-Ethernet converter. So I have a plausible explanation for that.
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5158
Location: Bavaria

PostPosted: Tue Nov 26, 2024 10:18 pm    Post subject: Reply with quote

nagmat84 wrote:
Good news first. [...] and finally got a booting kernel. Yipeeh!

Happy to hear that. :D

nagmat84 wrote:
[...] Unfortunately, the touchpad and touchscreen both stopped working. I assume it is some missing driver which has been statically built into the distribution kernel, because I couldn't find anything suspicious with "lsmod". [...]

Yes, we had this problem very often :lol: I guess you have a touchpad connected via i2c. If this is true then mostly PINCTRL was missing (in our dist-kernel all Intel-pinctrl-modules are configured statically, so you dont see it with "lsmod") ... and i2c needs pinctrl. Please take a look to:
https://wiki.gentoo.org/wiki/User:Pietinger/Experimental/Manual_Configuring_Current_Kernel#I2C_Touchpad
and for pinctrl:
https://wiki.gentoo.org/wiki/User:Pietinger/Experimental/Manual_Configuring_Current_Kernel#Device_Drivers
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
nagmat84
Apprentice
Apprentice


Joined: 27 Mar 2007
Posts: 274

PostPosted: Tue Nov 26, 2024 10:57 pm    Post subject: Reply with quote

I am going to have a look into that tomorrow.

Is there any way to systematically find out which kernel driver is used for what /sys/devices/**/input? Beides the touchpad and touchscreen the distribution kernel registers a lot more input devices (29 instead of 6). Hence, some other drivers besides those for the touch input seems to be missing, too.

Should I worry about the disabled message-signaled interrupt (MSI) for audio controller (PCI device 00:1f.3)?
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