-   Slackware (
-   -   What Do I Need To Know About Huge vs. Generic Kernels During Installation? (

joncr 07-14-2012 06:15 PM

What Do I Need To Know About Huge vs. Generic Kernels During Installation?
I'm waiting for the offical release of Slackware 14. The last version I used was 12, and the first was, I think, 3.5.

Some things I've read seem to make it crucial that I make a decision about the kernel I want to run at the end of the installation. Is that right?

As I understand, during the install, I can choose between the "Huge" kernel, which contains drivers for pretty much everything, or the "Generic" kernel, which does not contain drivers and requires the creation of an initrd.

If I choose the Huge kernel during the install, and I'm OK with using it, is there anything else I need to do?

willysr 07-14-2012 06:21 PM

during installation, the installer will use huge kernel for better hardware detection, but yes, you can choose what kernel to be installed on the system.

If you are OK with the huge, you can just keep it like that and probably remove the generic packages if you don't really need them

Suppose you ran into issues, it would be best to diagnose it using a generic kernel though

TommyC7 07-14-2012 06:23 PM

Not to my knowledge there isn't anything you need to do after selecting to use the huge kernel.

joncr 07-14-2012 06:26 PM

Thanks, Willy. I'll go with the Huge.

Didier Spaier 07-14-2012 06:27 PM

I suggest you choose the huge kernel during installation (this the default) as it is easier.

After installation you could install the generic kernel, just follow instructions you will find in /boot/README.initrd.

The same drivers are included in both versions, the difference being that a lot of these, which are built in the huge kernel are provided as modules with the generic one.

It is recommended to use the generic kernel for a daily use, as there is less risk to have conflicting drivers for the same hardware in that case.

If for some reason you prefer not to use an initrd, you can re-compile the generic kernel after having configured as built in the root file system (the one used for /).

EDIT I should write faster: three posts while editing mine, what a pity :confused:

joncr 07-14-2012 08:02 PM


Originally Posted by Didier Spaier (Post 4728248)
I suggest you choose the huge kernel during installation (this the default) as it is easier.

It is recommended to use the generic kernel for a daily use, as there is less risk to have conflicting drivers for the same hardware in that case.

So, if I do go with the generic, do I need to create an initrd before I reboot at the end of the install, and is that explained in the README?

Complicating this is that I need to install an Nvidia proprietary driver ASAP. The combination of my Nvidia card, a 3.2 kernel, and nouveau will cause a crash as soon as X tries to load. So, on other distributions, I need to interrupt the install boot and add some options to the kernel boot to avoid that.

Come to think of it, Salckware still uses lilo, right? Still an ncurses installation? No X in sight?

Also, is there really a danger of the huge kernel loading "conflicting" drivers? Why is it even loading drivers for hardware it doesn't detect?

cikrak 07-14-2012 08:11 PM

Up until now I'm still using HUGE kernel and no problem at all. Yeah I'm to lazy to switch to GENERIC.. :D

Didier Spaier 07-14-2012 11:25 PM


Originally Posted by joncr (Post 4728301)
So, if I do go with the generic, do I need to create an initrd before I reboot at the end of the install, and is that explained in the README?

Only if you would choose generic at time of install.

What I suggest is instead to wait after the first reboot before possibly switching to generic.

Yes Slackware still use lilo and start at run level 3 by default: you will start X (using the 'startx' command) when you are ready. I remind you that before you do that, after rebooting you can create a regular user (the "adduser" command comes handy for that) and choose your WM or DE with the 'xwmconfig' command (your setting here will be on a per-user basis).

Slackware 14 will include a fairly up to date X stack, so I would be very surprised that X crash when launched with a nVidia card.

As a matter of precaution though (as to avoid that the screen become blank at some point of time in the boot sequence) you could edit the /etc/lilo.conf file and choose "vga=normal" (if not already done) and run "lilo -t -v " (to check lilo.conf) then "lilo"; or blacklist the 'nouveau' driver (anyhow X will load it automatically if "nvidia" is not installed). In last resort when you see the lilo's greeting screen you can still hit TAB instead of RETURN and append "nomodeset" (without the quotes) before hitting RETURN.

You will be able to install the nVida drivers afterwards. I recommend you use the Slackbuilds available at to do that in order to ease uninstalling it if/when you wish to.

But a few exceptions the "huge" kernel doesn't load devices drivers: they are always available in it as they are "buit-in". There is a possibility that several drivers claim the same device and that this cause trouble. I don't know if there is a danger in your case as it depend on the hardware you use. Maybe this could still occur with a generic kernel and modularized drivers (not sure about that) but in that case you will be able to blacklist the faulty module. As willysr pointed out if you have no problems you can keep the huge kernel. It doesn't hurt to have both kernels installed side-by-side and to choose which one will be used at boot time anyway: it's just a matter of having a section for each in your /etc/lilo.conf.

dc_eros 07-15-2012 12:03 AM

What I did is after installing using the huge kernel, I configure the generic kernel add added as default kernel when lilo prompt appears. It will be safe since if generic does not work, you can always reboot the select the huge kernel instead.

I have no problem using generic kernel so far, both 64 and 32 bit.

kikinovak 07-15-2012 01:35 AM

I only use the huge kernels (hugesmp.s on 32-bit, huge.s on 64-bit) for the installation. Once it's completed, first thing I do is replace this by the generic kernel. YMMV, but I found the easiest way to do that is to edit /etc/mkinitrd.conf and run mkinitrd -F, after copying over the provided sample file mkinitrd.conf.sample.

If you don't know what modules to include explicitly, take a peek in /usr/share/mkinitrd. There's a nifty script (courtesy Eric Hameleers) that will spew out all the needed options.

Once this is done, I usually remove all the symlinks in /boot (System, config and vmlinuz) and edit the full path(s) to kernel and initrd. Don't forget to run lilo after that, of course.

joncr 07-15-2012 08:11 AM

Thanks, all, for the great responses. Looks like Slackware 14 will feel very familiar. I've bookmarked this thread for future reference.

Didier, good to know I can TAB my way into lilo and add boot options. I've found "nouveau.noaccel=1 nomodeset" works, while just "nomodeset" does not. This is, I think, a kernel bug in the 3.2/3.3 series. In any case, those kernels, plus a few Nvidia cards (mine is a 550ti), produce a mixture that will put the screen into sleep mode and lock up the machine when an attempt to launch nouveau is made. This means, for example, that an install routine that runs nouveau before running Grub is useless to me. Hence, the need to install Nvidia and get rid of nouveau.

Didier Spaier 07-15-2012 09:34 AM

To blacklist nouveau just do this:

installpkg /path/to/slackware/extra/xf86-video-nouveau-blacklist/xf86-video-nouveau-blacklist-noarch-1.txz
If you change your mind:

removepkg /path/to/slackware/extra/xf86-video-nouveau-blacklist/xf86-video-nouveau-blacklist-noarch-1.txz
And to make sure that nouveau won't be loaded at X startup:

echo -e 'Section "Device"\nIdentifier "MyGPU"\nDriver "vesa"\nEndSection' > /etc/X11/xorg.conf.d/donotusenouveau.conf
replace "vesa" with "nv" or "nvidia" if you prefer/when you are ready.

salparadise 07-18-2012 01:50 AM

echo -e 'Section "Device"\nIdentifier "MyGPU"\nDriver "vesa"\nEndSection' > /etc/X11/xorg.conf.d/donotusenouveau.conf

Is that unique to Slackware14 or should it work on 13.37?

I cannot get nouveau-blacklist to work on slackware-13.37. The nouveau driver is installed at boot despite installing the blacklist file 3 times.

mats_b_tegner 07-18-2012 02:23 AM

The xf86-video-nouveau-blacklist package is not needed with the latest NVIDIA drivers. nvidia-installer will create the blacklist-file for you.
bash-4.2$ less nvidia-installer-disable-nouveau.conf
# generated by nvidia-installer
blacklist nouveau
options nouveau modeset=0

Didier Spaier 07-18-2012 02:51 AM

@salparadise: There are actually two different "nouveau" drivers which cooperate with each other.

The "nouveau" kernel driver (usually compiled as a module), which is usually loaded by the kernel at boot time (before lauching X), in case of a nVidia GPU. If loaded it will show in output of "lsmod|grep nouveau"

The "nouvau" X driver, which is (or can be) used for display under X.

You can avoid that the "nouveau" kernel driver be loaded automatically at boot time in appending the line "blacklist nouveau" to the file /etc/modprobe.d/blacklist.conf (or writing it to a specific file, which is what the xf86-video-nouveau-blacklist Slackware package does).

But even if you do that, the X server will automatically load the "nouveau" kernel driver at boot, unless you tell it to use another driver than nouveau, which can be done for instance with the "echo -e..." command aforementioned. As you probably did notice this command will write the file /etc/X11/xorg.conf.d/donotusenouveau.conf with following content:

Section "Device"
Identifier "MyGPU"
Driver "vesa"
End Section

In this case the "vesa" driver will be used. Of course if you use the closed source nVida driver (aka "the blob") the "nvidia" driver should be used instead. But in that case, as mats b tegner pointed out, the nVidia installer can do the configuration for you.

And yes, this works on Slackware 13.37 as well.

EDIT For completeness, I remind that instead of adding a new config file in /etc/X11/xorg.d it is still possible to simply do this as root:

mv /etc/X11/xorg.conf.vesa /etc/X11/xorg.conf
In this case all X configuration is supposed to be set up by that file that you can tune to your taste (and it is well commented, thanks Pat).
This stands for Slackware-13.37, as well as for Slackware-current in its current state.

All times are GMT -5. The time now is 06:02 AM.