Tujuan dari tutorial ini adalah untuk membangun sebuah paket rpm kernel yang dapat diinstal pada sistem, dan bahwa Anda dapat berbagi dengan orang lain dan menginstal pada sistem SuSE lain yang merupakan keuntungan besar dibandingkan dengan cara "tradisional" di mana Anda tidak berakhir dengan sebuah paket rpm.
2 Instal Paket Diperlukan Untuk Kompilasi Kernel
Kita harus menginstal ncurses-devel yang dibutuhkan oleh perintah menuconfig membuat yang kita jalankan:
-i YaST ncurses-devel
Berikutnya kita harus memodifikasi beberapa alat yang dibutuhkan untuk membangun kernel. Jika kita tidak mengubah mereka, kita akan mendapatkan pesan kesalahan berikut pada kernel membangun proses:
/ Usr / lib / rpm / mencari-requires.ksyms: line 12: / usr / bin / nm: Argumen terlalu panjang daftar
dan kami tidak akan dapat menginstal paket rpm kernel kita.
Sebelum kita memodifikasi alat, kami membuat back up :
cp / usr / lib / rpm / mencari-provides.ksyms / usr / lib / rpm / mencari-provides.ksyms_orig
cp / usr / lib / rpm / mencari-requires.ksyms / usr / lib / rpm / mencari-requires.ksyms_orig
cp / usr / lib / rpm / mencari-supplements.ksyms / usr / lib / rpm / mencari-supplements.ksyms_orig
Kemudian kita membuka masing-masing naskah dan mengganti kernel-*) is_kernel_package = 1;; dengan * kernel) is_kernel_package = 1;;:
vi / usr / lib / rpm / mencari-provides.ksyms

vi / usr / lib / rpm / mencari-requires.ksyms

vi / usr / lib / rpm / mencari-supplements.ksyms

3 Download Source Kernel
Selanjutnya kita download diinginkan kernel ke / usr / src. Pergi ke www.kernel.org dan pilih kernel yang ingin anda instal, misalnya linux-2.6.18.2.tar.bz2 (Anda dapat menemukan semua kernel 2.6 di sini: http://www.kernel.org/pub/linux/kernel / v2.6 / ).
cd / usr / src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.2.tar.bz2
Lalu kami membongkar source kernel dan membuat symlink linux ke source kernel direktori:
tar xjf linux-2.6.18.2.tar.bz2
ln -s linux-2.6.18.2 linux ln-s linux-2.6.18.2 linux
cd /usr/src/linux cd / usr / src / linux
4 Terapkan Patch Untuk itu Sumber Kernel (Opsional)
Kadang-kadang Anda perlu driver untuk hardware yang tidak didukung oleh kernel baru secara default, atau Anda perlu dukungan untuk teknik teknologi virtualisasi atau perdarahan-tepi lain yang belum dibuat ke kernel belum. Dalam semua kasus ini Anda harus patch kernel sumber (asalkan ada patch tersedia ...).
Sekarang mari kita anggap Anda telah men-download patch yang dibutuhkan (saya menyebutnya patch.bz2 dalam contoh ini) ke / usr / src. Ini adalah bagaimana Anda menerapkannya ke sumber kernel Anda (Anda masih harus berada di / usr / src / linux direktori):
bzip2-dc / usr/src/patch.bz2 | patch-p1 - dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1 bzip2-dc / usr/src/patch.bz2 | patch-p1
Perintah pertama adalah hanya ujian, itu tidak apa-apa untuk sumber Anda. If it doesn't show errors, you can run the second command which actually applies the patch. Jika tidak menunjukkan kesalahan, Anda dapat menjalankan perintah kedua yang benar-benar berlaku patch. Don't do it if the first command shows errors! Jangan lakukan itu jika perintah pertama menunjukkan kesalahan!
Jika patch Anda dikompres dengan gzip (). Gz bukannya bzip2. Bz2), maka patch kernel Anda Anda (sebagai berikut:
gunzip-c / usr / src / patch.gz | patch-p1 - dry-run
gunzip -c /usr/src/patch.gz | patch -p1
Ini adalah bagaimana Anda menerapkan patch 2.6.19-RC6 untuk 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/linux 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
5 Konfigurasi Kernel
Ini adalah ide yang baik untuk menggunakan konfigurasi kernel Anda saat ini bekerja sebagai dasar untuk kernel baru anda. Oleh karena itu kita salin konfigurasi yang ada ke / usr / src / linux:
membuat mrproper
cp / boot/config- `uname-r` / .config.
Kemudian kita jalankan
make menuconfig
yang menampilkan menu konfigurasi kernel. Pergi ke sebuah beban Alternatif Konfigurasi File dan pilih file. Config (yang berisi konfigurasi pekerjaan Anda saat ini kernel) sebagai konfigurasi:


Kemudian menelusuri melalui menu konfigurasi kernel dan membuat pilihan Anda. Pastikan Anda menentukan string identifikasi versi kernel under Umum> Setup (-default ---) versi lokal - menambahkan untuk melepaskan kernel. String standar-standar sehingga kami paket rpm kernel akan diberi nama kernel-2.6.18.2default-1.i386.rpm. Anda dapat meninggalkan string seperti itu atau menentukan satu yang berbeda yang membantu Anda mengidentifikasi kernel (misalnya-kebiasaan atau apa pun yang Anda suka).
Saya akan menggunakan string-default dalam tutorial ini.
Catatan: Setelah Anda menginstal kernel-2.6.18.2default-1.i386.rpm dan memutuskan untuk mengkompilasi kernel 2.6.18.2 lain, penting untuk menggunakan versi string yang berbeda, misalnya-default1,-default2, dll, karena jika tidak, anda tidak dapat menginstal kernel baru Anda karena rpm mengeluh bahwa kernel-2.6.18.2default-1.i386.rpm sudah terinstal!



Jika Anda sudah selesai dan Keluar pilih, menjawab pertanyaan berikut (Apakah Anda ingin menyimpan konfigurasi kernel baru Anda?) Dengan Ya:

6 Build Kernel
TUntuk membangun kernel, cukup mengeksekusi perintah ini:
membuat rpm
7 Instal Kernel Baru
Setelah sukses membangun kernel, src.rpm dan paket rpm telah diciptakan. Paket src.rpm dapat ditemukan di / usr / src / paket / SRPMS / direktori, Anda dapat mengetahui tentang nama dengan menjalankan
ls-l / usr / src / paket / SRPMS /
Pada sistem saya itu disebut kernel-2.6.18.2default-1.src.rpm.
Paket rpm dapat ditemukan di / usr/src/packages/RPMS/i386 /, / usr/src/packages/RPMS/i586 /, / usr/src/packages/RPMS/i686 /, / usr / src / paket / RPMS/x86_64 /, dll, tergantung pada arsitektur anda. Pada sistem saya itu terletak di / usr/src/packages/RPMS/i386 /, dan dengan menjalankan
ls-l / usr/src/packages/RPMS/i386 /
Saya menemukan bahwa namanya kernel-2.6.18.2default-1.i386.rpm.
Sekarang kita dapat menginstal paket rpm kernel kita seperti ini:
cd / usr/src/packages/RPMS/i386 /
rpm-ivh kernel-2.6.18.2default-1.i386.rpm
mkinitrd
Tidak ada komentar:
Posting Komentar