Archive for February, 2014

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
/sbin/lilo

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

1] You should upgrade the cairo-1.12.14-x86_64-1_slack14.1 package to cairo-1.12.16-x86_64-1_slack14.1. The original Cairo package that shipped with Slackware64 14.1 will cause a display issue in Virt-manager. To do this:

su - # Or login as root.
slackpkg update # You should have a mirror enabled before you do this.
slackpkg upgrade-all

2] For the necessary software, you may use the binaries I compiled. If you would like to take this path, do the following immediately after step 1:

cd ~
wget http://www.malaya-digital.org/slackware64-14.1-kvm.tar.gz
mkdir kvm
cd kvm
tar xzpf ../slackware64-14.1-kvm.tar.gz
installpkg *.tgz

- OR -

If you don't want to use my binaries, you may compile (and then install immediately after compiling) the following software from slackbuilds.org in the order shown:

celt051
device-tree-compiler
libcacard
spice-protocol
pyparsing
spice
usbredir
vala
yajl
qemu
gnome-python2-gconf
gtk-vnc
ipaddr-py
libvirt
libvirt-glib
libvirt-python
pygobject3
spice-gtk
tunctl
urlgrabber
virt-manager
vte3

3] Append this in your /etc/rc.d/rc.local:

/etc/rc.d/rc.libvirt start

4] Make sure you have a /etc/rc.d/rc.local_shutdown that at least have the following:

#!/bin/bash
/etc/rc.d/rc.libvirt stop

5] Reboot Slackware.

Back to top