[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: can't locate module



>>>>> On Sun, 24 Dec 2000 02:05:13 +0100 (CET), a.maurizi@isao.bo.cnr.it said:

    >> ciao a tutti e auguri!  ho ricompilato il kernel 2.2.18: ricevo
    >> ora questo particolare avviso:
    >> 
    >> modprobe: modprobe: Can't locate module char-major-10-135
    >> 

    am> 	Ho appena avuto lo stesso problema ma l'ho risolto.
    am> Si tratta di un modulo legato a /dev/rtc (Real Time Clock)
    am> L'ho abilitato (nella sezione Character Devices) e il
    am> messaggio di errore e` sparito (vedi anche
    am> /usr/src/linux/Documentation/rtc.txt)


In generale, trovi l'associazione tra un "char-major number" di un
device e l'implementazione relativa nel kernel leggendo il file
`.../kernel-source-2.2.18/Documentation/devices.txt'. Ogni device in
Unix è identificato da due numerilli, detti appunti `major' e
`minor'. Un major indica una famiglia di dispositivi, il minor un
singolo elemento all'interno di questa.

Nel caso specifico, trovi:

 10 char        Non-serial mice, misc features
                  0 = /dev/logibm       Logitech bus mouse
                  1 = /dev/psaux        PS/2-style mouse port
                  2 = /dev/inportbm     Microsoft Inport bus mouse
                  3 = /dev/atibm        ATI XL bus mouse
                  4 = /dev/jbm          J-mouse
                  4 = /dev/amigamouse   Amiga mouse (68k/Amiga)
                  5 = /dev/atarimouse   Atari mouse
                  6 = /dev/sunmouse     Sun mouse
                  7 = /dev/amigamouse1  Second Amiga mouse
                  8 = /dev/smouse       Simple serial mouse driver
                  9 = /dev/pc110pad     IBM PC-110 digitizer pad
                 10 = /dev/adbmouse     Apple Desktop Bus mouse
                 11 = /dev/vrtpanel     Vr41xx embedded touch panel
                 13 = /dev/vpcmouse     Connectix Virtual PC Mouse
                128 = /dev/beep         Fancy beep device
                129 = /dev/modreq       Kernel module load request {2.6}
                130 = /dev/watchdog     Watchdog timer port
                131 = /dev/temperature  Machine internal temperature
                132 = /dev/hwtrap       Hardware fault trap
                133 = /dev/exttrp       External device trap
                134 = /dev/apm_bios     Advanced Power Management BIOS
                135 = /dev/rtc          Real Time Clock


Detta in parole mooolto povere, quando ha bisogno di una qualche
"funzionalità" esterna, il kernel la "richiede" specificandone il suoi
numeri di dispositivo. E' compito di un altro pezzo del kernel, tipo
kmod, di riconoscere quei numeri, associarli ad un modulo del kernel,
ed eventualmente caricarlo dal filesystem se non è già "a bordo".

Non riesco a fare un esempio significativo col `rtc', ma considera
"ISDN": quando richiedi funzionalità legate a ISDN, il kernel
cerca di attivare genericamente un modulo adatto; i "char-major" dei
dispositivi associati ad ISDN sono il 43, 44 e 45, che in
`devices.txt' dicono:

 43 char        isdn4linux virtual modem
 44 char        isdn4linux virtual modem - alternate devices
 45 char        isdn4linux ISDN BRI driver

E' evidente però che il modulo da caricare dipende da che scheda/modem
ISDN ho montato sulla macchina (ed è questa la ragione principale che
giustifica tutto il meccanismo). A questo punto entra in ballo
"modprobe" ed in generale il sistema di caricamento dinamico dei
moduli del kernel, che viene configurato con "modutils". In
`/etc/modutils/hisax' ho:

options hisax type=36 protocol=2
alias ippp0 isdn
alias char-major-43 hisax
alias char-major-44 hisax
alias char-major-45 hisax

che di fatto stabilisce sia che modulo caricare quando viene richiesto
un certo char-major sia le opzioni di attivazione di questo modulo. Su
Debian "update-modules" provvede ad aggiornare il file
`/etc/modules.conf' a partire dalle specifiche presenti nei file
contenuti dalla directory `/etc/modutils/'.

ciao, lele.
-- 
nickname: Lele Gaifax	| Quando vivro' di quello che ho pensato ieri
real: Emanuele Gaifas	| comincero' ad aver paura di chi mi copia.
email: lele@seldati.it	|		-- Fortunato Depero, 1929.



Reply to: