Gentoo Logo

Panduan Upgrade Kernel Gentoo Linux

Daftar Isi:

1.  Pendahuluan

Kernel adalah salah satu dari beberapa kelas paket di portage yang memerlukan campur tangan pengguna untuk menyelesaikan proses upgrade. Portage akan mendownload dan menginstal source kernel untuk anda, tetapi selanjutnya semua diserahkan kepada anda untuk mengkompilasi kernel sebelum perubahan dapat dirasakan.

Walaupun panduan ini diperuntukkan bagi para pengguna yang melakukan upgrade dari satu rilis ke rilis lainnya, pengguna yang ingin melakukan migrasi dari satu paket kernel ke paket lainnya juga dapat menggunakannya.

gentoo-sources digunakan sebagai contoh pada dokumen ini, tetapi semua instruksi yang ada di panduan ini juga dapat diterapkan di paket kernel lain yang disediakan oleh portage.

2.  Mengapa perlu meng-upgrade kernel?

Pada umumnya, upgrade kernel dari suatu rilis minor tidak akan memberikan banyak pengaruh. Namun ada beberapa alasan mengapa kita perlu meng-upgrade kernel. Salah satunya adalah untuk mendapatkan fitur baru dari sebuah driver; alasan lainnya adalah untuk mendapatkan keamanan yang lebih ketat, atau hanya untuk tetap menjaga sistem agar selalu up-to-date dan sehat.

Walaupun anda tidak ingin meng-upgrade kernel setiap kali ada rilis baru, anda tetap dianjurkan untuk meng-upgrade-nya sekali-sekali. Anda juga sangat dianjurkan untuk meng-upgrade kernel jika rilis baru berisi perbaikan untuk masalah keamanan.

3.  Mengambil source terbaru melalui Portage

Proses upgrade kernel dilakukan seperti upgrade paket lain - dengan utilitas emerge. Kernel mungkin akan di-upgrade ketika anda mengupgrade world. Misalnya:

Daftar Kode 3.1: Source kernel tampil pada daftar update

# emerge -Dup world
Calculating dependencies ...done!
[ebuild    NS ] sys-kernel/gentoo-sources-2.6.9-r2 [2.6.8-r5]

Catatan: Label "NS" pada output di atas berarti kernel baru akan diinstal pada slot baru. Maksudnya, kernel lama anda tetap akan dijaga sampai anda menghapusnya sendiri.

Sekarang anda dapat menginstal update:

Daftar Kode 3.2: Upgrade source kernel

# emerge -u gentoo-sources

Source kernel akan diinstal pada sebuah subdirektori dari /usr/src. Pada contoh di atas, source kernel baru akan terinstal di /usr/src/linux-2.6.9-gentoo-r2.

4.  Memperbarui symlink /usr/src/linux

Gentoo mengharuskan symlink /usr/src/linux menunjuk ke kernel yang sedang anda gunakan.

Portage dapat memperbarui symlink secara otomatis ketika anda menginstal kernel baru. Yang perlu anda lakukan hanyalah menambahkan flag symlink ke variabel USE di /etc/make.conf.

Daftar Kode 4.1: Contoh variabel USE di /etc/make.conf

(Tambahkan symlink)
USE="symlink x86 3dnow 3dnowex X aac aalib adns alsa apache2"

Atau, anda dapat menggunakan app-admin/eselect untuk memperbarui symlink.

Daftar Kode 4.2: Menggunakan eselect untuk memperbarui symlink

(Instal eselect jika anda belum memilikinya)
# emerge eselect
(Lihat daftar kernel yang tersedia)
# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.9-gentoo-r1
  [2]   linux-2.6.9-gentoo-r2
(Pilih kernel)
# eselect kernel set 1

Jika anda ingin melakukannya sendiri, berikut contoh dari cara memperbarui symlink agar menunjuk ke linux-2.6.9-gentoo-r2:

Daftar Kode 4.3: Memperbarui sendiri symlink /usr/src/linux

# cd /usr/src
# ln -sfn linux-2.6.9-gentoo-r2 linux

5.  Konfigurasi, kompilasi dan instalasi kernel baru

Untuk setiap pilihan yang ada, anda harus membaca petunjuknya di Buku Pegangan Gentoo yang terkait dengan Konfigurasi Kernel dan Konfigurasi Bootloader. Berikut ini adalah tindakan yang perlu anda lakukan:

Pilihan 1: Cara otomatis dengan Genkernel

Jika anda menggunakan genkernel, anda harus mengulangi langkah-langkah yang anda lakukan ketika pertama kali menginstal kernel.

Jalankan genkernel seperti biasa:

Daftar Kode 5.1: Menjalankan genkernel

# genkernel all

Anda juga dapat menggunakan parameter tambahan untuk fungsionalitas genkernel lainnya. Misalnya, jika anda ingin mengkonfigurasi opsi-opsi kernel dengan menuconfig dan ingin agar genkernel memperbarui konfigurasi grub, maka jalankan genkernel seperti berikut:

Daftar Kode 5.2: Menjalankan genkernel dengan argumen tambahan

# genkernel --menuconfig --bootloader=grub all

Untuk petunjuk lengkap, bacalah Panduan Genkernel Gentoo Linux, atau Buku Pegangan Gentoo. Opsi lain yang ingin anda gunakan untuk genkernel dapat anda tentukan di /etc/genkernel.conf.

Pilihan 2: Konfigurasi manual

Untuk memulai, jalankan utilitas menuconfig pada source kernel:

Daftar Kode 5.3: Menjalankan menuconfig

# cd /usr/src/linux
# make menuconfig

Pilih opsi-opsi yang diperlukan untuk hardware dan sistem anda. Untuk informasi tambahan tentang konfigurasi kernel, bacalah bab Konfigurasi Kernel dari Buku Pegangan Gentoo.

Selanjutnya, kompilasi kernel lalu salin ke partisi boot. Lagi-lagi, ikuti petunjuknya di Buku Pegangan Gentoo Pada bab Konfigurasi Bootloader. Jika /boot terletak pada partisi terpisah, jangan lupa mount partisi tersebut sebelum anda menyalin kernel ke direktori ini! Jika tidak, sistem anda tidak akan dapat menggunakan kernel baru.

Daftar Kode 5.4: Kompilasi dan instalasi kernel baru

# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.9-gentoo-r2

Terakhir, anda harus memperbarui konfigurasi bootloader anda dengan menambahkan entri baru untuk kernel yang baru saja anda kompilasi (jangan dulu hapus entri untuk kernel lama!) dan unmount partisi /boot. Jangan lupa baca petunjuknya di Buku Pegangan Gentoo.

6.  Instalasi ulang modul-modul eksternal

Jika anda menggunakan modul-modul lain yang tidak diikutsertakan pada source kernel tetapi disediakan oleh Portage (mis. driver ALSA dan NVIDIA atau ATI), maka anda harus menginstal ulang modul-modul ini setelah meng-upgrade kernel. Anda hanya perlu meng-emerge ulang paket-paketnya. Untuk informasi terinci, bacalah bab Konfigurasi Kernel pada Buku Pegangan Gentoo.

Kami menyediakan tool yang mudah digunakan (sys-kernel/module-rebuild) yang dapat membangun ulang semua modul kernel yang telah anda instal dengan ebuild terpisah di /usr/src/linux. Penggunaannya mudah sekali, jalankan saja module-rebuild populate untuk mengisi database dengan daftar paket yang perlu dibangun ulang setelah meng-upgrade kernel. Setelah anda selesai mengupgrade atau mengkompilasi ulang kernel, jalankan module-rebuild rebuild untuk membangun ulang semua driver untuk kernel baru anda.

Untuk mendapatkan bantuan, jalankan module-rebuild tanpa opsi apapun untuk melihat semua perintah yang dapat anda gunakan dengan utilitas ini.

7.  Reboot ke kernel baru

Selanjutnya, tutup semua aplikasi lalu reboot sistem anda. Jika anda telah mengikuti semua petunjuk di sini dengan seksama, menu bootloader akan menampilkan sebuah entri untuk kernel baru anda. Pilih kernel baru tersebut.

Mudah-mudahan, sistem anda dapat sukses boot dengan kernel baru dan anda dapat login kembali untuk meneruskan pekerjaan anda. Jika begini, berarti proses upgrade telah selesai.

Anda mungkin saja telah melakukan kesalahan dan sistem anda gagal boot dengan kernel baru, reboot sistem dan pilih entri dari bootloader yang menunjuk ke kernel anda yang bagus. Kemudian anda dapat mengulangi lagi dari tahap Konfigurasi, kompilasi dan instalasi kernel baru -- dengan melakukan perubahan yang diperlukan untuk memperbaiki kesalahan anda. Pada beberapa kasus, anda bahkan tidak perlu reboot ke kernel lama untuk melakukan perbaikan ini (mis. anda telah melewatkan driver untuk kartu suara, kartu jaringan, dll).

8.  Menggunakan banyak kernel

Anda mungkin telah memperhatikan bahwa ketika anda menginstal source kernel baru, source kernel lama anda tidak dihapus. Hal ini disengaja -- dengan begini anda dengan mudah dapat berganti menggunakan kernel lain.

Berganti ke kernel lain mudah sekali, hanya dengan membiarkan source kernel di /usr/src/ dan binari bzImage di partisi boot (yang ditunjukkan oleh entri pada konfigurasi bootloader). Setiap kali anda boot, anda akan ditanyakan tentang kernel mana yang ingin anda gunakan.

9.  Menghapus kernel lama

Melanjutkan seksi sebelumnya, anda mungkin sudah puas dengan hasil yang anda dapatkan dari kernel baru dan merasa tidak perlu lagi menyimpan kernel lama. Untuk menghapus semua source kernel lama kecuali kernel terbaru, anda dapat memanfaatkan opsi prune dari emerge.

