1. Nama : Anwar Muhammad
Npm : 121055520111007
Mk : Sistem Operasi II
by : mr. nhoel
Judul Tugas : Cara kompail kernel Debian
2. http://www.howtoforge.com/kernel_compilation_debian
BAGAIMANA CARA
KOMPAIL KERNEL DEBIAN
Setiap distribusi memiliki beberapa tools untuk
membangun sebuah kernel dari source. Artikel
ini adalah tentang kompilasi kernel pada sistem
Debian Sarge. Ini menggambarkan bagaimana
membangun sebuah kernel kustom
menggunakan sumber kernel terbaru
dimodifikasi dari www.kernel.org (vanilla kernel)
sehingga Anda independen dari kernel yang
disediakan oleh distribusi Anda. Hal ini juga
menunjukkan bagaimana menambal kernel jika
Anda membutuhkan fitur yang tidak ada di sana.
3. Saya telah menguji ini pada Debian Sarge
di VMware Server.
Saya ingin mengatakan pertama bahwa
ini bukan satu-satunya cara untuk
membangun sistem seperti itu. Ada
banyak cara untuk mencapai tujuan ini,
tetapi ini adalah cara saya ambil. Saya
tidak memberikan jaminan bahwa hal ini
akan bekerja untuk Anda!
4. Catatan awal
Tujuan dari tutorial ini adalah untuk membangun
sebuah paket deb kernel yang dapat diinstal
pada sistem, dan bahwa Anda dapat berbagi
dengan orang lain dan diinstal pada sistem
Debian Sarge lain yang merupakan keuntungan
besar dibandingkan dengan "tradisional" cara di
mana Anda tidak berakhir dengan paket deb.
Instal Diperlukan Paket Untuk Kernel Kompilasi
Pertama kita update database paketnya.
apt-get update
5. Kemudian kita menginstal semua paket yang diperlukan
seperti ini:
apt-get install kernel-package libncurses5-dev fakeroot
wget bzip2 build-essential udev
Harap dicatat bahwa kami baru saja menginstal udev
yang menggantikan yang lama (usang) devfs dalam
kernel baru. Default Debian Sarge kernel (2.6.8) masih
menggunakan devfs yang tidak tersedia lagi di kernel
baru.
Download Kernel Source
Selanjutnya kita download kernel yang diinginkan ke /
usr / src. Pergi ke www.kernel.org dan pilih kernel yang
ingin anda instal, misalnya linux-2.6.18.3.tar.bz2 (Anda
dapat menemukan semua kernel 2.6 di
sini:http://www.kernel.org/pub/linux/kernel/v2.6/).
6. Kemudian Anda dapat men-download ke / usr / src
seperti ini:
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-
2.6.18.3.tar.bz2
Kemudian kita membongkar sumber kernel dan
membuat linux symlink ke direktori kernel:
tar xjf linux-2.6.18.3.tar.bz2
ln -s linux-2.6.18.3 linux
cd /usr/src/linux
7. Terapkan Patch Untuk Kernel Source (pilihan)
Kadang-kadang Anda perlu driver untuk hardware yang
tidak didukung oleh kernel baru secara default, atau
anda memerlukan dukungan untuk teknik virtualisasi
atau teknologi baru-tepi yang belum berhasil sampai ke
kernel. Dalam semua kasus ini Anda harus kompail
kernel (asalkan ada patch tersedia ...).
Sekarang mari kita asumsikan Anda telah men-download
patch yang dibutuhkan (saya menyebutnya
patch.bz2 dalam contoh ini) ke / usr / src. Ini adalah
bagaimana Anda menerapkannya ke kernel anda (Anda
masih harus berada di direktori / usr / src / linux):
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1
8. Jika patch Anda dikompresi dengan gzip (gz) bukan
bzip2 (.bz2), maka Anda patch kernel Anda sebagai
berikut:
gunzip -c /usr/src/patch.gz | patch -p1 --dry-run
gunzip -c /usr/src/patch.gz | patch -p1
Anda juga dapat menerapkan prepatches kernel untuk
kernel anda. Misalnya, jika Anda membutuhkan fitur
yang hanya tersedia dalam kernel 2.6.19-rc6, tetapi
sumber penuh belum dirilis belum untuk kernel ini.
Sebaliknya, patch-2.6.19-rc6.bz2 tersedia. Anda dapat
menerapkan patch yang ke source kernel 2.6.18, tetapi
tidak untuk kernel 2.6.18.1 atau 2.6.18.2 atau 2.6.18.3,
dll Hal ini dijelaskan pada
http://kernel.org/patchtypes/pre.html:
9. Prepatches adalah setara dengan rilis alpha untuk Linux;
mereka tinggal di direktori pengujian dalam arsip.
Mereka harus diterapkan menggunakan patch (1) utilitas
untuk kode sumber dari rilis penuh sebelumnya dengan
nomor versi 3-bagian (misalnya, prepatch 2.6.12-rc4
harus diterapkan pada sumber kernel 2.6.11, tidak ,
misalnya, 2.6.11.10.)
Jadi jika Anda ingin mengkompilasi kernel 2.6.19-rc6,
Anda harus men-download 2.6.18 kernel
(http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.
tar.bz2) pada langkah 3 bukannya kernel 2.6.18.3!
Ini adalah bagaimana Anda menerapkan patch 2.6.19-
rc6 kernel 2.6.18:
cd /usr/src
wget
http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-
2.6.19-rc6.bz2
10. cd /usr/src/linux
bzip2 -dc /usr/src/patch-2.6.19-rc6.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch-2.6.19-rc6.bz2 | patch -p1
Konfigurasi Kernel
Ini adalah ide yang baik untuk menggunakan konfigurasi
kernel kerja Anda saat ini sebagai dasar untuk kernel
baru Anda. Oleh karena itu kita salin konfigurasi yang
ada ke / usr / src / linux:
make clean && make mrproper
cp /boot/config-`uname -r` ./.config
11. Kemudisan kita jalankan
make-menuconfig
yang membawa pada menu konfigurasi kernel. Pergi ke
Memuatkan file konfigurasi alternatif dan memilih Config
(yang berisi konfigurasi kernel pekerjaan Anda saat ini)
sebagai file konfigurasi:
12. Kemudian gulir melalui menu konfigurasi kernel dan
membuat pilihan Anda. Pastikan Anda menentukan
identifikasi versi kernel di bawah Pengaturan Umum --->
() versi Lokal - append kernel rilis. Saya menggunakan
-default1 sehingga paket deb kernel kita akan
dinamakan linux-2.6.18.3-default1_2.6.18.3-
default1_i386.deb. Pastikan bahwa string berisi angka
(misalnya 1, 2, ...) karena jika proses build kernel akan
menghasilkan kesalahan.
Harap dicatat: Setelah Anda menginstal linux-2.6.18.3-
default1_2.6.18.3-default1_i386.deb dan memutuskan
untuk mengkompilasi paket deb 2.6.18.3 kernel lain,
penting untuk menggunakan string versi yang berbeda,
misalnya -default2, -default3, dll, karena jika tidak, anda
tidak dapat menginstal kernel baru Anda karena dpkg
mengeluh bahwa linux-2.6.18.3-default1_2.6.18.3-
default1_i386.deb sudah terpasang!
14. Berikutnya pastikan Anda mengaktifkan driver perangkat
Fusion MPT di bawah Device Drivers -> Fusion MPT
dukungan perangkat. Aku tidak tahu apakah ini
diperlukan pada semua platform; setidaknya pada
(Debian Sarge pada VMware Server) karena jika tidak,
anda akan mendapatkan pesan kesalahan ini ketika
anda boot kernel baru Anda:
• / bin / cat: / sys / block / sda / dev: Tidak ada berkas atau
direktori
• y.
16. Kemudian menelusuri sisa menu konfigurasi kernel dan
membuat pilihan Anda. Ketika Anda selesai dan pilih
Exit, menjawab pertanyaan berikut (Apakah Anda ingin
menyimpan konfigurasi kernel baru Anda?) Tekan Yes:
17. Untuk membangun kernel, mengeksekusi dua perintah
ini:
make-kpkg clean
fakeroot make deb-pkg
Sekarang bersabar, kompilasi kernel dapat mengambil
beberapa jam, tergantung pada konfigurasi kernel Anda
dan kecepatan prosesor Anda.
18. Install New Kernel
Setelah sukses membangun kernel, Anda dapat
menemukan paket deb kernel di direktori / usr / src.
cd /usr/src
ls -l
Pada sistem pengujian saya itu disebut linux-2.6.18.3-
default1_2.6.18.3-default1_i386.deb. Saya
menginstalnya seperti ini:
dpkg -i linux-2.6.18.3-default1_2.6.18.3-
default1_i386.deb
(Anda bahkan sekarang dapat mentransfer file deb untuk
sistem Debian Sarge lain dan menginstalnya ada cara
yang persis sama, yang berarti Anda tidak perlu
melakukan kompilasi kernel di sana lagi.)
19. Buat Ramdisk
Sekarang kita harus membuat ramdisk untuk kernel
yang baru. Biasanya kita melakukan ini dengan mkinitrd,
tapi kernel yang baru menggunakan udev bukan devfs,
dan Anda kemungkinan besar akan mendapatkan pesan
kesalahan ini dengan mkinitrd dihasilkan ramdisk saat
boot-up:
mount: tidak diketahui tipe filesystem 'devfs'
yang mungkin menyebabkan kernel panik.
Cara baru untuk menciptakan ramdisks adalah dengan
mkinitrd.yaird. Backports.org memiliki paket yaird untuk
Debian Sarge. Sebelum kita bisa menginstalnya, kita
harus menginstal dua prasyarat:
apt-get install libhtml-template-perl libparse-recdescent-perl
20. Kemudian kita install yaird seperti ini:
cd /tmp
wget http://downloads.howtoforge.com/files/yaird_0.0.12-
8bpo1_i386.deb
dpkg -i yaird_0.0.12-8bpo1_i386.deb
(Paket yaird asli terletak di
http://backports.org/debian/pool/main/y/yaird/, namun
dilepas sementara itu, jadi aku membuat paket yang
tersedia di bawah http: //downloads.howtoforge com /
files / yaird_0.0.12-8bpo1_i386.deb.)
21. Sebelum kita dapat menciptakan ramdisk baru, kita
harus mengedit file konfigurasi kernel baru yang dapat
Anda temukan di direktori / boot (run
ls -l /boot
untuk mengetahui). Dalam tutorial ini disebut
/boot/config-2.6.18.3-default1, dan dalam file tersebut
kita harus komentar pada baris
CONFIG_DEFCONFIG_LIST (menuju awal file) karena
jika tidak mkinitrd.yaird akan melemparkan kesalahan
seperti ini pada kami:
• yaird error: bad value in /boot/config-2.6.18.3-default1:
CONFIG_DEFCONFIG_LIST="/lib/modules/
$UNAME_RELEASE/.config" (fatal)
22. Jadi kita melakukan ini:
vi /boot/config-2.6.18.3-default1
Sekarang kita akhirnya bisa membuat ramdisk kita
seperti ini:
mkinitrd.yaird -o /boot/initrd.img-2.6.18.3-default1
2.6.18.3-default1
Konfigurasi The GRUB Boot Loader
23. Sekarang kita harus mengkonfigurasi GRUB boot loader
kita sehingga kernel yang baru akan boot ketika kita
restart sistem. Hal ini sangat mudah, hanya menjalankan
update-grub
Anda dapat memeriksa /boot/grub/menu.lst untuk
melihat apakah kernel baru Anda telah ditambahkan:
vi /boot/grub/menu.lst
Seharusnya terlihat seperti ini sekarang (Anda harus
menemukan dua bait untuk kernel baru Anda di bagian
atas daftar stnazas kernel):
24. Reboot
Sekarang reboot sistem:
shutdown -r now
Jika semuanya berjalan dengan baik, itu harus datang
dengan kernel baru. Anda dapat memeriksa apakah itu
benar-benar menggunakan kernel baru dengan
menjalankan
uname -r
Ini harus menampilkan sesuatu seperti
25. 2.6.18.3-default1
Jika sistem tidak mulai, restart, dan ketika Anda datang
ke menu boot loader GRUB, pilih kernel lama Anda dan
mulai sistem
26. Anda sekarang dapat mencoba lagi untuk
mengkompilasi sebuah kernel bekerja. Jangan
lupa untuk menghapus dua bait dari kernel
tidak-bekerja dari /boot/grub/menu.lst.
11 Links
Debian: http://www.debian.org
Kernel Linux Archives: http://www.kernel.org