Kernel Vanilla untuk Debian Squeeze

Sebagai pengguna Linux, apa pun distronya, tentu di satu saat kita akan bersentuhan dengan kernel; ini adalah hal yang sangat wajar. Kernel vanilla ialah kernel “segar”, atau source code kernel yang umumnya bisa diperoleh di situs resminya, kernel.org atau di situs-situs mirror.

Kapan seorang pengguna perlu mengutak-atik kernel yang sudah terpasang dengan manis di komputernya? Nah, ini dia saat-saat penting itu:

  • Ketika pengguna menemukan bahwa salah satu perangkat kerasnya tidak didukung di kernel yang aktif saat ini, padahal ia mendapat informasi bahwa (kernel) Linux (yang baru) mendukung perangkat keras tersebut. Arti “tidak didukung di kernel yang aktif” adalah tidak bisa berfungsi.
  • Pada saat pengguna membutuhkan satu atau lebih fitur tertentu dan untuk mengaktifkannya dibutuhkan kompilasi ulang kernel atau bahkan kompilasi kernel versi yang lebih tinggi.
  • Di saat pengguna ingin belajar lebih dalam tentang “jerohan” komputernya, baik dari sisi perangkat keras maupun perangkat lunaknya.

Ketahuilah, bahwa di faktor pertama dan kedua di atas tadi, bisa saja tersedia dalam bentuk driver, yang berarti di dalam file terpisah dari file kernel, atau bisa tersedia secara “built-in”, yang artinya menjadi satu dengan file kernel. Driver harus di-load agar aktif (baik otomatis atau manual), sedangkan yang tersedia secara built-in akan otomatis aktif bersama dengan kernel.

Misalnya saja, di sebuah laptop, perangkat wireless rupanya belum bisa dipakai karena tiadanya dukungan di kernel bawaan CD instalasi, maupun di kernel yang lebih tinggi hasil upgrade. Kernel lama 2.3.32-5-686 dan kernel barunya 2.6.39-bpo.2-amd64 (dari backports, Debian). Kernel baru yang sedang direncanakan dipasang adalah versi stabil terakhir saat ini, yakni 3.2.1 dan langsung diambil dari situs resminya. Ikuti bagaimana di akhir proses nanti akan dihasilkan file paket resmi Debian (format .deb)

Pertama, pastikan beberapa paket penting ini sudah ada terlebih dulu; apabila belum, instal dari CD atau DVD instalasi. Paket penting itu ialah: build-essential, fakeroot, kernel-package, libqt3-mt-dev, devscripts, debhelper, dpkg-dev dan gnupg. Berikut ini proses pemeriksaan via perintah apt-cache.

# apt-cache search build-essential
build-essential - Information list of build-essential packages
devscripts - scripts to make the life of a Debian Package maintainer easier
...
# apt-cache search fakeroot
...
fakerot-ng - Gives a fake root environment
fakeroot - Gives a fake root environment
...
# apt-cache search kernel-package
...
kernel-package - A utility for building Linux kernel related Debian packages
...
# apt-cache search libqt3-mt-dev
libqt3-mt-dev - Qt development files (Threaded)
...
# apt-cache search debhelper
...
debhelper - helper programs for debian/rules
...
# apt-cache search dpkg-dev
...
dpkg-dev - Debian package development tools
...
# apt-cache search gnupg
...
gnupg - GNU privacy guard - a free PGP replacement
...

Baris yang diawali “#” di atas adalah baris tempat perintah diketikkan; beberapa hanya berisi “…” untuk menandakan hasil yang tidak relevan dan tidak ditulis di sini. Perhatikan, GNU PG tidak harus ada bila anda tipe orang yang tidak peduli dengan keamanan data (yang jelas bukan ide bagus).

File signature kernel vanilla bisa diperoleh dari link yang sama dengan link untuk memperoleh kernelnya, hanya saja, ganti ekstensi terakhir dengan kata “sign“. Contoh berikut ini, yang pertama link menuju file kernel (dengan .bz2 sebagai ekstensinya) dan yang kedua adalah link menuju file signature bagi kernel versi itu.

http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.1.tar.bz2
http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.1.tar.sign

