# Come NON caricare in automatico moduli kernel a boot time.

## kueitao

Salve.

Secondo la configurazione della mia macchina un certo numero di moduli kernel viene automaticamente caricato a boot time. Bene, anzi male... Come devo intervenire per evitare che siano caricati in automatico?

Per cominciare sono interessato a NON caricare i moduli relativi alla scheda wireless. Io credevo che bastasse NON creare il link simbolico "net.eth2" a "net.lo" nella directory "/etc/init.d". Invece ad ogni boot mi ritrovo i moduli "ipw2200", " ieee80211_crypt" e "ieee80211" e la scheda "eth2" appare attivata secondo gli output di iwconfig e ifconfig.

In sintesi vorrei ottenere il seguente comportamento: (1) Dopo il boot vorrei che non apparisse traccia della scheda "eth2" e dei relativi moduli; (2) vorrei che ad attivare/disattivare il dispositivo wireless provvedesse esclusivamente il comando "/etc/init.d/net.eth2 start/stop".

A parte i moduli di cui sopra, tra quelli che vorrei NON avere caricati a boot time ci sono quelli per le porte USB, PCMCIA, FireWire e forse qualche altro. Comunque per il momento mi accontento di risolvere i problemi con il wireless.

Grazie in anticipo a chiunque vorrà rispondere.

Saluti.

fabio

----------

## .:chrome:.

stai confondendo le acque:

il caricamento dei moduli è una cosa. se ne occupa udev e avere un modulo caricato non significa che l'interfaccia di rete è attiva.

l'attivamento delle schede di rete è un'altra cosa. viene gestito dagli script di avvio, e fintanto che non intervengono questi la scheda di rete è inattiva, anche se il modulo è caricato e il kernel vede il dispositivo. di contro, se il modulo non è caricato, il kernel non vede il dispositivo e la scheda non può essere attivata dagli script di avvio.

avrebbe forse più senso (a meno che tu non abbia esigenze particolari) lasciare che il modulo venga caricato, ed attivare l'interfaccia solo quando serve... o forse no?

----------

## djinnZ

per caricare e soprattutto per per scaricare il modulo con un /etc/init.d/eth? start/stop devi inserire il comando nelle funzioni preup e postdown in /etc/conf.d/net per non caricarli in rc non mi viene a mente ora

----------

## kueitao

@.:chrome:.

Come giustamente mi fai notare, che i moduli siano caricati o meno non dovrebbe importarmi. Quindi lasciamo che vengano caricati. 

Rimane da comprendere come e perché avviene che l'interfaccia wireless venga attivata e posta in "scanning" senza che io abbia (coscientemente   :Smile:  ) configurato nulla per ottenere questo automatismo. Qualche idea?

Saluti. 

fabio

PS.: E' il caso di iniziare un altro thread?

----------

## cloc3

le cose che vuoi fare dovrebbero essere controllabili con l'uso del file /etc/conf.d/rc e dei file di configurazione del network /etc/conf/net.*

----------

## .:chrome:.

prova in /etc/conf.d/rc a impostare RC_PLUG_SERVICES come spiegato nel commento

nel tuo caso, posto che l'interfaccia wireless sia eth1, dovrai impostare RC_PLUG_SERVICES="!net.eth1"

----------

## kueitao

Grazie.

Appena mi è possibile provo ad applicare le soluzioni indicate.

Nel frattempo riporto l'output di "ps aux | grep wpa" (che avevo dimenticato di mostrare prima), così come appare subito dopo il boot, sperando che sia di aiuto per meglio comprendere il problema:

root      4430  0.0  0.0   3716   696 ?        Ss   12:53   0:00 /sbin/wpa_supplicant -Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf -W -W -B -ieth2 -P/var/run/wpa_supplicant-eth2.pid

root      4441  0.0  0.0   2052   248 ?        Ss   12:53   0:00 /bin/wpa_cli -a/etc/wpa_supplicant/wpa_cli.sh -p/var/run/wpa_supplicant -ieth2 -P/var/run/wpa_cli-eth2.pid -B

