Compilation rtl8139c

Bonjour.

Je tourne sur une lenny [quote]2.6.26-2-686 #1 SMP Sun Jul 26 21:25:33 UTC 2009 i686 GNU/Linux.[/quote]

J’ai acheté une carte pcmcia edimax ep-4103dl, j’ai téléchargé les drivers sur le site officiel.
Dans le guide de compilation il est indiqué la ligne suivante:

[code]gcc -DCARDBUS -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes

-O6 -c rtl8139.c -o realtek_cb.o -I/usr/src/linux/pcmcia-cs-3.0.9/include/[/code]
Je ne sais pas quel le string que je doit mettre en lieu et place de -I/usr/src/linux/pcmcia-cs-3.0.9/include/

Quelqu’un peut il m’aider s.v.p ??

Salut

Essayes d’être plus explicite :slightly_smiling:

Ca c'est ce qu'il y a d'origine pour toute les distros linux.

Par quoi je dois remplacer:

[code]-I/usr/src/linux/pcmcia-cs-3.0.9/include/[/code]

Pour une distro lenny.

Ca c’est ce qu’il y a d’origine pour toute les distros linux.

Par quoi je dois remplacer:

Pour une distro lenny.

+1

explique quel problème tu rencontres avec cette carte…

Copie du guide de compil. J’espère que coup ci je serais assez explicite:

[quote]Realtek CardBus Ethernet Card Installation on Linux

  1. Compile the source code :

->Copy the source code rtl8139.c (ver 1.08 above) to a directory

and execute "gcc -DCARDBUS -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes

-O6 -c rtl8139.c -o realtek_cb.o -I/usr/src/linux/pcmcia-cs-3.0.9/include/"

The directory “pcmcia-cs-3.0.9” stands for the card service version you

use. Please change it to the version on your system in order to include

proper .h file. The final file is realtek_cb.o

  1. Copy driver :

->Copy the file “realtek_cb.o” to “/lib/modules/2.2.14-5.0/pcmcia”[/quote]

/usr/src/linux-headers-version du noyau-common/include/pcmcia/

pourrait peut-être aller…(un locate pcmcia te donnera peut-être quelques idées)

mais on ne sait toujours pas ce qui t’arrive avec cette carte !

Merci pour ta réponse, j’avais déjà essayé mais sans résultat.

Ben le pb est:
Je met ma carte pcmcia, il la voit en eth2, la machine monte automatiquement les drivers [quote]8139cp 8139too[/quote]

Je configure le fichier interfaces mais cette carte ne fonctionne pas.
Donc j’ai téléchargé les derniers drivers que je dois compiler.
Voilà.
Actuellement je suis coincé par un super paquet de messages d’erreur lors de la compil.

Re,

Un copié-collé de # ifconfig eth2 :slightly_smiling:

Car à mon avis puisque le système la détecte ce n’est pas du côté de la carte mais du réseau qu’il faut chercher !

Quand je connecte ma carte pcmcia:

[quote][ 1316.888171] pccard: CardBus card inserted into slot 0
[ 1316.888399] 8139too 0000:04:00.0: enabling device (0000 -> 0003)
[ 1316.888407] ACPI: PCI Interrupt 0000:04:00.0[A] -> GSI 19 (level, low) -> IRQ 19
[ 1316.888422] PCI: Setting latency timer of device 0000:04:00.0 to 64
[ 1316.889956] eth2: RealTek RTL8139 at 0x2000, 00:0e:2e:bc:78:9e, IRQ 19
[ 1316.889959] eth2: Identified 8139 chip type ‘RTL-8139C’
[/quote]

Quand je fais:

Voilà ce qu’il me répond:

[quote]eth2: erreur lors de la recherche d’infos sur l’interface: Périphérique non trouvé
eth2: erreur lors de la recherche d’infos sur l’interface: Périphérique non trouvé
SIOCSIFNETMASK: Aucun périphérique de ce typ[/quote]

et que raconte ifconfig -a ?

[code]=> ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:14:22:eb:74:4c
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interruption:16

eth1 Link encap:Ethernet HWaddr 00:16:6f:69:6a:f7
inet adr:192.168.1.55 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::216:6fff:fe69:6af7/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:299 errors:0 dropped:8 overruns:0 frame:0
TX packets:230 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:40684 (39.7 KiB) TX bytes:19581 (19.1 KiB)
Interruption:17 Adresse de base:0xe000 Mémoire:dfbff000-dfbfffff

eth2_rename Link encap:Ethernet HWaddr 00:0e:2e:bc:78:9e
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interruption:19 Adresse de base:0x2000

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:156 errors:0 dropped:0 overruns:0 frame:0
TX packets:156 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:9440 (9.2 KiB) TX bytes:9440 (9.2 KiB)
[/code]

