Slackware 15 was released on 2022-02-03, two years already of the last big release. Probably for many is enough with the included packages, but for the rest of us, there is slackware-current.

Slackware-current is the development branch of slackware, almost every day you got new updates and at some point, it will become the next stable release.

How to move to Slackware current

I did the following to move tu current

Download the software and installpkg. Then select the closest mirror (only ONE) under file /etc/slackpkg/mirrors and uncomment one line, HTTP and FTP are supported. Then you can do #slackpkg update and it will update the package list.

Blacklist the kernel!!!

Yes! It’s still Slackware, so don’t expect a kernel upgrade will be transparent. Best way is to blacklist kernel packages from the slackpkg repositories.

/etc/slackpkg/blacklist

And add the following at the bottom

kernel-generic.*

kernel-huge.*

kernel-modules.*

kernel-source

kernel-firmware*

kernel-headers*

Once the blacklist is ready, you can #slackpkg upgrade-all and this will update to the lastest patches on the 15 release. Don’t expect many/often updates here, for that current is the place.

Move to current

Edit /etc/slackpkg/mirrors once more time and comment your current slackware 15 repository and go to the Slackware64-current section and select one mirror, ie:

http://ftp.nluug.nl/os/Linux/distr/slackware/slackware64-current/

After that again do

#slackpkg update

#slackpkg upgrade-all

This will update probably every package on your system besides the kernel which is blacklisted. Once is done, reboot and hope for the best :P Nah, it should be fine.


Kernel upgrade

One of the golden rules is: ‘If it works, don’t touch it.’ and this rule is even more strong when you are touching the kernel. But, if you are like me and want to upgrade the kernel because ‘why not?’ then continue reading.

I know two ways of upgrading the kernel in Slackware.

  • Old way. Download the source and compile it yourself. I really recommend to do this at least once in your life, but keep in mind, you need to know what you are doing, you will go through a big menu with options for support of different hardware and kernel features. Good for learning but great risk, but the adventure worth it.

  • Using slackpkg to download the latest kernel. And then installpkg to install it. Why not doing everything with slackpkg? Because it will upgrade your current kernel, removing the old one and WE DONT WANT THAT! We always want to have a backup of the working kernel. Also it does not update properly your booting settings.

how to proceed

Comment from the slackpkg blacklist the kernel /etc/slackpkg/blacklist

#@kernel-generic.*

#@kernel-huge.*

#@kernel-modules.*

#@kernel-source

#@kernel-firmware*

#@kernel-headers*

And then

#slackpkg update

#slackpkg download kernel

You will get a prompt like this and proceed to download

downloadKernel

All the files are under /var/cache/packages/slackware64/ and you can install them with a command like this

#find . -name ‘kernel*txz’|xargs installpkg

Or you can just do one at a time with installpkg

#installpkg ./a/kernel-firmware-20240201_09f0fb8-noarch-1.txz

#installpkg ./a/kernel-huge-6.6.15-x86_64-1.txz

#installpkg ./a/kernel-generic-6.6.15-x86_64-1.txz

#installpkg ./a/kernel-modules-6.6.15-x86_64-1.txz

#installpkg ./k/kernel-source-6.6.15-noarch-1.txz

#installpkg ./d/kernel-headers-6.6.15-x86-1.txz

Once installation is finish, you will have all the files of your current kernel and the new kernel that will be available on next boot. Next step is to generate the init files, with the next command:

#/usr/share/mkinitrd/mkinitrd_command_generator.sh -k 6.6.15

The output of that command should be something like this:

#
# mkinitrd_command_generator.sh revision 1.45
#
# This script will now make a recommendation about the command to use
# in case you require an initrd image to boot a kernel that does not
# have support for your storage or root filesystem built in
# (such as the Slackware 'generic' kernels').
# A suitable 'mkinitrd' command will be:

mkinitrd -c -k 6.6.15 -f ext4 -r /dev/sda3 -m usb-storage:xhci-hcd:xhci-pci:ohci-pci:ehci-pci:uhci-hcd:ehci-hcd:hid:usbhid:i2c-hid:hid_generic:hid-asus:hid-cherry:hid-logitech:hid-logitech-dj:hid-logitech-hidpp:hid-lenovo:hid-microsoft:hid_multitouch:ext4 -u -o /boot/initrd.gz

Exec:

#mkinitrd -c -k 6.6.15 -f ext4 -r /dev/sda3 -m usb-storage:xhci-hcd:xhci-pci:ohci-pci:ehci-pci:uhci-hcd:ehci-hcd:hid:usbhid:i2c-hid:hid_generic:hid-asus:hid-cherry:hid-logitech:hid-logitech-dj:hid-logitech-hidpp:hid-lenovo:hid-microsoft:hid_multitouch:ext4 -u -o /boot/initrd-6.6.15.gz

This will generate the file /boot/initrd-6.6.15.gz As i’m using elilo I need to prepare everything to boot from the new kernel.

#cp /boot/vmlinuz-huge-6.6.15 /boot/efi/EFI/Slackware/

#cp /boot/initrd-6.6.15.gz /boot/efi/EFI/Slackware/

Last step, edit your elilo.conf file, and add your new kernel but keep your old kernel too.

/boot/efi/EFI/Slackware/elilo.conf

chooser=simple
delay=10
timeout=10
#
image=vmlinuz-6.6.15
        label=vmlinuz-6.6.15
        initrd=initrd-6.6.15.gz
        read-only
        append="root=/dev/sda3 video=2560x1600 ro"
image=vmlinuz-5.15.145
	label=vmlinuz-5.15.145
	initrd=initrd-5.15.145.gz
	read-only
	append="root=/dev/sda3 video=2560x1600 ro"

Reboot and cross fingers :)