Gentoo Logo

Panduan Konfigurasi Kernel Gentoo Linux

Daftar Isi:

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
    Pilih chipset anda dari pilihan-pilihan yang ada di bawahnya

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
    Pilih chipset anda dari pilihan yang ada di bawahnya

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
  Pilih HCD yang ada di sistem anda, atau pilih ketiga-tiganya jika
    anda kurang yakin.

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
 Pilih opsi di atas jika anda memiliki sistem multi-prosesor (semua jenis)
 [*]   SMT (Hyperthreading) scheduler support
 Pilih opsi di atas jika anda memiliki CPU Hyper-Threading Intel
 [*]   Multi-core scheduler support (NEW)
 Pilih opsi di atas jika anda memiliki CPU dual core

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
  Pilih opsi 4GB, kecuali sistem anda memiliki RAM lebih dari 4GB.

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
Perintah di atas akan menampilkan hari dan waktu kompilasi kernel yang sedang anda gunakan.

# 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
Perintah di atas akan menampilkan hari dan waktu kompilasi kernel terakhir yang dilakukan di sistem anda.

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.



Print

Diperbarui 13 April 2008

Versi asli dari dokumen ini terakhir diupdate 26 Desember 2011

Rangkuman: Dokumen ini dibuat untuk memperkenalkan konsep konfigurasi kernel secara manual, dan menjelaskan beberapa perangkap yang sering menjerumuskan di dalam konfigurasi kernel.

Daniel Drake
Author

Curtis Napier
Contributor

Justin Robinson
Contributor

Łukasz Damentko
Contributor

Jonathan Smith
Editor

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.