Ben voilà, elle est bien là (eth2_rename), et comme je le soupçonnais c’est udev qui a fait des siennes en essayant de la renommer mais apparemment ça a raté pour une raison que j’ignore. Faut fouiller dans /etc/udev/rules.d/z25_persistent-net.rules (ou quelque chose d’approchant) et rectifier ça.

Merci pour ta réponse, je n’ai pas le fichier en question mais celui là:

En voilà le contenu:

[quote]# This file was automatically generated by the /lib/udev/write_net_rules

program run by the persistent-net-generator.rules rules file.

You can modify it, as long as you keep each rule on a single line.

PCI device 0x14e4:0x1677 (tg3)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:14:22:eb:74:4c”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth0”

PCI device 0x10ec:0x8139 (8139too)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:0e:2e:bc:78:9e”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth1”

USB device 0x07a6:0x8515 (pegasus)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:00:e8:00:00:a2”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth1”

PCI device 0x8086:0x4220 (ipw2200)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:16:6f:69:6a:f7”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth1”

USB device 0x04e8:0x6662 (rndis_host)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“80:00:60:0f:e8:00”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth2”[/quote]

Dans la ligne:

[quote]# PCI device 0x10ec:0x8139 (8139too)
SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:0e:2e:bc:78:9e”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth1”[/quote]
J’ai remplacé eth1 par eth2
Voilà le résultat de ifconfig -a:

[code]=> ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:14:22:eb:74:4c
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interruption:16

eth1 Link encap:Ethernet HWaddr 00:16:6f:69:6a:f7
inet adr:192.168.1.55 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::216:6fff:fe69:6af7/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1125 errors:0 dropped:111 overruns:0 frame:0
TX packets:1152 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:6262519 (5.9 MiB) TX bytes:202751 (197.9 KiB)
Interruption:17 Adresse de base:0x8000 Mémoire:dfbff000-dfbfffff

eth2 Link encap:Ethernet HWaddr 00:0e:2e:bc:78:9e
inet adr:192.168.1.57 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::20e:2eff:febc:789e/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:112 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:7810 (7.6 KiB) TX bytes:16827 (16.4 KiB)
Interruption:19 Adresse de base:0x2000

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:939 errors:0 dropped:0 overruns:0 frame:0
TX packets:939 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:80914 (79.0 KiB) TX bytes:80914 (79.0 KiB)
[/code]

Si je désactive eth0 et que je lance un ping genre :ping orange.fr
je n’obtient aucun résultat de mon ping.

Je comprends mieux. La règle concernant l’interface PCMCIA lui affectait le nom eth1, mais une autre règle affectait le même nom à deux autres interfaces : une utilisant le pilote pegasus (adaptateur USB-ethernet) et une utilisant le pilote ipw2200 (adaptateur wifi Intel) qui était apparemment déjà présente d’après la sortie d’ifconfig. Le processus de renommage d’eth2 en eth1 échouait donc à mi-chemin avec un nom intermédiaire eth2_rename (ce nom intermédiaire est nécessaire au cas où des interfaces doivent échanger leurs noms). Je me demande comment ça a pu arriver, normalement udev n’aurait pas dû créer plusieurs règles réservant le même nom à plusieurs interfaces. Tu as modifié le nom de l’interface PCMCIA en eth2, mais je vois que ce nom est aussi attribué à une autre interface (rndis_host, encore un adaptateur réseau USB). Il faudrait mettre de l’ordre dans tout ça afin que chaque règle attribue un nom unique.

Maintenant que ce point est réglé, on peut s’occuper de la suite. “Aucun résultat de mon ping”, ça veut dire même pas de message d’erreur ? Les compteurs montrent des paquets émis et reçus sur eth2 et pas d’erreur, c’est déjà bon signe. Comment les interfaces sont-elles configurées en IP : par DHCP, en statique ? Tu peux montrer le contenu du fichier /etc/network/interfaces ?

Là je vois dans la sortie de ton premier ifconfig -a qu’eth0 n’était pas activée et que c’est plutôt eth1 qui est activée et configurée dans le même sous-réseau qu’eth2, c’est donc plutôt eth1 qu’il faudrait désactiver.

eth0 est l’interface de mon pc DELL Latitude D810 elle est naze.
Précédemment j’étais sur unbuntu 9.04 et les deux interfaces (pcmcia et usb) fonctionnaient parfaitement. J’en ai eu marre d’avoir des pb avec “evolution” notamment, alors j’ai décidé de revenir sur de bonne base DEBIAN.

En fait vue que mon eth0 est naze j’ai acheté une interface pcmcia
eth2 (8139too)
et une interface usb 2.0
eth3 (Pegasus)

Voilà mon nouveau fichier /etc/udev/rules.d/70-persistent-net.rules:

