Je dois m'arrêter pour aujourd'hui. Je reprendrais dès que j'aurais du temps. Peut être demain.
Je ne résisterais pas à l'envie de retenter. Voila.
Je posterai mes résultats sur le forum.
Merci beaucoup pour tes interventions, bonne soirée
Je dois m'arrêter pour aujourd'hui. Je reprendrais dès que j'aurais du temps. Peut être demain.
Je ne résisterais pas à l'envie de retenter. Voila.
Je posterai mes résultats sur le forum.
Merci beaucoup pour tes interventions, bonne soirée
Il faudrait que je fasse une compilation pour ma carte donc de la cross-compilation du driver.
Le souci c'est que je n'ai pas de makefile pour faire ça.
Si j'ai bien saisi la philosophie, une fois le noyau et les modules sur la carte SD il suffit d'envoyer les nouveaux .ko (ou modules) pour qu'ils soient "fonctionnel".
Comment faire pour passer d'un .c et .h en .o et .ko en cross-compilation.
Salut,
C'est pas clair ce qui précède...
ligne 1 : une compilation pour ma carte donc de la cross-compilation du driver.
et pas du noyau et des autres modules ?
Comment ces choses sont-elles générées ?
ligne 3 : oui, c'est ce que je pense (mais encore une fois, je n'ai jamais joué avec tout ça)
ligne 4 : si tu réponds au point 1 tu répondras automatiquement à ce point-là.
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
Le noyau et le module ont été généré avec la commande : make zImage et make modules (dans le chemin d'accès du noyau)
Je ne connais pas ces règles ni comment est constitué leur makefile. La seule chose que je sais c'est qu'ils utilisent un fichier set.sh avant de réaliser ces deux commandes (make zImage et make modules) de cross compilation.
C'est tout ce que je sais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 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
Ils utilisent une chaîne d'outils ARM (armv5te-qte-5.0)
Apparement pour compiler un fichier .c en executable, ils utilisent la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part arm-linux-gnueabi-gcc -o hello hello.c
Je pense que je vais m'arrêter la parce que sinon je vais y passer un temps fou. En tout cas merci. Il faudrait que je trouve un produit équivalent au driver de base que j'ai avec la carte.
Merci beaucoup
Bon, si je devais faire, je tenterais de
- recopier le dossier du AX88772B dans drivers/net/usb des sources du noyau cible, puis cd dans le dossier AX... ;
- exécuter ton set.sh ;
- lancer make et voir ce que ça donne (fichiers .o et .ko générés ?)
Mais encore une fois je n'y connais rien ! Ta doc Elektor n'en parle pas ?
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
J'ai déjà essayé ce genre de manip mais au final ça ne fonctionne pas et je ne sais pas pourquoi.
Ca n'est pas grave, c'est très gentil à toi de me conseiller tout de même.
Je vais tenter de regarder l'après-midi. Je vais déjà me faire un petit récapitulatif de ce que j'ai fais.
Merci à toi
Voici un petit récapitulatif qui je pense est on ne peut plus clair. Maintenant cherche à savoir si il n'existe plus de matériel compatible avec le driver de la carte du magazine...
systeme_linux_embarque_2.doc
Ben non, pas du tout.
Parce qu'on peut y lireet juste après=> Solution : une fois le driver compilé pour la carte, transférer le .ko (Kernel Objet) dans la carte SD et c’est gagnéAlors c'est gagné ou il y a des problèmes ?Plusieurs problèmes
Ce point doc récapitulatif, ici on s'en fiche, dis-nous où tu en es et où tu coinces (et pas de messages "ça marche pas").
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
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 !!!
Je ne sais pas quel .h prendre. A mon avis celui du noyau linux embarqué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 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$
Seulement à titre informatif :
On utilise la chaîne d'outi arm :
On a aussi le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 chaîne d'outils armv5te-qte-5.0 jo@008:~$ armv5te-gcc --version armv5te-gcc (GCC) 4.5.1 Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sudo apt-get install gcc-arm-linux-gnueabi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #!/bin/bash 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
#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>
J'ai récupéré les .h dans le chemin d'accès suivant : /home/jo/Bureau/embedded/Dl/ElektorLinuxBoardDownload_20120509/linux-2.6.33-lpc313x/include/linux/
Je pense que c'est le chemin qu'il faut.
Lorsque j'essai de compiler :
Il doit y avoir un problème de dépendance ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 jo@008:~/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.1_Source$ sudo arm-linux-gnueabi-gcc -o asix.o asix.c asix.c:29:26: erreur fatale: linux/module.h : Aucun fichier ou dossier de ce type compilation terminée. jo@008:~/Bureau/Driver_adaptateur_usb_lan/PAS_MAL/AX88772B_772A_760_772_178_LINU
Oui, ça me parait bien comme idée.
Et où les as-tu mis ?
Je pense que c'est le chemin qu'il faut. Comment dis-tu au compilateur qu'il sont là où ils sont ?
ou un problème de path, ou un problème de découverte des .h par le compilateur.
Moi j'ai dit, il y a quelques jours,
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
J'ai tenté de faire la compilation avec le noyau, j'obtiens asix.ko voulu :
Le problème c'est que sur la carte je n'ai pas de hci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 jo@008:~/Bureau/essai_compile/ElektorLinuxBoardDownload_20120509/linux-2.6.33-lpc313x$ make modules CHK include/linux/version.h CHK include/generated/utsrelease.h make[1]: « include/generated/mach-types.h » est à jour. CALL scripts/checksyscalls.sh CC [M] drivers/net/usb/asix.o In file included from drivers/net/usb/asix.c:41:0: drivers/net/usb/axusbnet.c: In function 'axusbnet_probe': drivers/net/usb/axusbnet.c:1329:1: warning: label 'out' defined but not used include/linux/netdevice.h:1030:2: warning: 'net' may be used uninitialized in this function drivers/net/usb/axusbnet.c:1205:22: note: 'net' was declared here Building modules, stage 2. MODPOST 49 modules CC drivers/net/usb/asix.mod.o LD [M] drivers/net/usb/asix.ko jo@008:~/Bureau/essai_compile/ElektorLinuxBoardDownload_20120509/linux-2.6.33-lpc313x$
puis il ne me retourne rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part lsmod |grep hci
Ah ah ! Bien joué
Par contre, là,
Faudrait voir les logs (/var/log/messages), cherche hci et poste.
Exemple sur ma machine (y a pas tout) :
EDIT : on est bien d'accord que quand tu dis Le problème c'est que sur la carte je n'ai pas de hci, c'est suite à boot sur le noyau installé sur la carte SD, hein ?ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
uhci_hcd: USB Universal Host Controller Interface driver
xhci_hcd 0000:01:00.0: xHCI Host Controller
xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1
ehci-pci: EHCI PCI platform driver
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: xHCI Host Controller
usb usb1: Manufacturer: Linux 3.8.13 xhci_hcd
xhci_hcd 0000:01:00.0: xHCI Host Controller
xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2
usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: xHCI Host Controller
usb usb2: Manufacturer: Linux 3.8.13 xhci_hcd
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
J'ai compilé avec le noyau et le changement d'asix.c et d'autres fichiers nécessaire :
Voici l'erreur sur la carte :
au moins on a quelque chose, on avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 root@gnublin:~# modprobe asix Unable to handle kernel NULL pointer dereference at virtual address 000002e0 pgd = c0654000 [000002e0] *pgd=30712031, *pte=00000000, *ppte=00000000 Internal error: Oops: 817 [#1] last sysfs file: /sys/module/mii/initstate Modules linked in: asix(+) usbnet pegasus mii CPU: 0 Not tainted (2.6.33 #27) PC is at axusbnet_probe+0x4c/0x3c8 [asix] LR is at kobject_get+0x14/0x1c pc : [<bf02021c>] lr : [<c0112bf4>] psr: 20000013 sp : c0371e50 ip : 00008563 fp : 0001b2e8 r10: c04eec68 r9 : 00000000 r8 : c04eec00 r7 : bf022f2c r6 : bf023f26 r5 : c04ebaa0 r4 : c04ebac0 r3 : bf0240b8 r2 : 00000008 r1 : bf022c20 r0 : 00000000 Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 0005317f Table: 30654000 DAC: 00000015 Process modprobe (pid: 475, stack limit = 0xc0370270) Stack: (0xc0371e50 to 0xc0372000) 1e40: c04ebaa0 c04eec00 bf024560 bf024530 1e60: c0370000 bf022c20 0001b2e8 c04ebac0 c04ebaa0 c04eec00 bf024560 bf024530 1e80: 00000000 bf022c20 0001b2e8 c0165bf4 c04ebac0 bf024560 bf024560 00000000 1ea0: c0022f68 c0370000 00000000 c01400b8 c04b5280 c04ebac0 00000000 c04ebac0 1ec0: c04ebaf4 bf024560 00000000 c01401f8 bf024560 c0371ee0 c0140198 c013f2f8 1ee0: c04350f8 c04f5b70 bf024560 bf024560 c04f5240 c032c4e0 00000000 c013f9c8 1f00: bf023f26 bf023f26 00000070 bf024560 bf024530 bf023f26 bf024560 c0022f68 1f20: 00000000 c0140420 bf024558 bf0245d0 bf024530 bf023f26 bf024560 c0022f68 1f40: 00000000 c0164b4c c0370000 bf0245d0 00000000 bf028000 00000000 c0022444 1f60: bf0245d0 bf0245d0 00000000 0001b040 0000d779 bf0245d0 00000000 0001b040 1f80: 0000d779 c005d238 4000b000 0000d779 0001b040 0001b070 00000000 00000000 1fa0: 00000080 c0022dc0 0001b070 00000000 4000b000 0000d779 0001b040 00000000 1fc0: 0001b070 00000000 00000000 00000080 00000000 0001b070 0001b008 0001b2e8 1fe0: 0001b040 be83a9ac 0000bcc0 420e0d54 60000010 4000b000 00000325 00000326 [<bf02021c>] (axusbnet_probe+0x4c/0x3c8 [asix]) from [<c0165bf4>] (usb_probe_interface+0x138/0x1a4) [<c0165bf4>] (usb_probe_interface+0x138/0x1a4) from [<c01400b8>] (driver_probe_device+0xe4/0x1c4) [<c01400b8>] (driver_probe_device+0xe4/0x1c4) from [<c01401f8>] (__driver_attach+0x60/0x84) [<c01401f8>] (__driver_attach+0x60/0x84) from [<c013f2f8>] (bus_for_each_dev+0x4c/0x78) [<c013f2f8>] (bus_for_each_dev+0x4c/0x78) from [<c013f9c8>] (bus_add_driver+0xa8/0x234) [<c013f9c8>] (bus_add_driver+0xa8/0x234) from [<c0140420>] (driver_register+0xa8/0x12c) [<c0140420>] (driver_register+0xa8/0x12c) from [<c0164b4c>] (usb_register_driver+0x64/0x128) [<c0164b4c>] (usb_register_driver+0x64/0x128) from [<c0022444>] (do_one_initcall+0x60/0x1b0) [<c0022444>] (do_one_initcall+0x60/0x1b0) from [<c005d238>] (sys_init_module+0xb8/0x1dc) [<c005d238>] (sys_init_module+0xb8/0x1dc) from [<c0022dc0>] (ret_fast_syscall+0x0/0x28) Code: e1a00008 eb44e895 e3a00000 e59f3344 (e58082e0) ---[ end trace a49aadd0b01fec34 ]--- Segmentation fault root@gnublin:~#
Je vais manger un morceau. Je reprends après
En prenant le noyau de base, j'obtiens sur ma carte les résultats suivants :
Malheureusement quand il s'agit d'attribuer une adresse au périphérique, ça ne fonctionne plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 root@gnublin:~# modprobe asix eth0: register 'asix' at usb-lpc-ehci.0-1, ASIX AX88772 USB 2.0 Ethernet, usbcore: registered new interface driver asix
Pour ces erreurs je les règlerai demain avec le lien du forum d'elektor. Ils ont l'air d'avoir trouvé la solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 root@gnublin:~# ifup eth0 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1 eth0: asix_rx_fixup() Bad Header Length eth0: asix_rx_fixup() Bad RX Length 32914 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1 root@gnublin:~# eth0: asix_rx_fixup() Bad Header Length eth0: asix_rx_fixup() Bad RX Length 32914 eth0: asix_rx_fixup() Bad Header Length eth0: asix_rx_fixup() Bad RX Length 32914
On verra ça demain.
Merci pour tes messages.
Quel noyau de base ? Voir aussi ma question en fin de cette réponse...
Et si tu avais mis la sortie de lsmod | grep hci ? Depuis le temps qu'on en parle, pour une fois qu'il y a quelque chose, tu ne donnes pas beaucoup d'infos...
Et si tu avais mis le lien, j'aurais pu lire (tu l'as peut-être déjà mis en début de discussion mais je ne sais pas lequel c'est, et de toute façon il y avait d'autres problèmes)
Ouais mais tu joues pas bien le jeu : je te pose une question et tu n'y réponds pas, donc je ne sais pas sur quel pied danser et donc comment avancer, et il faut que je repose la question...
Perdons du temps...
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
Le noyau de base pour ma carte : lpc313x ...
Lorsque je lance la commandeaucune information ne m'est retournée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part lsmod | grep hci
Voici le lien pour le forum : http://forum.elektor.com/viewtopic.p...01140&start=10
Deux autres problèmes sont réglés par l'ajout de 2 paquet de ligne de code que je détaillerai une fois que je les aurais appliqué.
En ce qui concerne le lancement du module ehci qui est installé dans le noyau linux embarqué, il doit effectivement se lancer au boot de la carte SD.
J'avance un peu et je fais un recapitulatif
Donc ou bien tu n'as pas booté sur la carte, ou bien toute cette partie des drivers n'est pas en modules mais codée en dur dans le noyau.
C'est un noyau 3.13 ?
J'aime bien le dernier post de cette page (du 5 mars 2013), et le lien présent dans l'avant-dernier post, qui résume assez bien commandes et emplacements des fichiers.
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager