[Linux] Membuat dan Menerapkan Patch Kernel


Patch pada dasarnya merupakan sebuah file yang bertujuan untuk membandingkan dan mengubah dua benda yang berbeda agar menjadi serupa. Hal ini juga dilakukan pada kernel Linux. Ketika kernel terdapat (sedikit) perubahan, maka Anda cukup mengirimkan patch dari kernel yang ada, dengan demikian tidak perlu meng-upload keseluruhan kernel. File patch umumnya relatif kecil dibandingkan tarball keseluruhan kernel.

Membuat Patch Kernel

  1. Pastikan Anda memiliki source kernel yang masih belum dimodifikasi (vanilla kernel).
    Misalkan Anda mempunyai vanilla kernel pada direktori ~/kernel/linux-2.6.39.4-vanilla, lalu masuk ke direktori ~/kernel.

    $ cd ~/kernel
  2. Jika Anda belum melakukan modifikasi, lakukan penggandaan kernel vanilla tersebut, misalnya dengan nama linux-2.6.39.4-tubes.
    $ cp -rf linux-2.6.39.4-vanilla linux-2.6.39.4-tubes
  3. Pastikan source kernel yang dimodifikasi telah bersih dari file-file temporer yang tidak diperlukan dalam perbandingan dengan source kernel vanilla.
    Beberapa editor teks (termasuk gedit) menambahkan berkas back-up dengan nama file yang diakhiri dengan ~. Untuk menghapusnya,

    $ rm `find . –name *~`
  4. Lakukan perbandingan antara dua direktori sekaligus membuat patch file-nya.
    $ diff -ruN linux-2.6.39.4-vanilla linux-2.6.39.4-tubes > patch-linux-2.6.39.4-vanilla-to-tubes

    Perintah di atas akan membandingkan linux-2.6.39.4-vanilla dengan linux-2.6.39.4-tubes dengan linux-2.6.39.4-vanilla sebagai kode sumber yang asli.
    Bagian patch-linux-2.6.39.4-vanilla-to-tubes merupakan file output dari perbandingan yang sekaligus merupakan patch file.

Menerapkan Patch Kernel

  1. Misalkan Anda memodifikasi dari linux-2.6.39.4-vanilla menjadi linux-2.6.39.4-tubes. Anda dapat menduplikasi linux-2.6.39.4-vanilla terlebih dahulu, misalnya menjadi linux-2.6.39.4-patch-vanilla-to-tubes.
    $ cp -rf linux-2.6.39.4-vanilla linux-2.6.39.4-patch-vanilla-to-tubes
  2. Lakukan patching ke linux-2.6.39.4-patch-vanilla-to-tubes, misalkan patch file-nya adalah patch-linux-2.6.39.4-vanilla-to-tubes.
    $ patch -p1 -d linux-2.6.39.4-patch-vanilla-to-tubes < patch-linux-2.6.39.4-vanilla-to-tubes
  3. Direktori linux-2.6.39.4-patch-vanilla-to-tubes akan sama dengan linux-2.6.39.4-tubes. Anda tinggal melakukan kompilasi kernel terhadap patch tersebut.
Advertisements