Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1235 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  KERNEL 2.6.12 et IPW2200

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

KERNEL 2.6.12 et IPW2200

n°695937
emericv
Posté le 20-06-2005 à 23:33:59  profilanswer
 

Bonjours !
 
Je viens de compiler le nouveau kernel 2.6.12, mais quand je compile le driver IPW2200 ça me donne cette erreur :
 

Citation :

make -C /lib/modules/2.6.12-mr-ti.com/build SUBDIRS=/root/ipw2200/ipw2200-1.0.4 MODVERDIR=/root/ipw2200/ipw2200-1.0.4 modules
make[1]: Entering directory `/usr/src/linux-2.6.12'
  CC [M]  /root/ipw2200/ipw2200-1.0.4/ipw2200.o
In file included from /root/ipw2200/ipw2200-1.0.4/ipw2200.h:50,
                 from /root/ipw2200/ipw2200-1.0.4/ipw2200.c:33:
/root/ipw2200/ipw2200-1.0.4/net/ieee80211.h:722: error: redefinition of `is_multicast_ether_addr'
include/linux/etherdevice.h:67: error: `is_multicast_ether_addr' previously defined here
make[2]: *** [/root/ipw2200/ipw2200-1.0.4/ipw2200.o] Erreur 1
make[1]: *** [_module_/root/ipw2200/ipw2200-1.0.4] Erreur 2
make[1]: Leaving directory `/usr/src/linux-2.6.12'
make: *** [modules] Erreur 2


 
Quelqun aurait-il eu cette erreur ?
 
merci d'avance ...

mood
Publicité
Posté le 20-06-2005 à 23:33:59  profilanswer
 

n°696233
L0k
Posté le 21-06-2005 à 15:52:12  profilanswer
 

oui j'ai exactement la même, je ne sais pas pourquoi, mais j'ai posté dans le topic officiel  
 
http://forum.hardware.fr/hardwaref [...] 1401-1.htm

n°696241
0x90
Posté le 21-06-2005 à 16:11:09  profilanswer
 

Bha suffit de lire, c'est marqué, y'a une variable redéfinie, z'avez qu'a la renommer proprement dans un des deux ( de préférence dans le driver ipw2200 ), et ca devrait aller ;)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°696253
L0k
Posté le 21-06-2005 à 16:25:15  profilanswer
 

lol ok merci.. je vais essayer

n°696270
L0k
Posté le 21-06-2005 à 16:44:21  profilanswer
 

ça marche nickel, mais question, je connais pas bcp le c, y a une notation à suivre ? parce que la j'ai juste rajouté un 2 à la fonction, est c'est assez moche mdr

n°696272
0x90
Posté le 21-06-2005 à 16:47:43  profilanswer
 

montre le bout de code que t'as touché pour voir ... ( avec l'original de pref ... )


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°696435
L0k
Posté le 22-06-2005 à 10:50:57  profilanswer
 

désolé pour le temps de réponse...
 

Code :
  1. extern inline int is_multicast_ether_addr2(const u8 *addr)
  2. {
  3. return ((addr[0] != 0xff) && (0x01 & addr[0]));
  4. }


 
L'original est pareil sauf sans le 2, et tous les appels de la fonction dans les autre fichiers ont été modifiés. voila..

n°696538
emericv
Posté le 22-06-2005 à 13:08:13  profilanswer
 

merci beaucoup pour vos réponses !
je vais aissayer ça

n°696588
0x90
Posté le 22-06-2005 à 15:14:54  profilanswer
 

L0k a écrit :

désolé pour le temps de réponse...
 

Code :
  1. extern inline int is_multicast_ether_addr2(const u8 *addr)
  2. {
  3. return ((addr[0] != 0xff) && (0x01 & addr[0]));
  4. }


 
L'original est pareil sauf sans le 2, et tous les appels de la fonction dans les autre fichiers ont été modifiés. voila..


 
Si t'as modifié les appels de fonctions dans les fichiers ca va alors ;)
( Sinon il serait entrain d'appeller l'autre fonction (celle du fichier du kernel qui entre en conflit et la ... aieaieaie :/ )
 
tu peut ptêtre poster un diff pour faciliter la chose pour les autres ;) (bien qu'il est fort possible qu'un patch plus "propre" existe sous peu...
D'ailleurs si ca se trouve la fct qui est dans le kernel est la même et il a été décidé de l'integrer ( faudrait aller voir le code) et dans ce cas la, la manip propre serait de virer la déclaration faite dans le module ipw2200 ;)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°696670
L0k
Posté le 22-06-2005 à 18:02:16  profilanswer
 

dans le kernel il y a ça comme code, ça ressemble bcp  
 

