Kita tahu bahwa setiap sistem operasi memiliki inti, yang disebut kernel. Kernel adalah komponen penting dalam desain sistem operasi, karena inti dan memiliki banyak fungsi, seperti mengelola input / output, sistem berkas, memuat modul untuk hardware tambahan, dan banyak fungsi lainnya. Kernel dikembangkan dengan baik akan membuat sistem stabil dan kurang rentan. Inilah yang terjadi di GNU / Linux memimpin pengembangan kernel oleh Linus Torvalds (kernel utama) dan Chris Wright bersama dengan Greg Kroah Hartman (-stabil tim). Mereka mempertahankan proses pengembangan kernel untuk membuat GNU / operasi Linux Sistem bekerja lebih baik, lebih cepat, modern, dan juga up to date. Sampai sekarang, ada dua versi utama dalam pengembangan kernel, 2.4.x dan 2.6.x. Stabil dan skema pengembangan tidak lagi digunakan. Segala sesuatu yang muncul ditandai sebagai versi final dianggap versi stabil.
Biasanya, jika Anda telah menginstal sebuah distro (kombinasi dari kernel dengan banyak koleksi utilitas dan aplikasi) seperti Fedora Core, Mandriva, SuSE, Debian, mereka telah dimasukkan kernel, tetapi sebagai pengembangan kernel pindah, kadang-kadang Anda harus Anda meng-upgrade kernel ke versi terbaru, untuk mendapatkan fasilitas baru, dukungan hardware baru, dan juga memperbaiki bug pada kernel sebelumnya. Proses ini dapat mudah atau sulit, tergantung pada keahlian Anda dan juga paket yang Anda gunakan. Jika Anda menggunakan paket distro Anda (RPM, DEB, dan TGZ), proses akan jauh lebih mudah, karena telah disiapkan oleh tim pengembang dan satu-satunya hal yang harus Anda lakukan adalah menginstal dan mengkonfigurasi file boot loader konfigurasi Anda. Sementara itu, jika Anda mencoba untuk menginstal dari sumber kernel asli (disebut Vanili), Anda harus belajar hal baru pertama. Proses itu sendiri tidak dapat guarranted sebagai aman 100%, sehingga tidak untuk newbie atau mesin produksi, namun dalam artikel ini saya akan mencoba untuk memberikan beberapa tutorial kecil tentang bagaimana mengkompilasi kernel dari source berdasarkan pengalaman saya dengan beberapa bantuan dari beberapa teman tambang. Pada artikel ini, saya akan menggunakan Slackware sebagai distro utama.
Persiapan
Slackware 12.1 secara default kernel 2.6.24.5 datang dengan. Sekarang, tidak memiliki paket yang lebih baru untuk kernel, tetapi ketika Slackware Lancar pembangunan telah dimulai, akan ada paket kernel baru datang dan jika Anda perlu untuk lebih banyak fitur dari kernel, maka saatnya untuk meng-upgrade kernel anda. Harap dicatat bahwa jika sistem Anda berjalan OK, maka tidak perlu untuk upgrade. Nah, jika Anda memiliki rencana untuk memperbarui, pertama-tama Anda harus men-download paket kernel dari / a, / d, dan direktori / k.
Ada beberapa paket yang harus men-download, tapi di sini ada aturan dasar. Slackware termasuk dua jenis versi kernel, yang kernel dengan SMP (multi Prosesor symetric) dukungan dan yang lain adalah tanpa dukungan SMP. Anda akan melihat smp di paket kernel yang menyatakan bahwa ia mendukung SMP. Selain dukungan SMP, Slackware juga datang dengan kernel generik dan kernel besar. Kernel generik adalah kernel modular dimana semua modul yang dikemas terpisah di kernel-modul paket, sedangkan kernel yang besar merupakan kernel membengkak dengan semua modul membangun statis pada kernel itu sendiri.
Kernel besar adalah kernel default yang digunakan dalam proses instalasi, karena akan mendeteksi hardware yang paling selama setup instalasi.
Kebanyakan orang (termasuk saya) suka kernel generik, sebagai modul yang akan dimuat hanya bila diperlukan oleh sistem operasi. Jika Anda berencana untuk menggunakan kernel generik, Anda harus mendownload kernel-generik, kernel modul, dan kernel-header paket (kernel-source adalah opsional, meskipun Anda mungkin ingin men-download juga jika Anda berencana untuk mengkompilasi driver yang yang akan dibangun sebagai modul kernel, seperti NVidia atau driver ATI). Jika Anda berencana untuk menggunakan kernel besar, Anda hanya perlu mendownload kernel-besar dan kernel-header (sekali lagi, kernel-source adalah opsional, tapi direkomendasikan).
Selanjutnya, Anda harus membuat cadangan semua / etc / file untuk sesuatu yang buruk terjadi (dengan asumsi kasus terburuk). Salah satu file yang paling penting adalah / etc / lilo.conf. Ini berisi file-file Anda saat ini konfigurasi boot loader. Bila Anda telah membuat cadangan semua file penting Anda, pastikan Anda telah menginstal paket mkinitrd untuk membuat ramdisk awal untuk kernel 2.6 (ini diperlukan bila Anda memilih untuk menggunakan kernel generik). Bila Anda siap, mari kita mulai proses.
Instalasi
Harap dicatat bahwa lebih baik untuk melakukan proses instalasi daripada upgrade, karena upgrade akan menghapus kernel sebelumnya dan mengubahnya dengan kernel baru. Jika kernel bekerja sempurna, maka Anda aman, tetapi jika Anda melewatkan beberapa langkah wajib, maka Anda akan berakhir dengan pesan kernel panik jarang terjadi bila Anda mencoba untuk boot kernel baru anda. Bila Anda telah menginstal kernel baru dan memastikan semuanya bekerja dengan sempurna, Anda dapat menghapus kernel lama jika Anda ingin menyimpan beberapa ruang di harddisk anda. Slackware datang dengan paket pkgtool yang dapat digunakan untuk menginstal, menghapus, atau upgrade paket cerdas. Aku suka menggunakannya. Untuk menginstal paket baru (artikel ini mengasumsikan bahwa Anda menggunakan kernel generik), jenis ini pada konsole atau terminal sebagai root:
# installpkg kernel*Ini akan menginstal paket kernel semua (kernel-generik, kernel-modules, kernel-header, kernel-source). Setelah selesai, kita harus membuat initrd. Alasan untuk menggunakan initrd adalah karena Anda perlu memuat modul kernel sebelum mounting partisi root. Biasanya modul ini diperlukan untuk mendukung filesystem yang digunakan oleh partisi root (ext3, reiserfs, xfs), atau mungkin controller bahwa hard drive terpasang (SCSI, RAID, dll). Pada dasarnya, ada banyak pilihan yang berbeda begitu banyak tersedia di kernel Linux modern yang tidak praktis untuk mencoba untuk kapal kernel yang berbeda untuk mencoba untuk menutupi kebutuhan semua orang. Itu jauh lebih fleksibel untuk kapal sebuah kernel generik dan satu set modul kernel untuk itu. Kernel 2.6 generik pada Slackware hanya mendukung filesystem ext2 (yang digunakan oleh initrd), dan juga mendukung paling IDE controller. Jadi, jika Anda memiliki sistem berbasis IDE yang menggunakan filesystem ext2, maka Anda tidak akan perlu menggunakan sebuah initrd untuk boot. Saya menggunakan ext3 sebagai filesystem saya, jadi saya harus menggunakan initrd untuk boot ke root filesystem saya.
Kami akan mulai membuat initrd dengan menggunakan mkinitrd. Ganti ke direktori / boot. Seperti yang saya menggunakan ext3 filesystem, saya harus membangun sebuah imej initrd menggunakan Linux 2.6.26.2 modul kernel untuk sistem dengan partisi root ext3 di / dev/hdc9. Perhatikan bahwa Anda perlu kedua jbd dan ext3 modul untuk menggunakan ext3. Jenis:
# mkinitrd -c -k 2.6.26.2 -m ext3 -f ext3 -r /dev/hdc9Ini akan membuat file baru / boot / initrd.gz dan juga direktori yang disebut initrd-pohon. Sekarang bahwa Anda punya initrd (/ boot / initrd.gz), Anda akan ingin memuat bersama dengan kernel pada saat boot. Jika Anda menggunakan LILO untuk boot loader Anda akan perlu untuk mengedit / etc / lilo.conf dan tambahkan baris untuk memuat initrd. Jangan lupa untuk menjalankan / sbin / lilo-v setelah mengubah isi untuk membuat perubahan permanen. Berikut lilo.conf saya:
# Linux bootable partition config begins
image = /boot/vmlinuz
initrd = /boot/initrd.gz
root = /dev/hdc9
label = Linux-2.6.26.2
read-only
# Linux bootable partition config ends
README.initrd -> /usr/doc/mkinitrd-1.3.2/README.initrd
System.map -> System.map-generic-2.6.26.2
System.map-generic-2.6.26.2
boot.1600
boot_message.txt
config -> config-generic-2.6.26.2
config-generic-2.6.26.2
diag1.img
initrd-tree/
initrd.gz
map
vmlinuz -> vmlinuz-generic-2.6.26.2
vmlinuz-generic-2.6.26.2
Langkah terakhir adalah restart sistem anda dan menguji apakah bekerja