[code]# This file was automatically generated by the /lib/udev/write_net_rules

program run by the persistent-net-generator.rules rules file.

You can modify it, as long as you keep each rule on a single line.

PCI device 0x14e4:0x1677 (tg3)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:14:22:eb:74:4c”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth0”

PCI device 0x10ec:0x8139 (8139too)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:0e:2e:bc:78:9e”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth2”

USB device 0x07a6:0x8515 (pegasus)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:00:e8:00:00:a2”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth3”

PCI device 0x8086:0x4220 (ipw2200)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“00:16:6f:69:6a:f7”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth1”

USB device 0x04e8:0x6662 (rndis_host)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“80:00:60:0f:e8:00”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth4”[/code]

Ci-joint mon fichier /etc/network/interfaces:

[code]auto lo
iface lo inet loopback

#iface eth0 inet static
#address 192.168.1.56
#netmask 255.255.255.0
#gateway 192.168.1.1
#auto eth0

iface eth1 inet static
address 192.168.1.55
netmask 255.255.255.0
gateway 192.168.1.1
##wireless-key XXXXXXX
wireless-essid WANADOO-B1BE
wireless-mode managed
wireless-channel Z
auto eth1

iface eth2 inet static
address 192.168.1.57
netmask 255.255.255.0
gateway 192.168.1.1
auto eth2

iface eth3 inet static
address 192.168.1.60
netmask 255.255.255.0
gateway 192.168.1.1
auto eth3
[/code]

Ci joint le résultat de la commande ifconfig -a:

[code]=> ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:14:22:eb:74:4c
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interruption:16

eth1 Link encap:Ethernet HWaddr 00:16:6f:69:6a:f7
inet adr:192.168.1.55 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::216:6fff:fe69:6af7/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:1103 overruns:0 frame:0
TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:673328 (657.5 KiB) TX bytes:203230 (198.4 KiB)
Interruption:17 Adresse de base:0x6000 Mémoire:dfbff000-dfbfffff

eth2 Link encap:Ethernet HWaddr 00:0e:2e:bc:78:9e
inet adr:192.168.1.57 Bcast:192.168.1.255 Masque:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interruption:19 Adresse de base:0x2000

eth3 Link encap:Ethernet HWaddr 00:00:e8:00:00:a2
inet adr:192.168.1.60 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::200:e8ff:fe00:a2/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:208 errors:0 dropped:0 overruns:0 frame:0
TX packets:313 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:62612 (61.1 KiB) TX bytes:30736 (30.0 KiB)

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:500 errors:0 dropped:0 overruns:0 frame:0
TX packets:500 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:33847 (33.0 KiB) TX bytes:33847 (33.0 KiB)
[/code]

Actuellement je ne peux fonctionner qu’en wifi —> eth1 .

Toutes tes interfaces sont configurées dans le même sous-réseau IP 192.168.1.*, cela peut causer des problèmes car le noyau ne sait pas laquelle utiliser. Il faudrait désactiver toutes les autres interfaces (wifi, USB) pour tester le fonctionnement de l’interface PCMCIA.

J’ai désactivé eth1 et eth3, j’ai fait des essais avec simplement eth2, et ça le fait pas. Je ne peux pas me connecter au net.

J’ai aussi tenté avec seulement eth3 même combat.
Je sèche grave.
J’ai vraiment besoin d’une interface ethernet lan

“C’est un peu court, jeune homme.
On pouvait dire bien des choses en somme.”

Par exemple :

  • les règles de filtrage (iptables-save)
  • le contenu de la table de routage (route -n)
  • les commandes exécutées (ping, traceroute, host) vers la passerelle et plus loin, et les résultats (messages d’erreur notamment, leur absence est aussi une information)
  • le contenu de la table ARP juste après (arp -n)
  • l’évolution des compteurs de paquets (ifconfig)
  • l’observation de l’activité des voyants de la carte réseau et du switch, de la box
  • la capture des paquets sur l’interface (tcpdump -nei eth2)
  • l’examen des messages du noyau relatifs à l’interface (dmesg)
    (liste non limitative)

Je viens de m’apercevoir que eth2 est en promicious mode.
Resultat de dmesg:

[ 56.238194] device eth2 entered promiscuous mode [ 67.528410] device eth2 left promiscuous mode

Comment fait on pour sortir de ce mode???

Pour toute les suggestions que tu ma proposé je les ai capturé je peux te les transmettre si tu veux.

Rien d’anormal : c’est tcpdump qui met l’interface sur laquelle il écoute en mode promiscuous, sauf si on spécifie explicitement le contraire. D’ailleurs tu vois bien qu’elle repasse en normal quand on arrête la capture.
Pour les résultats, tu ne peux pas les donner ici ?