Code :
  1. /**
  2. * is_zero_ether_addr - Determine if give Ethernet address is all
  3. * zeros.
  4. */
  5. static inline int is_zero_ether_addr(const u8 *addr)
  6. {
  7. return !(addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]);
  8. }
  9. /**
  10. * is_multicast_ether_addr - Determine if the given Ethernet address is a
  11. * multicast address.
  12. *
  13. * @addr: Pointer to a six-byte array containing the Ethernet address
  14. *
  15. * Return true if the address is a multicast address.
  16. */
  17. static inline int is_multicast_ether_addr(const u8 *addr)
  18. {
  19. return addr[0] & 0x01;
  20. }
  21. /**
  22. * is_valid_ether_addr - Determine if the given Ethernet address is valid
  23. * @addr: Pointer to a six-byte array containing the Ethernet address
  24. *
  25. * Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
  26. * a multicast address, and is not FF:FF:FF:FF:FF:FF.
  27. *
  28. * Return true if the address is valid.
  29. */
  30. static inline int is_valid_ether_addr(const u8 *addr)
  31. {
  32. /* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to
  33.  * explicitly check for it here. */
  34. return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr);
  35. }


 
mais dans ce cas je me demande si il faudrait pas plutot utiliser is_valid_ether_addr ?


Message édité par L0k le 22-06-2005 à 18:07:30
mood
Publicité
Posté le 22-06-2005 à 18:02:16  profilanswer
 

n°696736
0x90
Posté le 22-06-2005 à 20:07:34  profilanswer
 

Nan il faut pas utiliser is_valid, il teste le contraire justement.
je sais pas ce que ca implique que l'adresse commence par ff ( c'est la seule diff entre la version du kernel et celle du module ), je suis entrain de vérifier, mais a terme je pense qu'il faut utiliser celle du kernel ;)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°696740
L0k
Posté le 22-06-2005 à 20:14:52  profilanswer
 

bon disons que c'est provisoire de toute façon, la prochaine version du pilote sera corrigée merci de tes conseils en tt cas.

n°696743
0x90
Posté le 22-06-2005 à 20:21:06  profilanswer
 

Bon de ce que j'ai vu, ff:ff:ff:ff:ff:ff est une adresse de broadcast (utilisé notament par ARP) ne tester que le premier ca doit être une version "rapide" du test de broadcast je suppose, pour être "propre" il faudrait donc :
 
- virer la déclaration de is_multicast_ether_addr() dans le module
- avoir une fonction is_broadcast_ether_addr() ( qui test ff ) (ptêtre qu'elle existe déja )
- que le module face un is_multicast && !is_broadcast à la place de l'ancien multicast.
 
Alternativement, on pourrait voir ce qui se passe si on utilise simplement le test is_multicast du noyo sans utiliser de is_broadcast, peut-être que d'avoir un "true" en cas de broadcast ne gène en rien la carte, et ca serait l'idéal, bonne séance de test si ca te dis ^^
 
Enfin le patch que t'as fait suffit amplement pour le moment, mais je suis curieux de voir la décision qui sera finalement prise ...


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°696771
L0k
Posté le 22-06-2005 à 21:01:43  profilanswer
 

ouais ça serait intéressant de voir, mais j'ai pas de résau wifi à portée en ce moment.. je peux toujours voir si ça plante pas le tout.. mais je peux faire aucun tests..


Message édité par L0k le 22-06-2005 à 21:02:00
n°696774
L0k
Posté le 22-06-2005 à 21:09:40  profilanswer
 

mhh (addr[0] != 0xff) je sais pas si c'est un test broadcast rapide, parce que juste après dans le code du modules y a un fonction pour vérifier si c'est broadcast...
 

Code :
  1. extern inline int is_broadcast_ether_addr(const u8 *addr)
  2. {
  3. return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) &&   \
  4.  (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff));
  5. }


 
et la ça vérifie tout.
 
Y a p'tet des spécfication particulières pour un multicast qui interdit d'avoir 0xff sans pour autant que ça soit du broadcast...

n°696793
splurf
Rm -Rf / && oops :o
Posté le 22-06-2005 à 21:42:11  profilanswer
 

utilisez le patch mm1 -> il contient les ipw2200 ainsi que reiser4


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  KERNEL 2.6.12 et IPW2200

 

Sujets relatifs
kernel 2.6.11-6mdkkernel panic with mandrake 10.2 x86_64 pour athlon 64
[Debian]kernelCompile kernel pour boot sur USB
Kernel 2.6.11 et S-ATA, boot très long !Probleme shutdown apres installation nouveau kernel
Kernel Panic (oops) avec un celeron sur adaptateur Slot1/s370 [argh][kernel] sources , patch etc.. quelque questions ;)
installation driver ati 8.12.10 sur kernel 2.6.11.8 : erreur agp3.cCompilation kernel necessaire ?
Plus de sujets relatifs à : KERNEL 2.6.12 et IPW2200


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR