Tuesday, January 1, 2008

Remastering Linux Slackware

Distro Linux sangat banyak. salah satu jenisnya adalah Slackware. Slackware merupakan salah satu distro tua. Tapi walaupun sudah tua, tutorial tentang modifikasi atau membuat distro linux dengan distro dasar Slackware sangat sedikit. Oleh sebab itu, saya, walau sebagai pemula dalam linux, ingin membantu para Linuxer yang ingin membuat distro sendiri. Sangat direkomendasikan setidaknya telah memiliki pengalaman atau telah terbiasa dengan Linux Slackware. Namun jika anda belum memiliki pengalaman sama sekali dengan slackware, saya sarankan untuk membaca e-book Slackware Essentials yg dapat anda download di sini.


Apa saja yang diperlukan?

1. Anda akan bekerja dengan setup milik Slackware. Meng-edit file-file konfigurasi akan lebih mudah jika anda telah menjalankan Slackware. Dan direkomendasikan membuat partisi baru untuk Slackware yang telah anda modifikasi.

2. Jika anda belum meng-install Slackware, anda dapat menggunakan software lain seperti Alcohol yang ada pada Windows untuk membuat ISO distro anda.

3. Disarankan Versi Slackware terbaru jika ada. Saya telah mencoba memakai Slackware 12, tetapi entah mengapa tidak dapat melakukan mount initrd. Jadi saya menggunakan Slackware 11.


Apa saja yang dilakukan untuk Remastering?

1. Copy seluruh isi Installer Slackware
2. Mount dan Modifikasi inird.img
3. Modifikasi setpkg
4. Modifikasi message.txt
5. Modifikasi tagfile
6. Tambahkan software
7. Buat ISO


1. Copy Seluruh isi Installer Slackware

Saya meng-copy seluruh isi CD installer Slackware, kecuali initrd.img dalam direktori isolinux, dengan tujuan untuk mempermudah saja. Saya meletakkan isi installer Slackware di direktori: slackware 11/. Isi dari CD installer tersebut adalah beberapa file dan 3 buah direktori, yaitu isolinux, kernels, dan slackware. Namun jika anda mengerti file-file apa saja yang digunakan oleh Slackware, sangat disarankan untuk menghapusnya. Saya menghapus file-file dirasa tidak penting untuk distro saya, salah satunya slackbook.


2. Mount dan Modifikasi initrd.img

Initrd.img dapat ditemukan di CD Slackware pada folder isolinux atau /slackware/isolinux jika anda memilih untuk men-download dari. Saya menggunakan CD installer Slackware karena saya memilikinya. Agar dapat dimodifikasi, initrd yang berada di cd Slackware di-copy ke harddisk saya, tetapi tambahkan "gz". Saya telah mencoba mount initrd tanpa diberi ekstensi "gz", tetapi tidak bisa.

kode:
cp initrd.img /root/makeDistro/initrd.img.gz

direktori makeDistro adalah tempat di mana saya menaruh initrd.img.gz
Kemudian gunzip file tersebut.

kode:
gunzip initrd.img.gz

Initrd.img telah kembali seperti semula. Untuk mengeditnya, kita harus mount dengan cara:

kode:
mount -o loop initrd.img /mnt/memory

/mnt/memory adalah direktori mount point yang saya gunakan.

Kita kemudian pindah ke direktori mount point.

kode:
cd /mnt/memory

Script-script yang akan anda edit menggunakan teks editor dapat ditemukan direktori /mnt/memory/usr/lib/setup. Anda tidak perlu meng-edit seluruh file yang ada. Bahkan tanpa menyentuh satu file pun, anda dapat melakukan remastering. Sebagian besar file-file yang ada saya edit dan translasi ke Bahasa Indonesia. Salah satu yang saya ubah adalah script "setup". Script setup berisi fungsi-fungsi untuk melakukan installasi Slackware. Di Dalamnya anda akan menemukan sesuatu seperti di bawah ini.

kode:
dialog --title "Slackware Linux Setup (version 11.0)" \
--menu \
"Welcome to Slackware Linux Setup.\n\
Select an option below using the UP/DOWN keys and SPACE or ENTER.\n\
Alternate keys may also be used: '+', '-', and TAB." 18 72 9 \
"HELP" "Read the Slackware Setup HELP file" \
"KEYMAP" "Remap your keyboard if you're not using a US one" \
"ADDSWAP" "Set up your swap partition(s)" \
"TARGET" "Set up your target partitions" \
"SOURCE" "Select source media" \
"SELECT" "Select categories of software to install" \
"INSTALL" "Install selected software" \
"CONFIGURE" "Reconfigure your Linux system" \
"EXIT" "Exit Slackware Linux Setup" 2> $TMP/hdset

Saya mengubah di bawah ini

kode:
dialog --title "Slackware Linux Setup (version 11.0)" \

dan

kode:
"Welcome to Slackware Linux Setup.\n\

Menjadi

kode:
dialog --title "Setup Linux PegeLinux (version 1.0)" \

dan

kode:
"Selamat Datang di Setup Linux PegeLinux.\n\

Sederhana bukan? Namun perlu hati-hati pada saat melakukan pengeditan. Perlu diperhatikan bahwa teks-teks yang anda edit tidak mempengaruhi sistem. Dengan kata lain, lebih baik edit bagian-bagian teks yang berupa ketengan-keterangan atau komentar-komentar. Setelah selesai edit script-script yang diinginkan, lakukan umount.

kode:
umount -d /mnt/memory

kemudian copy atau pindahkan initrd yang telah di-edit ke direktori slackware 11/isolinux/.


3. Modifikasi setpkg

Masuk ke direktori Slackware 11/. Script setpkg terdapat pada direktori isolinux. Script setpkg berguna untuk menambah atau mengurangi seri paket pada Slackware. Seri paket yang ingin ditambahkan, dapat dilakukan dengan mengedit file ini sehingga menu untuk paket yang baru dapat ditampilkan. Sebagian Isi dari setpkg adalah sebagai berikut.

"A" "Base Linux system" on "The A (base) series contains the kernel and main system utilities." \
"AP" "Various Applications that do not need X" on "The AP series is a collection of useful applications." \
"D" "Program Development (C, C++, Lisp, Perl, etc.)" on "The D series contains compilers, debuggers, and other programming tools." \
"E" "GNU Emacs" on "The E series contains the GNU Emacs advanced real-time display editor." \

Seri A, berisi paket-paket Base Linux System, dan seterusnya. Struktur dari setpkg sangat mudah untuk dimengerti bukan? Anda juga dapat menambahkan seri-seri paket yang baru dengan menambahkannya sendiri pada direktori slackware. Direktori slackware dapat anda temukan pada isi CD installer Slackware yang telah di-copy ke harddisk, yaitu di dalam direktori slackware 11/. Misal, anda ingin menambahkan direktori "EXT" yang berisi paket-paket extra dalam direktori slackware. Yang harus anda lakukan adalah membuat direktori "EXT" di dalam direktori slackware dan meng-copy scipt install.end, install-packages, maketag, dan maketag.ez pada seri yang telah ada ke dalam direktori "EXT". Lalu edit script setpkg agar dapat terdeteksi. Dengan menambahkan baris di bawah ini, akan membuat pemakai dapat melakukan select/deselect.
"EXT" "Paket-paket extra" on "Seri EXT berisi paket-paket extra untuk distro saya. " \
Jika anda tidak membutuhkan suatu seri paket, cukup hapus baris pada setpkg kemudian hapus direktorinya di dalam direktori slackware/.


4. Modifikasi message.txt

File message.txt menampilkan pesan awal saat pertama kali akan install. Anda dapat menambahkan nama distro anda seperti "PegeLinux 1.0".Dengan kata lain sebagai ucapan selamat datang. Ada baiknya anda translasikan ke Bahasa Indonesia.


5. Modifikasi tagfile

Apa itu tagfile? tagfile merupakan file yang membuat anda dapat menambahkan software-software yang kita inginkan ke dalam distro. Coba anda masuk ke direktori seri paket "A" di dalam direktori Slackware. saya mohon, please, harap baca tagfile-nya dari awal. Dengan begitu, Anda dapat mempelajari bagaimana mengkontrol software yang akan kita install apakah optional atau required atau yang lainnya. Setelah anda membacanya, sebagian isi dari tagfile adalah seperti di bawah ini.

kode:
aaa_base: ADD
aaa_elflibs: ADD
acpid: REC
apmd: REC

Anda pasti sudah tahu bahwa dua baris di atas merupakan paket-paket yang akan di-install pada saat proses instalasi. Dua berikutnya merupakan rekomendasi. Misal, anda ingin menambahkan mozillla firefox setelah mendapat versi terbaru dari LinuxPackages.net. Setelah anda memindahkan firefox ke direktori yang anda inginkan, misal /n, edit tagfile yang ada dalam direktori /n. Gunakan teks editor seperti vim, KWrite atau yang lainnya.

kode:
vim tagfile

masukkan baris seperti di bawah

kode:
mozillafirefox: REC

atau

kode:
mozillafirefox: ADD

atau

kode:
mozillafirefox: OPT

Gunakan bagian awal dari nama software. Luangkan waktu sedikit untuk tagfile, agar distro yang anda buat hanya berisi paket-paket yang dibutuhkan.


6. Tambahkan software/paket

Setelah mengetahui cara menambahkan software, saya akan jelaskan bagaimana mendapatkan slackpack. Slackpack adalah paket berekstensi tgz yang telah dibangun, seperti paket-paket RPM atau DEB yang menghilangkan neraka dependensi. Gunakan program "checkinstall" untuk membuat slackpack. Cara termudah mendapatkan software untuk distro anda adalah melalui situs LinuxPackages.net yang berisi kumpulan slackpack yang di-submit oleh beberapa anggota dari komunitas Slackware. Anda dapat menambahkan kalimat seperti "Paket-paket ekstra diambil dari www.LinuxPackages.net" pada message.txt.

Anda mungkin merasa lebih baik meng-compile paket-paket anda sendiri. Hal itu sangat mengkonsumsi waktu dibanding menambahkan paket-paket pre-built. Dan tentunya, Ada akan membutuhkan program checkinstall untuk slackpack buatan anda setelah melakukan compile software. Program checkinstall dapat anda download pada www.LinuxPackages.net. Pada akhirnya, penghargaan kepada empunya Slackware, Patrik J. Volkerding, patut diberikan karena adanya slackpack.

Ugh...tampaknya saya telah sedikit nyasar. Kembali ke permasalahan. Saat anda memindahkan atau meng-copy software ke direktori dimana software berada, jangan lupa tambahkan sebuah deskripsi di dalam file berekstensi txt. File txt tersebut harus bernama sama dengan paket yang akan dideskripsikan. misalkan, jika terdapat paket apache-1.3.37-i486-2.tgz maka untuk deskripsinya, harus ada file berekstensi txt bernama apache-1.3.37-i486-2.txt. Contoh isi dari file txt untuk mendeskripsi mozilla firefox seperti di bawah ini.

kode:
mozilla: mozilla (web browser open-source)
mozilla:

mozilla: Web browser Mozilla. Mozilla adalah saudara dari Netscape

mozilla: Communicator yang dikembangkan oleh komunitas Free Software

mozilla: dengan kerjasama dan dukungan dari Netscape. Mozilla menggunakan

mozilla: browser engine generasi berikutnya yang bernama Gecko.

mozilla:

mozilla:

mozilla:

mozilla:

mozilla:


Anda harus menggunakan format diatas ketika akan menambahkan software. Jadi setelah meng-edit tagfile, yang dilakukan adalah:

1. Tambahkan software ke subdirektori dari direktori slackware, misal slackware 11/slackware/n/.
2. Tambahkan sebuah file txt sebagai deskripsi software anda di dalam direktori yang sama dengan software berada.

Sederhana bukan?


7. Buat ISO
Setelah modifikasi script dan menambahkan software, saatnya untuk membuat ISO. Masuk ke command line. Kemudian masuk ke direktori slackware 11/ yang merupakan direktori yang isi dari CD slackware dan script-script yang telah dimodifikasi. Berikut ini adalah perintah yang digunakan. PegeLinux adalah nama distro saya.

kode:
mkisofs -o /tmp/PegeLinux.iso -R -J -V "PegeLinux Install" -hide-rr-moved -v -d -N -no-emul-boot -boot-load-size 32 -boot-info-table -sort isolinux/iso.sort -b isolinux/isolinux.bin -c isolinux/isolinux.boot -A "PegeLinux CD" .

hasilnya terdapat pada direktori /tmp/. Setelah iso terbuat, burn ke CD melalui Windows atau melalui Linux.

Fiuhh...Selesai juga. Selamat mencoba! Good Luck! =)


sumber:
http://www.linuxquestions.org/linux/answers/Applications_GUI_Multimedia/Cooking_Up_Some_Slack_CUSS

update:
Untuk Slackware 12.0 keatas, penanganan initrd.img agak berbeda. Berikut ini adalah langkah2nya:
1. mkdir /mnt/cpio
2. cd /mnt/cpio
3. gzip -dc /direktori/initrd.img | cpio -i -d -H newc --no-absolute-filenames
4. silahkan list direktori /mnt/cpio dengan perintah ls

nb: filenya jangan lupa di-gunzip terlebih dahulu.

Makasih buat mas diantokam atas informasinya.

