Panduan Konfigurasi Kernel Gentoo Linux
1.
Pendahuluan
Gentoo menyediakan dua cara untuk anda dalam menangani instalasi dan upgrade
kernel: otomatis (genkernel), dan manual. Walaupun cara otomatis
bisa dikatakan sebagai cara yang lebih mudah untuk para pengguna biasa,
ada beberapa alasan mengapa kebanyakan pengguna Gentoo lebih suka
mengkonfigurasi kernel mereka secara manual: fleksibilitas tinggi, kernel
yang lebih ramping, waktu kompilasi yang lebih pendek, pengalaman belajar,
menghilangkan kebosanan, dll.
Panduan ini tidak menjelaskan konfigurasi otomatis (genkernel). Jika anda lebih
suka menggunakan genkernel untuk mengkompilasi dan menginstal kernel anda,
silahkan baca Dokumentasi genkernel.
Panduan ini tidak berusaha untuk menjelaskan proses konfigurasi manual dari
awal sampai akhir -- proses konfigurasi sangat bergantung kepada beberapa hal
umum dan pengetahuan mendalam tentang sistem anda. Tetapi, dokumen ini akan
memperkenalkan konsep konfigurasi manual dan menjelaskan beberapa perangkap
yang sering dihadapi oleh kebanyakan pengguna.
Dokumen ini ditulis dengan kernel terbaru sebagai acuannya, dan diperuntukkan
bagi arsitektur yang umum. Beberapa detil mungkin berbeda untuk kernel-kernel
yang lebih lama atau arsitektur lain, tapi kebanyakan isi dari dokumen ini
akan tetap relevan.
Di sini, kami menganggap anda telah memiliki source kernel Linux yang telah
diekstrak di harddisk anda (biasanya di dalam direktori /usr/src)
dan anda diharapkan sudah mengetahui cara menggunakan utilitas konfigurasi
menuconfig dan memasuki menu sistem. Jika anda merasa belum siap, kami
memiliki dokumentasi lain untuk membantu anda.
2.
Konsep Konfigurasi
Dasar-dasar
Proses konfigurasi kernel secara umum sangatlah sederhana: anda dihadapkan
dengan sebuah daftar pilihan-pilihan yang dikategorikan dengan menu dan
sub-menu, kemudian anda memilih dukungan untuk perangkat anda dan fitur-fitur
kernel lainnya untuk sistem anda.
Kernel telah memiliki sebuah konfigurasi default yang diberikan kepada
anda ketika anda pertama kali menjalankan menuconfig pada salah satu
source kernel. Konfigurasi default ini biasanya sudah cukup bagus, artinya,
kebanyakan pengguna hanya perlu membuat sedikit perubahan pada konfigurasi ini.
Jika anda memutuskan untuk menonaktifkan sebuah opsi yang telah diaktifkan
secara default, pastikan agar anda telah benar-benar mengerti akan kegunaan
opsi ini, juga mengetahui konsekuensinya.
Jika anda baru pertama kali mengkonfigurasi kernel Linux, anda mungkin perlu
bersikap sedikit konservatif; jangan terlalu neko-neko dan usahakan
untuk sesedikit mungkin membuat perubahan pada konfigurasi default. Ingat juga
bahwa ada beberapa bagian konfigurasi yang harus anda sesuaikan dengan sistem
anda agar bisa boot!
Built-in vs modul
Kebanyakan opsi konfigurasi memiliki tiga pilihan: tidak dikompilasi sama
sekali, dikompilasi langsung di dalam kernel (Y), atau sebagai modul (M).
Modul-modul yang dikompilasi di luar kernel diletakkan di filesystem, sedangkan
modul yang dikompilasi di dalam kernel ditempatkan di dalam imej kernel itu
sendiri.
Terdapat sebuah perbedaan penting antara built-in dan modul: dengan beberapa
pengecualian, kernel tidak akan mencoba untuk me-load modul-modul di luar
imej ketika anda memerlukannya (diserahkan penuh kepada user). Sedangkan
bagian-bagian lain dari sistem dapat memiliki fasilitas load-on-demand,
juga tersedia beberapa utilitas untuk me-load modul secara otomatis. Anda
dianjurkan untuk mengkompilasi dukungan perangkat anda dan fitur-fitur kernel
langsung di dalam kernel, untuk memastikan agar dukungan dan
fungsionalitas perangkat selalu tersedia ketika diperlukan.
Tentunya, pada beberapa bagian konfigurasi, built-in adalah sebuah keharusan.
Sebagai contoh, jika partisi root anda menggunakan filesystem ext2, maka
sistem anda tidak akan dapat boot jika ext2 dikompilasi sebagai modul
(sistem harus menemukan partisi root dahulu untuk kemudian dapat mencari modul
ext2, tetapi tidak dapat menemukan partisi root kecuali kernel sudah memiliki
dukungan untuk ext2!).
Dukungan Hardware
Selain mendeteksi jenis arsitektur sistem anda, konfigurasi tidak akan
mencoba mengenali hardware yang ada di sistem. Walaupun pengaturan default
telah memasukkan beberapa dukungan hardware, anda tetap harus mencari opsi
konfigurasi yang diperlukan oleh hardware di sistem anda.
Hal ini mengharuskan anda untuk mengetahui komponen apa saja yang terpasang
di dalam komputer. Untuk komponen internal, anda harus mengetahui jenis
chipset, yang digunakan, bukan nama produknya.
Ada beberapa utilitas yang dapat membantu anda. lspci (bagian dari paket
sys-apps/pciutils) dapat mengenali perangkat berbasis PCI dan AGP, juga
termasuk komponen yang ada di motherboard anda. lsusb (bagian dari paket
sys-apps/usbutils) dapat mengenali perangkat yang terhubung melalui port
USB.
Situasi ini terkadang memusingkan karena banyaknya standardisasi dalam dunia
hardware. Kecuali anda tidak menggunakan default, harddisk IDE anda akan
langsung dapat digunakan, begitu juga dengan keyboard dan mouse PS/2 atau USB.
Anda juga akan mendapatkan dukungan dasar VGA. Namun, beberapa perangkat
seperti kartu jaringan jarang sekali mengikuti standar, jadi anda harus
mengenali chipset kartu jaringan anda dan memilih driver yang dibutuhkan agar
anda bisa mendapatkan akses jaringan nantinya.
Sebagai tambahan, walaupun beberapa bagian dapat langsung berfungsi dengan
pengaturan default, anda perlu memilih beberapa opsi khusus agar anda bisa
mendapatkan kemampuan terbaik dari sistem anda. Misalnya, jika anda tidak
mengaktifkan dukungan untuk chipset IDE anda, maka harddisk IDE anda akan
bekerja dengan sangat lambat.
Fitur-fitur Kernel
Seperti halnya dukungan untuk hardware, anda juga perlu memikirkan fitur-fitur
software apa saja yang anda butuhkan dari kernel. Salah satu contoh penting
adalah, fitur dukungan filesystem: anda perlu memilih dukungan untuk filesystem
yang digunakan oleh harddisk, begitu juga dengan filesystem yang digunakan oleh
media eksternal lainnya (mis. VFAT untuk flashdisk USB).
Contoh lainnya adalah fungsionalitas jaringan advance. Jika anda ingin
melakukan routing atau memiliki firewall, anda harus memilih semua opsi
yang diperlukan pada saat melakukan konfigurasi kernel.
Siap?
Sekarang setelah anda mengenal konsepnya, anda seharusnya sudah bisa mengenal
hardware anda lalu masuk ke menu-menu konfigurasi, dan memilih opsi-opsi kernel
yang dibutuhkan oleh sistem anda.
Sisa panduan ini berisi cara mengatasi kebingungan pada beberapa area
konfigurasi, juga menyediakan saran-saran bagaimana menghindari permasalahan
yang sering dihadapai oleh pengguna Gentoo. Semoga berhasil!
3.
Masalah-masalah umum dan area-area yang membingungkan
Disk SATA adalah SCSI
Kebanyakan sistem desktop modern memiliki perangkat penyimpanan data (harddisk
dan CD/DVD) yang tersambung pada bus Serial ATA, bukan pada bus IDE (kabel ribbon).
Dukunga SATA di Linux diimplementasikan pada sebuah lapisan bernama
libata, yang berada di bawah subsistem SCSI. Karena alasan ini, driver
SATA berada di dalam seksi driver SCSI. Sebagai tambahan, perangkat penyimpanan
data jenis SATA anda juga akan diperlakukan seperti perangkat SCSI, yang
artinya, dukungan untuk disk/cdrom SCSI juga diperlukan. Harddisk SATA anda
akan dinamakan (misalnya) /dev/sda dan CD/DVD SATA anda akan dinamakan
(misalnya) /dev/sr0.
Walaupun kebanyakan dari driver ini diperuntukkan bagi pengedali SATA,
libata tidak dirancang khusus untuk SATA. Semua driver IDE
nantinya akan menggunakan libata, dan untuk saat ini, keterangan
di atas juga harus diterapkan oleh pengguna IDE.
Daftar Kode 3.1: Opsi konfigurasi untuk libata |
Device Drivers --->
SCSI device support --->
<*> SCSI device support
<*> SCSI disk support
<*> SCSI CDROM support
SCSI low-level drivers --->
<*> Serial ATA (SATA) support
|
Chipset IDE dan DMA
Walaupun SATA telah diperkenalkan, perangkat IDE masih banyak sekali digunakan.
IDE adalah teknologi yang sangat banyak sekali dipakai, dan oleh karena itu,
Linux mendukung hampir semua pengendali IDE langsung tanpa perlu memilih
opsi-opsi tertentu.
Bagaimanapun juga, IDE adalah teknologi lama yang merupakan reinkarnasi dari
Programmed Input/Output (PIO), yang tidak dapat menyediakan kecepatan
transfer yang dibutuhkan untuk akses cepat ke perangkat penyimpanan data
modern. Driver standar IDE terbatas pada kecepatan transfer PIO ini, yang akan
mengakibatkan lambatnya kecepatan transfer, dan tingginya penggunaan CPU ketika
data sendang dikirim dari/ke disk.
Kecuali anda menggunakan komputer buatan sebelum tahun 1995, pengendali IDE
anda juga menyediakan modus transfer alternatif, dikenal dengan Direct
Memory Access (DMA). DMA jauh lebih kencang, dan CPU hampir tidak digunakan
sama sekali ketika mengirimkan data. Jika anda merasa sistem anda lambat dan
anda menggunakan disk IDE, kemungkinan DMA di sistem anda belum diaktifkan
Daftar Kode 3.2: Memeriksa apakah DMA sudah aktif di disk IDE |
# hdparm -d /dev/hda
/dev/hda:
using_dma = 0 (off)
|
Untuk mengaktifkan DMA pada perangkat IDE anda, anda hanya perlu memilih opsi
konfigurasi untuk pengendali IDE anda.
Daftar Kode 3.3: Opsi-opsi konfigurasi untuk pengendali IDE |
Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
<*> ATA/ATAPI/MFM/RLL support
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
[*] PCI IDE chipset support
|
Pengendali Host USB
USB adalah bus yang banyak
digunakan untuk menghubungkan perangkat eksternal ke komputer anda. Salah satu
alsan di balik kesuksesan USB adalah karena USB merupakan protokol standar,
namun host controller devices (HCD) USB yang diimplementasikan pada
komputer terbagi menjadi tiga jenis:
-
UHCI adalah Universal Host Controller Interface. Mendukung
USB 1.1 dan banyak ditemukan di motherboard berbasis chipset ViA atau Intel.
-
OHCI adalah Open Host Controller Interface. Mendukung USB 1.1
dan biasanya ditemukan di motherboard berbasis chipset nVidia dan SiS.
-
EHCI adalah Extended Host Controller Interface. Satu-satunya
pengendali host yang mendukung USB 2.0, dan dapat ditemukan di motherboard
yang memiliki dukungan USB 2.0.
Kebanyakan sistem memiliki dua dari tiga tipe di atas: EHCI (USB 2.0), ditambah
UHCI atau OHCI (USB 1.1). Penting bagi anda untuk memilih kedua tipe yang
dimiliki oleh sistem anda. Walaupun perangkat USB 2.0 tidak cocok dengan USB
1.1, banyak perangkat USB (bahkan yang saat ini masih diproduksi) berbasis USB
1.1 - apakah mouse USB harus memiliki kecepatan lebih dari 1.5mbit/detik?
Jika anda tidak memiliki opsi-opsi yang diperlukan oleh tipe HCD USB di sistem
anda, anda mungkin akan mendapatkan port USB 'mati': anda menancapkan perangkat
USB, namun perangkat tersebut tidak mendapatkan power atau respon apapun.
Trik lspci (dari paket sys-apps/pciutils) mempermudah anda untuk
mengetahui HCD apa yang dimiliki oleh sistem anda. Berikut ini adalah HCD yang
ada di sistem penulis (tanpa menghiraukan FireWire):
Daftar Kode 3.4: Menggunakan lspci untuk mengetahui tipe HCD |
# lspci -v | grep HCI
00:02.0 USB Controller: nVidia Corporation CK804 USB Controller (rev a2) (prog-if 10 [OHCI])
00:02.1 USB Controller: nVidia Corporation CK804 USB Controller (rev a3) (prog-if 20 [EHCI])
01:0b.0 FireWire (IEEE 1394): Agere Systems FW323 (rev 61) (prog-if 10 [OHCI])
|
Daftar Kode 3.5: Konfigurasi untuk HCD USB |
Device Drivers --->
USB support --->
<*> Support for Host-side USB
--- USB Host Controller Drivers
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
|
Sistem Multiprosesor, Hyper-Threading dan Dual Core
Banyak komputer yang berbasis multiprosesor, tetapi tidak dengan cara yang
selalu jelas.
-
Kebanyakan CPU Intel mendukung sebuah teknologi yang mereka sebut hyper-threading,
yang membuat sistem melihat satu CPU sebagai dua prosesor logikal.
-
Beberapa CPU Intel/AMD baru benar-benar memiliki banyak prosesor fisik di
dalam satu paket, yang dikenal sebagai prosesor dual core.
-
Beberapa komputer mahal benar-benar memiliki banyak prosesor fisik yang
terpasang pada motherboard khusus untuk memberikan pengingkatan performa
yang jauh lebih baik daripada sistem uniprocessor. Anda mungkin
sudah mengetahuinya jika anda memiliki komputer seperti ini, karena
komputer-komputer ini benar-benar tidak murah.
Untuk semua kasus ini, anda perlu memiliki opsi kernel yang sesuai agar anda
mendapatkan performa terbaik.
Daftar Kode 3.6: Konfigurasi untuk multiprosesor |
Processor type and features --->
[*] Symmetric multi-processing support
[*] SMT (Hyperthreading) scheduler support
[*] Multi-core scheduler support (NEW)
|
Dukungan x86 High Memory
Karena keterbatasan yang ada pada ruang alamat 32-bit arsitektur x86, sebuah
kernel dengan konfigurasi default hanya dapat mendukung penggunaan memori
sampai 896MB. Jika sistem anda memiliki memori lebih besar, hanya 896MB pertama
yang akan terlihat, kecuali anda telah memberikan dukungan high memory.
Catatan:
Keterbatasan ini hanya berlaku pada arsitektur x86 (IA32). Arsitektur lain
telah mendukung penggunaan memori besar tanpa konfigurasi tambahan.
|
Dukungan untuk memori besar tidak diaktifkan secara default, karena hal ini
dapat menyebabkan system overhead kecil. Jangan khawatir,
overhead yang ditimbulkan jauh lebih kecil daripada peningkatan
performa yang anda dapatkan dengan memiliki memori yang lebih besar!
Daftar Kode 3.7: Mengaktifkan dukungan high memory di x86 |
Processor type and features --->
High Memory Support --->
(X) 4GB
( ) 64GB
|
4.
Dokumentasi Konfigurasi Kernel Lainnya
Sejauh ini, kita hanya mendiskusikan konsep umum dan masalah-masalah tertentu
yang berhubungan dengan konfigurasi kernel, tanpa membicarakan masalah-masalah
yang lebih detil (anda harus menemukannya sendiri!). Tenang saja, beberapa
bagian dari koleksi dokumentasi Gentoo menyediakan penjelasan khusus untuk
masalah-masalah ini.
Dokumen-dokumen ini mungkin dapat membantu anda ketika mengkonfigurasi
area-area tertentu, tetapi jika anda baru sekali melakukan konfigurasi kernel,
jangan terlalu neko-neko. Mulailah dengan membuat kernel dasar yang
dapat berfungsi, anda boleh melakukan konfigurasi kembali kapan saja untuk
menambahkan dukungan bagi kartu suara anda, printer, dll.
-
Panduan ALSA berisi opsi-opsi
konfigurasi yang dibutuhkan oleh kartu suara. Perlu dicatat bahwa ALSA
merupakan salah satu pengecualian dari skema anjuran untuk tidak membuat
modul: ALSA jauh lebih mudah dikonfigurasi jika dikompilasi sebagai modul.
-
Panduan Bluetooth menjelaskan
opsi-opsi yang anda perlukan untuk menggunakan perangkat Bluetooth.
-
Panduan Ruter IPv6 menjelaskan cara
konfigurasi kernel untuk routing dengan menggunakan skema
pengalamatan jaringan generasi baru.
-
Jika anda akan menggunakan driver grafis proproetary nVidia untuk
mendapatkan performa 3D tinggi, Panduan
nVidia berisi opsi-opsi yang anda perlukan.
-
Panduan Power
Management menjelaskan cara mengkonfigurasi kernel untuk CPU
frequency scaling, juga untuk fungsionalitas suspend dan
hibernate.
-
Jika anda menggunakan sistem PowerPC, FAQ PPC memiliki beberapa bagian
dalam hal konfigurasi kernel.
-
Printing HOWTO berisi
opsi-opsi kernel yang perlu diaktifkan untuk mencetak di Linux.
-
Panduan USB menjelaskan konfigurasi
yang dibutuhkan untuk menggunakan perangkat USB biasa seperti
keyboards/mouse, penyimpanan data, dan printer.
5.
Mengatasi Masalah
Perubahan konfigurasi tidak berpengaruh
Para pengguna sering melakukan kesalahan dengan membuat perubahan pada
konfigurasi, lalu reboot tanpa menggunakan kernel yang baru saja mereka
kompilasi. Mereka mendapatkan kembali semua masalah yang sebelumnya ingin
mereka atasi dengan konfigurasi ulang kernel, lalu menyimpulkan bahwa
perubahan konfigurasi tidak memberikan pengaruh.
Proses kompilasi dan instalasi kernel tidak dijelaskan pada panduan ini, anda
perlu membaca Panduan Upgrade
Kernel. Secara singkat, prosesnya adalah: konfigurasi, kompilasi, mount
/boot (jika ada dan belum di-mount), salin kernel baru, dan reboot. Jika anda
tidak melakukan salah satu dari langkah-langkah ini, perubahan anda tidak akan
berpengaruh!
Anda dapat mengetahui apakah kernel yang sedang anda gunakan cocok dengan
kernel yang dikompilasi di harddisk anda dengan memeriksa hari dan waktu
kompilasi. Dengan anggapan anda menggunakan arsitektur x86 dan source kernel
anda terinstal di /usr/src/linux:
Daftar Kode 5.1: Memastikan apakah anda menggunakan kernel yang baru |
# uname -v
#4 SMP PREEMPT Sat Jul 15 08:49:26 BST 2006
# ls -l /usr/src/linux/arch/i386/boot/bzImage
-rw-r--r-- 1 dsd users 1504118 Jul 15 08:49 /usr/src/linux/arch/i386/boot/bzImage
|
Jika kedua tanda waktu dari kedua perintah di atas berbeda lebih dari 2 menit,
ini menandakan bahwa anda telah melakukan kesalahan ketika menginstal ulang
kernel dan anda tidak sedang menggunakan kernel yang anda sangka sedang anda
gunakan!
Modul-modul tidak di-load secara otomatis
Seperti yang telah dijelaskan sebelumnya pada dokumen ini, sistem konfigurasi
kernel menyembunyikan perubahan besar ketika anda memilih sebuah komponen
kernel sebagai modul (M). Anda perlu mengulanginya lagi karena banyak pengguna
yang terjerumus pada perangkap ini.
Ketika anda memilih sebuah komponen sebagai built-in, komponen ini
dimasukkan ke dalam imej kernel (bzImage). Ketika kernel ingin menggunakan
komponen tersebut, kernel dapat menginisialisasinya dan me-load-nya sendiri
tanpa campur tangan pengguna.
Ketika anda memilih sebuah komponen sebagai modul, komponen tersebut
dikompilasi sebagai file modul kernel dan diinstal di sistem anda. Secara umum,
ketika kernel perlu menggunakan modul tersebut, kernel tidak bisa! Dengan
beberapa pengecualian, kernel tidak akan mencoba untuk me-load modul - tugas
ini diserahkan kepada pengguna.
Jadi, jika anda mengkompilasi driver kartu jaringan anda sebagai modul,
kemudian anda tidak mendapatkan akses jaringan, hal ini mungkin karena modul
yang diperlukan belum di-load - anda harus melakukannya (load modul) sendiri
atau atur sistem anda agar langsung me-load modul tersebut saat boot.
Kecuali anda memiliki alasan sendiri untuk membuat modul, sayangi waktu anda
dengan memasukkan semua komponen yang anda perlukan di dalam kernel, agar
kernel dapat mengatur semuanya untuk anda.
Isi dokumen ini dilisensikan dengan lisensi Creative Commons -
Attribution / Share Alike.
|