Silakan download kedua file tersebut (yakni kernel dan signature-nya), jangan lupa sesuaikan keduanya (yakni ambil dengan versi yang sama). Simpanlah di satu direktori yang sama. Langkah berikutnya, uncompress file kernel tadi, ini tergantung format kompresi file tersebut. Apabila formatnya .bz2 maka pakai perintah ini untuk melakukan uncompress:

# bzip2 -d linux-3.2.1.tar.bz2

Ini akan menghasilkan file dengan nama serupa tapi dengan ekstensi “.tar” saja. File inilah yang akan kita periksa integritasnya. Begini mengawali proses verifikasi file kernel:

# gpg --verify linux-3.2.1.tar.sign
gpg: directory '/root/.gnupg' created
gpg: new configuration file '/root/.gnupg/gpg.conf' created
gpg: WARNING: options in'/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring '/root/.gnupg/pubring.gpg' created
gpg: Signature made Thu 12 Jan 2012 03:05:27 PM EST using RSA key ID 6092693E
gpg: Can't check signature: public key not found

Perhatikan dua baris paling bawah; baris pertama menyatakan “key ID” (yang dalam contoh ini adalah 6092693E). Baris kedua menyatakan pemeriksaan signature tidak bisa dilaksanakan karena “public key not found”; arti “not found” adalah “tidak ditemukan”. Oleh karena itu, kita download key dengan ID itu dari key server.

# gpg --recv-keys 6092693E
gpg: keyring '/root/.gnupg/secring.gpg' created
gpg: requesting key 6092693E from hkp server keys.gnupg.net
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

Seperti anda lihat, butuh koneksi Internet yang cukup bagus untuk melakukan verifikasi; normalnya ini tidak membutuhkan bandwidth yang “wah”, tapi butuh koneksi yang stabil. Kalau terjadi error semacam itu, silakan ulangi sampai bisa seperti berikut ini.

# gpg --recv-keys 6092693E
gpg: requesting key 6092693E from hkp server keys.gnupg.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 6092693E: public key "Greg Kroah-Hartman
     (Linux kernel stable release signing key) <greg@kroah.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1   (RSA: 1)

Kemudian silakan ulangi proses verifikasi tadi, seperti berikut ini.

# gpg --verify linux-3.2.1.tar.sign
gpg: Signature made Thu 12 Jan 2012 03:05:27 PM EST using RSA key ID 6092693E
gpg: Good signature from "Greg Kroah-Hartman
     (Linux kernel stable release signing key) <greg@kroah.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E

Untuk saat ini, abaikan warning di atas; perlu artikel tersendiri untuk membahas tentang mekanisme pengamanan ini. Pada dasarnya, kalau respon yang kita peroleh “Good signature from…” maka ini sudah cukup (sekali lagi, untuk sementara). Kapan saja anda mendapati “BAD signature…” ditampilkan di hasil prose verifikasi seperti di atas tadi, maka bisa dikatakan file yang anda periksa telah rusak, korup atau sudah dimodifikasi.

Apabila verifikasi berhasil, langkah berikutnya ialah mengekstrak file kernel tadi ke direktori /usr/src (atau yang lain, tapi standarnya di situ). Dari lokasi sekarang, eksekusi perintah ini:

# tar -C /usr/src/ -xjvf linux-3.2.1.tar.bz2

atau, bila target anda file .tar maka:

# tar -C /usr/src/ -xvf linux-3.2.1.tar

Tunggulah sampai dengan proses ekstrak tuntas, lalu silakan masuk ke dalam direktori /usr/src/linux-3.2.1

Sekarang anda berada di /usr/src/linux-3.2.1 dan siap melakukan tahap konfigurasi. Sebagai info, detil konfigurasi disimpan di file .config (ingat, ada titik di depan namanya). Kernel yang aktif sekarang ini pun ada file detil konfigurasinya, silakan cek ke direktori /boot dan lihat file dengan nama yang berawalan “config”.

Salin file konfigurasi kernel aktif saat ini ke direktori tempat anda berada sekarang; lakukan seperti contoh berikut ini:

# cp /boot/config-2.6.39-bpo.2-amd64 .config

Nah dengan demikian kita siap melakukan konfigurasi (yang lumayan lama dan membutuhkan pengetahuan dan data/info tentang sistem tempat kernel ini hendak dipakai). Setidaknya, ketahuilah CPU komputer itu; info nama CPU bisa diperoleh dari output perintah dmesg (cari teks yang mengandung “CPU”). Berbagai data penting bisa diperoleh dari perintah lspci, lsusb dan lscpu.

Ketika melakukan konfigurasi, tiap item biasanya sudah ada nilainya, ini adalah seting nilai default, atau jika kita sudah punya file .config seperti kasus saat ini maka itu adalah seting-seting yang berasal dari kernel yang kita ambil file konfigurasinya (di contoh ini berarti kernel 2.6.39-bpo.2-amd64).

Baiklah, eksekusi perintah “make menuconfig” untuk memulai konfigurasi (ada alternatif lain: make oldconfig dan make xconfig yang sama saja prinsipnya). Perintah make menuconfig dipakai jika anda ingin user interface berbasis ncurses, yakni, window dan dialog box tetapi di modus teks. Perintah make oldconfig hanya menampilkan pertanyaan bergantian, di modus teks. Paling canggih, make xconfig, ini bekerja di modus grafis (tentunya dengan window dan dialog box layaknya program grafis lainnya).

# make menuconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
 *** Unable to find the ncurses libraries or the
 *** required header files.
 *** 'make menuconfig' requires the ncurses libraries.
 ***
 *** Install ncurses (ncurses-devel) and try again.
 ***
make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig] Error 2

Pesan error semacam ini bisa saja muncul di saat kita sudah siap melakukan konfigurasi. Anda boleh beralih ke konfigurator berbasis grafis atau “oldconfig” yang benar-benar “apa adanya”. Opsi lain, lengkapi apa yang kurang lalu coba lagi make menuconfig ini.

Teks “.config – Linux/x86_64 3.2.1 Kernel Configuration” akan muncul di sudut kiri atas layar; perhatikan kata “.config”, ini muncul karena kita memakai file tersebut sebagai basis konfigurasi. Ada 3 (tiga) tombol navigasi: “Select“, “Exit” dan “Help” dengan default yang tersorot adalah tombol Select.

Ada banyak menu utama, sekitar 15 cabang utama; di bawahnya ada 2 (dua) menu untuk menyimpan hasil konfigurasi dan untuk memanggil atau membuka file konfigurasi lain. Keterangan tentang lambang-lambang yang dipakai tertulis di bagian atas kotak dialog.

Pada dasarnya, bintang atau asterik (“*“) berarti fitur tersebut ditetapkan statusnya sebagai “built-in” (dikompilasi menjadi satu dengan kernel). Untuk simbol “M“, ini berarti fitur tersebut ditetapkan sebagai “modul”, yakni tidak dikompilasi menjadi satu dengan kernel, alias di file tersendiri. Apabila sebuah fitur berwujud modul, maka kita bisa mengaktifkan fitur ini dan bisa pula menon-aktifkannya; fitur yang bersifat built-in tidak bisa dinon-aktifkan, selama sistem hidup, dia akan ada di memori karena ia menjadi satu dengan si kernel itu sendiri.

Tidak semua fitur bisa dibuat sebagai modul atau built-in; ada fitur tertentu yang hanya bisa diset built-in, atau tidak sama sekali. Fitur semacam ini diberi tanda dengan kurung siku atau “[]“. Sedangkan fitur yang bisa diset sebagai modul ditandai dengan “<>

  • [ ] berarti tidak disertakan dalam proses kompilasi, artinya, fitur ini nantinya tidak akan tersedia di kernel baru hasil kompilasi.
  • [*] berarti fitur ini built-in
  • < > berarti tidak disertakan dalam proses kompilasi, jadi dia tidak akan tersedia di kernel baru nanti. Fitur ini bisa diset sebagai modul atau sebagai fitur built-in.
  • <M> berarti fitur ini diset sebagai modul; proses kompilasi nantinya akan menghasilkan file terpisah. Modul bisa di-load untuk mengaktifkan fitur, bisa di-unload untuk menon-aktifkannya.
  • <*> berarti fitur ini bisa diset sebagai modul sebenarnya, tetapi kita set sebagai built-in. Beberapa fitur yang bisa diset sebagai modul kadang tidak bisa diset menjadi built-in karena dia tergantung fitur-fitur lain dan fitur lain tersebut terset sebagai modul.

