Diberdayakan oleh Blogger.

Sabtu, 01 Maret 2008

Patching Linux kernel

by Joielechong sipayung  |  in Slackware at  Sabtu, Maret 01, 2008

Patch Kernel !
(Diambil dari http://slackerbox.com/patch+pada+kernel mas Willy, maaf mas :> )

Perlu diketahui, Slackware punya kebijakan 'No Kernel Patch ' yang berarti Kernel yang digunakan default dari www.kernel.org

Hal ini merupakan keuntungan :) Siapa saja bisa memulai 'ngoprek' Kernel tanpa dihantui ketergantungan Patch dari vendor atau distro. Saya beri contoh sederhana, semisal distro 'ChickenHack' melakukan patch Bootsplash pada kernel, agar saat boot muncul grafik cantik mempesona.

Bersyukur kalau Anda tahu, bahwa patch kernel satu ini tergolong asesories. Tapi jika developer 'ChickenHack' melakukan patch gila2an pada kernel, Anda tidak akan tahu, apakah kernel original Anda akan benar2 jalan karena ANda mengabaikan satu atau dua patch vital dari developer 'ChickenHack'. Bingo ! Anda tergantung pada patch kernel distro !

Langsung saja :)

Ada beberapa istilah patch dalam prakteknya :

* Patch kernel biasa untuk upgrade ke versi kernel lebih tinggi
* Patch kernel untuk fungsi khusus, semisal keamanan dan asesories
* Patch kernel bebas

Patch kernel biasa dilakukan jika Anda ingin upgrade kernel ke versi kernel lebih tinggi tanpa harus mendownload 'semua' source code dari awal. Misal dari kernel 2.6.23 ke kernel 2.6.23.9. Jalan yang mudah dan boros adalah mendownload source code 2.6.23.9. Jika lewat pacth, maka hanya source patch saja yang diperlukan. Biasanya patch berukuran kecil.

Patch kernel untuk fungsi khusus semisal masalah keamanan buffer overflow, atau yang sederhana buat tambah option bootsplash pada kernel.

Patch bebas, berarti Anda membuat patch kernel sendiri untuk diri Anda dengan fungsi sesuai keinginan Anda. Hehehe

Patch yang dilakukan para distro biasanya masuk kategory kedua dan ketiga.
---------------------------------------
Upgrade & Downgrade kernel lewat patch

Browse http://kernel.org tepatnya http://www.kernel.org/pub/linux/kernel/v2.6/

Contoh -3: Upgrade dari 2.6.21.5 ke 2.6.21.7

* Download patch-2.6.21.5
* Download patch-2.6.21.7
* Unpack kedua patch tersebut dan letakkan dimana boleh dech ! :)
* Jadi root, Masuk kedirektory /usr/src/linux-2.6.21.5
* #patch -p1 -R < /path/to/patch-2.6.21.5
* #patch -p1 < /path/to/patch-2.6.21.7
* #mv linux-2.6.21.5 linux-2.6.21.7
* Edit symlink 'linux' agar mengarah ke direktory kernel baru
* Oke dech, dah jadi !
* Lihat di Dokumentasi kernel - Applying-patches.txt ;)

Contoh -2: Upgrade dari 2.6.21.5 ke 2.6.23.9

* Download patch-2.6.21.5
* Download patch-2.6.22
* Download patch-2.6.23
* Download patch-2.6.23.9
* Unpack semua patch diatas
* Masuk ke /usr/src/linux-2.6.21.5
* Sebagai root #patch -p1 -R < /path/to/patch-2.6.21.5
* #patch -p1 < /path/to/patch-2.6.22
* #patch -p1 < /path/to/patch-2.6.23
* #patch -p1 < /path/to/patch-2.6.23.9
* #mv linux-2.6.21.5 linux-2.6.23.9
* Benarkan symlink Linux agar mengarah ke linux-2.6.23.9
* Hehehe ini khan latihan yang bagus mengenai patch bukan !!!
* Sudah tahu, apa fungsi -R ???

Contoh -1: Upgrade dari 2.6.23.9 ke 2.6.24.rc4

