Codice: Seleziona tutto
[root@darkstar linux-3.19.4]# mkdir -pv /etc/depmod.d
mkdir: directory "/etc/depmod.d" creata
[root@darkstar linux-3.19.4]# echo 'override option * extra' > /etc/depmod.d/extra.conf
Codice: Seleziona tutto
[joe@darkstar linux-3.19.4]$ make prepare
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
[joe@darkstar linux-3.19.4]$ make -C /lib/modules/$(uname -r)/build M=drivers/usb/serial
make: Entering directory `/home/joe/.kernel-build/linux-3.19.4'
LD drivers/usb/serial/built-in.o
CC [M] drivers/usb/serial/option.o
Building modules, stage 2.
MODPOST 1 modules
CC drivers/usb/serial/option.mod.o
LD [M] drivers/usb/serial/option.ko
make: Leaving directory `/home/joe/.kernel-build/linux-3.19.4'
Codice: Seleziona tutto
[root@darkstar linux-3.19.4]# make -C `pwd` M=drivers/usb/serial modules_install
make: Entering directory `/home/joe/.kernel-build/linux-3.19.4'
INSTALL drivers/usb/serial/option.ko
DEPMOD 3.19.4-hb_smp
make: Leaving directory `/home/joe/.kernel-build/linux-3.19.4'
[root@darkstar linux-3.19.4]# depmod -av `uname -r`|grep option.ko
/lib/modules/3.19.4-hb_smp/extra/option.ko needs "usb_wwan_write": /lib/modules/3.19.4-hb_smp/kernel/drivers/usb/serial/usb_wwan.ko
/lib/modules/3.19.4-hb_smp/extra/option.ko needs "usb_serial_deregister_drivers": /lib/modules/3.19.4-hb_smp/kernel/drivers/usb/serial/usbserial.ko
[root@darkstar linux-3.19.4]#
Così funziona!
Vediamo anche la stringa più generica...
Rimuovo il modulo e la dir extra... così non ci confondiamo con quella di prima.
Codice: Seleziona tutto
[root@darkstar linux-3.19.4]# rm -ivr /lib/modules/`uname -r`/extra
rm: entrare nella directory "/lib/modules/3.19.4-hb_smp/extra"? y
rm: rimuovere file regolare "/lib/modules/3.19.4-hb_smp/extra/option.ko"? y
"/lib/modules/3.19.4-hb_smp/extra/option.ko" rimosso
rm: rimuovere directory "/lib/modules/3.19.4-hb_smp/extra"? y
directory rimossa: "/lib/modules/3.19.4-hb_smp/extra"
Riconfiguro depmod:
Codice: Seleziona tutto
[root@darkstar linux-3.19.4]# echo 'search extra' > /etc/depmod.d/extra.conf
[root@darkstar linux-3.19.4]# cat /etc/depmod.d/extra.conf
search extra
Ok, ricompilo per completezza ma penso non serva...
Codice: Seleziona tutto
[joe@darkstar linux-3.19.4]$ make prepare
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
[joe@darkstar linux-3.19.4]$ make -C /lib/modules/$(uname -r)/build M=drivers/usb/serial
make: Entering directory `/home/joe/.kernel-build/linux-3.19.4'
Building modules, stage 2.
MODPOST 1 modules
make: Leaving directory `/home/joe/.kernel-build/linux-3.19.4'
[joe@darkstar linux-3.19.4]$
E reinstallo:
Codice: Seleziona tutto
[root@darkstar linux-3.19.4]# make -C `pwd` M=drivers/usb/serial modules_install
make: Entering directory `/home/joe/.kernel-build/linux-3.19.4'
INSTALL drivers/usb/serial/option.ko
DEPMOD 3.19.4-hb_smp
make: Leaving directory `/home/joe/.kernel-build/linux-3.19.4'
[root@darkstar linux-3.19.4]# depmod -av `uname -r`|grep option.ko
/lib/modules/3.19.4-hb_smp/extra/option.ko needs "usb_wwan_write": /lib/modules/3.19.4-hb_smp/kernel/drivers/usb/serial/usb_wwan.ko
/lib/modules/3.19.4-hb_smp/extra/option.ko needs "usb_serial_deregister_drivers": /lib/modules/3.19.4-hb_smp/kernel/drivers/usb/serial/usbserial.ko
Sembra tutto ok adesso.
Diamo un'occhiata alle informazioni sul modulo option:
Codice: Seleziona tutto
[root@darkstar linux-3.19.4]# modinfo option|grep -v alias
filename: /lib/modules/3.19.4-hb_smp/extra/option.ko
license: GPL
description: USB Driver for GSM modems
author: Matthias Urlichs <smurf@smurf.noris.de>
depends: usb_wwan,usbserial
vermagic: 3.19.4-hb_smp SMP mod_unload PENTIUMIII
E proviamo a vedere cosa viene caricato...
Codice: Seleziona tutto
[root@darkstar linux-3.19.4]# lsmod|grep option
option 27476 0
usb_wwan 5135 1 option
usbserial 20421 2 option,usb_wwan
[root@darkstar linux-3.19.4]# modprobe -r option
[root@darkstar linux-3.19.4]# lsmod|grep option
[root@darkstar linux-3.19.4]# modprobe -v option
insmod /lib/modules/3.19.4-hb_smp/kernel/drivers/usb/serial/usbserial.ko
insmod /lib/modules/3.19.4-hb_smp/kernel/drivers/usb/serial/usb_wwan.ko
insmod /lib/modules/3.19.4-hb_smp/extra/option.ko
Mi viene in mente una domanda... (l'ennesima!).
Come faccio a vedere a quale file "ko" precisamente corrisponde un modulo in uso.
Mi spiego:
poco fà stavo usando il modulo option, era caricato come si vede dall'lsmod che ho riportato nell'ultimo "code" qua sopra.
Però quello non era relativo al file ko che ho in extra. Perchè il modulo era stato caricato ore prima, quando ancora non avevo forzato depmod...
Dopo la configurazione di depmod, modinfo dava informazioni sul modulo in extra.
Quelle info pertanto non erano relativo al modulo option realmente in uso (che era quello in-tree).
Mi spiego?
Per cui se io volessi vedere precisamente qual'è il percorso di un modulo (il file ".ko") che sto usando come dovrei fare?