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.
Sorry for a very long absence. I have managed to find some time to come back to this question as I never did get it resolved due to lack of time. I have now got it working, but I don't understand why I need to do this.
I installed a brand new Slackware install with A, AP (just three programs in there), D, L and N. I then blacklisted the kernels in the blacklist file and did a full update of Slackware using upgrade-all etc.
Rebooted the system and remmed out the lines for the kernels in the blacklist file to prevent the kernels being blacklisted from downloads.
I ran slackpkg update gpg, slackpkg update, slackpkg upgrade-all and Overwrote all old files. Bearing in mind I did not have the K apps installed, I did not download the Kernel Source - just the huge, generic and the kernel modules.
then I need to run eliloconfig and restart and finally it all worked.
Now, here comes the part that I don't understand. The default install of Slackware uses a Huge kernel. When you download the latest kernel, you get both huge and generic as download options. If I remove generic and only download huge (without running mkinitrd) - the update does not work - the system reboots with the old kernel but nothing works because it appears to be missing modules etc. I will need to test and see if it works running mkinitrd. I have only tested the mkinitrd when downloading both huge and generic kernels.
Why is this - my understanding of the huge kernel is that you don't need to run mkinitrd as the huge kernel does not use an initrd.gz ramdisk file. I should only need this for a generic kernel should I not. How do I know which kernel I am using after the upgrade. Should I download both huge and generic?
I have done some more testing. It seems that only the generic kernel works - but this obviously has to be done with initrd command as above.
When I exclude the generic kernel, the kernel does not update the huge kernel (regardless of whether I use the initrd command or not). I get the exact same error - which is that it is missing the kernel modules (but for the old, not new kernel - it just doesn't seem to update at all to the new kernel for huge).
The initrd command is the solution for the generic kernel so I will use that, but no idea what the problem is for the huge kernel. I just can't update the huge kernel. Maybe the default slackware version is not using huge, but is using generic?
@ Tonus. Everything is up to date. I did a full update for everything, rebooted and then did an update for latest slackware kernel. As the generic kernel works, it's not a kernel version issue. I am obviously doing something wrong with the huge kernel update.
@ colourpurple - Nothing in the blacklist. I only put kernels in blacklist to update everything but the kernels. Once I updated the rest of Slackware, I then removed the kernels in the blacklist so I could do the kernel update.
I tried copying the new huge kernel to the efi/efi/slackware folder and then running eliloconfig again, but it didn't work. I just need to take a break and come back to it. But I think this is the problem. I need to copy the huge kernel somewhere. That should fix it.
I have determined that if I simply copy the new vmilinuz-huge-version in /boot folder to /boot/efi/efi/slackware/vmlinuz and I do not run eliloconfig, it appears to boot on the new kernel version.
I am closing this question now because we now have the solution for upgrading both the huge and generic kernels.
For generic after upgrade-all, you need to run initrd command then run eliloconfig
For Huge after upgrade-all you simply need to copy the huge kernel to the folder. But do not run eliloconfig. When you run eliloconfig, it actually copies the generic kernel which naturally fails if you don't run initrd. This is where I went wrong with updating the huge kernel. You must not run eliloconfig or anything else. Simply copy the huge kernel to the slackware folder. That's it.
During the course of my research, I have determined that even the Slackware Developer recommends using the generic kernel not the huge kernel, so I will in future be updating using initrd and eliloconfig to ensure that I am running the generic kernel. By using the upgrade-all I will still be updating the huge kernel, I just won't be running it on boot.
If and when I have some time, I will investigate what the k packages actually do. This has something to do with the full kernel source. I believe (and I speak under correction), that I only need this if I am intending to build custom kernels which I have no plans to do. So I will probably never need to install the K packages when installing Slackware.
Thank you very much for all your help tracking this down. Proved to be quite a complicated problem. However, it has helped me to fully understand what is actually happening when I upgrade the kernels.
There's nothing wrong or obsolete in the link 0XBF provided: https://docs.slackware.com/howtos:sl...kernelbuilding
......
#configure the new kernel - I much prefer the ncurses configuration tool
make menuconfig
# building with two cores, adapt -j to your system
make -j 2 bzImage
make -j 2 modules
make modules_install
-backup /boot - at least delete the System.map & vmlinuz symlinks
# install the new kernel (you could manually copy/rename the kernel + System.map)
make install
#edit lilo.conf, point the old image section to the old kernel file and not the vmlinuz symlink
#add a new image section and point it to the new kernel file
[/code]
Hi
I always compile my own striped kernel since number 2.0.
Never used initrd and default Slackware kernels/only for install/
Code:
#prefer because often update kernels
make oldconfig
# One command build kernel and modules
make -j 2
#install modules
make modules_install
#The old forgotten command /3in1/ installs vmlinuz and system.map in /boot doing backup old ones to vmlinuz.old and system.map.old and reload lilo.
make bzlilo
#if you prepare lilo.conf with one "rotational" section for new vmlinuz , and second for stable_vmlinuz nothing have to change in lilo.conf.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.