* Download patch-2.6.23.9 + patch-2.6.24-rc4, kemudian unpack
* Jadi root #patch -p1 -R < /path/to/patch-2.6.23.9
* #patch -p1 < /path/to/patch-2.6.24-rc4
* #mv linux-2.6.23.9 linux-2.6.24-rc4
* Betulkan symlink agar mengarah ke linux-2.6.24-rc4

Contoh -0: Downgrade dari 2.6.24-rc4 ke 2.6.21.5

* Download patch-2.6.24-rc4
* Download patch-2.6.23
* Download patch-2.6.22
* Download patch-2.6.21.5
* Unpack semua patch tersebut
* Jangan lupa jadi root :)
* #patch -p1 -R < /path/to/patch-2.6.24-rc4
* Oke ! kernel Anda sudah jadi 2.6.23 :)
* #patch -p1 -R < /path/to/patch-2.6.23
* Lha ! kernel Anda sekarang 2.6.22
* #patch -p1 -R < /path/to/patch-2.6.22
* Oops ! kernel Anda sekarang sudah 2.6.21 !
* Siap buat tembakan terakhir ??
* #patch -p1 < /path/to/patch-2.6.21.5
* Jangan lupa merubah nama direktory kernel + edit symlink
* Selamat ! Kernel Anda sekarang sudah 2.6.21.5 !

Keterangan seorang slacker :) :

* Lihat lompatan 'kodok' yang dilakukan :)
* -------------------------------------
* Lompatan maju dari 2.6.21 ke 2.6.22 langsung saja ! (-p1)
* Lompatan maju dari 2.6.22 ke 2.6.23 juga langsung saja. (-p1)
* Kalau dari 2.6.21 ke 2.6.23 musti melompat dua kali :) Ke 2.6.22 dulu baru ke 2.6.23
* Lompatan mundur dari 2.6.22 ke 2.6.21 langsung saja (-p1 -R) Ada tanda -R
* Lompatan mundur dari 2.6.23 ke 2.6.21 musti dua kali. Mundur ke 2.6.22 baru ke 2.6.21
* -------Oke, sekarang yang ada 'branch' nya
* Lompatan maju dari 2.6.21.5 ke 2.6.21.7 Anda musti revert (-p1 -R) 2.6.21.5 ke 2.6.21 dulu. Baru bisa dipatch dengan 2.6.21.7.(-p1 )
* Lompatan maju dari 2.6.21.5 ke 2.6.22.14 berarti mulai dari 2.6.21 (melakukan -p1 -R pada 2.6.21.5 agar jadi 2.6.21), kemudian ke 2.6.22 (-p1), baru ke 2.6.22.14 (-p1)
* Lompatan maju dari 2.6.23.9 ke 2.6.24-rc4 berarti Anda revert (-p1 -R) 2.6.23.9 agar jadi 2.6.23, kemudian ke 2.6.24-rc4 (-p1). Agar tidak bingung, rc (release candidat)2.6.24-rc4 adalah calon 2.6.24
* Terakhir :) Dari 2.6.24-rc4 ke 2.6.24 . Revert dulu (-p1 -R) 2.6.24-rc4 agar jadi 2.6.23, (Hati2, 2.6.24-rc4 direvert jadi 2.6.23 lho ! ) kemudian melakukan lompatan 'kodok' ke 2.6.24 (-p1) :)
* Paling enak di coba langsung :) Sekali paham, ....betapa nikmat rasanya bermain2 kernel di Slackware :)
* Jika ingin menguji perpindahan source kernel, jalankan saja #make menuconfig Nanti akan muncul versi kernel Anda.

Jika Anda melakukan dengan benar, Anda sudah ganti 'pacar' bolak-balik !

Tentu setelah mantap dengan 'pacar baru' Anda, jangan lupa untuk melakukan konfigurasi kernel, plus kompilasi ! Bagian ini hanya membahas masalah patch kernel saja. Paling tidak Anda sudah punya modal untuk upgrade/downgrade source code kernel lewat cara patch.

Dokumentasi terbaik mengenai hal ini ada di direktory kernel (bagian dokumentasi) berjudul applying-patches.txt.

0 comments:

Silahkan tinggalkan komentar anda: