I've just found out that the Linux 3.12 series kernel now has long term support. Because of this, I've decided to compile it for Slackware64 14.1. My hope in doing this is that I could have better performance and hardware support on my Lenovo Thinkpad E440. This blog post discusses how I compiled Linux 3.12.24. Since the Slackware team provided a sample configuration file for the mentioned Linux kernel series, the compilation process will be relatively painless.

Please note that I've disabled UEFI in the BIOS since I don't use it.

1] In my Slackware64 14.1, the only disk sets I do not install are E, F, KDEI, T, and Y.
2] Update Slackware64 14.1 first.

su - # Or login as root.
cd /etc/slackpkg
cp -p mirrors mirrors.orig
vi mirrors # Enable a mirror.
slackpkg update
slackpkg upgrade-all
shutdown -r now

3] Do the following to compile the Linux 3.12.24 kernel:

su - # Or login as root.
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.24.tar.xz
cd /boot
wget ftp://ftp.slackware.com/pub/slackware/slackware64-14.1/testing/packages/config-testing-3.12/config-huge-3.12.x64
cd /usr/src
tar xJpf ~/linux-3.12.24.tar.xz
rm linux
ln -s /usr/src/linux-3.12.24 linux
cd linux
make mrproper
cp -p /boot/config-huge-3.12.x64 .config
make oldconfig
make menuconfig # You may skip this. Do this only if you need to make configuration changes.
make bzImage
make modules
make modules_install
cp arch/x86/boot/bzImage /boot/vmlinuz-huge-3.12.24
cp System.map /boot/System.map-huge-3.12.24
cp .config /boot/config-huge-3.12.24
cd /boot
rm System.map
ln -s System.map-huge-3.12.24 System.map
rm config
ln -s config-huge-3.12.24 config
rm vmlinuz
ln -s vmlinuz-huge-3.12.24 vmlinuz

4] Congratulations. Your Linux 3.12.24 kernel should now work after a reboot.