Disclaimer :
Dokumen ini sudah usang dan tidak diperbarui lagi.
|
Panduan Genkernel Gentoo Linux
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:
-
Tambahkan root=/dev/ram0 dan init=/linuxrc pada parameter
kernel setelah imej kernel.
-
Tambahkan real_root=/dev/hda3, misalnya, pada parameter kernel
setelah imej kernel, jika /dev/hda3 merupakan partisi root
anda.
-
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.
-
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
|
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
|
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 |
# 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 |
# emerge mknbi
# cd /boot
# mkelf-linux -params="root=/dev/ram0 init=/linuxrc ip=dhcp" kernel... initrd... > etherboot.img
# emerge sparc-utils
# cd /boot
# elftoaout kernel... -o kernel.aout
# piggyback64 kernel.aout System.map-... initrd-...
# mv kernel.aout openboot.img
|
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 |
# mount /tmp/gentoo-livecd.iso /mnt/cdrom -o loop
# cp -p /mnt/cdrom /nfs/livecd
# umount /mnt/cdrom
# 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";
}
...
|
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 |
ok boot net ip=dhcp init=/linuxrc
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.
Isi dokumen ini dilisensikan dengan lisensi Creative Commons -
Attribution / Share Alike.
|