Daftar Kode 9.1: Menghapus kernel lama

# emerge -P gentoo-sources

Pada beberapa kasus, file-file sementara yang digunakan selama kompilasi berlangsung tidak akan dihapus dari direktori source di dalam /usr/src. Anda boleh menghapusnya dengan rm.

Anda juga dapat dengan aman menghapus semua modul yang tadinya digunakan oleh kernel lama dengan menghapus direktorinya di dalam /lib/modules/ yang menunjuk ke kernel lama yang ingin anda hapus. Hati-hati, jangan sampai anda menghapus modul kernel yang sedang anda gunakan!

Terakhir, anda dapat me-mount partisi /boot dan menghapus file bzImage dari kernel lama yang ingin anda hapus. Anda juga perlu mengedit konfigurasi bootloader anda agar tidak lagi mencantumkan entri untuk kernel lama.

10.  Lanjutan: Menggunakan file .config kernel lama untuk mengkonfigurasi kernel baru

Terkadang kita dapat menghemat waktu dengan menggunakan kembali file konfigurasi dari kernel lama untuk mengkonfigurasi kernel baru. Perlu diketahui bahwa cara ini kurang aman -- terlalu banyak perubahan pada kernel baru sehingga cara ini tidak dapat dianggap sebagai cara upgrade yang bagus.

Satu-satunya situasi yang cocok untuk cara upgrade ini adalah ketika anda meng-upgrade kernel Gentoo dari suatu revisi ke revisi lain. Misalnya, perubahan yang ada di antara gentoo-sources-2.6.9-r1 dan gentoo-sources-2.6.9-r2 sangatlah sedikit, jadi anda boleh saja menggunakan cara ini. Namun, anda seharusnya tidak menggunakan cara ini untuk meng-upgrade kernel dari 2.6.8 ke 2.6.9. Terlalu banyak perubahan di antara rilis resmi dan cara ini tidak akan dapat memberikan anda informasi yang cukup tentang perubahan, sehingga sering timbul permasalahan.

Untuk menggunakan kembali file .configlama, salinlah file tersebut ke direktori kernel baru lalu jalankan make oldconfig. Pada contoh berikut, kami mengambil konfigurasi dari gentoo-sources-2.6.9-r1 dan menggunakannya untuk gentoo-sources-2.6.9-r2.

Daftar Kode 10.1: Menggunakan konfigurasi lama

# cd /usr/src/linux-2.6.9-gentoo-r2
# cp ../linux-2.6.9-gentoo-r1/.config .
# make oldconfig

Daftar Kode 10.2: Menggunakan konfigurasi lama dengan genkernel

# cd /etc/kernels
# cp kernel-config-x86-2.6.9-gentoo-r1 kernel-config-x86-2.6.9-gentoo-r2
# genkernel all

Di sini, anda mungkin akan dimintakan jawaban tentang opsi-opsi konfigurasi yang telah mengalami perubahan. Setelah menjawabnya, anda dapat mengkompilasi dan menginstal kernel baru anda seperti biasa, tanpa perlu melalui proses konfigurasi dengan menuconfig.

Suatu cara yang lebih mudah adalah dengan menyalin konfigurasi anda yang telah ditampilkan sebelumnya, kemudian menjalankan make menuconfig. Dengan ini anda dapat menghindari masalah yang mungkin dapat ditimbulkan oleh make oldconfig seperti yang telah dijelaskan sebelumnya, karena make menuconfig akan memuat semua konfigurasi lama yang memungkinkan ke menu. Sekarang anda hanya perlu melihat opsi-opsi baru, opsi-opsi yang telah dihilangkan, dan sebagainya. Dengan menggunakan make menuconfig, anda akan mendapatkan semua menu yang berisi opsi-opsi baru dan membacanya dengan mudah. Anda bahkan dapat menggunakan cara ini untuk melakukan upgrade besar seperti upgrade dari kernel 2.6.8 ke 2.6.9; anda hanya perlu memastikan untuk membaca semua opsi yang tersedia dengan seksama. Setelah selesai, kompilasi dan instal kernel anda seperti biasa.

11.  Mendapat masalah setelah upgrade kernel?

Dengan pesatnya pengembangan kernel Linux, terkadang perubahan pada kernel dapat mendatangkan masalah baru. Jika anda mendapatkan masalah dengan kernel baru yang didukung oleh Gentoo, maka tolong laporkan masalah tersebut kepada kami.



Print

Diperbarui 22 Juni 2007

Versi asli dari dokumen ini terakhir diupdate 4 September 2011

Rangkuman: Dokumen ini menjelaskan proses upgrade kernel dari satu rilis ke rilis lainnya.

Daniel Drake
Author

Daniel Drake
Author

Dzikri Aziz
Translatoor

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.