Gunakan shortcut tertentu untuk mengubah status fitur-fitur yang sedang kita konfigurasi. Tombol “M” untuk mengeset fitur menjadi modul, tombol “Y” untuk mengesetnya menjadi built-in dan tombol “N” untuk mengosongkan alias untuk tidak mengesetnya (jadi fitur itu tidak diikutkan di proses kompilasi). Di dalam setiap sub menu, anda bisa menekan tombol Exit untuk kembali ke menu sebelumnya.

Saya tidak akan menerangkan semua item, ini hal yang tidak mungkin; terlalu banyak seting dan pada prinsipnya perangkat keras yang saya sedang hadapi saat ini sangat mungkin berbeda dibanding yang anda punyai. Saya hanya bisa mencontohkan beberapa item.

Kita mulai dari “General setup“, sub menu paling atas. Aturan umum di saat konfigurasi kernel ialah: jangan mengubah apa pun jika anda tidak tahu tentang seting itu, lebih baik membiarkan nilai defaultnya. Dan hati-hati dengan setiap item yang ditandai dengan teks “(EXPERIMENTAL)”, itu artinya fitur tersebut masih eksperimental. Sesuatu yang eksperimental itu tidak atau belum stabil; jika anda nekat memakainya, bersiaplah mendapat kernel yang tidak stabil.

Kapan saja anda tergelitik oleh rasa ingin tahu, tekan tombol Help untuk mengakses informasi tambahan tentang suatu item (yang sedang disorot oleh kursor). Beginilah saya dulu sampai sekarang belajar. Misalnya, pilih/sorot fitur “Kernel .config support“.

Fitur ini ditandai dengan “< >” yang berarti kita bisa menetapkannya sebagai modul, atau sebagai fitur built-in. Tekan “H” atau tekan tombol Help, maka akan tampil informasi:

CONFIG_IKCONFIG:

This option enables the complete Linux kernel “.config” file contents to be saved in the kernel. It provides documentation of which kernel options are used in a running kernel or in an on-disk kernel. This information can be extracted from the kernel image file with the script scripts/extract-ikconfig and used as input to rebuild the current kernel or to build another kernel. It can also be extracted from a running kernel by reading /proc/config.gz if enabled (below).

Symbol: IKCONFIG [=n]
Type: tristate
Prompt: Kernel .config support
Defined at init/Kconfig:535
Location:
-> General setup

Memang perlu penguasaan bahasa Inggris yang baik, kalau tidak, akan sukar sekali memahaminya. Secara umum pengertiannya adalah:

Opsi ini memungkinan agar isi file konfigurasi, yakni .config, disimpan di dalam kernel; artinya menjadi satu dengan kernel. Lalu itu bisa diambil dengan program khusus yang sudah tersedia di direktori scripts, namanya “extract-ikconfig“. Dengan itu kita bisa menjadikannya umpan saat ingin membangun ulang kernel yang saat ini kita pakai, atau membangun kernel yang baru sama sekali.

Cara alternatifnya, bila kernel sedang aktif, maka itu bisa diperoleh dari file /proc/config.gz (jika fitur ini diaktifkan). Defaultnya “no” (artinya tidak disertakan dalam kompilasi) dan tipenya “tristate” (tiga keadaan; sebagai modul, built-in atau tidak sama sekali).

Bagus juga bukan, fitur semacam ini? Dengan demikian kita tidak selalu harus bergantung kepada file .config dan kalau pun kehilangan file ini maka catatan seting penting tersebut bisa mudah kita peroleh lagi. Karena bagus, kita set saja sebagai built-in; jadi tekanlah “Y” dan di bawah item itu akan muncul satu lagi item baru: “Enable access to .config through /proc/config.gz (NEW)“.

Fitur yang mengandung kata “NEW” berarti fitur baru, cukup aman untuk diambil. Ini hanya bisa diset built-in, atau tidak sama sekali; biarkan tetap built-in, tekan “H” untuk memunculkan detil info tambahan.

CONFIG_IKCONFIG_PROC:

This option enables access to the kernel configuration file through /proc/config.gz

Symbol: IKCONFIG_PROC [=n]
Type: boolean
Prompt: Enable access to .config through /proc/config.gz
Defined at init/Kconfig:547
Depends on: IKCONFIG [=y] && PROC_FS [=y]
Location:
-> General setup
-> Kernel .config support (IKCONFIG [y])

