imgsrc: wikipedia |
Mengubah kernel adalah suatu kebutuhan yang wajib di dalam
pengembangan sebuah operating system. Beruntung kita sistem GNU/Linux hadir
dengan kernel dengan sumber terbuka, bukan hanya kernel saja, akan tetapi semua
aplikasi yang kita pakai adalah aplikasi sumber terbuka. Hal ini memungkinkan
kita untuk mengubah perilaku sistem sesuai dengan kehendak kita sendiri.
Keterbukaan ini juga mendorong pengembangan
perangkat lunak pendukung bagi perangkat keras baru, sehingga banyak sekali
kemudahan yang didapat oleh pengguna awam. Seperti yang telah disebut di atas,
Linux kernel (linux adalah sebutan untuk kernel, sedangkan untuk sistem utuh
disebut GNU/Linux) juga termasuk dalam perangkat lunak kode sumber
terbuka.
Kita bebas untuk mengubah, menambah, mengurangi isi dari
Linux sehingga kita dapat memperoleh kinerja sistem sesuai dengan keinginan
kita. Tulisan ini akan membahas langkah-langkah untuk membentuk (compile) sebuah Linux kernel. Langkah-langkah yang
tertulis di sini dapat diikuti dengan mudah.
Linux kernel disediakan secara bebas, setiap orang bisa
mengunduh dan bisa berkontribusi dalam pengembangannya. Untuk memperolehnya,
gunakan peramban favorit anda ke: Arsip Kernel maka anda akan menjumpai versi kernel
pilihan anda. Selanjutnya mari kita bahas langkah-langkah berikut satu per
satu.
Persiapan Lingkungan Kerja
Untuk membentuk sebuah kernel, kita membutuhkan perangkat
lunak (minimal) sebagai berikut:
1. Compiler
Linux kernel dibuat dengan bahasa C dan beberapa baris
assembly di beberapa bagian. Untuk membentuk sebuah kernel, kita harus
menggunakan gcc C compiler.
Biasanya, pada sebuah desktop yang baru terinstall, gcc
sudah tersedia.
$ gcc --version
2. Linker
Selain C compiler, gcc masih membutuhkan beberapa alat
tambahan yang dinamakan binutils untuk menjalankan proses `linking’ dan `assembling’.
binutils juga biasanya sudah tersedia di dalam sebuah distribusi Linux. Paket
yang tersedia
bernama binutils
$ ld -v
Anda bisa memperoleh binutils di: http://www.gnu.org/software/binutils
3. make
make adalah sebuah alat untuk
membuat. Sesuai dengan deskripsi harfiahnya, make adalah perintah untuk
membuat. Alat ini yang menentukan bagian mana dari
source code kernel yang akan
dibuat, memerintahkan compiler dan alat-alat pendukungnya untuk membuat sebuah
kernel.
$ make --version
Memperoleh Linux Kernel
Sebelum versi 2.6, kernel dibagi menjadi dua tree yaitu development dan stable. Development kernel ditandai dengan angka
ganjil, sedangkan stable kernel ditandai dengan angka genap pada versinya.
Misalkan, kernel versi 2.5.25 adalah versi development,
sedangkan 2.4.25 adalah versistable.
Di versi 2.6, semua versi kernel adalah stable. Untuk
membedakan mana versi yang stable dan mana yang masih dalam pengembangan,
kernel developer memberikan sufix -rc dalam
setiap releasenya. Misal 2.6.17 adalah versi stable, versi developmentnya
adalah 2.6.17-rc1 (sebelum release), atau 2.6.18-rc1 (sesudah release), pada
akhirnya 2.6.18 adalah versi stable.
Kita dapat memperoleh kode sumber kernel dari http://www.kernel.org lalu
pilih release paling akhir (atau pilihan anda sendiri). Kita dapat memilih
versi-versi kernel terdahulu dihttp://www.us.kernel.org/pub/linux/kernel/v2.6/
Berikut adalah contoh untuk mengunduh kode sumber kernel:
wget:
wget
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
--13:48:17--
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
=> `linux-2.6.34.tar.bz2'
Resolving www.kernel.org... 199.6.1.164, 204.152.191.37,
130.239.17.4, ...
Connecting to www.kernel.org|199.6.1.164|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 67,633,622 (64M) [application/x-bzip2]
100%[==================>] 67,633,622
89.71K/s ETA 00:00
14:00:13 (92.52 KB/s)
- `linux-2.6.34.tar.bz2' saved [67633622/67633622]
curl:
curl http://www.kernel.org/pub/linux/kernel/v2.6/
linux-2.6.34.tar.bz2 -o linux-2.6.34.tar.bz2
% Total % Received % Xferd Average
Speed Time Time
Time Current
Dload Upload Total
Spent Left Speed
1 64.5M 1 1188k
0 0 59026 0
0:19:05 0:00:20 0:18:45 52347
Setelah kode sumber berhasil kita unduh, sekarang saatnya
untuk membuka dan mengetahui isinya. Mari buat satu direktori baru tempat kita
akan mengoprek kernel.
$ cd ~
$ mkdir linux
$ cp /path/to/linux-2.6.34.tar.bz2 ~/linux
$ tar xjvf linux-2.6.34.tar.bz2
Sekarang kita telah memiliki kode sumber Linux kernel. Mari
kita lanjutkan ke langkah selanjutnya.
Konfigurasi
Pengaturan dari kosong
Ini adalah cara pengaturan bagian-bagian kernel secara manual. Setiap feature kernel
kita pilih satu per satu dengan menjawab setiap pertanyaan pada saat
konfigurasi. Untuk lebih sederhana, tinggal tekan “ENTER” untuk menjawab dengan
jawaban default.
$ make config
*
* Linux Kernel Configuration
*
*
* General setup
*
Prompt for development and/or incomplete code/drivers (EXPERIMENTAL)
[Y/n/?]
Local version - append to kernel release (LOCALVERSION) []
Automatically append version information to the version
string (LOCALVERSION_AUTO) [N/y/?]
:
:
y: untuk menjawab iya; fitur akan
dikompile secara built-in
n: untuk menolak; fitur tidak akan
dikompile
m: module, fitur akan dikompile
sebagai kernel module, nantinya akan dipasang ke kernel pada waktu runtime
?: untuk melihat keterangan pada
fitur
Pengaturan default
Pilihan ini berarti kernel akan dikonfigurasi dengan aturan
standar. Artinya, fitur-fitur yang akan di-compile adalah fitur yang dipilih
oleh maintainer. Biasanya ini adalah pilihan yang
paling sederhana pada sebuah kernel.
$ make defconfig
Pengubahan pengaturan
Seperti yang telah disebutkan di atas, ada kalanya sebuah
kernel butuh diubah dengan tujuan tertentu. Kadang kita temui kendala untuk
menggunakan LCD laptop dengan resolusi tinggi, dengan instalasi standard,
laptop hanya mampu menampilkan gambar dengan resolusi VGA saja. Setelah mencari
tahu, ternyata kita temui bahwa beberapa driver experimental harus dibangun dan
disatukan ke kernel yang sedang berjalan. Pada contoh kasus seperti inilah
modifikasi kernel dibutuhkan.
$ make menuconfig
$ make xconfig
$ make gconfig
gconfig dan xconfig adalah pilihan GUI untuk mengkonfigurasi
kernel. gconfig ditulis dengan GTK+, sedangkan xconfig ditulis dengan QT Toolkit.
./regards tretesg3t4r
wah keren min, maaksih banyak sudah share
ReplyDeletesolder uap