Gentoo Logo

Disclaimer : Dokumen ini sudah usang dan tidak diperbarui lagi.


Panduan Genkernel Gentoo Linux

Daftar Isi:

1.  Pendahuluan

Dasar Pemikiran

Bagi pengguna yang belum terbiasa mengkompilasi sendiri kernelnya, genkernel adalah alat yang dapat digunakan untuk mengotomatisasi proses ini. Alat ini dapat membantu anda menciptakan imej kernel mirip dengan yang digunakan oleh CD Istalasi Gentoo, yang dirancang untuk melakukan deteksi konfigurasi hardware di sistem anda secara otomatis. Sebagian pengguna mungkin juga tertarik untuk menggunakan genkernel karena memiliki hardware yang memerlukan inisialiasi dan kernel yang bagus sebelum sistem dinyalakan. Karena genkernel mengkompilasi modul kernel secara otomatis, anda dapat menggunakan hardware yang memerlukan penggunaan parameter modul tertentu agar dapat bekerja dengan baik.

Target

Jika anda belum mengetahui cara mengkompilasi kernel atau belum mengenal konfigurasi hardware anda, genkernel akan sangat bermanfaat. Alat ini dirancang untuk memudahkan proses kompilasi kernel dan secara default mendukung banyak hardware.

Bagaimanapun juga, jika anda sudah mengetahui driver apa saja yang diperlukan oleh sistem anda, anda dapat mengurangi waktu yang dibutuhkan untuk mengkompilasi kernel. Hal ini dimungkinkan karena anda dapat memerintahkan genkernel untuk hanya menkompilasi driver yang diperlukan saja. Biasanya, jumlah driver yang diperlukan oleh sistem anda lebih sedikit (untuk itu dapat mengurangi waktu kompilasi) daripada konfigurasi default genkernel.

Instalasi genkernel

Untuk menginstal genkernel, jalankan emerge genkernel. Jika anda menggunakan Gentoo Reference Platform (GRP), jangan lupa menginstal paket-paket binari dengan menambahkan opsi -k ke perintah emerge. Karena versi genkernel yang disediakan oleh GRP sudah agak tua, opsi-opsinya mungkin akan berbeda. Jika begitu, bacalah genkernel --help untuk mendapatkan bantuan tentang cara menggunakan versi genkernel yang tersedia di sistem anda.

2.  Bekerja dengan genkernel

Cara menggunakan genkernel

Walaupun terdapat beberapa cara untuk menjalankan genkernel, pendekatan yang paling mudah disediakan oleh genkernel all. Di sini, sebuah konfigurasi generik yang dapat bekerja pada kebanyakan sistem akan digunakan. Seperti yang telah dijelaskan tadi, pendekatan ini bukan tidak memiliki kelemahan; kebanyakan modul yang diciptakan tidak diperlukan sehingga dapat memperpanjang waktu kompilasi. Berikut ini adalah contoh pendekatan yang lebih efisien, dengan menambahkan beberapa flag untuk genkernel:

Daftar Kode 2.1: Menjalankan genkernel (dengan flag)

# genkernel --bootsplash --no-install --no-clean --menuconfig all

Operasi di atas memerintahkan genkernel untuk menciptakan kernel dengan dukungan bootsplash (--bootsplash) dan harus diinstal secara manual (--no-install). Ketika mempersiapkan source kernel, genkernel tidak akan membersihkannya dari objek yang sebelumnya telah ada (--no-clean). Menu konfigurasi akan ditampilkan agar pengguna dapat memilih modul apa saja yang akan dikompilasi untuk sistem (--menuconfig).

Terdapat sejumlah flag lain yang dapat mempengaruhi hasil genkernel. Misalnya, mengganti flag --no install dengan flag --install akan memerintahkan genkernel untuk langsung menginstal kernel baru di dalam direktori /boot. Dengan flag --mountboot, genkernel akan secara otomatis me-mount partisi /boot, jika diperlukan.