Dari informasi di atas tampak ada data tentang dependensi, yakni catatan ketergantungan sebuah fitur terhadap fitur yang lain. Fitur “Enable access to .config through /proc/config.gz” tergantung kepada fitur “IKCONFIG” (sudah dibahas sebelumnya) dan fitur “PROC_FS”. Simbol di antara kedua nama fitur tersebut (yakni “&&”) berarti “dan” atau operator logika AND.

Kembalilah ke menu utama dan atur seting-seting di berbagai menu sisanya; seperti yang saya katakan tadi, beginilah cara mempelajari Linux, walau butuh waktu lama dan kesabaran hampir tak terbatas. Saya tidak bisa membahas semua yang telah saya ketahui selama ini, bukan karena pelit, namun terlalu banyak hal; butuh satu atau dua buku tersendiri untuk topik ini.

Dukungan me-load (dan unload) modul adalah fitur penting; ini sudah default terset. Tanpa fitur ini, kita tidak bisa membuat modul, karena kernel tidak bisa me-load modul itu saat dibutuhkan. Bagian penting lainnya adalah menu “Device Drivers“, di sinilah tempat berbagai konfigurasi untuk perangkat keras, mulai dari port pararel sampai kartu WiFi. Masuklah ke menu ini dan masuk lagi ke submenu “Network device support“. Terakhir, masuk lagi ke submenu “Wireless LAN”, masuk dan cari entri nama kartu WiFi anda.

Bagaimana kita mengetahui data semacam nama atau seri chipset perangkat keras? Gunakan perintah lspci dan/atau lscpu, ini sudah saya singgung tadi di atas. Untuk perangkat jaringan, berikut ini contoh sebagian teks output lspci (sebagian teks sengaja dipotong agar tidak terlalu panjang).

# lspci
...
...Network controller: Realtek... RTL8191SEvA Wireless LAN...
...Ethernet controller: Realtek... RTL8101E/RTL8102E PCI Express...
..

Perhatikan, “Ethernet controller” berarti kartu jaringan kabel, di sini buatan Realtek Semiconductor dan berupa kartu PCI Express. Teks “Network controller” berarti kartu jaringan wireless, seperti yang dinyatakan juga oleh teks setelah nama chipset, yakni “Wireless LAN Controller”.

Chipset kartu WiFi, berdasar data di atas adalah “RTL8191SEvA”; informasi ini penting saat memilih mana modul yang benar atau cocok untuk perangkat WiFi berchipset RTL8191SEvA tersebut. Carilah nama ini di bagian Device Drivers tadi. Di bagian submenu Wireless LAN kita temukan item bernama “Realtek RTL8192SE/RTL8191SE PCIe Wireless Network Adapter (NEW)“. Tekan “H” untuk mengakses detil informasi tambahan, kita dapatkan data:

CONFIG_RTL8192SE:

This is the driver for Realtek RTL8192SE/RTL8191SE 802.11n PCIe wireless network adapters.

If you choose to build it as module, it will called rtl8192se

Menurut data tersebut, ini bisa kita pakai baik untuk RTL8192SE maupun untuk RTL8191SE. Maka itu, pilihlah ini, baik sebagai modul atau built-in. Apabila anda menekan “Y” mungkin akan ada info “This feature depends on another which has been configured as a module. As a result, this feature will be built as a module”. Apa saja yang mempengaruhinya bisa anda ketahui dari teks setelah kata “Depends on:” di data tambahan tadi.

