Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > contrib > by-pkgid > 67a73f0d1c9314800a8e1ca883f39b8e > files > 28

howto-text-id-9.0-1mdk.noarch.rpm

  Kerneld mini-HOWTO
  Henrik Storner (storner@osiris.ping.dk)
  <mailto:storner@osiris.ping.dk> Diterjemahkan oleh: Jimmy
  Yusandra <mailto:jimmy@padang.wasantara.net.id>
  Version 1.7, last updated: July 19, 1997 (Terj. 16 Desember
  1998)
  ____________________________________________________________

  Table of Contents

























































  1. Abstrak

  2. Kredit

  3. AID CDATA Pendahuluan

  4. AID CDATA Mengapa

  5. AID CDATA Dimana

  6. AID CDATA Setup

  7. AID CDATA Testing

  8. AID CDATA Konfigurasi

     8.1 AID CDATA blockdev
     8.2 AID CDATA chardev
     8.3 AID CDATA eth0
     8.4 AID CDATA binfmt
     8.5 AID CDATA ldisc
     8.6 AID CDATA net-pf
     8.7 AID CDATA fs

  9. AID CDATA special-devs

     9.1 AID CDATA miscdevs
     9.2 AID CDATA scsidevs
     9.3 AID CDATA pre_post

  10. AID CDATA Spying

  11. AID CDATA Goodies

  12. AID CDATA CommonProblems

     12.1 Mengapa aku mendapatkan pesan "Cannot locate
     12.2 Setelah memulai kerneld, system saya menjadi makin lambat ketika mengaktifkan ppp-connection
     12.3 kerneld tidak me
     12.4 modprobe mengeluh 'gcc2_compiled' being undefined
     12.5 Driver sound terus melupakan setting untuk volume dll
     12.6 DOSEMU butuh beberapa
     12.7 Mengapa aku mendapat pesan "Ouch, kerneld timed out, message failed"?
     12.8 mount tidak menunggu kerneld untuk me
     12.9 kerneld gagal me-
     12.10 kerneld gagal me
     12.11 Saya telah membangun semuanya sebagai modules, dan sekarang system saya tidak dapat boot
     12.12 kerneld gagal me
     12.13 kerneld tidak akan
     12.14 Saya memperoleh pesan "Cannot
     12.15 Aku membangun ulang kernel dan modules, dan mendapat pesan tentang unresolved symbols ketika booting
     12.16 AID CDATA 2-1-problems
     12.17 Bagaimana dengan

  13. AID CDATA A9



  ______________________________________________________________________

  1.  Abstrak

  Dokumen ini menjelaskan bagaimana cara untuk menggunakan fungsi
  kerneld di kernel Linux. Ini menerangkan :


  o  Apa itu kerneld

  o  Mengapa penulis ingin menggunakannya

  o  Dimana mendapatkan bagian-bagian yang dibutuhkan

  o  Bagaimana men-setup-nya

  o  Bagaimana memberitahu kerneld tentang modules yang tidak dikenalnya

  o  Bagaimana mengintip kerneld ( bermanfaat dalam melakukan setup).

  o  Penggunaan khusus kerneld

  o  Masalah umum dan kejanggalan


  Rilis terbaru dari dokumen ini dapat diperoleh di kerneld-mini-
  HOWTO.html <http://eolicom.olicom.dk/~storner/kerneld-mini-
  HOWTO.html>.  Diantara rilis dari mini-HOWTO ini dapat diperoleh
  updates di daftar perubahan yang belum terstruktur di kern.html
  <http://eolicom.olicom.dk/~storner/kern.html>



  Versi yang telah ditranslate dari dokumen ini dapat diperoleh di ID-
  Kerneld-Mini-HOWTO <http://ldp.linux.or.id/HOWTO/mini/other-
  formats/html/ID-Kerneld-Mini-HOWTO.html>.


  2.  Kredit

  Jika Anda menemukan hal-hal yang salah didalam dokumen ini, silahkan
  kirimkan catatan tentang hal itu. Orang-orang berikut ini telah
  memberikan kontribusi atas mini-HOWTO ini dalam beberapa hal:


  o  Bjorn Ekwall <bj0rn@blox.se>

  o  Ben Galliart <bgallia@luc.edu>

  o  Cedric Tefft <cedric@earthling.net>

  o  Brian Miller <bmiller@netspace.net.au>

  o  James C. Tsiao <jtsiao@madoka.jpl.nasa.gov>


  Penghargaan yang sebesarnya atas perhatian dan anjuran yang telah
  dikirimkan oleh pembaca mini-HOWTO ini.


  3.  Apakah Kerneld itu?

  kerneld adalah kelebihan yang diperkenalkan selama pengembangan kernel
  1.3 oleh Bjorn Ekwall <mailto:bj0rn@blox.se>. Kerneld dimasukan ke
  dalam seluruh kernel 2.0 dan 2. Ini membuat "modules" - contohnya
  device drivers, network drivers, filesystems - untuk dapat di load /
  secara otomatis ketika dibutuhkan, daripada melakukannya secara manual
  dengan modprobe atau insmod.


  Untuk aspek yang lebih mengagumkan, meskipun (belum ?) terintegrasi
  dengan kernel standar:


  o  Dapat disetup untuk menjalankan program pemakai daripada screen
     blanker default, sehingga memudahkan Anda menggunakan program
     apapun sebagai screen-saver.

  o  Seperti juga dukungan screen-blanker, Anda juga dapat mengubah
     "beep" konsol standar dengan sesuatu yang benar-benar berbeda . .


  Kerneld terdiri dari dua bagian yang terpisah:

  o  dukungan dalam kernel linux untuk pengiriman permintaan kepada
     daemon yang dibutuhkan oleh module untuk tugas tertentu.

  o  User-level daemon yang dapat menentukan modules apa yang harus di
     load / untuk memenuhi permintaan dari kernel.


  kedua bagian harus jalan agar kerneld dapat berfungsi - tidak cukup
  hanya satu atau yang lainnya yang di setup.


  4.  Untuk apa menggunakan kerneld?

  Ada beberapa alasan yang bagus untuk menggunakan kerneld. Berikut ini
  yang akan penulis sebutkan adalah alasan penulis sendiri - yang  lain
  mungkin ingin menggunakan alasan lainnya.


  o  Jika Anda harus membuat kernel untuk berbagai sistem yang hanya
     sedikit berbeda - jenis network card yang berbeda, sebagai
     contohnya - kemudian Anda bisa membangun kernel tunggal dan
     beberapa modules, daripada harus membangun satu kernel untuk setiap
     sistem.

  o  modules lebih mudah untuk di test oleh developer - tidak perlu
     reboot sistem untuk  load / dan unload  driver. (Ini berlaku untuk
     seluruh modules, tidak hanya untuk yang di load / kerneld.

  o  Modules mengurangi penggunaan memori oleh kernel, artinya Anda
     punya lebih banyak memori yang tersedia untuk aplikasi. Penggunaan
     memori oleh kernel *TIDAK PERNAH* diswap, sehingga jika digunakan
     memori 100Kb dari driver-driver yang tidak digunakan yang dicompile
     kedalam kernel, ini merupakan pemborosan RAM.

  o  Beberapa peralatan yang penulis gunakan -- misalnya ftape floppy-
     tape driver, atau iBCS --  hanya tersedia sebagai modules, tapi
     penulis tidak ingin berurusan dengan proses  load / dan unload
     ketika tidak membutuhkannya.

  o  Orang-orang membuat distribusi linux tidak perlu membangun 284 boot
     image yang berbeda - setiap pemakai me load / driver yang ia
     butuhkan hanya untuk hardwarenya. Ini digunakan, contohnya oleh
     RedHat 4.0 didalam installasinya.


  Tentu saja, juga ada alasan mengapa tidak ingin untuk menggunakannya -
  Anda mungkin lebih suka untuk hanya memiliki satu file image kernel
  dengan seluruh driver di dalamnya. Dalam kasus ini, Anda membaca
  dokumen yang salah.



  5.  Bagaimana cara memperoleh kerneld  ?

  Dukungan dalam linux kernel telah diperkenalkan dengan linux 1.3.57.
  Jika Anda memiliki kernel yang lebih lama, silahkan untuk
  mengupgradenya jika ingin memperoleh dukungan atas kerneld. Seluruh
  ftp site linux utama memiliki kernel sources - penulis
  merekomendasikan agar mengupgrade ke rilis kernel yang stabil terbaru,
  2.0 , sekarang berada pada patch level 29:


  o  ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0
     <ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0>

  o  ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0
     <ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0>

  o  ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/v2.0
     <ftp://ftp.funet.fi/pub/OS/Linux/PEOPLE/Linus/v2.0>


  User-level daemon dimasukkan dalam paket modules-1.2.8 dan dengan
  paket modules-2.0 yang lebih baru. Ini normalnya tersedia dari tempat
  yang sama dengan kernel sources, tapi lokasi resminya:


  o  ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0/modules-2.0.0.tar.gz
     <ftp://sunsite.unc.edu/pub/Linux/kernel/modules-2.0.0.tar.gz>

  o  ftp://tsx-11.mit.edu/pub/linux/sources/sbin/modules-2.0.0.tar.gz
     <ftp://tsx-11.mit.edu/pub/linux/sources/sbin/>

  o  ftp://ftp.funet.fi/pub/Linux/tools/modules-2.0.0.tar.gz
     <ftp://ftp.funet.fi/pub/OS/Linux/tools/>


  CATATAN: Jika ingin untuk mencoba memuat module dengan kernel
  development 2.1 Anda seharusnya menggunakan paket modutils- (BUKAN
  modules-) terbaru. Tapi ``lihat berikut ini'' tentang masalah dengan
  modules dan kernel 2.1.


  6.  Bagaimana melakukan setup ?

  Pertama sekali ambil bagian yang dibutuhkan : Kernel yang cocok dan
  modules-utilities terbaru. Kemudian install modules-utilities. Cukup
  sederhana - unpack sources dan jalankan make install. Ini meng-compile
  dan menginstall program berikut di /sbin: genksysm, insmod, lsmod,
  modprobe, depmod, kerneld.  Penulis merekomendasikan untuk menambahkan
  beberapa baris ke start-up scripts untuk melakukan beberapa setup
  penting ketika memboot linux.  Tambahkan baris berikut ke file
  /etc/rc.d/rc.S (jika memakai slackware), atau ke /etc/rc.d/rc.sysinit
  ( Kalau menjalankan SysVinit, misal: Debian, RedHat, Caldera) :


















          # Start kerneld - Seharusnya ini terjadi di bagian paling awal

          # dari proses boot, tentu saja SEBELUM Anda menjalankan fsck di filesystems
          # yang mungkin perlu untuk me-<em/load/  disk drivers secara otomatis
          if [ -x /sbin/kerneld ]
          then
                  /sbin/kerneld
          fi

          # perintah fsck standar ada disini
          # Jalankan perintah mount untuk me-mount root fs read-write

          # Update kernel-module dependencies file
          # root-fs HARUS di mount read write mulai dari sekarang
          if [ -x /sbin/depmod ]
          then
                  /sbin/depmod -a
          fi




  bagian pertama menjalankan kerneld itu sendiri.


  Bagian kedua memanggil 'depmod -a' saat startup. Program depmod
  membuat daftar dari seluruh modules yang tersedia dan menganalisa
  inter-dependenciesnya, sehingga tahu jika suatu modules memerlukan
  module lain untuk di load / sebelum ia kemudian me load / dirinya
  sendiri.


  NOTE: Versi kerneld yang sekarang memiliki pilihan links dengan GNU
  dbm library, libgdbm. Jika Anda mengaktifkannya ketika membangun
  module-utilities, Kerneld tidak akan dimulai jika libgdbm tidak
  tersedia yang akan menjadi masalah jika Anda memiliki /usr di partisi
  yang terpisah dan memulai kerneld sebelum /usr dimount. Pemecahan yang
  dianjurkan adalah memindahkan libgdbm dari /usr/lib ke /lib, atau link
  kerneld secara static.


  Selanjutnya, unpack kernel source, konfigurasikan dan build kernel ke
  tempat yang diinginkan. Jika Anda tidak pernah melakukan hal ini
  sebelumnya, Anda seharusnya membaca README file di top level dari
  Linux sources. Ketika menjalankan make config untuk megkonfigurasi
  kernel, perhatikan beberapa pertanyaan yang muncul:


  Enable loadable module support (CONFIG_MODULES) [Y/n/?] Y




  Pilih  load able module support/, atau tak akan ada modules yang akan
  diload  oleh kerneld! Jawab saja Yes.


  Kernel daemon support (CONFIG_KERNELD) [Y/n/?] Y




  Yang ini, tentu saja, juga penting. Selanjutnya, banyak hal di kernel
  dan dapat dijadikan sebagai modules - Anda akan melihat pertanyaan
  seperti

  Normal floppy disk support (CONFIG_BLK_DEV_FD) [M/n/y/?]




  Anda bisa menjawab dengan 'M' untuk 'Module'. Umumnya, hanya driver
  driver yang penting untuk boot-up sistem - seperti : driver hardisk,
  driver untuk root filsystem - yang seharus di masukkan kedalam kernel;
  sisanya dapat dijadikan sebagai modules.


  Kemudian lakukan 'make config', jalankan 'make dep', 'make clean',


  Wuih..


  Perintah 'make zImage' meletakkan kernel image yang baru di file
  arch/i386/boot/zImage.  Anda perlu mengcopynya ke lokasi boot-image,
  atau install di LILO.


  Untuk informasi tentang mengkonfigurasi, membangun dan menginstall
  kernel, check Kernel-HOWTO <http://sunsite.unc.edu/LDP/HOWTO/Kernel-
  HOWTO.html> di kirim secara berkala ke comp.os.linux.answers, dan
  tersedia dari sunsite.unc.edu di direktori /pub/Linux/docs/HOWTO.


  7.  Test kerneld

  Sekarang reboot dengan kernel yang baru. Setelah sistem hidup,
  jalankan


      PID TTY STAT  TIME COMMAND
       59  ?  S     0:01 /sbin/kerneld




  Salah satu hal yang menyenangkan dengan kerneld adalah sekali Anda
  memiliki kernel dengan daemon terinstall, sedikit setup yang
  dibutuhkan.  sebagai awalnya, coba gunakan salah satu driver yang Anda
  bangun sebagai modul - sepertinya lebih dari sekedar tidak bahwa ia
  bekerja tanpa dikonfigurasi lebih lanjut. penulis membuat driver
  floppy disk sebagai module, sehingga dapat meletakkan floppy DOS di
  drive dan :


    osiris:~ $ mdir a:
     Volume in drive A has no label
     Volume Serial Number is 2E2B-1102
     Directory for A:/

    binuti~1 gz       1942 02-14-1996  11:35a binutils-2.6.0.6-2.6.0.7.diff.gz
    libc-5~1 gz      24747 02-14-1996  11:35a libc-5.3.4-5.3.5.diff.gz
            2 file(s)        26689 bytes




  driver floppy disk bekerja - ia di load  secara otomatis oleh kerneld
  ketika penulis mencoba menggunakannya.



  Untuk melihat apakah module floppy benar-benar di load , Anda jalankan
  /sbin/lsmod yang memperlihatkan seluruh modules yang baru saja di load
  :


    osiris:~ $ /sbin/lsmod
    Module:        #pages:  Used by:
    floppy            11    0 (autoclean)




  Tulisan "(autoclean)" maksudnya adalah module akan secara otomatis
  dihapus oleh kerneld ketika tidak lagi digunakan setelah lebih dari
  satu menit. Sehingga 11 halaman memori (= 44 Kb, satu halaman adalah 4
  Kb) hanya akan digunakan ketika ketika penulis mengakses floppy drive-
  jika penulis tidak menggunakannya setelah lebih dari satu menit, maka
  ia kan dihapus.  Cukup bagus, jika Anda punya sedikit memori untuk
  aplikasi!


  8.  Bagaimana kerneld tahu modules  apa yang akan di load  ?

  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


  o  driver block-device

  o  driver character-device

  o  format binary

  o  tty line discipline

  o  filesystem

  o  network device

  o  network service (contoh: rarp)

  o  network protocol (contoh: IPX)


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







  9.  Device yang membutuhkan konfigurasi khusus

  Beberapa devices perlu sedikit di konfigurasi diluar peng-aliasan
  normal device terhadap sebuah module.
  o  Character devices dengan major number 10: Devices lainnya

  o  SCSI devices

  o  Devices yang membutuhkan inisialisasi khusus



  9.1.  char-major-10 : Mouse, watchdogs dan randomness

  Hardware devices biasanya di identifikasi melalui nomor-nmomor mayor
  device, misal : ftape adalah char-major-27. Namun, Jika Anda melihat
  entry-entry di /dev untuk char major 10, Anda akan melihat bahwa ini
  adalah kumpulan dari devices yang sangat berbeda, termasuk


  o  Mouse untuk berbagai jenis (mouse bus, mouse PS/2)

  o  Watchdog devices

  o  kernel 'random' device

  o  antarmuka APM (Advanced Power Management)


  Jelaslah, devices tersebut di kontrol oleh beberapa modules yang
  berbeda, bukan yang tunggal. Sehingga, konfigurasi kerneld untuk
  misc.devices ini menggunakan major number dan  minor number:


          alias char-major-10-1 psaux     # For PS/2 mouse
          alias char-major-10-130 wdt     # For WDT watchdog




  Perlu kernel versi 1.3.82 atau lebih baru untuk menggunakannya; versi
  yang lebih lama tidak melewatkan nomor minor ke kerneld, menyebabkan
  mustahil bagi kerneld untuk mengetahui misc.devices mana yang akan di
  load .



  9.2.  Me load  driver SCSI : entry scsi_hostadapter

  Drivers untuk SCSI devices terdiri dari sebuah driver untuk SCSI host
  adapter (contohnya: Adaptec 1542), dan driver untuk tipe SCSI device
  yang digunakan,contohnya: hard disk, CD-ROM atau a tape-drive.
  seluruhnya dapat diload  sebagai modules. Namun, Ketika Anda ingin
  mengakses contohnya: CD-ROM drive yang terhubung ke card Adaptec,
  kernel dan kerneld hanya tahu bahwa perlu meload  module sr_mod untuk
  mendukung SCSI CD_ROM - tapi tidak tahu di SCSI controller mana CD-ROM
  terhubung, dan juga tidak tahu module yang diload  untuk SCSI
  controller.


  Untuk menanggulangi ini, bisa ditambahkan sebuah entry untuk module
  SCSI driver di /etc/conf.modules yang memberitahu kerneld module mana
  yang harus diload  dari sekian banyak modules SCSI controller:


          alias scd0 sr_mod               # sr_mod for SCSI CD-ROM's ...
          alias scsi_hostadapter aha1542  # ... need the Adaptec driver



  Hanya bekerja dengan kernel versi 1.3.82 atau lebih baru.


  Bekerja jika hanya ada satu SCSI controller. Jika Anda punya lebih
  dari satu, maka akan menjadi sedikit lebih sulit.


  Secara umum, Anda tidak dapat membuat kerneld untuk meload  driver
  untuk SCSI host adapter, jika driver untuk host adapter lainnya telah
  di install - Anda harus membuat kedua driver tersebut kedalam kernel
  (bukan sebagai modules ), atau load  modules secara manual.


  Ini adalah cara yang dapat digunakan untuk membuat kerneld bisa meload
  multiple SCSI drivers. James Tsiao datang dengan ide ini :


  Anda bisa dengan mudah membuat kerneld me load  driver SCSI kedua
  dengan melakukan setup sendiri pada dependency di dalam modules.dep.
  Hanya diperlukan entry sebagai berikut:

  /lib/modules/2.0.30/scsi/st.o: /lib/modules/2.0.30/scsi/aha1542.o

  untuk membuat kerneld meload  aha1542.o sebelum meload  st.o. Mesin
  penulis dirumah di setup hampir sama persis dengan yang diatas, dan
  bekerja dengan baik untuk semua devices scsi secondary, termasuk
  tape,cd-rom, dan generic scsi devices. Kerugiannya adalah 'depmod -a'
  tidak dapat memdeteksi secara otomatis dependencies ini, sehingga user
  perlu untuk menambahkannya sendiri, dan tidak menjalankan 'depmod -a'
  saat boot up.  Tapi sekali disetup, kerneld akan meload  secara
  otomatis aha1542.o.


  Perhatikan, bahwa teknik ini hanya bekerja jika Anda punya devices
  scsi yang berbeda di kedua kontroler - misal:  harddisks di satu
  kontroler, dan drive CD-ROM, tape atau devices generic scsi di yang
  lainnya.



  9.3.  Ketika Me load   modules  tidak mencukupi: entry post install

  Kadang-kadang, dengan hanya meload  module tidak cukup untuk membuat
  sesuatu bekerja. Sebagai contoh, jika Anda punya soundcard yang di-
  compile sebagai  module, maka sering lebih baik dengan mengaturnya di
  level volume tertentu. Hanya masalahnya adalah, setting hilang ketika
  modules diload  untuk selanjutnya. Ini adalah trik yang indah dari Ben
  Galliart (bgallia@luc.edu):



     Solusi terakhir membutuhkan paket setmix-0.1
     ( ftp://sunsite.unc.edu/pub/Linux/apps/sound/mixers/setmix-0.1.tar.gz )

     Dan kemudian tambahkan baris berikut kedalam /etc/conf.modules :
         post-install sound /usr/local/bin/setmix -f /etc/volume.conf




  Yang dilakukan oleh hal ini adalah setelah module sound di load ,
  kerneld menjalankan perintah yang diberitahukan oleh entry 'post-
  install sound'.  Sehingga module sound terkonfigurasi dengan perintah
  :


  Mungkin ini bermanfaat juga untuk modules lainnya, misal: module lp
  dapat di konfigurasi memakai program tunelp dengan menambahkan



          post-install lp tunelp <options>




  Agar kernel mengetahui pilihan-pilihan ini, dibutuhkan kerneld versi
  1.3.69f atau yang lebih baru.


  CATATAN: Versi awal dari mini howto ini mengingatkan option "pre-
  remove", mungkin ini bisa digunakan untuk menjalankan perintah sebelum
  kerneld menghapus module. Namun, hal ini tidak pernah bekerja dan
  penggunaannya kurang bermanfaat - sepertinya option ini akan
  menghilang  di rilis kerneld yang akan datang. Isu keseluruhan dari
  module "settings"  saat itu adalah sedang dalam perbaikan dan mungkin
  terlihat berbeda di dalam system Anda pada saat membaca ini.





  10.  Mengintip kerneld

  Jika Anda telah mencoba segalanya, dan masih belum bisa memahami apa
  yang diperintahkan oleh kernel untuk dikerjakan oleh kerneld, ada cara
  untuk melihat permintaan yang diterima oleh kerneld, dan untuk
  mengetahui apa yang seharusnya pergi ke /etc/conf.modules : kdstat
  utility.


  Program kecil ini ada didalam modules-package, tapi tidak di-compile
  secara default. Untuk membuatnya:


    cd /usr/src/modules-2.0.0/kerneld
    make kdstat




  Kemudian, untuk membuat kerneld memperlihatkan informasi tentang apa
  yang sedang terjadi, jalankan



    kdstat debug




  dan kerneld akan memulai menampilkan pesan-pesan di console tentang
  apa yang sedang dilakukan. Jika Anda kemudian mencoba dan menjalankan
  perintah yang Anda ingin gunakan, maka akan terlihat permintaan-
  permintaan keneld; ini bisa di letakkan kedalam /etc/conf.modules dan
  dialiaskan ke module yang dibutuhkan untuk membuatnya bekerja.


  Untuk mematikan debugging, jalankan '/sbin/kdstat nodebug' .



  11.  Penggunaan khusus kerneld

  penulis telah tahu bahwa Anda akan menanyakan tentang bagaimana
  mensetup module screensaver ...


  Direktori 'kerneld/GOODIES' di modules-package memiliki beberapa
  kernel patches untuk screensaver - dan consolebeep-support di kerneld;
  ini belum menjadi bagian resmi dari kernel. Sehingga perlu untuk
  menginstall kernel-patches dan membangun kernel.


  Untuk memasang patch, gunakan perintah "patch" :


    cd /usr/src/linux
    patch -s -p1 </usr/src/modules-2.0.0/kerneld/GOODIES/blanker_patch




  Kemudian  rebuild dan install kernel baru

  Ketika screensaver terpicu, kerneld akan menjalankan perintah "
  /sbin/screenblanker" - mungkin ini sebuah shellscript yang menjalankan
  screensaver favoritmu.


  Ketika kernel ingin untuk melakukan unblank layar, ia mengirim sinyal
  SIGQUIT untuk memproses /sbin/screenblanker yag sedang jalan. Shell
  script atau scrensaver harus bisa menjebak hal ini, dan berhenti.
  Jangan lupa untuk mengembalikan layar ke modus text sebelumnya!





  12.  ingin tahu Masalah umum dan hal-hal yang membuat Anda

  12.1.  Mengapa aku mendapatkan pesan "Cannot locate module  for net-
  pf-X" ketika menjalankan ifconfig

  Kira-kira pada versi kenel 1.3.80, kode networking telah diubah untuk
  untuk mengizinkan load  keluarga protokol ) misal : IPX, AX.25 and
  AppleTalk) sebagai modules. Ini menyebabkan penambahan permintaan
  kerneld yang baru: net-pf-X, dimana X adalah sebuah angka yang
  mengidentifikasikan protokol (lihat
  /usr/src/linux/include/linux/socket.h untuk maksud dari angka
  tersebut.  Malangnya, ifconfig secara tidak sengaja memicu pesan ini,
  sehingga banyak orang memperoleh pesan di log saat boot dan
  menjalankan ifconfig untuk melakukan setup loopback. Pesan ini tidak
  berbahaya, dan dapat dihilangkan dengan menambahkan baris


          alias net-pf-3 off      # Forget AX.25
          alias net-pf-4 off      # Forget IPX
          alias net-pf-5 off      # Forget AppleTalk




  ke /etc/conf.modules. Tentu saja, Jika Anda menggunakan IPX sebagai
  module, Anda tidak perlu melumpuhkan IPX.



  12.2.  Setelah memulai kerneld, system saya menjadi makin lambat
  ketika mengaktifkan ppp-connection

  Ada beberapa laporan tentang ini. Ini sepertinya interaksi yang kurang
  menguntungkan antara kerneld dan tkPPP script yang digunakan dalam
  beberapa system untuk men-setup dan memonitor hubungan ppp - script
  melakukan loop ketika menjalankan ifconfig. Ini memicu kerneld, untuk
  mencari module net-pf-X  (lihat diatas) , menyebabkan system load
  tinggi dan mungkin memunculkan banyak pesan "Cannot locate module for
  net-pf-X" ke dalam log system. Tidak ada pemecahan yang diketahui,
  selain dengan tidak menggunakan tkPPP, atau mengubahnya untuk
  melakukan cara lain dalam memonitor hubungan.


  12.3.  kerneld tidak me load   driver SCSI-ku!

  Tambahkan entry untuk SCSI hostadapter ke /etc/conf.modules.  Lihat
  keterangan di entry ``scsi_hostadapter'' diatas.



  12.4.  modprobe mengeluh 'gcc2_compiled' being undefined

  Ini adalah bug di module-utilities, yang terlihat hanya dengan 2.6.0.9
  dan terbaru, ini juga telah di dokumentasikan di releasenote untuk
  binutils.  Bacalah. atau upgrade ke module-utilities yang mengatasi
  ini, contohnya: modules-2.0.0.


  12.5.  Driver sound terus melupakan setting untuk volume dll

  Setting untuk module di simpan didalam module itu sendiri ketika
  diload . Sehingga ketika kerneld melakukan auto-unload  sebuah module,
  semua setting yang ada dihapus, dan selanjutnya module meload  kembali
  dengan setting default.


  Anda bisa memberitahukan kerneld untuk mengkonfigurasikan module
  dengan menjalankann program stelah module di autoload . Lihat ``bagian
  di atas'' dalam entry 'post-install'.


  12.6.  DOSEMU butuh beberapa modules  - bagaimana aku bisa membuat
  kerneld me load  nya?

  Tidak bisa. Tidak satupun versi DOSEMU -official atau development -
  mendukung proses load  modules DOSEMU lewat kerneld. Namun, jika Anda
  menjalankan kernel 2.0.26 atau terbaru, Anda tidak butuh modules
  DOSEMU khusus lagi -  upgrade saja DOSEMU ke 0.66.1.


  12.7.  Mengapa aku mendapat pesan "Ouch, kerneld timed out, message
  failed"?

  Ketika kernel mengirim permintaan ke kerneld, ia berharap untuk
  menerima pemberitahuan kembali dalam waktu satu detik. Jika kerneld
  tidak mengirim pemberitahuan ini pesan tidak di log.  Permintaan di
  transmisikan kembali, dan harus dilakukan berulang kali.


  Ini biasanya terjadi pada system dengan load  sangat tinggi - karena
  kerneld adalah proses yang berada di user-mode, ia dijadwal seperti
  juga proses lainnya didalam system. Pada saat load  tinggi, ia mungkin
  tidak dapat bekerja pada saat itu untuk mengirim pemberitahuan sebelum
  kernel time out.

  Jika ini masih terjadi meskipun ketika load  rendah, coba restart
  kerneld.  ( Kill kerneld proses dan restart dengan perintah
  /usr/sbin/kerneld.  Jika masalahnya sama, kirim mail bug report ke
  linux-kernel@vger.rutgers.edu <mailto:linux-kernel@vger.rutgers.edu>,
  tapi tolong yakinkan versi kernel dan kerneld up-to-date sebelum
  mengirimkannya.


  12.8.  mount tidak menunggu kerneld untuk me load   module  filesystem

  Ada beberapa laporan bahwa perintah mount(8) tidak menunggu kerneld
  untuk meload  module filesystem. lsmod tidak memperlihatkan bahwa
  kerneld meload module tersebut. Ini adalah sebuah bug di module-
  utilities versi 1.3.69f yang mempengaruhi beberapa pemakai Debian  -
  bisa di perbaiki dengan memperoleh versi terbaru dari  module-
  utilities.


  12.9.  kerneld gagal me- load   module  ncpfs

  Anda perlu untuk meng-compile ncpfs utilities -DHAVE_KERNELD. Lihat
  ncpfs Makefile.


  12.10.  kerneld gagal me load   module  smbfs

  Anda menggunakan versi lama dari smbmount utilities. Dapatkan yang
  terbaru (0.10 atau terbaru) dari
  ftp://tsx-11.mit.edu/pub/linux/filesystems/smbfs/
  <ftp://tsx-11.mit.edu/pub/linux/filesystems/smbfs/>


  12.11.  Saya telah membangun semuanya sebagai modules, dan sekarang
  system saya tidak dapat boot

  12.12.  kerneld gagal me load   module  root filesystem

  Anda tidak dapat menjadikan semuanya modules: Kernel harus punya cukup
  driver didalamnya untuk bisa me mount root filesystem, dan menjalankan
  program penting untuk memulai kerneld. sehingga Anda tidak dapat
  menjadikannya modules


  o  driver untuk hard disk dimana root filesystem berada

  o  driver root filesystem itu sendiri

  o  binary format loader untuk init, kerneld dan program lainnya


  [Sesungguhnya, ini tidak benar. kernel 1.3.x dan semua 2.0.x mendukung
  penggunaan ramdisk yang di load  oleh LILO ata LOADLIN, dan
  memungkinkan untuk meload  modules dari "disk" ini di bagian paling
  awal dari proses boot. Cara melakukannya di jelaskan di file
  Documentation/initrd.txt yang ada di kernel source-files.]


  12.13.  kerneld tidak akan load   saat boot time - mengeluhkan libgdbm

  Versi yang lebih baru dari kerneld butuh GNU dbm library, libgdbm.so,
  untuk bekerja. sebagian besar instalasi memiliki file ini di /usr/lib,
  tapi Anda mungkin memulai kerneld sebelum /usr filsystem di mount.
  Salah satu gejala dari ini adalah kerneld tidak akan dimulai selama
  boot-up ( dari rc-scripts), tapi jalan dengan baik jika menjalankan
  dengan mengetikkannya setelah system boot-up. Pemecahannya adalah
  pindahkan startup kerneld sesudah /usr di mount, atau pindahkan gdbm
  library ke root filesystem, misal ke /lib.


  12.14.  Saya memperoleh pesan "Cannot load   module  xxx" tapi baru
  saja mengkonfigurasi ulang kernel tanpa xxx support!

  Instalasi Slackware (mungkin juga lainnya) membuat default
  /etc/rc.d/rc.modules yang melakukan modprobe khusus atas beberapa
  modules. Tepatnya module mana yang di modprob tergantung pada
  konfigurasi asli kernel. Anda mungkin mengkonfigurasi ulang kernel
  dengan tidak memasukan satu atau lebih madules yang di modprobe di
  rc.modules, sehingga, muncul pesan kesalahan. Update rc.modules dengan
  meng-comment semua modules yang tidak lagi digunakan, atau hapus
  rc.modules semuanya dan biarkan kerneld meload  modules ketika
  dibutuhkan.


  12.15.  Aku membangun ulang kernel dan modules, dan mendapat pesan
  tentang unresolved symbols ketika booting

  Mungkin perlu mengkonfigurasi dan membangun ulang kernel dengan tidak
  memasukan beberapa modules. Beberapa modules lama yang tidak lagi
  digunakan bisa diperoleh dengan bergantung pada direktori
  /lib/modules. Pemecahan termudah adalah menghapus /lib/modules/x.y.z
  dan melakukan 'make modules_install' dari direktori kernel source.
  Catat bahwa hal ini hanya bisa dilakukan ketika mengkonfigurasi ulang
  kernel pada versi yang sama. Jika Anda melihat kesalahan ini ketika
  pindah ke kernal yang versi lebih baru, itu adalah kasus yang berbeda.


  12.16.  bisa me load   module  apapun Saya telah menginstall Linux 2.1
  dan sekarang tidak

  Linux 2.1 adalah kernel development terbaru. sehingga, bisa diharapkan
  hal ini dipecahkan dari waktu kewaktu. Satu dari hal yang telah diubah
  secara nyata adalah cara module ditangani, dan di mana kernel dan
  modules di load  ke memori. Richard Henderson sekarang sedang berusaha
  dalam pengembangan module kernel.


  Sebagai permulaan, jika ingin menggunakan modules denngan kernel 2.1,
  maka Anda harus


  o  membaca file Documentation/Changes dan melihat paket apa yang perlu
     diupgrade

  o  Gunakan paket modutils terbaru, tersedia di
     ftp://ftp.redhat.com/pub/alphabits/
     <ftp://ftp.redhat.com/pub/alphabits/> atau mirror site di
     ftp://tsx-11.mit.edu/pub/linux/packages/alphabits/
     <ftp://tsx-11.mit.edu/pub/linux/packages/alphabits/>


  penulis akan merekomendasikan penggunaan kernel terbaru 2.1.29, jika
  Anda ingin menggunakan modules dengan kernel 2.1


  12.17.  Bagaimana dengan dial-on-demand networking ?

  kerneld pada dasarnya mempunyai dukungan untuk mengadakan hubungan
  jaringan dial-up sesuai dengan permintaan; mencoba mengirim paket ke
  jaringan tanpa terhubung akan menyebabkan kerneld untuk menjalankan
  script /sbin/request_route untuk mensetup PPP atau SLIP connection.


  Ini akan menjadi ide yang buruk. Alan Cox, ahli linux networking
  menulis di linux-kernel mailing list, bahwa


  The request-route stuff is obsolete, broken and not required [...]
  Its also removed from 2.1.x trees.



  Daripada menggunakan script request-route dan kerneld, penulis dengan
  sepenuh hati menganjurkan untuk menginstall paket diald Eric Schenk,
  tersedia dari http://www.dna.lth.se/ erics/diald.html





  13.  Pesan Hak Cipta

  Hak cipta dokumen ini pada (c) Henrik Storner, 1996, 1997.


  Kecuali jika dinyatakan, Hak cipta dokumen Linux HOWTO ada pada
  penulisnya Linux HOWTO boleh direproduksi dan didistribusikan secara
  keseluruhan atau terpisah, dalam media fisik atau elektronik, selama
  peringatan hak cipta ini ada didalam semua copy. Pendistribusian
  komersial diizinkan dan dihargai; namun, penulis ingin untuk
  diberitahukan atas pendistribusian seperti itu.


  Semua translasi, derivative works, atau  aggregate works yang
  berhubungan dengan dokumen HOWTO Linux apapun dilindungi dengan pesan
  hak cipta ini.  Sehingga, Anda tidak boleh membuat derivative work
  dari sebuah HOWTO atau menciptakan batasan tambahan atas
  pendistribusiannya. Pelanggaran atas aturan ini boleh dilakukan atas
  beberapa kondisi; hubungi koordinator Linux HOWTO di alamat yang
  diberikan berikut.


  Pendeknya, kami berharap untuk mempromosikan informasi ini melalui
  sebanyak mungkin jalur. Namun, kami ingin memperoleh hak cipta atas
  dokumen HOWTO, dan ingin untuk diberitahu setiap rencana
  pendistribusian HOWTO.


  Jika Anda punya pertanyaan, Silahkan hubungi Tim Bynum, koordinator
  Linux HOWTO di linux-howto@sunsite.unc.edu via email.