Show Posts
Pages: 1 2 3 [4] 5
46  International / Français / Re: WR703N + VinciDuino on: August 22, 2012, 04:58:05 pm
Super !

Tu as trouvé pourquoi ça ne marchait pas ?

Je te conseille quand même d'installer une console USB avec un câble type CA42 à moins de 2€ et 3 coups de fer à souder, on ne sait jamais  smiley-grin

Si tu maîtrise "vi" le minimum nécessaire pour éditer un fichier et le sauvegarder, il n'y a pas besoin de Luci : les fichiers de config sont dans "/etc/config" et sont en texte clair, leur description est dispo ici.

Pour ce qui est de l'overlay, c'est assez simple, en fait:
  • tu formattes une clé USB avec une seule partition primaire en ext4 sur ton PC (gparted conseillé, sinon fdisk si tu connais)
  • tu installes les drivers noyaux nécessaires, à savoir : kmod-usb-core, kmod-usb2, kmod-usb-ohci, kmod-usb-storage et bien sûr kmod-fs-ext4 (cf. ici)
  • il faut aussi installer le paquet block-mount
  • à l'insertion de la clé USB, tu devrais voir passer des choses en faisant "dmesg" (dont le nom de la partition, normalement "sda1")
  • mkdir /mnt/sda1, puis mount -t ext4 /dev/sda /mnt/sda1, puis ls /mnt/sda1, tu dois avoir un "lost+found"
  • tu recopies le contenu de la Flash SPI sur le disque USB: tar -C /overlay -cvf - . | tar -C /mnt/sda1 -xf -
  • tu modifies le fichier /etc/config/fstab comme suit et tu rebootes :
Code:
config mount
option target /overlay
option device /dev/sda1
option fstype ext4
option options rw,sync,noatime,commit=120
option enabled 1
option enabled_fsck 0

L'option "noatime" permet de ne pas mettre à jour en permanence les dates d'accès aux fichiers, et "commit=120" permet de mettre en cache les accès pendant 120 s (au lieu de 5 s par défaut) : cela permet d'améliorer BEAUCOUP la durée de vie de la clé USB Flash  smiley-cool

Presque tout cela est bien expliqué dans le lien ci-dessus, qui détaille le "pivot overlay extroot".
47  International / Français / Re: WR703N + VinciDuino on: August 21, 2012, 03:31:32 pm
Quote
Il faut alors changer de shell en tapant:
Code:
sudo update-alternatives --install /bin/sh sh /bin/bash 100

Fait mais ca ne change pas le problème smiley-sad
J'ai bien bash maintenant au lieu de dash mais l'erreur est toujours là

Bon, c'est déjà mieux, mais c'est pas encore çà! Tu es sûr d'avoir tous les outils de compilation installés (vérifie avec "sudo dpkg -l build-essential") ? Sinon, il faut un :
Code:
sudo aptitude update; sudo aptitude install build-essential

Quote
J'ai réussi à générer un paquet "binutils-avr" ...
Mais pour le "gcc-avr" et l' "avr-libc", c'est une autre paire de manche...

