GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengkompilasi Kernel Linux dari Sumber untuk Membangun Kernel Kustom

Kernel Linux adalah kekuatan hidup dari semua keluarga sistem operasi Linux termasuk Ubuntu, CentOS, dan Fedora.

Untuk sebagian besar, Anda tidak perlu mengkompilasi kernel, karena kernel diinstal secara default saat Anda menginstal OS. Juga, ketika ada pembaruan kritis yang dilakukan pada kernel, Anda dapat menggunakan yum, atau apt-get untuk memperbarui kernel pada sistem Linux Anda.

Namun Anda mungkin menghadapi situasi tertentu, di mana Anda mungkin memiliki untuk mengkompilasi kernel dari sumber. Berikut adalah beberapa situasi di mana Anda mungkin harus mengkompilasi Kernel di sistem Linux Anda.

  • Untuk mengaktifkan fitur eksperimental yang bukan merupakan bagian dari kernel default.
  • Untuk mengaktifkan dukungan untuk perangkat keras baru yang saat ini tidak didukung oleh kernel default.
  • Untuk men-debug kernel
  • Atau, hanya untuk mempelajari cara kerja kernel, Anda mungkin ingin menjelajahi kode sumber kernel, dan mengompilasinya sendiri.

Dalam tutorial ini, kami akan menjelaskan cara mengkompilasi kernel Linux dari sumber.

Juga, harap dicatat bahwa jika Anda hanya ingin mengkompilasi driver, Anda tidak perlu mengkompilasi kernel. Anda hanya membutuhkan paket linux-headers dari kernel.

1. Unduh Kernel Stabil Terbaru

Langkah pertama adalah mengunduh kernel stabil terbaru dari kernel.org.

# cd /usr/src/

# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.3.tar.xz

2. Hapus Sumber Kernel

Langkah kedua adalah membuka tar file sumber kernel untuk kompilasi.

# tar -xvJf linux-3.9.3.tar.xz

3. Konfigurasi Kernel

Kernel berisi hampir 3000 opsi konfigurasi. Untuk membuat kernel digunakan oleh kebanyakan orang di sebagian besar perangkat keras, distro Linux seperti Ubuntu, Fedora, Debian, RedHat, CentOS, dll, umumnya akan menyertakan dukungan untuk perangkat keras yang paling umum. Anda dapat mengambil salah satu konfigurasi dari distro, dan selain itu Anda dapat menambahkan konfigurasi Anda sendiri, atau Anda dapat mengkonfigurasi kernel dari awal, atau Anda dapat menggunakan konfigurasi default yang disediakan oleh kernel.

# cd linux-3.9.3

# make menuconfig

Make menuconfig, akan meluncurkan antarmuka pengguna berbasis teks dengan opsi konfigurasi default seperti yang ditunjukkan pada gambar. Anda seharusnya telah menginstal paket “libncurses dan libncurses-devel” agar perintah ini berfungsi.

Kami akan menggunakan konfigurasi default yang disediakan oleh kernel. Jadi pilih "Simpan" dan simpan konfigurasi dengan nama file ".config".

Berikut ini adalah contoh file “.config”:

CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y

4. Kompilasi Kernel Linux

Kompilasi kernel utama:

# make

Kompilasi modul kernel:

# make modules

Instal modul kernel:

# make modules_install

Pada titik ini, Anda akan melihat direktori bernama /lib/modules/3.9.3/ di sistem Anda.

5. Instal Kernel Baru

Instal kernel baru pada sistem:

# make install

Perintah make install akan membuat file berikut di direktori /boot.

  • vmlinuz-3.9.3 – Kernel yang sebenarnya
  • System.map-3.9.3 – Simbol yang diekspor oleh kernel
  • initrd.img-3.9.3 – initrd image adalah sistem file root sementara yang digunakan selama proses boot
  • config-3.9.3 – File konfigurasi kernel

Perintah "make install" juga akan memperbarui grub.cfg secara default. Jadi kita tidak perlu mengedit file grub.cfg secara manual.

6. Boot Linux ke Kernel baru

Untuk menggunakan kernel baru yang baru saja Anda kompilasi, reboot sistem.

# reboot

Karena, di grub.cfg, kernel baru ditambahkan sebagai boot default, sistem akan boot dari kernel baru. Untuk berjaga-jaga jika Anda memiliki masalah dengan kernel baru, Anda dapat memilih kernel lama dari menu grub saat boot dan Anda dapat menggunakan sistem Anda seperti biasa.

Setelah sistem aktif, gunakan perintah uname untuk memverifikasi bahwa versi baru kernel Linux telah diinstal.

$ uname -r
3.9.3

Linux
  1. Cara Mengkompilasi Brotli dari Sumber di Ubuntu 18.04 LTS

  2. Cara Mengkompilasi Brotli dari Sumber di CentOS 7

  3. Bagaimana cara memuat modul kernel Linux dari kode C?

  1. Cara Membangun Paket Dari Sumber Menggunakan CheckInstall

  2. Cara Menginstal dan Mengkonfigurasi Nginx dari Sumber di Linux

  3. Cara Mengkompilasi dan Menginstal Perangkat Lunak dari Kode Sumber di Linux

  1. Bagaimana cara mengkompilasi pustaka standar glibc C saya sendiri dari sumber dan menggunakannya?

  2. Apakah mungkin untuk mengkompilasi Distro Darwin dari sumber, seperti Anda dapat membuat Distro Linux?

  3. Bagaimana cara membuat linux bootable minimal (hanya dengan terminal) dari kode sumber kernel?