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
.
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 :
- Membuat grub pada flashdrive
- Kompilasi kernel dan loading kernel dari grub
- 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
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*****
skrinsutnya mana boz..
menyusul maz..
setelah UAS..hehehehe
skrinsutnya mana boz? dah semester baru ni,
hahahaha
mohon bantuannya
eh, uda diisi