unOfficial KPLI Pasuruan

Klo ada yg Gratisan– Ngapain mesti bayarrr…

Cara menambahkan device loop di debian

Posted by admin on March 18, 2008

Loop merupakan device yang berguna sebagai virtual device untuk mounting device lain. Loop sangat berguna bila kita hendak menggunakan file-file yang terdapat dalam file image CD / DVD yang memiliki format umum iso9660. Pada kernel 2.6.18 instalasi default Debian Etch 4.0, device loop hanya dibatasi 8 saja. Artinya, kita hanya terbatas untuk mounting 8 image saja. Bagaimana bila kita mempunyai 21 CD ditambah 4 DVD untuk dimounting bersamaan demi kepentingan server lokal?

Nah, pertama-tama, kita harus mempunyai pengertian tentang kernel terlebih dahulu. Kernel merupakan inti sari dari sistem operasi. Kernel berfungsi untuk menyediakan module-module hardware guna mengenali hardware komputer yang kita pakai. Pada debian, dengan memakai synaptic silahkan menginstall paket dan bila bingung dapat menggunakan keyword pada opsi search :
1. linux-source-2.6.18, ( keyword : linux source )
2. libncurses5, libncurses5-dev, libncursesw5 ( keyword : lib ncurse )
3. libsvga1, libsvga1-dev, ( keyword : lib vga )
4. libconsole, libsdl-console ( keyword : lib console )
5. kernel-package, initrd-tools dan gcc ( keyword : kernel )

Bila semua sudah diinstall, file linux-source-2.6.18 di-ekstraksi dengan perintah tar -xvvf linux-source-2.6.18.tar.bz2 ). Tujuan kita adalah mengubah jumlah device loop yaitu melakukan perubahan pada file yang mengatur jumlah loop. File tersebut terdapat pada /usr/src/linux-source-2.6.18/drivers/block/loop.c .Nah, sekarang kita coba buka file tersebut. Dapat menggunakan editor pico, kate, kwrite, dst. Berikut menggunakan konsole:

Leonzack:/usr/src/linux-source-2.6.18/drivers/block# pico loop.c
/*
*  linux/drivers/block/loop.c
*
*  Written by Theodore Ts’o, 3/29/93
*
* Copyright 1993 by Theodore Ts’o.  Redistribution of this file is
* permitted under the GNU General Public License.
*
* DES encryption plus some minor changes by Werner Almesberger, 30-MAY-1993
* more DES encryption plus IDEA encryption by Nicholas J. Leon, June 20, 1996
*
* Modularized and updated for 1.1.16 kernel – Mitch Dsouza 28th May 1994
* Adapted for 1.3.59 kernel – Andries Brouwer, 1 Feb 1996
*
* Fixed do_loop_request() re-entrancy – Vincent.Renardias@waw.com Mar 20, 1997
*
* Added devfs support – Richard Gooch <rgooch@atnf.csiro.au> 16-Jan-1998
*
* Handle sparse backing files correctly – Kenn Humborg, Jun 28, 1998
*
* Loadable modules and other fixes by AK, 1998
*
* Make real block number available to downstream transfer functions, enables
* CBC (and relatives) mode encryption requiring unique IVs per data block.
* Reed H. Petty, rhp@draper.net
*
* Maximum number of loop devices now dynamic via max_loop module parameter.
* Russell Kroll <rkroll@exploits.org> 19990701
*
* Maximum number of loop devices when compiled-in now selectable by passing
* max_loop=<1-255> to the kernel on boot.
* Erik I. Bols�, <eriki@himolde.no>, Oct 31, 1999
*
* Completely rewrite request handling to be make_request_fn style and
* non blocking, pushing work to a helper thread. Lots of fixes from
* Al Viro too.
* Jens Axboe <axboe@suse.de>, Nov 2000
*
* Support up to 256 loop devices
* Heinz Mauelshagen <mge@sistina.com>, Feb 2002
*
* Support for falling back on the write file operation when the address space
* operations prepare_write and/or commit_write are not available on the
* backing filesystem.
* Anton Altaparmakov, 16 Feb 2005
*
* Still To Fix:
* – Advisory locking is ignored here.
* – Should use an own CAP_* category instead of CAP_SYS_ADMIN
*
*/

#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/sched.h>
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/stat.h>
#include <linux/errno.h>
#include <linux/major.h>
#include <linux/wait.h>
#include <linux/blkdev.h>
#include <linux/blkpg.h>
#include <linux/init.h>
#include <linux/smp_lock.h>
#include <linux/swap.h>
#include <linux/slab.h>
#include <linux/loop.h>
#include <linux/suspend.h>
#include <linux/writeback.h>
#include <linux/buffer_head.h>        /* for invalidate_bdev() */
#include <linux/completion.h>
#include <linux/highmem.h>
#include <linux/gfp.h>

#include <asm/uaccess.h>

static int max_loop = 40;
static struct loop_device *loop_dev;
static struct gendisk **disks;
dst…..

yang perlu dilihat adalah :

1. Komentar pada loop.c
 * Maximum number of loop devices now dynamic via max_loop module parameter.
* Russell Kroll <rkroll@exploits.org> 19990701
*
* Maximum number of loop devices when compiled-in now selectable by passing
* max_loop=<1-255> to the kernel on boot.
* Erik I. Bolsh, <eriki@himolde.no>, Oct 31, 1999

:: dimana dijelaskan loop dapat ditambahkan hingga 255

2. variabel loop
static int max_loop = 8;

terlihat bahwa maksimal loop yang disediakan hanya 8 saja. Maka yang perlu kita lakukan adalah mengubahnya sesuai dengan kebutuhan kita, misal:  static int max_loop = 8; diganti menjadi static int max_loop = 60; ( berarti kita menyediakan 60 buah devices loop ).

Setelah diubah jangan lupa untuk di-save. Setelah itu, tinggal kita meng-kompile kernel tersebut. Kompile kernel terdapat pada artikel ” Cara Compile / Kompile Kernel di Debian etch 4.0″. Bila anda terbiasanya menggunakan driver VGA tambahan, sebaiknya konfigurasi vga pada kernel jangan diganti untuk menginstall/menyediakan framebuffer VGA yang kita pakai ( penulis sudah berpengalaman gagal install driver VGA nVidia FX5200 memakai driver tambahan ). Cukup biarkan saja konfigurasi kernel default.Supaya mempercepat proses kernel compiling silahkan baca artikel ” Mempercepat Compile cara ekstrim “. Bila selesai, maka ada peringatan untuk melakukan edit pada /boot/grub/menu.lst supaya mengganti alamat load kernel yang lama menjadi kernel yang baru.

Apa sudah cukup? ternyata belum! kita harus membuat image initrd. Caranya masuk dengan menggunakan Konsole pada /boot, lalu masukkan perintah mkinitrd -o /boot/initrd.img-2.6.18 2.6.18
( perintah ini untuk membuat image initrd ). Setelah itu ganti initrd pada grub di menu.lst dengan mengganti initrd /boot/initrd.img-2.6.18-4-486 menjadi /boot/initrd.img-2.6.18. Sebagai contoh, berikut configurasi grub saya :
<——- cut ——–>
title        Debian kernel 2.6.18 ( compile sendiri lho! )
root        (hd0,12)
kernel        /boot/vmlinuz-2.6.18 root=/dev/hdc13 ro acpi=off noapic nolapic
initrd        /boot/initrd.img-2.6.18
savedefault
<——- cut ———>

Bila semua proses selesai, maka kita tinggal reboot saja dan menikmati kernel hasil compiling buatan tangan kita sendiri. Bila sebelumnya anda menggunakan driver tambahan ( ati & nvidia ) dengan menginstal paket driver tersendiri, maka nantinya Xserver anda akan crash! Jangan khawatir, yang anda butuhkan cuma install driver anda lagi! Silahkan mencoba….

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 )

Google+ photo

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

Connecting to %s

 
%d bloggers like this: