Voor een aantal devices is extra configuratie nodig naast de normale aliasing van een device naar een module.
Character devices op major nummer 10: De diverse devices
Hardware devices worden gewoonlijk geïdentificeerd via hun major device nummers, b.v. ftape is char-major-27. Als je echter de bestanden in /dev bekijkt met char major 10, dan zul je zien dat dit een boel verschillende devices zijn, waaronder
Diverse soorten muizen (busmuizen, PS/2 muizen)
Watchdog devices
De kernel random device
APM (Advanced Power Management) interface
Deze devices worden door verschillende modules bestuurd, niet slechts door één, en daarom wordt voor deze misc. devices in de kerneld configuratie gebruik gemaakt van het major nummer en het minor nummer:
alias char-major-10-1 psaux # Voor PS/2 mouse alias char-major-10-130 wdt # Voor WDT watchdog |
Je hebt kernelversie 1.3.82 of nieuwer nodig om hiervan gebruik te kunnen maken; eerdere versies geven het minor nummer niet door aan kerneld, waardoor het voor kerneld onmogelijk is om uit te zoeken welk misc. device het moet laden.
Drivers voor SCSI devices bestaan uit een driver voor de SCSI host adapter (b.v. een Adaptec 1542), en een driver voor het type SCSI device dat je gebruikt, b.v. een harddisk, een CD-ROM of een tape-drive. Deze kunnen allen worden geladen als modules. Als je echter bijvoorbeeld de CD-ROM drive wilt benaderen die is gekoppeld aan de Adaptec kaart, dan weten de kernel en kerneld alleen dat ze de sr_mod module moeten laden om SCSI CD-ROM's te ondersteunen; niet bekend is op welke SCSI-controller de CD-ROM is aangesloten en daarom niet welke module moet worden geladen voor ondersteuning van de SCSI-controller.
Om hier iets aan te doen, kun je een regel toevoegen aan /etc/conf.modules voor de SCSI drivermodule waarbij aan kerneld wordt opgegeven welke van de vele mogelijke SCSI controllermodules het moet laden:
alias scd0 sr_mod # sr_mod voor SCSI CD-ROM's ... alias scsi_hostadapter aha1542 # ... Adaptec driver nodig |
Dit werkt alleen bij kernelversie 1.3.82 of later.
Dit werkt als je slechts één SCSI-controller hebt. Als je er meer dan één hebt, dan wordt het iets moeilijker.
Over het algemeen kun je kerneld geen driver laten laden voor een SCSI-hostadapter, als er reeds een driver voor een andere hostadapter is geïnstalleerd. Je moet of beide drivers in je kernel inbouwen (niet als modules) of de modules handmatig laden.
Wees je ervan bewust dat deze techniek alleen werkt als je verschillende soorten SCSI-devices op de twee controllers hebt, zoals bijvoorbeeld harddisks op de ene controller en cd-rom drives, tapes of generic SCSI-devices op een ander.
Soms is het slechts laden van de module niet genoeg om iets werkend te krijgen. Als je bijvoorbeeld je geluidskaart als een module hebt gecompileerd, is het vaak handig om een bepaald volumeniveau in te stellen. Het probleem is echter dat de instelling de volgende keer dat de module wordt geladen verdwijnt. Hier is een aardige truuk van Ben Galliart (<bgallia@luc.edu>):
De uiteindelijke oplossing vereiste de installatie van het setmix package om daarna de volgende regel toe te voegen aan /etc/conf.modules:
post-install sound /usr/local/bin/setmix -f /etc/volume.conf
Nadat de sound module is geladen, voert kerneld de opdracht uit die wordt aangegeven in de post-install sound entry. Dus de sound module wordt geconfigureerd met de opdracht /usr/local/bin/setmix -f /etc/volume.conf.
Dit kan ook voor andere modules handig zijn, de lp module bijvoorbeeld kan worden geconfigureerd met het programma tunelp door de toevoeging:
post-install lp tunelp options |
Je hebt kerneld versie 1.3.69f of later nodig wil kerneld deze opties herkennen.
![]() | In een eerdere versie van deze mini-HOWTO werd een pre-remove optie genoemd dat kon worden gebruikt om een opdracht op te starten voordat kerneld een module zou verwijderen. Dit heeft echter nooit gewerkt en het gebruik ervan wordt daarom ontmoedigd. Naar alle waarschijnlijkheid zal deze optie in een toekomstige kerneld release verdwijnen. Het gehele onderwerp over module instellingen ondergaat op het moment een aantal wijzigingen en wellicht dat het er anders uitziet op je systeem wanneer je dit leest. |