Next Previous Contents

8. Bagaimana kerneld tahu modules apa yang akan diload ?

Meskipun kerneld memiliki kepandaian dalam hal mengetahui tipe- tipe yang paling umum modules, ada situasi dimana kerneld tidak akan tahu bagaimana menangani permintaan dari kernel. Kasus ini seperti pada driver Network atau CD-ROM, dimana ada lebih dari satu module yang mungkin untuk di load /.

Permintaan yang diterima oleh kerneld daemon dari kernel adalah untuk satu dari hal-hal berikut

Kerneld menentukan module yang harus di load / dengan melakukan scan atas file konfigurasi /etc/conf.modules. Ada dua jenis entri dalam file ini: Paths (di mana module-files terletak), dan aliases (modules apa yang seharusnya di load /). Jika file ini belum ada, Anda bisa membuatnya dengan menjalankan

  /sbin/modprobe -c | grep -v '^path' >/etc/conf.modules

Jika ingin menambahkan "path" directive lainnya ke default paths, Anda juga harus mengikutsertakan seluruh "default" paths, karena path directive di /etc/conf.modules akan mengganti seluruh yang dikenal modprobe secara default!

Normalnya, Anda tidak ingin untuk menambahkan sendiri paths, karena setting built-in seharusnya melakukan semua setup "normal" (dan kemudian beberapa...), penulis janji!

Di sisi lain, jika hanya ingin untuk menambahkan alias atau sebuah option directive, entry baru di /etc/conf.modules akan ditambahkan ke yang telah dikenal oleh modprobe. Jika harus mendefenisikan ulang sebuah alias atau option, entri baru di /etc/conf.modules akan menggantikan yang built-in.

8.1 Block devices

Jika '/sbin/modprobe -c' dijalankan, maka akan diperoleh daftar modules yang dikenal oleh kerneld, dan untuk permintaan apa mereka dihubungkan. Sebagai contoh, permintaan yang berakhir dengan meload floppy driver adalah untuk block-device yang punya nomor mayor 2:

  osiris:~ $ /sbin/modprobe -c | grep floppy
  alias block-major-2 floppy

Mengapa block-major-2 ? Karena floppy devices /dev/fd* menggunakan major device 2 dan merupakan block devices:

  osiris:~ $ ls -l /dev/fd0 /dev/fd1
  brw-rw-rw-   1 root     root       2,   0 Mar  3  1995 /dev/fd0
  brw-r--r--   1 root     root       2,   1 Mar  3  1995 /dev/fd1

8.2 Character devices

Character devices dihubungkan dengan cara yang sama. Misal: driver ftape floppy tape yang berada di major-device 27:

  osiris:~ $ ls -lL /dev/ftape 
  crw-rw----   1 root     disk      27,   0 Jul 18  1994 /dev/ftape

walau bagaimanapun, kerneld tidak secara default mengenal driver ftape - ia tidak terdaftar di keluaran dari '/sbin/modprobe -c'.

Sehingga melakukan setup kerneld untuk me load / driver ftape, harus menambahkan satu baris ke fie konfigurasi kerneld /etc/conf.modules:

  alias char-major-27 ftape

8.3 Network devices

Anda juga dapat menggunakan nama device di samping 'char-major-xxx' atau 'block-major-yyy'. Ini khususnya akan bermanfaat pada driver-driver network. contohnya: driver untuk card ne2000 yang berfungsi sebagai eth0 akan di load / dengan :

  alias eth0 ne

Jika Anda perlu untuk melewatkan beberapa options ke driver - contohnya: untuk memberitahukan module IRQ yang digunakan oleh netcard, tambahkan baris 'options':

  options ne irq=5

Ini akan mengakibatkan kerneld meload driver NE2000 dengan perintah

  /sbin/modprobe ne irq=5

Tentu saja, options sesunggunya yang tersedia sesuai dengan module yang diload.

8.4 Format Biner

Format Biner ditangani dengan cara yang serupa. Ketika mencoba untuk menjalankan sebuah program yang kerneld tidak tahu cara meloadnya, kerneld menerima permintaan untuk "binfmt-xxx", dimana xxx adalah nomor yang ditentukan dari beberapa byte awal dari executable. Sehingga, konfigurasi kerneld untuk mendukung proses load module/ binfmt_aout untuk ZMAGIC (a.out) executable adalah

  alias binfmt-267 binfmt_aout

Karena magic number (lihat /etc/magic) untuk files ZMAGIC adalah 267. ( Jika Anda check /etc/magic, Anda akan melihat nomor 0413, tapi /etc/magic menggunakan nomor dalam oktal sedangkan kerneld menggunakan desimal, dan octal 413 = desimal 267). Sebenarnya ada tiga perbedaan kecil antara varian-varian dari a.out executables (NMAGIC, QMAGIC and ZMAGIC), sehingga untuk dukungan penuh atas module binfmt_aout diperlukan

  alias binfmt-264 binfmt_aout  # pure executable (NMAGIC)
  alias binfmt-267 binfmt_aout  # demand-paged executable (ZMAGIC)
  alias binfmt-204 binfmt_aout  # demand-paged executable (QMAGIC)

Format-format biner a.out, Java and iBCS diketahui secara otomatis oleh kerneld, tanpa konfigurasi apapun.

8.5 Line disciplines (slip, cslip dan ppp)

Line disciplines diminta dengan "tty-ldisc-x", dimana 'x' biasanya 1 (for SLIP) atau 3 (for PPP). Kedua hal ini dikenal oleh kerneld secara otomatis.

Bicara tentang ppp, Jika ingin kerneld untuk meload module kompresi data bsd_comp untuk ppp, maka harus ditambahkan dua baris berikut ke /etc/conf.modules:

  alias tty-ldisc-3 bsd_comp
  alias ppp0 bsd_comp

8.6 Keluarga Network protocol (IPX, AppleTalk, AX.25)

Beberapa network protokol dapat diload juga sebagai modules. Kernel menanyakan kerneld untuk keluarga protokol(contoh: IPX) dengan permintaan untuk "net-pf-X" dimana X adalah sebuah nomor yang menyatakan keluarga mana yang diinginkan. Misal net-pf-3 adalah AX.25, net-pf-4 adalah IPX dan net-pf-5 adalah AppleTalk. (Nomor-nomor ini ditentukan oleh AF_AX25, AF_IPX etc. Defenisi lihat di source file include/linux/socket.h linux). Sehingga untuk meload secara otomatis module IPX, akan membutuhkan entry seperti berikut di /etc/conf.modules:

  alias net-pf-4 ipx

Lihat juga bagian berikut di masalah-masalah umum untuk informasi tentang bagaimana menghindari pesan-pesan yang mengganggu waktu boot karena keluarga protokol yang tidak terdefinisikan.

8.7 File systems

Permintaan kerneld atas filesystems dilakukan dengan menggunakan nama dari tipe filesystem. Penggunaan umum dari hal ini adalah meload module isofs untuk filesystems CD-ROM, misal: tipe filesystem "iso9660":

  alias iso9660 isofs


Next Previous Contents