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.
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
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
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.
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.
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
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.
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