building my own kernel: no video output on notebook LCD
SlackwareThis Forum is for the discussion of Slackware Linux.
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.
About the system:
It has NVIDIA NVS 5400M GPU, which is set to native mode, so Optimus is not enabled in the UEFI firmware setup.
I have installed Slackware64 14.2 and updated the system with the most recent packages.
All seems okay and working with the 4.4.74 distribution kernel.
I use an xz compressed initrd, as per AlienBob's recommendation ( http://www.linuxquestions.org/questi...rd-4175599273/ )
The problem is, that in my kernel (4.9.34), I disabled the nouveau driver, because I wanted to install the proprietary nvidia driver (and later put it into the initrd), and on top of this I also wanted a framebuffer console.
I have also left the intel vga driver compiled in, so that in case I change my mind, I won't need to recompile my kernel.
I have also enabled the EFI and nvidia framebuffer drivers in the kernel.
The problem is, that once the kernel and the initrd get loaded, nothing is displayed on the notebook's LCD screen (and I haven't checked the VGA output).
The system seems to boot okay though, because the HDD led is blinking, and I am able to log in blind, and issue the reboot command, after which the system restarts to the elilo prompt properly.
Which options may have I left out of my kernel config, that would cause such a behavior?
My kernel config can be found here: https://pastebin.com/fsm9fuve
One additional question:
When I try to install the kernel firmware, all I get is the following error message:
Code:
# make firmware_install
nothing to be done for `__fw_install`
The problem is, that in my kernel (4.9.34), I disabled the nouveau driver, because I wanted to install the proprietary nvidia driver (and later put it into the initrd), and on top of this I also wanted a framebuffer console.
I have also left the intel vga driver compiled in, so that in case I change my mind, I won't need to recompile my kernel.
I have also enabled the EFI and nvidia framebuffer drivers in the kernel.
None of this is needed. The kernels shipped in Slackware are OK for your machine and allow you to use the video graphics driver(s) you want. This is true for kernel versions 4.4.74 (for Slackware-stable) and 4.9.34 (for Slackware-current).
Furthermore, it is a bad idea to have any video driver built in the kernel, as it will conflict with all other ones.
tl;dr: use one of the provided kernels as is.
Last edited by Didier Spaier; 06-29-2017 at 04:49 AM.
I gather the system has a Nvidia GPU and an intel one, and you do not currently have the Nvidia driver installed. Is that correct?
How is selection between GPUs configured? Which GPU does it boot on? I saved myself all this hassle by only getting one (crappy) gpu, which at the time was a good idea for my needs. The software is better now.
If you can fix it by installing stuff you don't want later, I would do that. Slackware allows root to uninstall anything, even if it means the system is destroyed; 'removepkg' doesn't check dependencies.
How does it manage on the Slackware huge kernel? You don't need an initrd with that.
None of this is needed. The kernels shipped in Slackware are OK for your machine and allow you to use the video graphics driver(s) you want. This is true for kernel versions 4.4.74 (for Slackware-stable) and 4.9.34 (for Slackware-current).
Furthermore, it is a bad idea to have any video driver built in the kernel, as it will conflict with all other ones.
tl;dr: use one of the provided kernels as is.
Generally I always build machine-specific kernels for all my machines running Slackware.
I know that it is not necessary, and there is no other reason behind it other than curiosity.
I gather the system has a Nvidia GPU and an intel one, and you do not currently have the Nvidia driver installed. Is that correct?
How is selection between GPUs configured? Which GPU does it boot on? I saved myself all this hassle by only getting one (crappy) gpu, which at the time was a good idea for my needs. The software is better now.
If you can fix it by installing stuff you don't want later, I would do that. Slackware allows root to uninstall anything, even if it means the system is destroyed; 'removepkg' doesn't check dependencies.
How does it manage on the Slackware huge kernel? You don't need an initrd with that.
Yes, it has an integrated Intel "card", next to which it also has an NVidia one.
At the moment the only the NVidia card is enabled, and I turned off the Intel one from the UEFI setup screen.
I am sure, that the initrd does not have anything to do with it, because it's an LVM-root system, and it manages to boot even without graphics.
In this use case, even the huge kernel needs an initrd, because the volume group containing the root file system has to be activated before it can be used.
From this point of view, the 4.4.74 generic and huge kernels behave well, because I have a boot console on the LCD screen.
After disabling the nouveau driver from modprobe, the console switched to a much worse resolution, but the display still worked okay and I could see what's happening.
On the 4.9.34 kernel, I have a number of framebuffer drivers (efi, nvidiafb) built into the kernel, and also turned on framebuffer console, but to no avail.
On the 4.9.34 kernel, I have a number of framebuffer drivers (efi, nvidiafb) built into the kernel, and also turned on framebuffer console, but to no avail.
On the 4.9.34 kernel, I have a number of framebuffer drivers (efi, nvidiafb) built into the kernel, and also turned on framebuffer console, but to no avail.
Ahh, there's your problem right there. The nvidiafb is a very old/obsolete framebuffer driver for very old cards. Don't enable it.
I tried, and only left efifb in the kernel konfig (the one that was in use with the 4.4.74 kernel, after disabling nouveau), but I still did not get to see anything. The laptop LCD only showed the lines telling me that the kernel and the initrd images got loaded.
My point in the huge kernel is that everything but the kitchen sink is compiled in, and you need no initrd. IMO, the initrd would have everything to do with it. With an initrd, You load the modules you need to boot. It seems to me that you've no module for nvidia at all, and the intel card is disabled, so exactly what do you expect to see?
Load the huge kernel, which probably has nouveau. Then install the nvidia binary blob, remake the initrd, and reboot on the generic kernel. Might that be a way to go?
My point in the huge kernel is that everything but the kitchen sink is compiled in, and you need no initrd. IMO, the initrd would have everything to do with it. With an initrd, You load the modules you need to boot. It seems to me that you've no module for nvidia at all, and the intel card is disabled, so exactly what do you expect to see?
Load the huge kernel, which probably has nouveau. Then install the nvidia binary blob, remake the initrd, and reboot on the generic kernel. Might that be a way to go?
Thank you! Yes, I understand the concept of nearly every device driver being built into the kernel image. There are some tasks however that have to be taken care of by userspace binaries: like re-assembling SW-RAID arrays, activating LVM VGs, when the rootfs is sitting on top of such devices.
Yes, in deed there was no nvidia driver present, but then, the EFI frame buffer should have taken over, like it does with the huge kernel, when nouveau is disabled via black-listing.
When the system booted okay, though without any display, I had an idea: I ssh'd into the machine, compiled the nvidia driver over ssh, installed it, put it into the initrd image, but still nothing! After rebooting, I saw that the nvidia driver was in deed loaded (kernel logs and lsmod confirmed it), but still there was nothing on the display.
There must be something else at play here...
I would enable the intel card and start from there. And I would sort it out on a distro kernel, then compile your own. Once you have the video setup as known good, sorting your kernel will be easier.
I would enable the intel card and start from there. And I would sort it out on a distro kernel, then compile your own. Once you have the video setup as known good, sorting your kernel will be easier.
Well yes, you are right. I should use a set of logically thought-out steps to narrow down the possible cause.
I thought of building in nouveau, and leaving out the nvidia driver, so that I can see, if the problem still appears with nouveau.
If it does, then it's either my config, or the kernel.
Then I would need to go to -current, to see how the distro kernel is performing. (I will have to create an LVM snapshot of the root FS for this.)
If the distro kernel has problems as well, then it's the kernel. If it works fine, then the problem will be with my config. Then I can do a diff or something on the configs.
The other path is tring to make it work with the intel driver first, and then swithching over to the nvidia card.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.