Bonsoir à tous,
J'ai fais l'acquisition il y a un certain temps d'une carte Linux Elektor. Je profite du temps qui m'est disponible afin de mener à bien le serveur web et autres applications apparu dans les numéros d'elektor dédiés.
Je suis donc repassé par les différentes opérations nécessaire pour mettre en oeuvre un Système d'exploitation Linux embarqué concernant le bootloader apex et le noyau linux-2.6.33-lpc313x. Le tout a été intégré sur une carte micro SD de 4Go.
Afin de réaliser le serveur web et d'autres applications j'ai acheté un adaptateur USB/LAN mais je n'avais pas pu acheter celui que recommandait le magazine. Ainsi, j'ai fais l'acquisition d'un adaptateur avec les caractéristiques suivantes :
-marque : D-LINK
-type : DUB-E100 USB 2.0 Fast Ethernet Adapter
-révision : H/W Ver.:C1
-composant principale : AX88772 et j'ai vu sur internet que pour la révision C1 que c'était le composant AX88772[b]B/b
[b]Le driver disponible avec la carte elektor[/b] ne supportant pas l'AX88772, je cherche à obtenir un driver qui fonctionne correctement pour mon AX88772.
J'ai cherché toute la journée sur X sites différents : D-link, asix, des forums, …
D-Link : [url]http://support.dlink.com/ProductInfo.aspx?m=DUB-E100[/url]
asix : [url]http://www.asix.com.tw/download.php?sub=guide[/url]
[b]J'obtient des résultats mais tous différents :[/b]
[b][u]Cas 1 (driver du CD) :[/u][/b] le makefile une fois le driver linux téléchargé ne me permet pas d'obtenir un .o et un .ko
[b][u]Cas 2 :[/u][/b] la compilation du driver fonctionne (.o et .ko). Maintenant, je met les différents constituant du driver asix.c asix.h axusbnet.c axusbnet.h dans le noyau embarqué au chemin suivant : linux-2.6.33-lpc313x/drivers/net/usb/
Lorsque au chemin suivant (linux-2.6.33-lpc313x) je lance un [code]make modules[/code] j'ai des erreurs et je vous dispense de la liste, je vous donne juste le début et la fin
[b][u]Cas 3 :[/u][/b] celui qui comporte le moins d'erreurs
Voici l'erreur
[code]jo@008:~/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source$ makemake -C /lib/modules/3.13.0-45-generic/build SUBDIRS=/home/jo/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source modules
make[1]: entrant dans le répertoire « /usr/src/linux-headers-3.13.0-45-generic »
CC [M] /home/jo/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source/asix.o
In file included from /home/jo/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source/asix.c:41:0:
/home/jo/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source/axusbnet.c: In function ‘axusbnet_probe’:
/home/jo/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source/axusbnet.c:1228:3: error: implicit declaration of function ‘dbg’ [-Werror=implicit-function-declaration]
dbg ("can't kmalloc dev");
^
cc1: some warnings being treated as errors
make[2]: *** [/home/jo/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source/asix.o] Erreur 1
make[1]: *** [module/home/jo/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source] Erreur 2
make[1]: quittant le répertoire « /usr/src/linux-headers-3.13.0-45-generic »
make: *** [default] Erreur 2
jo@008:~/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source$
[/code]
En cherchant sur internet j'ai même réussi à trouver une mise à jour du fichier asix.c de la part des développeurs :
[url]http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ed3770a9cd5764a575b83810ea679bbff2b03082[/url]
Mais rien n'y fait!
Vous pouvez voir avec cette recherche google que c'est belle et bien "recherché":
[url]https://www.google.fr/search?client=ubuntu&channel=fs&q=S%2FN+R10I3D4004620+DUB-E100+DLINK&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=3cDTVOfLCInBbKyLgLAM#channel=fs&q=H%2FW+ver+c1+DUB-E100+D%27LINK[/url]
Le site d'asix : [url]http://asix.com.tw/faq.php?op=faqdetail&PItemID=105&FaqNoID=#607[/url]
En allant voir sur [b]le forum d'elektor[/b] j'ai aussi vu qu'il fallait faire une modification dans le fichier asix.c : même problème rencontré mais non résolu
http://forum.elektor.com/viewtopic.php?f=2698569&t=2401140&start=10
Il est également nécessaire d’avoir au moins un des supports EHCI, OHCI et UHCI de compilé sur notre noyau pour le bon fonctionnement du driver.
[url]http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/ch09s02.html[/url]
Peut être d’autre piste de driver si le problème à propos du makefile existe :
[url]http://www.filewatcher.com/p/linux-2.6.33.17.tar.gz.84601951/linux-2.6.33.17/drivers/net/usb-0.htm[/url]
Je cherche désespérément un moyen de remédier à ce problème de driver mais … Je vous donne la version avec laquelle j'ai eu le moins de bug, il en reste encore un à la compilation.
Des liens dropbox pour le moment, je ne me suis pas mis à un autre dépose fichier encore :
-driver du CD (marche pas) : [url]https://www.dropbox.com/s/14whgqrqva2nb6p/LINUX2.6.14_REV101.bz2?dl=0[/url]
-driver de chez asix : [url]https://www.dropbox.com/s/lim6v3gruzshojk/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source.bz2?dl=0[/url]
Merci d'avance.
# kernel plus recent
Posté par NeoX . Évalué à 3.
y a pas plus recent pour le kernel ?
il aurait alors peut-etre un driver pour ta carte ?
liste des noyaux officiels
https://www.kernel.org/
[^] # Re: kernel plus recent
Posté par electro575 . Évalué à 1.
En fait j'utilise le noyau qu'ils ont donné pour le projet pour le moment. J'ai trouvé un driver mais il faudrait que j'arrive effectuer une cross compilation avec pour ma carte linux elektor.
Malheureusement je ne sais pas trop comment procéder.
[^] # Re: kernel plus recent
Posté par NeoX . Évalué à 2.
je diras "de la meme maniere que tu as compilé le driver pour le kernel existant sur ta carte"
[^] # Re: kernel plus recent
Posté par electro575 . Évalué à 1.
Le problème c'est que j'ai juste fait une commande :
make zImage -> /driver/net/usb/asix.c créé
make modules -> /drover/net/usb/asix.ko créé
Autrement je ne sais rien de plus. Juste qu'ils utilisent une chaine d'outils armv5-qte-5.0 à l'aide de ce script :
P1=/opt/eldk-5.0/armv5te/sysroots/i686-oesdk-linux/usr/bin/armv5te-linux-gnueabi/
P2=/opt/eldk-5.0/armv5te/sysroots/i686-oesdk-linux/bin/armv5te-linux-gnueabi/
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
export PATH=$P1:$P2:$PATH
[^] # Re: kernel plus recent
Posté par NeoX . Évalué à 3. Dernière modification le 09 février 2015 à 13:29.
en effet, cela explique bien des choses,
ton ordi utilise un processeur d'architecture x86 (32 ou 64bits)
ta carte elektor utilise un processeur d'architecture ARM
tu ne peux donc pas juste faire un
make && make install
il te faudra :
une petite recherche google sur les mots "linux cross-compilation armv5"
http://lmgtfy.com/?q=linux+cross-compilation+armv5
et en ajoutant le modele de la carte
http://lmgtfy.com/?q=linux+cross-compilation+carte+elektor+armv5
on obtient meme un lien vers un journal linuxfr dans lequel tu aura surement des pistes
http://linuxfr.org/users/cjlano/journaux/chaine-s-de-compilation-arm
[^] # Re: kernel plus recent
Posté par electro575 . Évalué à 1.
J'essai de faire la cross compilation d'un driver que j'ai trouvé et qui devrait je pense bien marcher.
Lorsque j'essai de faire une cross-compilation du driver, il me demande les .h nécessaire !!!
jo@008:~/Bureau/embedded/projet_elektor/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source$ sudo arm-linux-gnueabi-gcc -o asix asix.c
asix.c:29:26: erreur fatale: linux/module.h : Aucun fichier ou dossier de ce type
compilation terminée.
jo@008:~/Bureau/embedded/projet_elektor/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source$
Je pense prendre ceux du noyau linux embarqué mais je ne sais pas ou les prendre
[^] # Re: kernel plus recent
Posté par electro575 . Évalué à 1.
include linux/version.h
//include linux/config.h
ifdef CONFIG_USB_DEBUG
define DEBUG
endif
include linux/module.h
include linux/kmod.h
include linux/sched.h
include linux/init.h
include linux/netdevice.h
include linux/etherdevice.h
include linux/ethtool.h
include linux/workqueue.h
include linux/mii.h
include linux/usb.h
include linux/crc32.h
[^] # Re: kernel plus recent
Posté par NeoX . Évalué à 2.
cross compiler, ce n'est pas juste lancé la commande,
c'est installé les libs, des sources de l'architecture cible, et probablement lancer la compilation dans un chroot pour que ca cherche dans les bons dossiers
# Pas de mélange
Posté par Mali (site web personnel) . Évalué à 3.
tu dis utiliser un kernel 2.6.33 ( linux-2.6.33-lpc313x ) et dans tes logs de compil on trouve :
Soit tu utilises un 2.6.33, soit un 3.13.0, mais si tu essayes de mixer les 2 tu n'auras que des problèmes.
[^] # Re: Pas de mélange
Posté par electro575 . Évalué à 1.
Oui tu as raison, j'aimerais compiler le driver fourni par le constructeur en cross compilation pour ma carte linux elektor mais je ne sais pas trop comment m'y prendre et quelles étapes lancer.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.