Linux Kernel dari Mula – Bagian 1

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.

    1. 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
    1. 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 versi stable.

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 di http://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.

  1. Konfigurasi
      1. 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

      1. 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
      1. 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 menuconfig

    $ make xconfig

    make xconfig

    $ make gconfig

    make gconfig
    gconfig dan xconfig adalah pilihan GUI untuk mengkonfigurasi kernel. gconfig ditulis dengan GTK+, sedangkan xconfig ditulis dengan QT Toolkit.

Pos ini dipublikasikan di Linux dan tag , , . Tandai permalink.

3 Balasan ke Linux Kernel dari Mula – Bagian 1

  1. Ping balik: Linux Kernel dari Mula – Bagian 2 | Embedid

  2. v13k berkata:

    bagus n informatif situsnya mas, barangkali bisa sharing dan membantu pembelajaran rekan-rekan yang lain di http://forum.ngooprek.com

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s