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 (versi terbaru dari Slackware sebagai i menulis artikel ini) secara default kernel 2.6.24.5 dilengkapi dengan. Kernel ini sangat tidak keluar-tanggal, sejak versi stabil terbaru masih 2.6.26.2 (versi ini akan digunakan dalam artikel ini). Jika Anda ingin melihat cara menginstal kernel yang dikirim dengan CD Slackware, silahkan lihat di artikel saya yang lain Menginstal Kernel pada Slackware. Artikel ini akan menjadi langkah berikutnya dari artikel itu, karena akan mencoba untuk membangun kernel dari source, bukan dari paket biner.
Pertama-tama, mendapatkan versi vanili dari kernel dari situs resmi untuk GNU / Linux Kernel. Pastikan anda mendownload kernel Kendali, karena ada beberapa versi dikirim dalam halaman. Berikutnya, Anda membutuhkan file konfigurasi distro Anda. Ini akan digunakan sebagai dasar untuk mengkonfigurasi kernel masa depan Anda. Anda dapat membangun secara manual, tapi menurut pendapat pribadi saya, yang terbaik untuk menggunakan file konfigurasi distro Anda dan memperbaruinya sesuai dengan kebutuhan Anda. Ini akan menjadi sedikit rasa sakit dan waktu, karena Anda yakin bahwa file konfigurasi bekerja dan mirip dengan konfigurasi distro Anda.
Dalam hal ini, saya akan menggunakan file konfigurasi Slackware yang dapat ditemukan di repositori Slackware bawah direktori kernels/huge26.s. Saya biasanya menggunakan versi slackware-current, sehingga pohon direktori akan slackware-current/kernels/huge26.s/config (akan berbeda untuk setiap cermin. Saya gunakan cermin OSUOSL misalnya). Saya selalu menaruh file konfigurasi saya pada account Box.net saya, sehingga merasa bebas untuk men-download jika Anda bertanya-tanya apa jenis konfigurasi i digunakan.
Biner hotplug tidak digunakan lagi dan semua konfigurasi dapat dilakukan dengan menggunakan udev.rules hanya terkandung dalam paket udev baru. Juga, cobalah untuk meng-upgrade GCC Anda (GNU C Compiler) dan paket GLIBC (dan beberapa perpustakaan lain untuk pengembangan umum) ke versi terbaru pada Slackware Lancar versi sebelum anda mengkompilasi kernel. Ini akan memastikan Anda bahwa kernel akan dikonfigurasi dengan GCC terbaru dan GLIBC. Saya menggunakan GCC 4.2.3 dan 2.7 GLIBC saat ini, yang digunakan pada Slackware-Current (per 16 Agustus 2008).
Instalasi
Setelah langkah-langkah persiapan telah selesai, kita dapat memulai instalasi kernel.
Pertama-tama, dengan meletakkan kernel ke / direktori usr / src dan ekstrak menggunakan
tar -xjvf linux-2.6.26.2.tar.bz2Ini akan mengekstrak kernel dan membuat direktori baru bernama linux-2.6.26.2. Proses ini akan memakan waktu, sebagai kernel itu sendiri cukup besar (sekitar 46 MB dengan kompresi bzip2). Jika itu selesai, itu ide yang baik untuk membuat symlink beberapa dari / usr / src / linux menunjuk ke direktori kernel baru anda. Anda dapat menghapus symlink sebelumnya jika ada satu dan mulai membuat yang baru dengan
rm /usr/src/linuxSelanjutnya, meletakkan file konfigurasi Slackware Anda ke direktori kernel anda dan nama itu. Konfigurasi. Setelah itu, masuk ke direktori. Jenis
ln -s /usr/src/linux-2.6.26.2 /usr/src/linux
cp /boot/config linux-2.6.26.2/.configKarena Anda sudah memiliki file konfigurasi, Anda tidak perlu mengkonfigurasi semua kernel membangun parameter sendiri.
cd linux-2.6.26.2
Biarkan saja kernel tahu bahwa Anda akan menggunakan file konfigurasi Anda sendiri daripada membangun dari awal dengan mengetik
make oldconfigKetika membangun kernel yang lebih baru (untuk 2.6.26.x contoh dan sistem Anda berjalan 2.6.25.x), fitur baru akan diminta dan Anda harus menjawab pertanyaan-pertanyaan. Selalu membaca bantuan yang disediakan dengan menekan '? ". Saya selalu berusaha untuk menghindari fitur eksperimental seperti itu masih terlalu buggy. Driver apapun direkomendasikan untuk membangun sebagai modul dan tidak kembung imej kernel itu sendiri.
Setelah selesai, Anda harus mengedit file konfigurasi lagi, karena Slackware konfigurasi secara default ditetapkan untuk menggunakan arsitektur i486 untuk jenis prosesor. Anda dapat menggunakan beberapa cara, tetapi jika Anda memiliki layar grafis, saya menyarankan Anda untuk menggunakan
make xconfigKemungkinan lain adalah
make xconfigDalam situasi saya, saya mengubah jenis prosesor i586 dan ke atas, mengaktifkan fitur HIGHMEM (4 GB), memungkinkan konfigurasi kernel preemptive (cocok untuk desktop), dan menambahkan modul APM untuk membuat CPU siaga bila tidak digunakan (baik untuk hemat baterai). Anda dapat menambahkan atau memodifikasi konfigurasi agar sesuai dengan kebutuhan Anda.
Ketika anda selesai mengkonfigurasi kernel, simpan dan keluar.
Berikutnya adalah proses kompilasi. Mulailah dengan membuat kernel sendiri dengan mengetikkan
make bzImageProses ini akan memakan waktu, sehingga mendapatkan diri Anda secangkir kopi dan beberapa makanan ringan sebelum Anda memeriksa ulang status Anda. Ketika itu dilakukan dan tanpa kesalahan, kernel ditempatkan dalam arch/x86/boot/bzImage. Salin file itu dan letakkan di / boot dan rename menjadi vmlinux-2.6.26.2 dengan mengetikkan
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.26.2Langkah berikutnya akan mengkompilasi modul Anda. Melakukannya dengan cara mengetikkan
make modulesDiikuti dengan
make modules_installKetika modul yang terinstal, langkah berikutnya Anda akan menyalin System.map dan config ke partisi / boot
cp System.map /boot/System.map-2.6.26.2Semua dilakukan dengan hal yang sulit. Sekarang edit / etc / lilo.conf untuk menambahkan opsi untuk boot kernel baru. Pastikan bahwa Anda meninggalkan pilihan yang tersedia untuk boot kernel yang lama. Kemudian, jalankan '/ sbin / lilo' dan pastikan tidak ada kesalahan ada di mana.
cp .config /boot/config-2.6.26.2
Reboot, pilih kernel baru, dan melihat apakah ia bekerja. Jika tidak, reboot dan pilih kernel yang Anda gunakan sebelumnya. Berikut lilo.conf saya:
#Linux bootable partition config beginsBerikut ini adalah / boot saya:
image = /boot/vmlinuz-2.6.26.2
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.initrdPERINGATAN: PASTIKAN ANDA TIDAK MEMBUAT DAN MENYINGKIRKAN KERNEL KERJA. (Diambil dari bimbingan Shilo s)
System.map -> System.map-2.6.26.2
System.map-2.6.26.2
boot.1600
boot_message.txt
config -> config-2.6.26.2
config-2.6.26.2
diag1.img
initrd-tree/
initrd.gz
map
slack.bmp
vmlinuz -> vmlinuz-2.6.26.2
vmlinuz-2.6.26.2
Ketika Anda reboot sistem anda, cobalah untuk login ke mode teks. Dengan cara ini, Anda dapat menginstal ulang beberapa modul pihak ketiga, seperti NVidia atau driver ATI atau tidak akan boot ke layar grafis (jika Anda mengatur run level Anda ke 4) ketika Anda telah login menggunakan account Anda.
Jika Anda menemukan kernel anda bekerja, Selamat. Tapi pekerjaan Anda belum selesai. Anda harus memastikan bahwa setiap program bekerja dengan baik dengan kernel baru. Anda harus menghabiskan beberapa jam (atau hari) untuk memastikan bahwa kernel anda bekerja dengan sempurna pada sistem Anda. Setelah itu, Anda dapat menghapus kernel lama untuk menghemat ruang tertentu, atau Anda dapat mulai tuning kernel lagi sehingga akan memenuhi kinerja ideal Anda.