Driver kartu WiFi di contoh ini tergantung kepada “MAC80211 [=m]” (ini satu-satunya yang bernilai “[=M]” di atara beberapa dependensi yang diminta. Jika ingin agar driver tadi built-in, maka carilah item MAC80211 itu dan set dia ke built-in. Item ini ada di submenu Networking support, submenu Wireless; namanya “Generic IEEE 802.11 Networking Stack (mac80211)“.

Bila anda mendapat pernyataan bahwa MAC80211 juga tergantung kepada beberapa fitur yang lain, maka ini pun harus diproses. Selesaikan seluruh masalah dependensi, apabila tampaknya sulit maka jalan terbaik adalah membiarkan fitur-fitur tadi tetap pada seting semula (yakni sebagai modul).

Setelah dirasa tuntas, kembalilah ke menu utama, dan tekan tombol Exit; saat anda ditawari “Do you wish to save your new configuration? <ESC> <ESC> to continue.” maka jawablah dengan “Yes“. Hasil konfigurasi akan ditulis ke file .config dan sebelum prompt muncul akan ada pemberitahuan “Execute ‘make’ to start the build or try ‘make help’.

Karena kita akan melakukan proses kompilasi sekaligus membangun paket .deb dari kernel yang dihasilkan nantinya, maka jangan ikuti info tersebut, tetapi lakukan langkah-langkah berikut ini.

# fakeroot make-kpkg --initrd --append_to_version -<ABC> \
--revision=<XYZ> kernel_image

Perintah di atas adalah bentuk umum, jadi gantilah “<ABC>” dan “<XYZ>” dengan teks anda sendiri. Tanda backslash atau “\” di akhir baris pertama menandakan bahwa perintah tersebut harus ditulis sebagai satu kesatuan; apabila anda terpaksa memutusnya menjadi beberapa baris maka akhiri setiap baris (kecuali baris terakhir tentunya) dengan tanda itu.

Opsi “–append-to-version” bisa dipakai untuk menambahkan kode atau teks revisi dan arsitektur atau CPU ke nama kernel nantinya. Menambahkan teks atau info nomor revisi dan versi kernel ke variabel “<XYZ>” sangat disarankan, misalnya, “3.2.1-custom-1”. Yang dimaksud nomor revisi adalah nomor urut kali ke berapa anda melakukan proses konfigurasi dan kompilasi ini (tentu anda juga boleh mengartikannya untuk nomor yang lain).

Untuk kali ini kita coba dengan perintah:

# fakeroot make-kpkg --initrd --append-to-version -tes.1-intel64-i3 \
--revision=3.2.1-tes-1 kernel_image

Terhadap bermacam pertanyaan yang nanti muncul, jawablah setahu anda; mereka umumnya bisa dijawab dengan Yes atau No (tekan “y” atau “n“, huruf besar atau kecil tidak masalah). Apabila tidak faham, jawab dengan Enter (tiap pertanyaan sudah punya jawaban default yang akan aktif bila dijawab dengan Enter). Untuk pertanyaan dengan banyak pilihan, jawaban default ditandai dengan “>”.

Misalnya, pertanyaan tentang “Processor family” (keluarga prosesor anda), ada sekitar 25 kemungkinan jawaban, defaultnya “Pentium-Pro (M686)“. Ambillah jawaban terdekat, bila tidak ada yang tepat; dalam kasus ini saya memilih nomor 24, “Core 2/newer Xeon (MCORE2)“. Jawaban cukup diberikan dengan menulis nomor urutnya dan tidak usah terlalu khawatir bila pilihan anda mungkin tidak terlalu pas. Secara umum, semakin ke bawah berarti semakin canggih.

Pertanyaan yang sudah jelas jawabannya jangan dicoba dijawab lain; misalnya saja “Toshiba Laptop support (TOSHIBA)“, bila laptop anda bukan Toshiba tentu jangan dijawab “Yes“. Sekali lagi, bila tidak faham, maka jawab saja dengan menekan Enter.

Proses kompilasi ditandai dengan banyak baris berawalan “CC“, “LD” dan yang semacamnya, biarkan ini berlangsung dan tunggu sampai selesai. Lama atau tidaknya proses kompilasi bergantung kepada komputer anda sendiri, pada umumnya, semakin cepat prosesor dan semakin besar RAM, maka akan makin cepat pula proses ini selesai. Semua ini berakhir ketika anda melihat:

dpkg-deb: building package 'linux-image-3.2.1-tes.1-intel64-i3' in...
make[2]: Leaving directory '/usr/src/linux-3.2.1'
make[1]: Leaving directory '/usr/src/linux-3.2.1'

File paket .deb dari  kernel baru kita akan tersedia di atas direktori tempat kompilasi dilakukan; seperti biasa, file itu bisa diinstal langsung, misalnya saja dengan:

# dpkg -i ../linux-image-3.2.1-tes.1-intel64-i3_3.2.1-tes-1_i386.deb

Bila posisi anda sudah di direktori /usr/src tentunya tidak perlu menyebut lagi dengan tambahan “../” tapi langsung nama filenya saja. Prosesnya berlangsung kira-kira demikian:

Selecting previously deselected package linux-image-3.2.1-tes.1-intel64-i3.
(Reading database ... 140888 files and directories currently installed)
Unpacking linux-image-3.2.1-tes.1-intel64-i3 (from ....deb) ...
Done.
Setting up linux-image-3.2.1-tes.1-intel64-i3 (3.2.1-tes-1) ...
Running depmod.
Examining /etc/kernel/postinst.d.
...
update-initramfs: Generating /boot/initrd.img-3.2.1-tes.1-intel64-i3
W: Possible missing firmware ... for module r8169
W: Possible missing firmware ... for module r8169
run-parts: ...
...
...
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-3.2.1-tes.1-intel64-i3
Found initrd image: /boot/initrd.img-3.2.1-tes.1-intel64-i3
Found linux image: /boot/vmlinuz-2.6.39-bpo.2-amd64
Found initrd image: /boot/initrd.img-2.6.39-bpo.2-amd64
Found Windows 7 (loader) on /dev/sda1
done

Sebagaimana yang anda lihat, proses update menu Grub sudah otomatis dilakukan bersama instalasi kernel baru ini, jadi yang perlu anda lakukan sekarang adalah reboot. Apabila reboot berhasil, dan anda bisa login maka setidaknya anda bisa lega, cek dengan perintah uname -a, hasilnya kira-kira:

Linux server 3.2.1-tes.1-intel64-i3 #1 SMP Fri Jan 20 04:52:40 EST 2012 i686 GNU/Linux

Saya lupa memberitahukan tadi sebelum reboot, ada baiknya eksekusi dulu perintah lsmod untuk menampilkan daftar modul kernel (yakni kernel lama) yang aktif. Salin hasilnya ke file khusus, misalnya begini:

# lsmod > daftar_modul_2.6.39-bpo.2-amd64.txt

Sewaktu-waktu diperlukan, isi file ini bisa ditampilkan lagi.

Nah, setelah reboot dan bisa menikmati kernel baru, cek lagi modul-modul yang aktif dengan perintah lsmod (dan simpan juga di file tersendiri). Lakukan seperti ini misalnya:

# lsmod > daftar_modul_3.2.1-tes.1-intel64-i3.txt

Anda masih ingat, bahwa kartu WiFi di kernel lama tadi belum aktif? Chipset kartu WiFi ini “RTL8191SEvA” menurut hasil perintah lspci. Sekarang, tampilkan isi file daftar modul barusan, atau jalankan saja lsmod sekali lagi tapi seperti ini:

# lsmod | less

Filterlah output lsmod dengan less agar mudah membacanya. Hasil perintah lsmod terdiri dari 3 (tiga) kolom: nama modul, ukurannya dan daftar nama modul lain yang menggunakan modul ini. Telusuri hasilnya, pasti ada baris seperti ini:

Module              Size     Used by
...
rtl8192se          64905     0
rtlwifi            75172     1 rtl8192se
...
mac80211          170474     2 rtl8192se,rtlwifi
...

Bandingkan dengan daftar modul kernel sebelumnya, di sana tentu modul untuk kartu WiFi RTL8191SEvA ini belum ada. Menyiapkan kernel dan fitur baru yang kita inginkan adalah satu hal, mengonfigurasi perangkat keras setelah kernel dan modulnya siap adalah hal yang lain lagi. Maka bersiaplah untuk “berkotor ria” lagi bila setelah memakai kernel baru ternyata perangkat anda masih belum berfungsi.

Kemungkinan diperlukan langkah tambahan selalu ada; may The Force be with you…🙂

Bahan bacaan / sumber:

  1. Funzt‘s blog, titled “Vanilla kernel for Debian Lenny“.
  2. Debian Linux Kernel Handbook, section 4.6 Building a custom kernel from the “pristine” kernel source.
  3. Linux kernel releases PGP signatures.

2 responses to “Kernel Vanilla untuk Debian Squeeze

  1. Ping-balik: Konfigurasi Perangkat WiFi RTL819x di Debian Squeeze | ~fat72009/

  2. mau tanya mas saya pakai ubuntu 11.10 di laptop thinkpad edge 13amd yg menggunakan wifi rtl8192seb sekarang ini sudah bisa conect dengan wifi tapi pada saat mengidupkan laptop saat booting harus di tekan on di tombol antena wifinya baru bisa conect tapi kalau tidak di tekan on pada saat booting wifi tidak bisa nyambung meskipun tombol antena di on ataupu off (stelah computer nyala)
    terimakasih.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s