24 comments:

  1. Mas kalo waktu perintah mount -o loop initrd.img /mnt/your-mount-point kok error ya Mas
    ini error messagenya Mas:
    ioctl: LOOP_CLR_FD: Device or resource busy
    mount: you must specify the filesystem type

    Kenapa ya Mas?

    ReplyDelete
  2. mas fungsi dari file MANIFEST.BZ2 itu apa,? dan satulagi mas ada gak generator buat tagfile ( tagfile generator) biar kita gak susah2 ketik satu2?
    thans

    ReplyDelete
  3. MANIFEST.BZ2 itu dokumentasi permission-permission tiap paket. Dengan kata lain, tiap file dan direktori saat instalasi paket memiliki permission yang didokumentasikan di MANIFEST.BZ2. Untuk saat ini tagfile generator untuk slackware kayanya blum ada. Saya belum nemu.

    ReplyDelete
  4. Buat Raka, proses diatas yang melakukan proses mount untuk initrd.img digunakan untuk versi Slackware 12.0 kebawah, kalo udah pake Slackware12.0 keatas, bisa dilakukan dengan perintah :

    1. mkdir /mnt/cpio
    2. cd /mnt/cpio
    3. gzip -dc /direktori/initrd.img | cpio -i -d -H newc --no-absolute-filenames
    4. silahkan list direktori /mnt/cpio dengan perintah ls

    NB: initrd.img-nya gak perlu digunzip dulu.

    Semoga membantu + Salam Slacker

    http://coffeelinux.com

    ReplyDelete
  5. makasih buat mas diantokam atas infonya...

    ntar saya update lagi artikelnya...

    ReplyDelete
  6. leh gabung ga kk ;)) salam slaker deh buat cemuaaa

    ReplyDelete
  7. boleh ajah. kl mau sumbang artikel juga boleh. :)

    ReplyDelete
  8. weleh weleh kelen om....
    om saya cari buku membuat distro linux sendiri tapi susah,,,,

    ReplyDelete
  9. emang aga susah dicari sih. Mungkin karena tiap versi distro kadang beda cara, jd aga susah kl dibuat buku.

    ReplyDelete
  10. Para SUHU, sy mau remastering slackware 12.2 n udah edit /mnt/cpio/usr/lib/setup. cuman pusing kembaliin jd file initrd.img gimana?. help me krna ini jdi bahan Sripsi/TA. tahnks B 4

    ReplyDelete
  11. pakai perintah mkinird untuk membuat initrd.img-nya
    semoga membantu

    ReplyDelete
  12. Trima kasih Mas, atas Pencerahannya..... saya mau tes dulu.... Mas Klo Boleh kasi tutorial lengkapnya dunk.... n kira2 klo remastering slackware untuk perkantoran paketnya yang bagus untuk diikutkan apa yach...? Terima kasih sebelumnya...(lowpentium@yahoo.co.id)

    ReplyDelete
  13. slackware defaultnya sudah menyertakan paket-paket untuk perkantoran dalam KDE. Jadi menurut saya, install KDE beserta seluruh aplikasinya. CMIIW

    ReplyDelete
  14. mas mo nanya lagi nich....
    klo mau rubah theme defaultnya KDE gmana mas. supaya nanti klo penginstalan sukses tampilan hasil remsteringnya berubah. dan klo mau merubah dari KDE jadi GNOME gimana juga. Plizzzz ajarin dunk Mas

    ReplyDelete
  15. Mas Nanya lagi nich... gmana caranya mengubah theme defaultx slackware supaya tampilan hasil remastering meggunakan theme yang bebeda. gimana juga klo merubah dari KDE jadi GNOME. plizzz ajarin mas....

    ReplyDelete
  16. @anonim:
    waktu instalasi ada pemilihan window manager apakah ingin KDE, xfce atau yg lainnya. Tapi slackware versi sekarang memang tidak menyertakan Gnome. Salah satu alasannya karena update gnome tidak seperti update milik kde.
    kl mau slackware pake gnome, kunjungi aja droplinegnome.net

    ReplyDelete
  17. @anonim2:
    setau saya, slackware menyertakan beberapa window manager, jd secara default memang bkn KDE window managernya. Saat remastering, KDE juga bisa dihilangkan dan bs menggunakan yg lain. Tp kl menambahkan window manager seperti gnome, saya blom pernah coba.

    ReplyDelete
  18. wew..kelas berat nie artikelnya..tp coba belajar dan baca dlu agh..sapa tw bisa remastering kya kk..:D

    ReplyDelete
  19. makasih banget nih artikelnya... ini yg saya cari-cari selama ini... kebetulan sebelum ini hanya nyoba remaster Ubuntu doank... berhubung saya pengguna Slacware aktif (http://slackist.blogspot.com) jadi otomatis referensi tentang Slackware sangat-sangat saya cari...

    makasih sebelumnya... tak jadiin PDF ya artikelnya, moga diijinkan...

    Salam

    ReplyDelete
  20. @Budiarno: silakan...tp jgn lupa cantumin sumbernya ke blog ini y..

    ReplyDelete
  21. sip om.. ntar saya mo coba..
    makasih buat tutorialnya :D

    ReplyDelete
  22. 1. mkdir /mnt/cpio
    2. cd /mnt/cpio
    3. gzip -dc /direktori/initrd.img | cpio -i -d -H newc --no-absolute-filenames
    4. silahkan list direktori /mnt/cpio dengan perintah ls

    Kk maaf newbie nih...

    maksudnya apa yah
    gzip -dc /direktori/initrd.img | cpio -i -d -H newc --no-absolute-filenames

    kok ak coba gk bisa
    tolong bantuin d jabarin dong Kk...

    Thanks y sebelumnya.

    ReplyDelete
  23. perintah diatas kurang lebih adalah copy isi dari initrd.img yang telah diekstrak ke direktori bernama newc.

    untuk lebih jelasnya, bisa jalankan:
    1. man gzip
    2. cpio --help

    maaf y kalo ada salah.

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...