perso, je me contenterais d'AVRdude afin de pouvoir reflasher l'Arduino en remote.
Recompiler les sketches sur le WR703 lui même me parait inutile (pour l'instant smiley-wink).
Bon courage!


Ca ne serait pas cool de faire tourner l'IDE Arduino dans un navigateur Web pointant sur le serveur intégré au WR703N ?

Le couple WR703N + VinciDuino deviendrait alors un outil complètement indépendant du PC/Mac/iPhone/Android !
48  International / Français / Re: WR703N + VinciDuino on: August 21, 2012, 02:51:22 pm
J'ai réussi à générer un paquet "binutils-avr" qui tient la route (pour ceuce qui sont intéressés, les patches et le makefile OpenWRT), à placer dans le répertoire "feeds/packages/devel" du "trunk" d'OpenWRT, suivi d'un "./scripts/feeds update -i" pour ajouter le package et d'un "./scripts/feeds install -a" pour l'ajouter au menuconfig.

Mais pour le "gcc-avr" et l' "avr-libc", c'est une autre paire de manche...

En effet, il faut :
  • ...générer un compilateur sur une machine de travail linux-x86 (mon PC de travail)...
  • ... pour faire tourner sur une machine mips24kc (le WR703N)...
  • ... pour générer du code pour AVR (l'Arduino)

Ceci est compliqué par le problème dit "de la poule et de l'oeuf", à savoir qu'on a besoin à un moment donné de faire tourner le compilateur mips24kc => AVR pour générer un tas de chose (fichiers de démarrage, includes, etc.) qui ont eux-même besoin du compilateur pour être créés !

Cette configuration avec 3 architectures est connue en tant que "Canadian build", en référence au système politique Canadien qui comportait 3 partis politiques majeurs à l'époque où ce problème a été rencontré en premier.

En gros, on s'en tire en générant un compilateur intermédiaire linux-x86 => AVR pour générer ces fameux fichiers.

J'ai réussi à faire cette manip "à la mimine" à partir des sources et générer un gcc-avr+avr-libc qui tourne sur le WR703N, mais j'aimerai bien pouvoir le faire proprement en tant que package, et je me bats donc actuellement avec les makefiles OpenWRT smiley-sweat

Mon plus gros problème est de générer de manière conditionnelle des outils (qui vont dans le répertoire "tools" d'OpenWRT), à savoir ce fameux compilateur intermédiaire, lorsque l'utilisateur choisit de générer un compilateur AVR pour le WR703N.

Si quelqu'un a des idées sur le sujet, il est le bienvenu !
49  International / Français / Re: WR703N + VinciDuino on: August 21, 2012, 09:13:40 am
En fait, il faut faire :
Code:
make -j x (remplace x par le nombre de cœurs de ton cpu + 1)
J'ai jamais compris ce +1, puisse qu'au final tu as un nombre limité physiquement de threads ... +1 ou non ton cpu peut pas exécuter un nombre illimité de chose en parallèle ...
Du reste en regardant le man de make et les différentes doc sur le web tu trouve de tout, nb_threads, nb_threads + 1, ... smiley-zipper
D'après ce que j'ai pu voir à droite et à gauche (j'ai du mal à me souvenir où  smiley-red), cela correspond effectivement au nombre de "jobs" (et donc de "threads"), mais il y a toujours un thread principal qui lui ne fait qu'attendre la fin des autres.

Ps: en argument CLI unix que tu fasse -J8 ou -J 8 ça revient à la même chose.
Oui, par contre, n'est ce pas "j" minuscule et pas "J" majuscule ?

Ou mieux, utiliser "ccache", mais c'est plutôt délicat à faire marcher comme il faut smiley-razz
J'utilise ccache, mais c'est utile uniquement pour les recompilations incrémentielles, pas pour la premier compilation complète.
Mais c'est un gros bordel pour activer ccache dans menuconfig donc je préfére pas perdre barbudor avec.
C'est vrai que c'est un peu brutal comme mise en bouche  smiley-mr-green
50  International / Français / Re: WR703N + VinciDuino on: August 20, 2012, 04:03:08 pm
Code:
make -Jx (remplace x par le nombre de cœur de ton cpu)
En fait, il faut faire :
Code:
make -j x (remplace x par le nombre de cœurs de ton cpu + 1)
Ou mieux, utiliser "ccache", mais c'est plutôt délicat à faire marcher comme il faut smiley-razz
51  International / Français / Re: WR703N + VinciDuino on: August 20, 2012, 03:55:08 pm
Quote
Building package index...
(cd /home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64/packages; /home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64/scripts/ipkg-make-index.sh . > Packages && \
      gzip -9c Packages > Packages.gz \
   ) >/dev/null 2>/dev/null
make[2]: *** [package_index] Error 126
make[2]: Leaving directory `/home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64'
make[1]: *** [_call_image] Error 2
make[1]: Leaving directory `/home/barbu/openwrt/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64'
make: *** [image] Erreur 2

problème qui ne vient pas de moi apparemment : https://dev.openwrt.org/ticket/11943

Donc apparemment il va falloir que je me mette à Buildroot plus tôt que prévu  smiley-cry

Vous n'avez pas eu de problème particulier ?
Il suffit de suivre les indications ?

PS: Je suis partit sur un host en Xubuntu (simple, facile pour un non Linuxien comme moué). Mais apparemment la team OpenWRT est plutôt Arch linux qui me semble un peu trop "streamline" pour moi smiley-wink
Vous utilisez quoi de votre coté ?

J'utilise Ubuntu 12.04 LTS, remis à jour périodiquement depuis au moins 2 ou 3 ans.

Un piège classique avec les xxxUbuntu est que ceux-ci remplacent le Shell "bash" par un Shell "dash" qui est sensé être plus rapide pour le boot (ça reste à prouver  smiley-confuse), mais qui casse les scripts shell de compilation...

Un moyen de vériefier est de taper :
Code:
ls -l /bin/sh
lrwxrwxrwx 1 root root 4 août  11 19:25 /bin/sh -> bash

Si le tiens point sur "dash": bingo !

Il faut alors changer de shell en tapant:
Code:
sudo update-alternatives --install /bin/sh sh /bin/bash 100
52  International / Français / Re: WR703N + VinciDuino on: August 20, 2012, 03:43:12 pm
Je persiste et persiffle : je mesure bien un TXD (TP_OUT) à 2,7V ainsi que le VCC sur la résistance de pull-up R82 a coté de RXD (TP_IN).

Mon modèle est indiqué "Ver:1.6" sur l'étiquette derrière le boitier et "Rev:1.1" sur le PCB smiley-wink
Il n'y a eu a priori que 2 versions de PCB: 1.0 (peu répandue) et 1.1, donc ce n'est pas un problème de version. J'ai d'ailleurs détaillé le PCB 1.1 composant par composant dans le Wiki OpenWRT, et d'après les points de tests dûment étiquetés, il y a du 3,3 V, du 2,5 V, du 2,0 V et du 1,2 V, toutes ces tensions ayant une utilité identifiée.

C'est peut-être tout simplement un problème d'alimentation ? Ou alors ton multimètre qui a une résistance d'entrée trop faible ? j'ai déjà eu le cas avec un multimètre chinois à 10 euros... J'ai plus tendance à croire un scope avec une sonde calibrée 1 Mohms /20 pF, d'abord parce que c'est calibré et ensuite parce que je peux voir le résultat !

Mais après tout, qu'importe ? Mon WR703N tourne avec une adaptateur LVTTL (3,3 V) / USB depuis 6 mois sans soucis  smiley-mr-green

Je viens de télécharger le Image Generator d'OpenWRT (version stable 10.03.1) mais je suis pas sur que ce soit ce qu'il faut car ce package est daté de décembre 2011.

Pouvez vous me confirmer ce qu'il faut prendre ?

1ère étape pour moi : apprendre à configurer OpenWRT pour réduire au minimum a ce qui m'interesse.
En effet l'intérêt d'OpenWRT pour moi est d'avoir une distri Linux toute prête qui support la plateforme mais je n'ai pas besoin de toute la partie WRT (Wireless Router).
Ce que je veux obtenir dans un premier temps c'est :

- Linux
- Busybox, shell
- SSHd (dropbear)
- USB Mass Storage (pour mettre une clé USB ou un adaptateur de carte uSD)
- USB CDC Serial pour Arduino ou autres USB/TTL (CP21xx, FTDI, etc...)
- Ethernet
- Client Wifi (une configuration statique par fichier de config me convient très bien)

Je compte le faire d'abord avec Image Generator sans recompiler
Le "Image Generator" est plutôt fait pour rajouter des packages que pour en enlever. Le système de base est assez interdépendant au niveau des packages installés, et la seule façon d'enlever des choses va passer par une configuration des options de ces packages et une recompilation smiley-sweat

Et de toutes façons, il faut absolument partir du "trunk" avec Subversion ou un "snapshot" (vaut mieux le SVN !), car le WR703N n'est pas encore supporté dans les versions stables.

Après, il suffit de suivre à la lettre le Wiki OpenWRT (installation et utilisation).
53  International / Français / Re: WR703N + VinciDuino on: August 16, 2012, 11:08:08 am
Y en a marre de tous ces pseudos langages, les vrais programmeurs écrivent en C ou en Shell  smiley-mr-green
Les vrai programmeurs codent en assembleur, faut savoir parler directement avec la machine smiley-cool
Sérieusement, tout langages à ses avantages et ses inconvénients, il n'y as pas de "pseudo langages" smiley-wink

Je blague smiley, j'ai arrêté de compter vers les 20 (après, je n'ai plus assez de doigts et d'orteils) ! Non, ce qui est embêtant, c'est que sur une plateforme embarquée comme ici, on ne peut pas se permettre d'avoir du compilé C/C++, du Shell, du Lua, du Python, du Perl, du Ruby, du Tcl, du JavaScript, etc.

Surtout que vu la complexité du script Perl en question, c'est tout à fait possible de faire la même chose en Shell !

Oui, mais cela a l'air d'être le standard sur OpenWRT pour la configuration par interface Web  smiley-slim
Sérieux ?
Moi j'arrête pas de voir du lighttpd ou du nginx sur mes routeurs/switchs, ce serait bien d'avoir un comparatif des différents serveur web et de leur empreinte mémoire.
Je crois que Luci peut tourner sur lighttpd aussi. Le problème, c'est que c'est difficile pour pas mal d'utilisateurs qui ne veulent pas toucher aux fichiers de config en direct de se passer de Luci, à moins de re-écrire l'équivalent, mais là c'est une autre histoire...
54  International / Français / Re: WR703N + VinciDuino on: August 15, 2012, 04:27:29 pm
C'est en cours ! Je vais tenter d'écrire 3 packages OpenWRT, pour copier la structure de Debian : "binutils-avr", "gcc-avr" et "avr-libc" (cherchez l'intrus  smiley-grin)
Ok ok ça semble prometteur tout ça smiley

Ca y est ! Le plus dur c'était de faire le premier package  smiley-sweat En tous cas, c'est comme ça que je me rassure ! J'ai le binutils-avr qui s'installe et qui a l'air de fonctionner, à tester plus en profondeur :
Code:
root@TL-WR703N:~# opkg info binutils-avr
Package: binutils-avr
Version: 2.22-1
Depends: libc, zlib
Provides:
Status: install user installed
Section: devel
Architecture: ar71xx
Maintainer: Michel Stempin <michel.stempin@wanadoo.fr>
MD5Sum: 6a73a66a67960ee9287a00f5c5567bf2
Size: 6098030
Filename: binutils-avr_2.22-1_ar71xx.ipk
Source: feeds/packages/devel/binutils-avr
Description: Binary utilities supporting Atmel''s AVR targets
Installed-Time: 1345064729

root@TL-WR703N:~# avr-readelf --version
GNU readelf (GNU Binutils) 2.22
Copyright 2011 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.


Puis probablement un méta-package "arduino" qui inclut ces 3 là plus "avrdude" et les drivers USB pour l'Arduino.
Bonne idée, par contre pour le driver usb c'est juste du serial CDC classique (intégré de base).
Il ne devrait donc pas y avoir de modif à faire (si ce n'est de s'ajouter au groupe dialout) ?

Bon, tant mieux!

J'ai jeté un coup d'oeil aux différentes solutions. Franchement, le bout en ruby est assez facile à traduire en Shell pur... Ils ont vraiment utilisé ruby pour se faire plaisir ! C'est vrai que celle-ci a l'air plus aboutie que la seconde, mais les 2 ne gèrent pas bien certaines choses que ino semble gérer mieux :
Il existe un autre makefile "arduino" plus poussé avec un utilitaire en perl pour parser boards.txt.
Mais la méthode pour intégrer le .mk à son makefile est un peu ... méli mélo :
http://mjo.tc/atelier/2009/02/arduino-cli.html

Y en a marre de tous ces pseudos langages, les vrais programmeurs écrivent en C ou en Shell  smiley-mr-green

Je ne connais pas nginx... C'est un serveur HTTP ? Qu'est-ce qu'il peut apporter par rapport à uhttpd qui est utilisé par Luci ?
Ouaip, c'est un serveur HTTP hyper léger mais trés puissant, surtout pour faire des applications CGI-bin.
J'utilise pas Luci personnellement, ya plein de module mais je trouve ça trop usine à gaz.

Oui, mais cela a l'air d'être le standard sur OpenWRT pour la configuration par interface Web  smiley-slim

Le principal, c'est que cela soit plutôt léger en mémoire, sachant qu'il n'y aura pas énormément de connexions simultanées, et que le trafic sera faible : je comptais utiliser ACE pour la partie édition, et un maximum de JQuery + Twitter Bootstrap, en stockant les CSS/Javascript dans des fichiers séparés sur le WR703N pour bénéficier du cache navigateur. Je cherche si il n'y a pas déjà en OS une espèce d'IDE Web basée sur ACE ou équivalent...
55  International / Français / Re: WR703N + VinciDuino on: August 15, 2012, 02:10:52 pm
bonsoir
je n'ai pas tout bien suivi/assimilé de la manip, mais si j'ai bien compris il s'agi(rai)t de (re)programmer un .INO sur une base arduino distante connectée au WR703N et ça par la liaison ethernet (filaire ou WiFI)  ?

Oui, en gros, voici la situation existante: le WR703N peut être relié au Vinciduino par la console série et/ou l'USB, ce qui permet d'utiliser le WR703N comme un "super shield" Wifi+Ethernet+USB_host et donc au vinciDuino d'accéder au réseau Internet par le Wifi, l'Ethernet filaire ou même la 3G (avec une clé USB connectée au WR703N, chose pour laquelle il est prévu à l'origine...).

Mais en plus, avec cette manip, c'est comme si on installait l'IDE Arduino SUR le WR703N!!! Par le réseau, on édite le sketch .INO à l'aide d'un éditeur Javascript (cf. ci-dessus) servi par le serveur HTTP du WR703N, puis celui-ci lance le compilateur avr-gcc pour compiler le sketch et enfin avrdude pour le flasher sur le VinciDuino, avant d'offrir la possibilité se connecteur au VinciDuino par la voie série/le port USB...
56  International / Français / Re: WR703N + VinciDuino on: August 15, 2012, 01:12:56 pm
Bon reste plus qu'as faire un patch/paquet et tenter de le proposer sur le svn de openWRT smiley-sweat

C'est en cours ! Je vais tenter d'écrire 3 packages OpenWRT, pour copier la structure de Debian : "binutils-avr", "gcc-avr" et "avr-libc" (cherchez l'intrus  smiley-grin)

Puis probablement un méta-package "arduino" qui inclut ces 3 là plus "avrdude" et les drivers USB pour l'Arduino.

Je suis en train de compiler le package "binutils-avr".

La version makefile + générateur de code en ruby est la plus aboutie, mais il faut l'interpréteur ruby ...
La version makefile pure est un peu plus restrictive mais elle marche (c'est le principal).

J'ai jeté un coup d'oeil aux différentes solutions. Franchement, le bout en ruby est assez facile à traduire en Shell pur... Ils ont vraiment utilisé ruby pour se faire plaisir ! C'est vrai que celle-ci a l'air plus aboutie que la seconde, mais les 2 ne gèrent pas bien certaines choses que ino semble gérer mieux :

  • la détection automatique des librairies
  • la numérotation des lignes par rapport au source original, et non au .cpp généré
  • l'inclusion automatique des prototypes en tête des fichiers .cpp générés

J'ai bien réussi à installer le package "python_mini" pour ino, mais bon quand même, c'est lourd...

Projet trés intéréssant cet éditeur javascript !
Un duo nginx + makefile en FastCGI et cet éditeur pourrait donner quelque chose de trés intéressant.
Une sorte de Codebender fait maison en gros.

Voui !

Je ne connais pas nginx... C'est un serveur HTTP ? Qu'est-ce qu'il peut apporter par rapport à uhttpd qui est utilisé par Luci ?

Et oui, il faut toujours que je ne fasse pas comme tout le monde : au lieu de remonter le compilateur vers le "Cloud", je le descend vers le matériel !
57  International / Français / Re: WR703N + VinciDuino on: August 15, 2012, 05:57:06 am
Squonk42:
Pour le build de la toolchain avr-gcc tu t'est cassé la tête pour rien (enfin je crois bien)
https://dev.openwrt.org/ticket/8885
(et pour avrdude le package est intégré dans les feeds openWRT)

Pour la compilation arduino en CLI, moyennant un interpréteur ruby il y a un makefile avec générateur de code intégré ici :
https://github.com/takanuva/arduino-makefile

Ou encore la version classique en "pure makefile" :
http://arduino.cc/playground/OpenBSD/CLI

Bon d'accord, ce n'est pas une première alors  smiley-cry
EDIT: si, si, c'est une première ! Le ticket était une demande pour porter avr-gcc sous OpenWRT, mais cela n'a jamais été réalisé, et le ticket a été fermé il y a 8 jours comme "wontfix"...

Mais le ticket en question date de 18 mois, et le script de construction qui y figure de 2009 ! Pire, les packages binutils-2.17, avr-libc-1.4.6 et gcc-4.1.2 datent de 2007 !!!

J'ai vérifié un par un tous les patches cités : ils ont été intégrés depuis belle lurette et sont donc obsolètes. Il y a même encore dedans le support pour le format binaire COFF qui n'est plus utilisé. Il manque aussi la plupart des CPU récents, comme les ATmega128x et ATxmega et je crois aussi le support pour les petits ATtiny1x.

Pour ma part, j'ai compilé la toolchain avec les dernières versions stables, à savoir:
  • avr-libc-1.8.0
  • binutils-2.22
  • gcc-4.7.1
  • gmp-4.3.2
  • mpc-0.8.1
  • mpfr-2.4.2

Je n'ai pas recompilé avrdude pour le WR703N, car j'avais vu qu'il était déjà disponible en tant que package .ipkg.

Par contre, pour la compilation Arduino en CLI, je suis confus smiley-confuse Quel est l'outil le plus abouti ? Quelqu'un a-t-il une expérience avec les différentes solutions ?

Vous vous demandez peut-être pourquoi suis-je si excité tout d'un coup par la compilation en CLI ?

Mon but avec le CLI est de pouvoir automatiser la compilation et le flashage de sketches Arduino sur le WR703N, de manière à intégrer cela dans une interface Web basée sur uhttpd et un éditeur Javascript de grande classe (Ace,  à voir absolument : la démo live). Comme c'est du Javascript, cela tourne dans le navigateur client, et est donc très interactif, sans nécessiter de ressources de la part du "petit" WR703N.

Ainsi, non seulement le WR703N est un "super shield" Wifi+Ethernet+USB_host pour le VinciDuino, mais on obtient alors un environnement de programmation Arduino complètement autonome, accessible par un navigateur Web sans aucune installation sur le PC/Mac, tout ça dans une boîte de 6 cm x 6 cm (de la même taille que le VinciDuino)  smiley-eek
58  International / Français / Re: WR703N + VinciDuino on: August 15, 2012, 02:28:15 am
2 excellentes nouvelles concernant le couple WR703N + VinciDuino :

  • J'ai réussi à compiler et flasher des sketches Arduino en ligne de commande sur mon PC Linux Ubuntu 12.04 LTS grâce à ino
  • Et là je pense que c'est une première : j'ai réussi à compiler du code AVR en ligne de commande sur le WR703N (pas encore de sketches, mais j'y travaille !)

Pour le premier point, j'ai commencé par compiler depuis scratch en cible avr sur mon PC Linux binutils + gcc + avr-libc + avrdude, en suivant le tuto d'avr-libc. A part qu'avant de compiler gcc, il faut copier les sources des packages gmp + mpfr + mpc dans l'arborescence de gcc dans des sous-répertoires "gmp", "mpfr" et "mpc", respectivement (cf. la section... "Tools Required for Building the Toolchain for Windows"  smiley-grin), tout ça se déroule comme décrit.

En ce qui concerne la partie Arduino proprement dite, il faut d'abord installer (si ce n'est déjà fait) le distribution Arduino pour Linux. Il faut également installer Python (probablement déjà présent) et picocom et enfin ino en suivant le tuto ino.

Pour l'utilisation en ligne de commande de l'Arduino, il suffit alors de suivre le QuickStart. Je conseille toutefois de créer dès que possible le fichier "ino.ini" décrit à la fin du QuickStart, pour éviter d'avoir à saisir la carte et le port série pour toutes les commandes.

Pour le deuxième point, à savoir compiler du code AVR sur le WR703N, il a fallut que je cross-compile binutils + gcc dans une configuration appelée "Canadian Cross", c-à-d avec une machine de compilation Linux PC, une machine sur laquelle va s'exécuter le compilateur Mips24Kc, et une cible AVR. Là, je suis tombé sur 2 petits bugs : un problème de warning sur variables masquées dans binutils MIPS32 qui se termine en erreur, et un problème de changement de syntaxe assembleur "gas" dans mpfr. Notez qu'il n'y a pas besoin de recompiler avr-libc pour le MIPS, car les binaires sont déjà destinés à l'AVR. avrdude quant à lui est déjà disponible en tant que package pour OpenWRT, ainsi que picocom.

Il me reste maintenant à faire marcher ino sur le WR703N pour pouvoir compiler des sketches Arduino sur le WR703N... Pour cela, il faut que je fasse marcher Python et les dépendances requises par ino sur OpenWRT.

Notez que vu la taille de la chaîne de compilation, il faut absolument utiliser un "extroot" sur clé USB, cela ne tient pas (et de loin  smiley-sweat) sur la Flash SPI de 4MB.
59  International / Français / Re: Raspberry + Arduino on: August 10, 2012, 02:46:42 pm
Est ce que 64Mo c'est suffisant pour faire tourner un serveur LAMP (ou équivalent) avec un logiciel type domogik ?
Combien une voiture doit-elle avoir de chevaux ? Difficile de répondre : ça dépend de ce que l'on veut en faire...

J'ai déjà fait tourner des serveurs LAMP sur des PIII 500 MHz avec 128 MB de RAM. En dessous, je pense que c'est un peu utopique. Mais bon, on peut faire tourner un serveur Web ou publier des stats sans forcément avoir tout le "gras" de Linux + Apache + MySQL + PHP!

Linux est certes un minimum pour faire du Web de manière relativement confortable sans rentrer dans des piles TCP/IP pour des microcontrôlleurs spécifiques, mais il est tout à fait possible de le faire maigrir en le construisant à la main avec des outils comme OpenEmbedded ou buildroot plutôt que d'utiliser une distribution classique comme Debian, Suse ou Fedora.

Apache est un sacré "monstre", et en général inutile si le nombre de connexions simultanées envisagées est faible : dans ce cas, mieux vaut utiliser un serveur web léger comme thttpd ou boa.

MySQL est également un autre "monstre" (pour ce qui est de l'embarqué), mais il existe aussi des alternatives de BDD plus légères comme SQLlite ou Berkeley DB.

PHP est lui aussi assez gros, mais il existe également des langages alternatifs comme Lua ou encore la possibilité de coder des CGIs en langage C (ce qui est fait dans la plupart des routeurs pour les pages de configuration).

L'inconvénient de ces ersatz, c'est qu'il est alors impossible d'utiliser des solutions déjà existantes, faites pour tourner sur des PCs LAMP, et dont a priori domogik semble fait partie smiley-sad

Mais peut-être est il intéressant d'envisager une machine légère qui publie les informations sur un serveur "dans le cloud", plutôt que de prévoir une machine plus grosse, plus chère et plus gourmande qui fasse tout cela en local ? Je pense en particulier à une architecture de type Nagios avec des plugins de récolte d'informations.

Je te conseille donc de regarder toutes les solutions, de la plus légère à la plus complète et de peser le pour et le contre pour ton application : il est tout à fait possible de "faire du Web" avec une configuration très petite. C'est certes intéressant en terme de prix, de consommation et de fiabilité, mais cela est-il intéressant en terme d'effort si tu dois passer énormément de temps à tout développer ?

EDIT: barbudor est plus rapide à taper que moi  smiley-mr-green Mais je vais dans son sens !
60  International / Français / Re: Raspberry + Arduino on: August 10, 2012, 06:56:53 am
Pour ce qui est de olinuxino, j'y ai déjà pensé, surtout :
https://www.olimex.com/dev/a13-olinuxino.html
Mais avec moins d'USB, pas de son et autre truc multimédia
Cette carte ne sera dispo qu'à partir de septembre, ce qui veut dire que tu auras peut-être des chances de l'avoir en décembre  smiley-grin

Le connecteur écran est quand même nécessaire pour la maintenance si la machine plante au démarrage avant l'accès SSH.
Normalement, une console série fait l'affaire smiley-lol

Par contre, je ne comprend pas "20+4 including 8 GPIOs which can be input, output, interrupt sources;"
Moi, non plus, il faut regarder le schéma.

J'ai pas besoin d'une machine de guerre, c'est pour gérer l'automate avec historique (log et graph munin/rddtool) et serveur pour envoyer ça sur le client (Pas de X11 et Cie).
Si tu n'as pas besoin d'un seveur LAMP avec beaucoup de ressources, peut-être peux-tu te contenter d'un TP-Link TPL-WR703N ou MR3020 (cf. le fil suivant dans le forum) ?

Exit donc RPi.
Doucement ! Le RPi a des applications, mais il faut aussi regarder tout ce qui existe en dehors et choisir en fonction de tes besoins. Personnellement, j'ai un RPi, un OlinuXino-Micro et un TL-WR703N (je n'arrive pas à me décider) smiley-mr-green
Pages: 1 2 3 [4] 5