cara kompail kernel debian

Post on 22-Jul-2015

114 Views

Category:

Presentations & Public Speaking

9 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Nama : Anwar Muhammad

Npm : 121055520111007

Mk : Sistem Operasi II

by : mr. nhoel

Judul Tugas : Cara kompail kernel 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.

http://www.howtoforge.com/kernel_compilation_debian

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!

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

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/).

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.bz2Kemudian kita membongkar sumber kernel dan membuat linux symlink ke direktori kernel:tar xjf linux-2.6.18.3.tar.bz2ln -s linux-2.6.18.3 linuxcd /usr/src/linux

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-runbzip2 -dc /usr/src/patch.bz2 | patch -p1

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-rungunzip -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:

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

cd /usr/src/linuxbzip2 -dc /usr/src/patch-2.6.19-rc6.bz2 | patch -p1 --dry-runbzip2 -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 mrpropercp /boot/config-`uname -r` ./.config

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:

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!

1 2

3 4

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.

yang menghasilkan kernel panik

1 2

3

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:

Untuk membangun kernel, mengeksekusi dua perintah ini:

make-kpkg cleanfakeroot make deb-pkg

Sekarang bersabar, kompilasi kernel dapat mengambil beberapa jam, tergantung pada konfigurasi kernel Anda dan kecepatan prosesor Anda.

Install New Kernel Setelah sukses membangun kernel, Anda dapat menemukan paket deb kernel di direktori / usr / src.

cd /usr/srcls -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.)

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

Kemudian kita install yaird seperti ini:

cd /tmpwget http://downloads.howtoforge.com/files/yaird_0.0.12-8bpo1_i386.debdpkg -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.)

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)

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

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):

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

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

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

top related