Tag Archives

6 Articles
Kompilasi Kernel UKSM + tambalan Con Kolivas pada Gentoo 3.8.8

Kompilasi Kernel UKSM + tambalan Con Kolivas pada Gentoo 3.8.8

Sesuai dengan kebijakan UI, kami pekerja PAU diberi kebebasan untuk berolahraga dan melakukan hal-hal yang menyenangkan pada Jumat pagi. Berikut adalah hasil kegiatan menyenangkan saya: saya mengompilasi kernel baru.

Kebetulan Gentoo menggunakan kernel 3.8.8, saya pun menggunakan kernel tersebut sebagai dasar:

$ sudo cp -a /usr/src/linux-3.8.8-gentoo /usr/src/linux-3.8.8-gentoo-jp
$ sudo cp /usr/src/linux/.config /usr/src/config-jp.txt

Kernel UKSM menggunakan dua bahasa. Namun, untuk dapat mengakses tambalannya harus pindah ke bahasa Cina. Tambalan dari Kolivas dapat diakses langsung.

$ sudo mkdir /usr/src/patches && sudo chown -R jp:jp /usr/src/patches
$ wget http://kerneldedup.org/download/uksm/0.1.2.2/uksm-0.1.2.2-for-v3.8.ge.3.patch -P /usr/src/patches
$ wget http://ck.kolivas.org/patches/3.0/3.8/3.8-ck1/patch-3.8-ck1.bz2 -P /usr/src/patches

Tambal semuanya:

$ sudo rm -rf /usr/src/linux && ln -s /usr/src/linux-3.8.8-gentoo-jp /usr/src/linux && cd /usr/src/linux/
$ bzcat /usr/src/patches/patch-3.8-ck1.bz2 | patch -Np1
$ cat /usr/src/patches/uksm-0.1.2.2-for-v3.8.ge.3.patch | patch -Np1

Jalankan Genkernel

$ time sudo genkernel --kernel-config=/usr/src/config-jp.txt  --bootloader=grub2 --tempdir=/var/tmp/portage/ --cachedir=/var/tmp/portage/ --makeopts=-j9  all

real    5m22.299s
user    32m40.423s
sys     3m30.137s

Beres, tinggal jalankan ulang komputer. Berhubung saya menggunakan ZFS, saya mengompilasi ulang ZFS dan SPL. Tak lupa pula, saya memperbaharui sistem saya. Kebetulan SystemD mengeluarkan versi terbaru. Tapi, itu semua di luar cakupan tulisan ini. Selamat bersenang-senang!

Memasang pf-kernel untuk BlankOn Rote

Memasang pf-kernel untuk BlankOn Rote

Kernel pf-kernel merupakan kernel yang telah ditambal dengan hal-hal berikut:

  • Penjadwal CPU BFS yang dibuat oleh Con Kolivas. Penjadwal CPU ini dioptimasi untuk pengguna Desktop.
  • Penjadwal I/O BFQ. Penjadwal I/O ini dioptimasi seperti BFS sehingga memberikan optimasi kepada respon yang lebih interaktif.
  • TuxOnIce, sebuah infrastruktur  suspensi sistem yang cocok digunakan untuk laptop.
  • UKSM (Ultra KSM), sebuah perkakas kernel yang menyatukan setiap page di memori yang identik sehingga hanya satu saja. Cocok untuk aplikasi virtualisasi atau aplikasi yang menggunakan proses berbeda tetapi isinya sama (Google Chrome).

Seperti biasa, tambahan ini belum tentu untuk Anda. Jadi, berhati-hatilah dalam memasang kernel baru.

Untuk memasangnya:

$ wget http://pf.natalenko.name/binaries/debian/3.7.4/linux-{image,headers}-3.7.4-pf_1_i386.deb
$ sudo dpkg -i *.deb

Ganti i386 dengan amd64 untuk arsitektur 64bita. Saat ini yang terbaru adalah versi 3.7.4-pf.  Anda bisa cek versi yang lebih baru di situs utama.

Adding Patches to Gentoo EBUILD

Adding Patches to Gentoo EBUILD

It’s not that hard. In fact, I’ve found that it wasn’t like the documentation stated. Let’s use KMix 4.8.0 as an example.

According to Bug 292595, KMix failed to compile with the new OSS4. I too affected by this. Luckily, the bug provide a patch as an attachment:

diff -ur kdemultimedia-4.8.0.orig/kmix/backends/mixer_oss4.cpp kdemultimedia-4.8.0/kmix/backends/mixer_oss4.cpp
--- kdemultimedia-4.8.0.orig/kmix/backends/mixer_oss4.cpp 2012-01-27 22:02:21.368720442 +0800
+++ kdemultimedia-4.8.0/kmix/backends/mixer_oss4.cpp 2012-01-27 22:10:27.844842363 +0800
@@ -430,7 +430,7 @@
 {
 Volume vol(ext.maxvalue, ext.minvalue,
 false, isCapture);
- vol.addVolumeChannel(VolumeChannel(Volume::MLEFT));
+ vol.addVolumeChannel(VolumeChannel(Volume::LEFT));
 
 MixDevice* md = new MixDevice (_mixer,
 QString::number(i),

Those lines are verbatim copies from the attachment and I save it to “$PORTAGE_TREE/kde-base/kmix/files/kmix-4.8.0-oss4-fix.patch”. I have $PORTAGE_TREE in “/usr/local/portage”; that might vary on you.

Then, in the “$PORTAGE_TREE/kde-base/kmix/kmix-4.8.0.ebuild” I add these lines before “src_configure”:

PATCHES=( 
 "${FILESDIR}/kmix-oss4.patch"
)

And generate the new checksum for it so that Gentoo won’t complain:

# ebuild /usr/local/portage/kde-base/kmix/kmix-4.8.0.ebuild digest

Voila! We do the routine as usual. No need to make “src_unpack()” function.

Driver for U.r.U 4500 in Kernel 2.6.36

Driver for U.r.U 4500 in Kernel 2.6.36

It seems the Linux kernel getting another ABI change for USB in 2.6.36. function

ioctl

is being deprecated for a while and now being removed. It is changed with function 

unlocked_ioctl

. The parameter also changed.

Here’s the chunk of changes that would gives you idea of what changed:

<2.6.36 2.6.36+
ioctl   = usbdpfp_ioctl
.unlocked_ioctl   = usbdpfp_ioctl
usbdpfp_ioctl(struct inode *inode, struct file *file, unsigned int cmd, usbdpfp_ioctl(struct file *file, unsigned int cmd,
static int usbdpfp_ioctl( static long usbdpfp_ioctl(

That’s not all of the code, but you get the idea. The

ioctl

is changed. Every

ioctl

calling is having one less parameter. The return is no longer

int

but

long

.

According to Alex comment in my previous post, the UDEV rule also changing. Every USB device is default installed in /dev/usb directory. That’s why we have to make an adjustment in udev rule. As usual, I’m uploading the whole code here. As usual, remove the .pdf extension.

Sedang Masak Apa?

Sedang Masak Apa?

Ugh, sebal sekali! Opera 10.60 saya baru saja menghapus sebuah entri panjang telah capek saya tulis! Ini sudah yang kesekian kali. Ingatkan saya untuk menulis blog dengan peramban yang stabil. [Ugh, padahal saya pencinta Opera, tidaaaaak…. ;-(] Maka, kali ini saya menulis dari Firefox 3.6.8 versi (jauh lebih) ringkas dari apa yang saya tadi tulis. Intinya, minggu ini adalah minggu optimasi dengan topik:

  1. Penataran aplikasi e-Akses dengan kemampuan CSS3, HTML5, dan Javascript.
  2. Penggunaan Hoard untuk Proxy.
  3. Optimasi kernel linux 2.6.35 untuk penggunaan I/O yang berat (dah-dah lemot!)

Read More

Driver for U.r.U 4500 in Kernel 2.6.31

Driver for U.r.U 4500 in Kernel 2.6.31

I was having trouble with using kernel 2.6.21 that get supported by default UrU kernel, the X server refused to run. So, in my despair, I view some LKML threads, patch here and there: Voila! I got a working  Kernel driver for U.r.U fingerprint for Linux kernel 2.6.31. [NOTE: Remove the .pdf extension.]This patched driver has been working in Debian’s 2.6.31-trunk and Ubuntu Karmic, my fave distro at the momen. The installation is simple and described here.For the sake of KISS, I will try to cover it for you.

$ mv dpfp-2.6.31.tar.gz.pdf dpfp-2.6.31.tar.gz
$ tar xvfz dpfp-2.6.31.tar.gz
$ cd source
$ make

And then install it to your kernel:


$ sudo mkdir /lib/modules/`uname -r`/kernel/drivers/biometric
$ sudo cp mod_usbdpfp.ko /lib/modules/`uname -r`/kernel/drivers/biometric/
$ sudo depmod -aq

Then you can abuse it the way you feel. This kernel has been tested worked on UrU 4500 and UrU4000B.