Build Your Own ‘mini’ Distro Linux (part 1)

:)

kali ini aku pengen bahas ttg pembuatan distro-mini- linux :) . Ini sebenarnya rangkaian project OmahTI (omahti.web.id) untuk menciptakan sebuah distro baru (bukan remaster) yang rencananya akan dikasi nama OmahTux :) . Doa’in semoga proyeknya lancar dan kelar sesuai dg harapan :D .

okey., langsung aja ngomongin ‘How to Build Your Own Distro’. Kita bikin ini ‘under’ Linux, tepatnya Ubuntu 10.0 untuk men-konfigurasi grub, kernel dan bash ke dalam suatu media *disini make Flashdrive 2GB *minimal requirement 256MB. Selain menggunakan Flashdrive juga dapat menggunakan media lain, seperti MMC :) *. Kemudian paket-paket yang dibutuhkan selama konfigurasi ini antara lain :

grub 1.97 *wajib, sbg  master grub yang akan diextract

bison *beserta paket dependensinya

libncurses *beserta paket dependensinya

ruby *beserta paket dependensinya

last >> autoconf  *beserta paket dependensinya

*untuk lebih mudahnya bison, ruby, dan autoconf bisa diinstall melalui Synaptic Packages Manager :) . Sementara untuk grub 1.97 bisa didownload di sini

Ada 3 bahasan utama yang akan dijelaskan di part 1 ini, yaitu :

  1. Membuat grub pada flashdrive
  2. Kompilasi kernel dan loading kernel dari grub
  3. Kompilasi bash dan meng-inisiasi-nya setelah kernel selesai di-load

Setelah semua requirements terpenuhi, bisa langsung kita mulai prosesnya. Pertama-tama tentu saja masuk ke terminal :) dan aktifkan Super User Power-mu #sudo su :) . Kemudian siapkan pula file grub yang sudah didownload; misalnya file grub tersebut berada di direktori /home/private/program/grub.

1. Membuat grub pada flashdrive

Pertama-tama yang harus dilakikan adalah mem-format flashdrive tersebut. Perintah yang digunakan untuk mem-format flashdrive adalah mke2fs

#mke2fs /dev/sdb1

*/dev/sdb1 merupakan direktori dimana drive tersebut ter-mount.

Kemudian extract grub-1.97.tar.gz yang berada di direktori /home/private/program/grub 

#tar -xzf grub-1.97.tar.gz

Masih di direktori /home/private/program/grub, masuk ke direktory  grub-1.97, lalu jalankan autogen.sh

#cd grub-1.97

#sh autogen.sh

Buat direktori grub-1.97-build diluar direktori grub-1.97 (sejajar dengan direktori  grub-1.97)

#cd ..

#mkdir grub-1.97-build

Lakukan konfigurasi

#./configure –prefix=/home/private/program/grub/grub-1.97-build/ –exec-prefix=/home/private/program/grub/grub-1.97-build/

Lakukan make dan make install

#make 0=/home/private/program/grub/grub-1.97-build/

*tunggu sampai selesai

#make 0=/home/private/program/grub/grub-1.97-build/ install

Masuk ke direktori grub-1.97-build, lalu jalankan grub-install dengan opsi tertentu. *terlebih dulu, mounting flashdrive ke suatu direktori, misal /media/flash/.

#cd ../grub-1.97-build

grub-install –root-directory=/media/flash/ /dev/sdb

Kemudian jika berhasil akan muncul pernyataan sbb :

/usr/sbin/grub-setup:warn: Attemping to install GRUB to a partitionles disk. This is a BAD idea..

/usr/sbin/grub-setup:warn:Embedding is not possible, GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..

Installation finished. No error reported

Installasi, pemasangan grub di flashdrive telah selesai dilakukan. Coba restart PC dan setting boot dari flashdrive *goodluck :D

2. Kompilasi kernel dan loading kernel dari grub

Extract file tar linux

#tar -xzvf linux-2.6.37.1.tar.bz2

Masuk pada folder linux-2.6.37.1

#cd linux-2.6.37.1

Buat direktori omahtux-build diluar direktori linux-2.6.37.1 (sejajar dengan direktori linux-2.6.37.1)

#cd ..

#mkdir omahtux-build

Lakukan konfigurasi sebelum mengkompilasi kernel.

#cd linux-2.6.37.1

#make menuconfig

Kemudian lakukan 3  macam make berikut :

#make dep

#make clean

#make bzImage

*****kernel finished*****

3. Kompilasi bash dan meng-inisiasi-nya setelah kernel selesai di-load

Extract file tar bash

#tar -xzvf bash-4.2.tar.gz

Masuk ke direktori bash-4.2

#cd bash-4.2

Lakukan konfigurasi untuk PC Linux i386

#./configure -host=i.386-pc-linux-gnu

Kemudian akan terbentuk makefile, selanjutnya kita hanya perlu melakukan make

#make

Dari perintah make diatas akan tercipta suatu file bash, selanjutnya kita strip file tersebut

#strip bash

Kemudian buat direktori omahtux-build, sejajar direktori bash-4.2

#mkdir ../omahtux

Lalu kita buat suatu variable untuk memudahkan langkah selanjutnya (berisi alamat omahtux-build)

#cd ../omahtux.build

#tux=$(pwd)

Lalu buat direktori lib dan bin

#mkdir lib

#mkdir bin

Copy file bash yang telah kita buat tadi ke dalam direktori bin

#cd bin

#cp home/private/program/bash-4.2/bash

Kemudian kita caritahu dependensi dari bash tersebut menggunakan perintah ldd, dengan hasil sbb:

#linux-gate.so.1 => (0x0073b000)

#libncurses.so.5 => /lib/libncurses.so.5 (0x003b5000)

#libdl.so.2 => /lib/lib/so.2 (0x007a3000)

#libc.so.6 => /lib/libc.so.6 (0x00a890000)

#/libld-linux.so.2 (0x0068f000)

Maka harus kita melakukan strip-ing pada file-file tersebut :

#strip –strip-unneeded -o $tux/lib/libncurses.so.5 /lib/libncurses.so.5

#strip –strip-unneeded -o $tux/lib/lindl.so.2 /lib/libdl.so.2

#strip –strip-unneeded -o $tux/lib/libc.so.6 /lib/libc.so.6

#strip –strip-unneeded -o $tux/lib/ld-linux.so.2 /lib/ld-linux.so.2

*****all done*****

    • Fery
    • May 26th, 2011

    skrinsutnya mana boz..

    • 07des
    • May 30th, 2011

    menyusul maz.. :D
    setelah UAS..hehehehe

      • Fery
      • September 27th, 2011

      skrinsutnya mana boz? dah semester baru ni,
      hahahaha

    • 07des
    • September 29th, 2011

    mohon bantuannya :D

    • tiara
    • October 17th, 2011

    eh, uda diisi :D

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.