Come è possibile che "wpa_supplicant" sia eseguito automaticamente al boot senza che esista il (link simbolico al) comando "/etc/init.d/net.eth2" nel runlevel di default? In questa situazione, l'output di "/etc/init.d/net.eth2 status" è "inactive". 

Comunque se da shell eseguo "/etc/init.d/net.eth2 stop", i due processi sopra mostrati (pid 4430 e 441) vengono correttamente terminati.

Saluti.

fabio

----------

## kueitao

L'impostazione suggerita per la variabile "RC_PLUG_SERVICES", cioè "!net.eth2", impedisce che i processi descritti nel precedente messaggio siano eseguiti. E questo mi pare un passo verso la soluzione.

Cosa significa, però, l'ouput mostrato da "iwconfig"? 

```
eth2      IEEE 802.11b  ESSID:"HN294-56380A"

          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:90:96:56:38:0A

          Bit Rate:11 Mb/s   Tx-Power=20 dBm   Sensitivity=8/0

          Retry limit:7   RTS thr:off   Fragment thr:off

          Encryption key:off

          Power Management:off

          Link Quality=51/100  Signal level=-70 dBm  Noise level=-85 dBm

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:52
```

In particolare, cosa indica il valore dell'etichetta ESSID? Significa che la scheda si è connessa alla rete "HN294-56380A"? E' comunque un segno che la scheda sta funzionando (e sprecando batteria), mentre invece io vorrei che fosse "a riposo"?

Grazie ancora.

fabio

----------

## .:chrome:.

significa che è associata a un ESSID, non che è connessa ad una rete, né che sta funzionando, se non la vedi nell'elenco di ifconfig.

quanto al post precedente, wpa_supplicant viene invocato in modo automatico dallo script di avvio della scheda di rete. dal momento che questo prima era avviato automaticamente da udev, di conseguenza veniva avviato anche wpa_supplicant

----------

## kueitao

 *.:chrome:. wrote:*   

> significa che è associata a un ESSID, non che è connessa ad una rete, né che sta funzionando, se non la vedi nell'elenco di ifconfig.

 

Che significa esattamente che la scheda è associata a un ESSID?

ifconfig mostra il seguente output:

```

eth2      Link encap:Ethernet  HWaddr 00:13:CE:E1:36:FB

          BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:114 errors:0 dropped:42 overruns:0 frame:0

          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

          Interrupt:18 Base address:0xc000 Memory:dfdfd000-dfdfdfff

```

fabio

----------

## .:chrome:.

 *kueitao wrote:*   

> Che significa esattamente che la scheda è associata a un ESSID?

 

le reti wireless vengono identificate tramite l'ESSID. si tratta di un identificatore, un riconoscimento, un'etichetta... chiamalo come vuoi...

però spiegare il meccanismo dell'associazione penso vada al di là degli scopi (e delle possibilità) del forum. forse dovresti consultare altre fonti

----------

## kueitao

 *.:chrome:. wrote:*   

>  *kueitao wrote:*   Che significa esattamente che la scheda è associata a un ESSID? 
> 
> le reti wireless vengono identificate tramite l'ESSID. si tratta di un identificatore, un riconoscimento, un'etichetta... chiamalo come vuoi...
> 
> però spiegare il meccanismo dell'associazione penso vada al di là degli scopi (e delle possibilità) del forum. forse dovresti consultare altre fonti

 

Non pretendo che si vada al di là degli scopi del forum.

Vorrei solo capire perché la mia scheda "è associata ad un ESSID" (parole tue). 

Perché la mia scheda deve risultare o essere di fatto associata ad una rete che non è la mia e che non conosco? E' normale?

Grazie.

fabio

----------

## Dottout

puoi semplicemente inserire il modulo in /etc/modprobe.d/blacklist

riporto l'introduzione:

```

# This file lists modules which will not be loaded by udev,

# not at coldplugging and not on hotplug events.

```

----------

