Avant toute chose, il faut s'assurer qu'on a un noyau contenant tout ce dont on a besoin :
General setup ---> [*] Networking support (CONFIG_NET) Networking options ---> [*] TCP/IP networking (CONFIG_INET) Network device support ---> [*] Network device support (CONFIG_NETDEVICES) File systems ---> [*] /proc file system support (CONFIG_PROC_FS)
Ensuite, il faut identifier précisément son matériel : carte Ethernet ISA ou PCI ? De quel type (3COM, NE2000...) ? Utilisation du protocole PPP (connexion avec un modem), PLIP (connexion avec un cable paralelle) ? En fonction de ces réponses, il faut activer le bon pilote dans le noyau. La plupart des cartes récentes sont compatibles NE2000. Pour ce type de carte, activer dans le noyau :
Network device support ---> [*] Network device support (CONFIG_NETDEVICES) Ethernet (10 or 100Mbit) ---> [*] Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [*] EISA, VLB, PCI and on board controllers (CONFIG_NET_EISA) <M> PCI NE2000 support (CONFIG_NE2K_PCI)
Ou, pour une carte 3COM 509 :
Network device support ---> [*] Network device support (CONFIG_NETDEVICES) Ethernet (10 or 100Mbit) ---> [*] Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [*] 3COM cards (CONFIG_NET_VENDOR_3COM) [*] 3c509/3c579 support (CONFIG_EL3)
Dans tous les cas, lire la Ethernet-HOWTO [5].
On peut ensuite voir si la carte a bien été détectée par le noyau lors du démarrage avec la commande dmesg :
$ dmesg | grep eth0 eth0: RealTek RTL-8029 found at 0x6200, IRQ 12, 52:54:00:E8:70:FF. $
Ou, pour une carte 3Com :
$ dmesg | grep eth0 eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af b7 f4 79, IRQ 10. eth0: Setting Rx mode to 1 addresses. $
Si la sortie est vide, vérifier qu'il y a bien une entrée pour le type de carte. Pour une carte de type NE2000, chercher ne2k-pci :
$ dmesg | grep ne2k ne2k-pci.c:vpre-1.00e 5/27/99 D. Becker/P. Gortmaker http://cesdis.gsfc.nasa. gov/linux/drivers/ne2k-pci.html ne2k-pci.c: PCI NE2000 clone 'RealTek RTL-8029' at I/O 0x6200, IRQ 12. $
Ou, pour une carte de type 3Com, chercher 3c :
$ dmesg | grep 3c eth0: 3c509 at 0x300 tag 1, 10baseT port, address 00 20 af b7 f4 79, IRQ 10. 3c509.c:1.16 (2.2) 2/3/98 becker@cesdis.gsfc.nasa.gov. $
Si rien n'apparait, reprendre la compilation du noyau. Voir la Kernel-HOWTO [6] pour plus de détails.
Pour voir si notre carte PCI est bien active, exécuter la commande lspci :
# lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT82C691 [Apollo PRO] (rev c4) 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598 [Apollo MVP3 AGP] 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super] (rev 22) 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586 IDE [Apollo] (rev 10) 00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30) 00:0c.0 RAID bus controller: Promise Technology, Inc.: Unknown device 0d30 (rev 02) 00:10.0 Ethernet controller: Accton Technology Corporation SMC2-1211TX (rev 10) 00:12.0 SCSI storage controller: Adaptec 7892A (rev 02) 01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 86C326 (rev 0b) #
et pour configurer sa carte PCMCIA, utiliser cardctl :
# cardctl config Socket 0: Vcc 5.0V Vpp1 0.0V Vpp2 0.0V interface type is "memory and I/O" irq 3 [exclusive] [level] function 0: config base 0x03f8 option 0x60 status 0x00 io 0x0300-0x031f [auto] Socket 1: not configured #
Vérifier également que le noyau sait comment charger les modules :
# cat /proc/sys/kernel/modprobe /sbin/modprobe #
ici avec la commande /sbin/modprobe, et que le module de la carte Ethernet a bien été compilé :
# cd /lib/modules/`uname -r` # ls net/ 3c501.o com20020.o epic100.o n2.o sis900.o 3c503.o com90io.o eql.o ne.o sk98lin.o 3c505.o com90xx.o es3210.o ne2k-pci.o sktr.o 3c507.o comx-hw-comx.o eth16i.o ne3210.o slhc.o 3c509.o comx-hw-locomx.o ethertap.o ni5010.o slip.o 3c515.o comx-hw-mixcom.o ewrk3.o ni52.o smc-ultra.o 3c59x.o comx-proto-fr.o fmv18x.o ni65.o smc-ultra32.o 3c90x.o comx-proto-lapb.o hamachi.o old_tulip.o smc9194.o 6pack.o comx-proto-ppp.o hdlc.o olympic.o soundmodem.o 82596.o comx.o hdlcdrv.o pc300.o strip.o 8390.o cops.o hostess_sv11.o pcnet32.o syncppp.o ac3200.o cosa.o hp-plus.o plip.o tlan.o acenic.o cs89x0.o hp.o ppp.o tulip.o arc-rimi.o de4x5.o hp100.o ppp_deflate.o via-rhine.o arcnet.o de600.o ibmtr.o pppox.o wanpipe.o arlan-proc.o de620.o ipddp.o rcpci.o wanxl.o arlan.o depca.o ircomm.o rl100a.o wavelan.o at1700.o dgrs.o irda.o rrunner.o wd.o baycom_epp.o dlci.o irda_deflate.o rtl8139.o x25_asy.o baycom_par.o dmascc.o irlan.o sb1000.o yam.o baycom_ser_fdx.o dmfe.o lance.o sbni.o yellowfin.o baycom_ser_hdx.o dummy.o lanstreamer.o scc.o z85230.o bonding.o e2100.o lapbether.o sdla.o bpqether.o eepro.o lne390.o sdladrv.o bsd_comp.o eepro100.o ltpc.o sealevel.o c101.o eexpress.o mkiss.o shaper.o #
Si la carte Ethernet n'est pas détectée, rajouter la ligne suivante dans le fichier /etc/modules.conf :
alias eth0 ne2k-pci
si par exemple notre première carte Ethernet est de type NE2000.
Pour utiliser une deuxième carte Ethernet :
# # Deuxieme carte Ethernet # alias eth1 ne2k-pci # # Pour les cartes ISA, il faut parfois preciser a quelles adresses il # faut les chercher. Ici elles sont en 300 IRQ 5 et 320 IRQ 7 # options ne2k-pci io=0x300,0x320 irq=5,7
append=ether=0,0,eth1