pf-kernel is a custom Linux Kernel that comes with some popular patches not merged into the mainline Kernel, such as:
- -ck patchset with BFS CPU scheduler: Con Kolivas' ck1 patchset which includes the BFS scheduler that brings better desktop interactivity and responsiveness;
- BFQ I/O scheduler : using this patch, the disk should be virtually as responsive as if it was idle, no matter what the load is (this is available by default in Sabayon and CyanogenMod);
- TuxOnIce: an alternative suspend / hibernate framework that uses image compression, supports any number of swap partitions and/or files, has the ability to cancel hibernating or restoring the image by pressing escape key and more;
- UKSM: Memory De-Duplication;
- EnhanceIO: a driver based on EhanceIO SSD caching software derived from Facebook's open source Flashcache project that's useful for using SSDs as cache devices for traditional HDDs.
As an example, below you can watch a video recorded by Paolo Valente, who is behind BFQ, demoing the performance of the BFQ disk I/O scheduler on a hard disk:
(direct video link)
Warning: Some things such as graphics drivers may not be compatible with pf-kernel since it may be a lot newer than the Linux Kernel used by default on your Linux distribution so be careful and only install it if you know what you are doing. Also, options (like Zram) available in your Linux distribution Kernel may not be enabled in pf-kernel. I've tested this in Ubuntu 13.04 (Raring Ringtail) with and I didn't encounter any issues (Bumblebee works with proprietary Nvidia drivers, etc.) but this may not be the case for you since it depends on your hardware and Ubuntu version.
Install pf-kernel in Ubuntu / Debian
Download the latest pf-kernel version for Ubuntu / Debian from HERE.
You'll need to download two files: linux-image and linux-headers which have the same version (e.g.: 3.9.2), for your architecture. For instance, on 64bit, you'll need "linux-image-3.9.2-pf_1_amd64.deb" and "linux-headers-3.9.2-pf_1_amd64.deb" (3.9.2 is the latest version at the time I'm writing this) and put the downloaded files in some folder, let's say a "kernel" folder in your home directory.
Then, to install it, use the following commands (assuming you've placed the deb files in a folder called "kernel" in your home directory):
cd ~/kernel sudo dpkg -i *.deb
Optional: for TuxOnIce to work, firstly enable hibernate since it's disabled in Ubuntu by default. Then, download the tuxonice-userui deb for your Ubuntu version / architecture from HERE and install it, then run the following command to get the TuxOnIce text user interface to work:
sudo ln -s /usr/lib/tuxonice-userui/tuxoniceui /usr/local/sbin/tuxoniceui_text
That's all you need to do for TuxOnIce to work (if hibernate is working on your machine, obviously).
And finally, restart your computer.
If later on you want to remove pf-kernel and go back to the Linux Kernel you were using before, remove the installed packages using Synaptic (linux-image-*-pf and linux-headers-*-pf) or, to do this automatically via the command line, use the following commands:
And then restart the computer.
pfkernel=$(dpkg --get-selections | grep linux-.*pf | sed -e 's/-pf.*/-pf/g') sudo apt-get remove $pfkernel
For other Linux distributions or if you want to compile your own Kernel, see the pf-kernel homepage for download links.
seen on lffl.org, image via wikipedia