Perlu diingat bahwa genkernel dirancang untuk mempermudah proses kompilasi kernel. Untuk alasan ini, genkernel menyediakan sejumlah flag untuk memudahkan proses kompilasi kernel. Misalnya, terdapat flag untuk membantu konfigurasi kernel dan flag lain untuk membantu proses kompilasi. Beberapa flag lain bahkan dapat membantu proses debug kompilasi. Bagi anda yang ingin melakukan optimisasi, terdapat flag yang berpengaruh pada kernel assembling, pemaketan kernel, dan bahkan inisialisasi kernel.

Sisa bab ini menjelaskan kegunaan dari berbagai flag dan aksi yang disediakan oleh genkernel. Beberapa flag memiliki varian yang menjalankan operasi kebalikan. Varian kebalikan ini memiliki awalan no-, dan pengaruhnya dicantumkan di dalam kurung kotak, [].

Flag-flag Konfigurasi

Flag-flag konfigurasi berikut ini disediakan untuk membantu anda memilih fitur apa saja yang harus diaktifkan atau dinonaktifkan pada kernel sebelum kompilasi. Anda bahkan dapat memilih untuk menyimpan file konfigurasi yang diciptakan atau tidak. Berikut ini adalah flag-flag utama untuk konfigurasi:

  • --no-menuconfig: Mengaktifkan [atau menonaktifkan] perintah make menuconfig (yang akan meluncurkan utilitas konfigurasi kernel interaktif berbasis menu, sebelum kompilasi kernel dimulai.
  • --gconfig: Menyediakan utilitas konfigurasi kernel yang menggunakan pustaka GTK+. Keuntungan dari opsi ini adalah, kebanyakan pengguna merasa lebih mudah dan jelas ketika mengkonfigurasi kernel dengan utilitas ini, karena dijalankan di atas X. Sedangkan kelemahannya adalah, anda membutuhkan X untuk menggunakannya, jadi opsi ini tidak dapat digunakan dari konsol.
  • --xconfig: Menyediakan utilitas konfigurasi kernel yang menggunakan pustaka Qt. Keuntungan dari opsi ini adalah, kebanyakan pengguna merasa lebih mudah dan jelas ketika mengkonfigurasi kernel dengan utilitas ini, karena dijalankan di atas X. Sedangkan kelemahannya adalah, anda membutuhkan X untuk menggunakannya, jadi opsi ini tidak dapat digunakan dari konsol.
  • --no-save-config: Menyimpan [atau tidak menyimpan] konfigurasi kernel ke sebuah file di /etc/kernels/ untuk penggunaan selanjutnya.

Flag-flag Kompilasi

Flag-flag berikut ini biasanya berpengaruh ketika proses kompilasi berlangsung:

  • --kerneldir=/path/ke/source/: Menentukan lokasi alternatif dari source kernel, sebagai ganti lokasi default, /usr/src/linux/.
  • --kernel-config=/path/ke/file-konfigurasi: Menentukan file konfigurasi kernel alternatif yang akan digunakan, sebagai ganti default, /path/ke/source/.config.
  • --module-prefix=/path/ke/direktori-prefix/: Menentukan awalan direktori tempat penyimpanan modul (defaultnya adalah direktori /lib/modules/.)
  • --no-clean: Mengaktifkan [atau menonaktifkan] perintah make clean sebelum kompilasi kernel dimulai. Perintah make clean akan menghapus semua file objek dan dependensi dari source kernel.
  • --no-mrproper: Mengaktifkan [atau menonaktifkan] perintah make mrproper sebelum kompilasi kernel. Seperti perintah make clean, make mrproper menghapus semua file objek dan dependensi dari source kernel. Bedanya, semua file konfigurasi yang telah ada (di /path/ke/source/.config atau /path/ke/source/.config.old) juga akan dihapus.
  • --oldconfig: Menjalankan perintah make oldconfig, yang akan mencoba untuk mendapatkan informasi konfigurasi untuk arsitektur sistem dari skrip generik di /usr/share/genkernel/. Ini adalah proses non-interkatif; tidak ada input pengguna yang akan diterima. Dan, jika --oldconfig digunakan bersama --clean, flag kedua akan ditiadakan, menghasilkan aktifasi flag --no-clean.
  • --callback="echo hello": Memanggil argumen yang ditentukan (echo hello, pada contoh ini) setelah proses kompilasi kernel dan modul selesai, sebelum proses pembuatan imej initrd. Hal ini berguna jika anda ingin menambahkan modul eksternal pada imej initrd dengan meng-emerge paket terkait melalui fitur callbak, kemudian mendefinisikan ulang grup modul kernel.
  • --no-install: Mengaktifkan [atau menonaktifkan] perintah make install yang akan menginstal imej kernel, file konfigurasi, imej intrd dan peta sistem ke partisi boot (yang telah di-mount). Modul yang telah dikompilasi juga akan diinstal.
  • --no-initrdmodules: Mencegah penyalinan modul ke dalam imej intrd buatan genkernel. Flag ini merupakan pengecualian dari aturan tentang awalan no-; peniadaan awalan no- akan menghasilkan flag genkernel yang salah.
  • --genzimage: Menciptakan imej initrd, sebelum imej kernel. (Untuk saat ini baru dapat diterapkan pada sistem PPC Pegasos).

Flag-flag Compiler

Flag-flag berikut ini didukung oleh genkernel, dan ditambahkan kepada aplikasi ketika kernel sedang dikompilasi. Flag-flag ini mempengaruhi compiler yang digunakan untuk proses kompilasi, jadi pada level yang sedikit lebih rendah.

  • --kernel-cc=Compiler: Menentukan compiler yang digunakan untuk kompilasi kernel.
  • --kernel-ld=Linker: Menentukan linker yang digunakan selama proses kompilasi kernel berlangsung.
  • --kernel-as=Assembler: Menentukan assembler yang digunakan selama proses kompilasi kernel berlangsung.
  • --kernel-make=Make: Menentukan alternatif dari utilitas GNU make yang digunakan selama proses kompilasi kernel berlangsung.
  • --utils-cc=Compiler: Menentukan compiler yang digunakan selama proses kompilasi utilitas pendukung berlangsung.
  • --utils-ld=Linker: Menentukan linker yang digunakan selama proses kompilasi utilitas pendukung berlangsung.
  • --utils-as=Assembler: Menentukan assembler yang digunakan selama proses kompilasi utilitas pendukung berlangsung.
  • --utils-make=Make: Menentukan alternatif dari utlitas GNU make yang digunakan selama proses kompilasi utilitas pendukung berlangsung.
  • --makeopts=-jX: Menentukan jumlah thread yang terjadi secara bersamaan untuk diimplementasikan oleh utilitas make selama proses kompilasi kernel dan utilitas pendukung. Variabel 'X' adalah jumlah yang didapatkan dengan menambahkan (1) ke jumlah CPU yang digunakan oleh sistem. Jadi, untuk sistem yang memiliki satu CPU, flag yang sesuai adalah -j2; sistem dengan dua CPU sebaiknya menggunakan flag -j3, dan seterusya. (Sistem dengan satu CPU yang mendukung Teknologi Hyper-Threading™ (HT) dapat menggunakan flag -j3, dengan syarat dukungan Symmetric Multi-Processing (SMP) telah tersedia pada kernel yang sedang digunakan.)

Flag-flag Debug

Penggunaan flag-flag debug selama proses kompilasi kernel berlangsung akan mengendalikan jumlah informasi yang dilaporkan, juga data yang dipresentasikan.

  • --debuglevel=verblevel: Mengendalikan level verbositas informasi yang ditampilkan oleh genkernel. Variabel verblevel adalah integer antara 0 dan 5. Level '0' menghasilkan output minimal, sedangkan lebel '5' menghasilkan sebanyak-banyaknya informasi yang dimungkinkan tentang aktifitas genkernel selama proses kompilasi kernel berlangsung.
  • --debugfile=/path/ke/fle-output: Mengabaikan nilai yang diatur oleh argumen --debuglevel, dan mengirimkan semua data debug yang dihasilkan oleh genkernel ke file output yang ditentukan, yang secara default berada di /var/log/genkernel.log.
  • --no-color: Mengaktifkan [atau menonaktifkan] informasi debug (dari genkernel) berwarna.

Flag-flag Inisialisasi

Flag-flag berikut ini digunakan untuk menciptakan efek-efek tertentu ketika sistem mulai dijalankan. Sebagian dari flag ini hanya untuk estetika dan sebagian lainnya penting untuk mengaktifkan fitur-fitur tertentu pada sistem.

  • --no-bootsplash: Mengaktifkan [atau menonaktifkan] dukungan untuk bootsplash pada imej initrd buatan genkernel. Fitur bootsplash tidak didukung oleh semua arsitektur, dan diperlukan juga kernel dengan dukungan bootsplash.
  • --no-gensplash: Mengaktifkan [atau menonaktifkan] dukungan untuk gensplash di dalam imej initrd genkernel. Utilitas gensplash diciptakan untuk menjadi pengganti bootsplash, dan dirancang untuk digunakan dengan kernel seri 2.6. Untuk mengganti tema default gensplash, gunakan opsi --gensplash=TemaPilihan (TemaPilihan adalah nama dari salah satu direktori di dalam direktori /etc/splash/.
  • --gensplash-res=ResolusiPilihan: Dengan flag ini anda dapat memilih resolusi layar splash yang akan diikutsertakan pada imej initrd ketika sistem dinyalakan. Opsi ini berguna untuk dua alasan: Pertama, anda dapat memilih hanya resolusi layar splash yang cocok untuk sistem anda. Kedua, anda dapat menghindari ukuran initrd yang berlebihan (karena initrd tidak perlu mengikutsertakan resolusi splash yang tidak cocok dengan sistem). Namun, anda mungkin perlu menghindari penggunaan flag ini jika kernel yang akan anda kompilasi akan digunakan pada CD Instalasi agar gensplash mendukung semua resolusi yang dimungkinkan.
  • --do-keymap-auto: Memaksa pemilihan keymap ketika proses boot.
  • --lvm2: Mengikutsertakan dukungan untuk penggunaan storage melalui Logical Volume Management (LVM2) dari binari statik, jika tersedia di sistem. Binari LVM2 (statik) yang relevan akan dikompilasi jika belum tersedia. Jangan lupa instal paket lvm2 di sistem anda dengan emerge lvm2 sebelum menggunakan flag ini, dan bacalah panduan Instalasi LVM2 Gentoo.
  • --evms2: Mengikutsertakan dukungan untuk penggunaan storage dengan Enterprise Volume Management System (EVMS2), jika tersedia. Jangan lupa untuk menginstal paket evms dengan USE=static emerge evms2 sebelum menggunakan flag (genkernel) ini. Anda harus menggunakan flag USE=static ketika menginstal paket evms untuk dapat menyediakan binari statik yang diperlukan.
  • --dmraid: Memberikan dukungan untuk DMRAID; utilitas yang menciptakan pemetaan RAID dengan menggunakan subsistem pemeta perangkat dari kernel. DMRAID mencari, mengaktifkan, menonaktifkan dengan menampilkan properti dari kumpulan RAID (mis. ATARAID) dan mengisi partisi-partisi DOS.
  • --luks: Mengikutsertakan dukungan untuk Linux Unified Key Setup atau LUKS. Dengan ini anda dapat menggunakan perangkat yang dienkripsi oleh LUKS yang berisi filesystem. Kemudian pada pengaturan bootloader, gunakan perangkat terenkripsi sebagai isi dari crypt_root (dan real_root harus berisi perangkat tidak terenkripsi yang diciptakan oleh LUKS).
  • --linuxrc=/path/ke/linuxrc: Menentukan linuxrc yang ditentukan sendiri oleh pengguna — skrip yang akan dijalankan ketika kernel dimuat, sebelum proses boot dimulai. (Skrip default linuxrc berada di /usr/share/genkernel/.) Dengan skrip ini anda dapat boot ke kernel modular kecil dan memuat driver yang diperlukan (sebagai modul) oleh sistem.
  • --cachedir=/path/ke/dir/alt/: Mengganti lokasi cache default yang digunakan selama kompilasi kernel.
  • --tempdir=/path/to/new/tempdir/: Menentukan lokasi direktori sementara yang digunakan oleh genkernel selama kompilasi kernel.
  • --unionfs: Memberikan dukungan untuk Unification File System di dalam imej intrd.

Flag Lain

Flag-flag yang disebutkan di bawah ini didukung oleh genkernel tetapi tidak cocok dengan kategori-kategori di atas:

  • --mountboot: Memeriksa apakah direktori /boot/ perlu di-mount pada partisi terpisah. Flag ini akan memeriksa /etc/fstab untuk mendapatkan petunjuk tentang cara me-mount partisi boot (jika diperlukan).
  • --kernname=NickName: Dapat anda gunakan untuk mengganti nama imej kernel dan initrd yang akan diletakkan di dalam direktori /boot/, agar imej yang akan dibuat diberi nama kernel-NickName-versi dan initramfs-NickName-versi.

Pilihan Aksi

Aksi yang memberitahukan genkernel tentang apa yang akan diciptakan. Untuk saat ini, aksi-aksi yang didukung adalah sebagai berikut:

  • initrd: Hanya menciptakan imej initrd
  • bzImage: Hanya menciptakan imej kernel
  • kernel: Hanya menciptakan imej dan modul-modul kernel
  • all: Membangun semuanya — imej initrd dan kernel serta modul.

Aksi terakhir, all, dianjurkan penggunaannya untuk kebanyakan pengguna agar bisa mendapatkan kernel yang bagus. Jangan lupa, sebuah aksi hanya akan memberitahukan apa saja yang perlu diciptakan oleh genkernel, bukan diinstal.

Konfigurasi Bootloader

Agar genkernel dapat bekerja sama dengan bootloader, anda harus membuat tiga atau empat perubahan pada file konfigurasi bootloader:

  1. Tambahkan root=/dev/ram0 dan init=/linuxrc pada parameter kernel setelah imej kernel.
  2. Tambahkan real_root=/dev/hda3, misalnya, pada parameter kernel setelah imej kernel, jika /dev/hda3 merupakan partisi root anda.
  3. Jika anda menggunakan bootsplash, tambahkan baris modus yang cocok seperti vga=0x317 pada parameter kernel, dan gunakan splash=verbose atau splash=silent sesuai keinginan anda.
  4. Tambahkan informasi initrd yang diperlukan oleh bootloader. Bacalah Bab Konfigurasi Bootloader dari Buku Pegangan Gentoo untuk mengetahui caranya.

3.  Opsi-opsi Konfigurasi

Edit /etc/genkernel.conf

Menambahkan flag-flag pada genkernel dari baris perintah bisa jadi merepotkan, terutama jika anda menggunakan banyak flag:

Daftar Kode 3.1: Menjalankan genkernel (dengan banyak flag)

# genkernel --debuglevel=5 --no-color --no-mrproper --clean --gensplash \
--kerneldir=/path/to/alternate/kernel/sources --install --menuconfig \
--kernel-config=/path/to/preferred/configfile --save-config --mountboot all

Untungnya, terdapat sebuah file konfigurasi yang dapat anda gunakan untuk hampir semua opsi-opsi dasar yang anda perlukan. Berikut ini adalah opsi-opsi yang relevan:

  • MENUCONFIG=[yes|no]: Opsi ini sama dengan flag --menuconfig yang digunakan oleh genkernel, yang akan memanggil perintah make menuconfig untuk meluncurkan utilitas konfigurasi kernel. Untuk langsung menjalankan utilitas konfigurasi kernel, gunakan 'yes' pada opsi ini; sebaliknya, gunakan 'no'.
  • CLEAN=[yes|no]: Penggunaan 'yes' pada opsi ini sama dengan penggunaan flag --clean yang memanggil perintah make clean untuk menghapus semua file objek dan dependensi dari source kernel. Penggunaan 'no' akan memberikan efek — sama dengan flag --no-clean, yang menonaktifkan perintah make clean dan mengaktifkan flag --no-mrproper — yang pada dasarnya akan menonaktifkan perintah make mrproper.
  • MRPROPER=[yes|no]: Penggunaan 'yes' pada opsi ini sama dengan penggunaan flag --mrproper yang memanggil perintah make mrproper, yang akan membersihkan source kernel dari semua file konfigurasi. Penggunaan 'no' di sini sama dengan penggunaan flag --no-mrproper yang menonaktifkan perintah make mrproper.
  • MOUNTBOOT=[yes|no]: Penggunaan 'yes' pada opsi ini sama dengan penggunaan flag --mountboot yang akan me-mount partisi /boot/ (jika diperlukan) pada saat kompilasi. Jika direktori /boot/ berada pada partisi terpisah, aktifkanlah opsi ini agar anda tidak perlu melakukan satu langkah (penting) lagi nantinya.
  • SAVE_CONFIG=[yes|no]: Setelah konfigurasi kernel selesai, opsi-opsi yang dipilih akan disimpan sebagai file .config di dalam direktori souce kernel. File ini mungkin akan ditimpa pada kompilasi kernel yang akan datang, atau mungkin dihapus dari direktori source kernel. Penggunaan 'yes' di sini sama dengan penggunaan flag --save-config yang akan menyimpan semua opsi-opsi yang dipilih selama proses konfigurasi sebagai sebuah file di dalam direktori /etc/kernels/. Penggunaan 'no' akan membiarkan status quo.
  • USECOLOR=[yes|no]: Penggunaan 'yes' pada opsi ini sama dengan penggunaan opsi --color yang akan mewarnai output genkernel untuk mempermudah proses debug (jika diperlukan).
  • DEBUGLEVEL=[0|1|2|3|4|5]: Opsi ini digunakan untuk memilih tingkat vebositas output yang dihasilkan oleh genkernel — penggunaan '0' pada opsi ini sama dengan --debuglevel=0 yang berarti tidak akan memberikan output apapun; sedangkan '5' sama dengan --debuglevel=5 yang akan memberikan semua output dari genkernel.

Dengan memilih opsi-opsi yang sesuai di /etc/genkernel.conf, anda dapat menghemat flag yang harus diberikan kepada genkernel dari baris perintah:

Daftar Kode 3.2: Menjalankan genkernel (dengan flag), setelah mengedit genkernel.conf

# genkernel --gensplash --kerneldir=/path/ke/source/kernel/alternatif \
--kernel-config=/path/ke/file_configurasi/alternatif --install all

Perintah di atas dan yang sebelumnya akan memberikan hasil yang sama, tetapi perintah kedua memiliki opsi-opsi yang kebanyakannya telah ditentukan pada skrip yang dapat diedit lagi untuk penggunaan selanjutnya.

4.  Boot jaringan dengan genkernel

Boot jaringan dari CD Instalasi

Utilitas genkernel mampu menciptakan imej kernel dan initrd yang menyediakan dukungan untuk boot jaringan, atau netboot. Dengan sedikit keberuntungan, anda dapat melakukan netboot pada komputer model baru apapun untuk masuk ke lingkungan yang disediakan oleh CD Instalasi.

Rahasianya ada di dalam skrip linuxrc genkernel: skrip ini akan mencoba untuk me-netmount CD Instalasi dengan menggunakan NFS. Dari sana, skrip init CD Instalasi akan mengambil alih, seakan-akan CD disediakan di komputer lokal.

Menciptakan Imej Kernel dan Initrd Dengan Dukungan Netboot

Untuk mengaktifkan dukungan untuk netboot, aktifkan opsi-opsi berikut ketika mengkonfigurasi kernel:

Peringatan: Dukungan untuk netboot dengan genkernel masih bersifat eksperimental dan mungkin mengandung bug.

Pertama, imej kernel harus berisi driver untuk kartu jaringan. Biasanya, driver ini akan dikompilasi sebagai modul. Namun driver ini harus (untuk netboot) dikompilasi langsung di dalam kernel dan bukan sebagai modul.

Daftar Kode 4.1: Konfigurasi kernel 2.6.x dengan dukungan driver kartu jaringan

Device Drivers --->
   Networking Support --->
      Ethernet (10 or 100Mbit)  --->
         [*] Ethernet (10 or 100Mbit)
         <*>   driver untuk kartu jaringan anda
(Pilih <*> dan bukan <M>)

Kedua, kami sarankan anda untuk mengaktifkan opsi IP: kernel level autoconfiguration dan IP: DHCP support. Ini untuk menghindari kerumitan karena alamat IP dan path NFS ke CD Instalasi dapat dikonfigurasi dengan server DHCP. Tentunya, ini berarti baris perintah kernel tidak dapat diubah-ubah untuk komputer apapun - sangat penting untuk etherboot.

Daftar Kode 4.2: Konfigurasi kernel 2.6.x dengan dukungan DHCP

Device Drivers --->
   Networking Support --->
      Networking options
         [*] TCP/IP networking--->
         [*]   IP: kernel level autoconfiguration
         [*]     IP: DHCP support
(Opsi-opsi ini akan memerintahkan kernel untuk mengirimkan permintaan DHCP ke bootup.)

Sebagai tambahan, anda harus mengaktifkan dukugan SquashFS karena hampir semua CD Instalasi Gentoo model baru membutuhkannya. Dukungan untuk SquashFS tidak terdapat pada source kernel generik. Untuk mengaktifkan SquashFS, tambal kernel generik anda atau instal saja gentoo-sources.

Daftar Kode 4.3: Konfigurasi kernel dengan dukungan SquashFS

File systems--->
   Miscellaneous filesystems --->
      [*] SquashFS 2.X - Squashed file system support

Setelah proses kompilasi selesai, buatlah tarbal padat (tar.gz) yang berisi modul-modul kernel. Langkah ini hanya diperlukan jika versi kernel anda tidak sama dengan versi imej kernel pada CD Instalasi.

Daftar Kode 4.4: Menciptakan tarbal padat berisi modul-modul kernel

(Ciptakan file tar.gz yang berisi semua modul)
# cd /
# tar -cf /tmp/modules-X.Y.Z.tar.gz /lib/modules/X.Y.Z/

Tergantung pada mekanisme boot jaringan yang anda gunakan, anda perlu melakukan sebagian dari langkah-langkah berikut ini:

Daftar Kode 4.5: Menciptakan imej boot

(Menciptakan imej etherboot)
# emerge mknbi
# cd /boot
# mkelf-linux -params="root=/dev/ram0 init=/linuxrc ip=dhcp" kernel... initrd... > etherboot.img

(Menciptakan imej OpenBoot / SPARC64 TFTP)
# emerge sparc-utils
# cd /boot
# elftoaout kernel... -o kernel.aout
# piggyback64 kernel.aout System.map-... initrd-...
# mv kernel.aout openboot.img (This is the boot image)

(PXE tidak membutuhkan langkah tambahan, kernel dan initrd akan digunakan seperti apa adanya)

Terakhir, salin kernel ini ke server TFTP anda. Caranya tergantung pada arsitektur yang anda gunakan dan tidak dijelaskan pada panduan ini. Bacalah dokumentasi untuk arsitektur anda.

Pengaturan NFS

Untuk menyiapkan share NFS yang berisi CD Instalasi, gunakan device loop untuk me-mount imej ISO lalu salin isi CD ke share NFS. Sebagai tambahan, skrip initrd genkernel akan mengekstrak semua file tar.gz yang ditemukan di /nfs/livecd/add/. Yang perlu anda lakukan di sini adalah menyalin arsip modules-X.Y.Z.tar.gz ke direktori /nfs/livecd/add/.

Daftar Kode 4.6: Penyiapan share NFS

(Contoh ini menggunakan /nfs/livecd sebagai share NFS)
# mount /tmp/gentoo-livecd.iso /mnt/cdrom -o loop
# cp -p /mnt/cdrom /nfs/livecd
# umount /mnt/cdrom

(Salin modules.tar.gz ke /add)
# mkdir /nfs/livecd/add
# cp /tmp/modules-X.Y.Z.tar.gz /nfs/livecd/add

Pengaturan DHCP

Imej netboot akan meminta IP dan parameter root-path dari server DHCP. Keduanya dapat ditentukan untuk masing-masing host dengan menggunakan alamat MAC untuk mengidentifikasi komputer:

Daftar Kode 4.7: Contoh dhcpd.conf

...

host netbootableMachine {
         hardware ethernet 11:22:33:44:55:66;
         fixed-address 192.168.1.10;
         option root-path "192.168.1.2:/nfs/livecd";
}
# Di sini, 192.168.1.2 adalah server NFS
# Sedangkan 192.168.1.10 adalah alamat IP komputer yang melakukan netboot
...

Instruksi Netboot

Netboot itu sendiri sangat tergantung pada paltform yang digunakan. Bagian terpenting adalah menentukan parameter ip=dhcp dan init=/linuxrc pada baris perintah kernel, karena kedua parameter inilah yang akan mengaktifkan kartu jaringan dan memerintahkan skrip initrd untuk me-mount CD Instalasi melalui NFS. Berikut ini beberapa tips untuk anda:

Daftar Kode 4.8: Instruksi Netboot

# Etherboot - masukkan disk etherboot ke drive lalu reboot
# Baris perintah kernel telah ditentukan ketika imej diciptakan

# Sparc64 - Tekan Stop-A pada prompt boot
ok boot net ip=dhcp init=/linuxrc

# PXE - Siapkan pxelinux (bagian dari syslinux), lalu ciptakan
pxelinux.cfg/default dengan isi:

DEFAULT gentoo
TIMEOUT 40
PROMPT 1

LABEL gentoo
    KERNEL kernel-X.Y.Z
    APPEND initrd=initrd-X.Y.Z root=/dev/ram0 init=/linuxrc ip=dhcp

5.  Penutup

Otomatis atau tidak otomatis?

Tujuan dari genkernel adalah menyediakan sebuah alternatif (mudah) untuk pendekatan kompilasi kernel yang telah teruji. Seperti biasa, anda bebas memilih untuk mengotomatisasi proses kompilasi kernel atau tidak.



Print

Diperbarui 20 Juni 2007

Versi asli dari dokumen ini terakhir diupdate 3 September 2011

Rangkuman: Panduan ini dibuat untuk menjadi referensi bagi semua fungsi yang disediakan oleh genkernel.

Tim Yamin
Author

Jimi Ayodele
Contributor

Thomas Seiler
NFS Support

Dzikri Aziz
Translator

Donate to support our development efforts.

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