Forum Linux.embarqué Carte Linux Embedded Elektor

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
6
fév.
2015

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  . É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  . É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  . É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  . É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  . É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 :

            • soit compiler sur la carte elektor (si y a la place, les outils necessaires et la puissance de calcul suffisante)
            • soit passer par la cross compilation,

            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  . É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  . É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  . É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  (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 :

    … /lib/modules/3.13.0-45-generic/ ….*
    make[1]: quittant le répertoire « /usr/src/linux-headers-3.13.0-45-generic »

    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  . É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.