[SOLVED] Make 5.15 kernel work on 11 Gen Intel PCs (driver selection help needed)
Linux - KernelThis forum is for all discussion relating to the Linux kernel.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Make 5.15 kernel work on 11 Gen Intel PCs (driver selection help needed)
Hi,
I'm trying to update the kernel from (4.14.x to 5.15.x) of the following sedutil repo, but I'm not entirely successful. I managed to update the .config with make oldconfig, and the whole project compiles and boots on older hardware as before.
The problem is that the new kernel (Rescue64 boot image) does not boot on 11 Gen Intel hardware (it freezes as soon as the boot image has been decompressed). I'm sure I'm missing some drivers, but I don't know which. What I want to achieve here is a generic kernel config that boots on most modern PCs, but it doesn't contain stuff like networking, virtualization, multimedia, etc, as they are unnecessary for an SSD pre-boot image.
Could somebody help me by letting me know which kernel modules I need to enable to make this version work on modern 11 Gen (and beyond) Intel systems?
The current (not entirely working) kernel config can be found as an attachment.
What makes you think it freezes? Perhaps it stops video output so you won't see anything and in actuality it boots up? If it boots then you should check dmesg.
Because the cursor freezes. No input is possible, there's nothing on the screen (except the not blinking cursor), and the computer can only be turned off by pushing the power button for many seconds (~10). There is no dmesg because the system is booted from a USB stick, nothing is preserved.
I tell you your display may be disabled and you tell me cursor freezes ... Yes, the cursor may freeze when your computer stops video output.
I recite, how do you know no input is possible if your display is disabled? Does NumLock LED turn on/off? You should try and SSH into it, then you can read the dmesg from RAM.
Anyhow, looking at your .config all graphics drivers are built as modules. Do you generate a custom initramfs for every machine? Because at boot time modules cannot be loaded from hard drive, it is not mounted yet. All drivers you need for boot must be either built in or provided in initramfs. With current config and without initramfs your screen will freeze and you won't be able to see it booting (although it is booting) ... oh wait ...
Forgot to mention, that I don't have a NumLock LED (it is a laptop), but I do have a CapsLock LED, and that stops working as soon as I get the blank screen. Switching CapsLock never gets disabled if it runs on older hardware.
Quote:
Originally Posted by Emerson
all graphics drivers are built as modules
I really have no choice in this. The menuconfig configurator doesn't allow me to choose anything else if I want it compiled.
Quote:
Originally Posted by Emerson
With current config and without initramfs your screen will freeze and you won't be able to see it booting
As stated in the original post: and boots on older hardware as before. This means that the generated image _does_ work as intended (everything gets mounted, loaded, displayed, etc.), but only on older hardware. This also means that the general approach to building the image written to the USB stick (initramfs, compiling as modules, etc.) is also valid.
I'm just applying basic logic here: If everything works fine on older hardware, but it doesn't on a new one (using the exact same USB stick), then it must be a kernel config problem. Yes? Probably a missing module? Because I updated the kernel conf from a several years older version (also stated in the OP), where the support for the hardware I'm trying to run it on now didn't even exist? And maybe it should be enabled and that would fix the problem? That is what the original question is all about.
The VGA driver can certainly be a problem, but those are updated within the same module usually (I don't see any new Intel VGA modules in the conf, but please point it out if I missed it), so there is not much to think about here. I suspect something else is missing (PCI, memctrl, some bus, I don't know). I hoped someone is more versed in recent hardware than I am and could point out what needs to be enabled. That's it.
Also you usually don't need to press the power button for 10 secs (also stated in the OP) in order to turn off a computer if it is not frozen. Or do I have my facts wrong? Just in case: I tested it on an older PC, and a short press to the power button does turn it off after everything has been loaded (because it is not frozen?).
OK, maybe it is freezing.
Boot with something that works and look at 'lspci -nnk' output. This lists all PCI devices and drivers used for them. Make sure your kernel and initramfs have drivers for hard drive controller (or USB controller if booting from USB).
Just to be on the same page. You have a USB stick with new kernel, this stick boots some other computer, but not the laptop? Correct?
USB stick with older kernel boots this laptop. Correct?
Just to be on the same page. You have a USB stick with new kernel, this stick boots some other computer, but not the laptop? Correct? USB stick with older kernel boots this laptop. Correct?
Almost correct. The same USB stick boots on an older computer but not on a new one, and it doesn't seem to matter which kernel version I have. I suspect this is because the selection of compiled modules didn't change, so I'm just having the same collection of stuff with a new version tag on it (bar the updated code in the already selected modules).
Quote:
Originally Posted by Emerson
look at 'lspci -nnk' output.
Wow, that's a nice trick. I didn't know lspci has an output with drivers and modules. I was just about to ask how can one find the correct module for the stuff listed by lspci, but it seems you already provided the answer. Thanks. Will check this one tomorrow, let's hope it brings me closer to a solution.
Solution: Compile the DRM and related video drivers into the kernel (along with nvme, USB controllers, or anything needed for boot) and it can fix the problem. I don't know if this is the preferred solution, but it seems to work.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.