Configurare la scheda di rete
Per configurare un interfaccia ethernet su Debian la prima cosa da fare è sapere se il kernel utilizzato include il supporto per la vostra scheda oppure malauguratamente no.
per sapere che kernel state usando basta digitare:
$ uname -r
Ora che siete a conoscenza della versione del kernel occorre reperire maggiori dettagli sulla vostra scheda di rete, dunque è buona regola usare un strumento chiamato "lspci". Esso è contenuto nel pacchetto "pciutils", facilmente reperibile e installabile tramite l'uso di apt-get.
Una volta che l'avrete installato digitando da terminale:
$ lspci -v | grep -i Eth
avrete un output simile a questo:
00:11.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 42)
ed ecco indicato in linea di massima il chipset ( VT6102 ), modello (Rhine-II) e produttore (VIA Technologies, Inc.) della scheda di rete.
A questo punto è sufficente mettere su
GOOGLE parte del comando impartito prima aggiungendo nella chiave di ricerca parole come
modprobe o
module, per essere più concreto basta cercare su google qualcosa come: "
Via-Rhine module" o "
Via-Rhine modprobe" per capire in pochissimo tempo qual'è il nome del modulo (driver) che necessita di essere caricato dall'utente affinchè il kernel possa mettere in funzione la vostra scheda (solitamente il supporto prenderà il nome di
ethn dove
"n" rappresenterà un numero che parte da 0 in forma crescente indicante la quantità delle schede ethernet presenti sul computer).
Voglio vare le cose vatte bene, ecco altri esempi, questa volta delle scheda di rete di
wubby, vicius e weezip che gentilmente hanno reso disponibili i loro dati.
$ lspci -v | grep -i Eth
0000:00:0a.0 Ethernet controller: 3Com Corporation 3c940 10/100/1000Base-T [Marvell] (rev 12)
chipset ( 3c940 ), modello ( Marvell ) e produttore ( 3Com Corporation.).
Cercando su google: "
3c94 module" o "
3c94 modprobe" si deduce facilmente che è possibile scegliere uno dei due moduli tra
skge e
sk98lin, insieme possono anche coesistere ma
skge è più recente.
$ lspci -v | grep -i Eth
0000:00:0d.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
chipset ( RTL8139 ), modello (sconosiuto) e produttore ( D-Link System Inc. ).
Cercando su google: "
RTL8139 module" o "
RTL8139 modprobe" si deduce che il modulo è
8139too.
$ lspci -v | grep -i Eth
0000:00:0a.0 Ethernet controller: Intel Corporation 82557/8/9 [Ethernet Pro 100] (rev 0c)
chipset ( 82557/8/9 ), modello ( Ethernet Pro 100 ) e produttore ( Intel Corporation ).
Cercando su google: "
82557 module" o "
82557 modprobe" si deduce che il modulo è
eepro100.
$ lspci -v | grep -i Eth
00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 91)
chipset ( SiS900 ), modello ( SiS900 PCI Fast Ethernet ) e produttore ( Silicon Integrated Systems ).
Cercando su google: "
sis900 module" o "
sis900 modprobe" si deduce che il modulo è
sis900.
$ lspci -v | grep -i Eth
0000:00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
chipset ( Realtek ), modello ( RTL-xxxx ) e produttore ( Realtek Semiconductor Co. ).
Cercando su google: "
module RTL-8139/8139C/8139C+" o "
RTL-8139/8139C/8139C+ modprobe" si deduce che il modulo è
8139too.
$ lspci -v | grep -i Eth
0000:00:0d.0 Ethernet controller: MYSON Technology Inc SURECOM EP-320X-S 100/10M Ethernet PCI Adapter
chipset ( Myson ), modello ( EP-320X-S ) e produttore ( MYSON Technology Inc ).
Cercando su google: "
module EP-320X-S 100/10M" o "
modprobe EP-320X-S 100/10M" si deduce che il modulo è
fealnx.
In relazione agli esempi indicati sopra che trattano i chipset delle schede di rete al giorno d'oggi più utilizzate posso dire che come potete vedere il nome del modulo è quasi sempre molto simile al nome del chipset stesso.
Andiamo avanti...
Se avete una sola scheda di rete collegata fisicamente alla vostra scheda madre quasi sicuramente il vostro device sarà /dev/eth0 .
I file in /dev non sono veri file (o meglio lo sono, ma sono "speciali"). Essi sono caratterizzati da due numeri, il "major number" e il "minor number" che li identificano al kernel che deve trovare un driver per gestirli.
Reperito il nome del vostro modulo potete andare avanti nella lettura :)
Usando da terminale come
root il comando "modprobe" sarà possibile caricare il vostro modulo:
$ modprobe nome_modulo
in qualsiasi momento è possibile verificarne lo stato di caricamento con "lsmod" :
$ lsmod | grep nome_modulo
se non si ha nessun risultato il modulo non è caricato, viceversa il modulo è correttamente pronto all'uso.
potete listare quali moduli di rete dispone il kernel :
$ modprobe -l | grep net | grep driver
usando
dmesg (utilizzato per stampare messaggi del kernel) con la seguente sintassi:
$ dmesg|grep eth
vi sarà facile dedurre se il modulo è stato riconosciuto, se avete scelto quello corretto e se è compatibile con il vostro hardware.
Errore più comune:
FATAL: Module nome_modulo not found.
Il modulo non esiste, probabilmente si è sbagliato digitando, assicuratevi di aver digitato il nome corretto. Fatto ciò se persiste lo stesso errore ciò significa che il modulo che provate a caricare non è effettivamente presente sul kernel, in questo caso vi è un unica soluzione, ricompilare il kernel aggiungendo il modulo che vi interessa. Se siete così sfigati non posso fare altro che rimandarvi quà:
Compilare il kernel utilizzando il modo Debian.
Se la vostra scheda non è supportata consiglio di dare una sbirciatina
QUA' e
QUA' per aiutarvi nell'aquisto più sicuro in termini di compatibilita'.
Riconosciuta e pronta all'uso ora si può agire in due modi distinti per configurarla:
- 1. tramite assegnazione di un ip statico;
- 2. servendosi di un server dhcp.
eccole di seguito illustrati entrambi i casi:
1. Configurazione mediante ip statico
1) editare con privilegi di root il file
/etc/network/interfaces aggiungendo le parti
sottolineate:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.2 # (indirizzo ip)
netmask 255.255.255.0 # (netmask)
gateway 192.168.0.1 # (gateway)
network 192.168.0.0 # (inizio rete)
broadcast 192.168.0.255 # (ip di broadcast)
modificate gli indirizzi ip usati sopra come esempio secondo le vostre esigenze, fatto ciò salvate il file.
2) Un alternativa rapida da riga di comando è quella di indicare direttamente tutto da riga di comando come in questo esempio:
$ ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
$ route add default gw 192.168.0.1
In entrambi i casi ora bisogna attivate la nuova interfaccia di rete con il comando
$ ifup eth0
in caso la si vuole stoppare:
$ ifdown eth0
il comando:
$ ifconfig eth
mostra un riepilogo dello stato attuale così da poter vedere istantaneamente se la ethernet è configurata ed è attiva.
Ora è molto importante inseri i dns sul file /etc/resolv.conf , per farlo sarà sufficente dare da
root:
$ echo "nameserver 62.211.69.150" > /etc/resolv.conf
$ echo "nameserver 212.48.4.15" >> /etc/resolv.conf
sostituite anche in questo casi gli indirizzi ip usati da me secondo le vostre esigenze.
In caso il vostro ISP non rilasci server DNS è buona regola impostare come ip del server dns il vostro gateway.
2. Configurazione mediante uso di DHCP
Se nel router o altra macchina è preconfigurato un server DHCP che assegna gli IP all'interno della vostra rete:
1) editate con privilegi di root il file /etc/network/interfaces aggiungendo le parti
sottolineate:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Testate ora la rete così da scovare anche eventuali intoppi:
$ ping tuo_ip_eth0
$ ping tuo_gateway
$ ping 66.102.9.99
$ ping www.google.com
Affinchè il modulo della vostra scheda ethernet sia caricato automaticamente all'avvio del sistema dovete inserire il relativo nome all'interno del file /etc/modules , sarà sufficente dare:
$ echo nome_modulo >> /etc/modules
Ok, concludete il tutto assicurarsi che il servizio di rete si avvii in automatico tramite il comando:
$ update-rc.d -f networking defaults
note:
il modem D-Link 302T ultimamente fornito da diversi
ISP italiani funziona regolarmente se collegato all'interfaccia ethernet ma con alcuni accorgimenti illustrati di seguito:
- la rete deve essere configurata tramite l'uso di un ip statico (in dhcp non funziona);
- nella configurazione di rete non si deve specificare il gateway;
pertanto riepiloganto il file
/etc/network/interfaces dovrà essere così configurato:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
per ora è tutto.
Saluti PiloZ ;)