KubuntuBlog

Pour prendre conscience de ce que Windows a fait à la planète, regardez combien coûte
l'envoi d'un mot de six lettres sur le réseau. En Ascii, il occupe 48 bits. En HTML, on
passe à 256 bits. Sous Word, il représente 9 112 bits, et sous Power Point, on passe à
258 000 bits. Il est là le modèle Wintel. Scott McNealy (PDG de Sun Microsystems)

Aller au contenu | Aller au menu | Aller à la recherche

lundi 11 juin 2007

Logiciels d'electronique sous linux

Je vais essayer de vous présenter dans ce billet les logiciels d'électronique disponibles dans les dépots Ubuntu. Nous allons faire un tour d'horizon en essayant d'être le plus complet possible.

Capa En effet j'ai eu récemment l'envie de me remettre à l'electronique[1]. J'ai donc décidé de chercher un logiciel pour réaliser les schémas de circuit. Mon cahier des charges est le suivant :

  • Logiciel libre[2]
  • Présent dans les dépots ubuntu
  • Facile à utiliser
  • Permettant de réaliser de jolis schémas
  • Intégrant des fonctions de simulation analogique[3]

Voici donc la liste des logiciels que j'ai testé avec mes remarques. Notez quand même que :

  • ça fait des années que je n'ai pas fait d'électronique[4] donc j'ai surement loupé des trucs
  • je ne cherche pas à être exhaustif, si vous connaissez d'autres softs dispo pour Ubuntu, n'hésitez pas à en parler
  • certains tests ont été fait sur une Dapper (ce sera précisé), certaines choses seront alors surement différentes en Feisty
  • pour les simulations, je prendrais comme exemple un circuit très simple, le Pont de Diodes qui permet de redresser un signal sinusoïdal.

Back-ends de simulation

Chip Dans le monde libre il existe principalement deux back-ends qui permettent la simulation de circuits électroniques :

  • gnucap : le projet de GNU
  • spice et dérivés : le plus ancien et répandu. Il a aussi donné naissance à beaucoup de dérivés (ngspice ...)

Gnucap est le seul disponible dans les dépots Ubuntu. ngSpice était disponible en Hoary mais ne l'est plus depuis. Ces programmes sont en ligne de commande et nécessitent un apprentissage de leurs formats d'entrée (nommé netlist) et de sortie avant de pouvoir en faire quoi que ce soit. Nous n'allons pas les étudier ici.

Oregano

Oregano est un logiciel assez jeune mais dont le développement semble plutôt actif. Si vous êtes sous KDE, vous ne couperez pas à l'installation de beaucoup de dépendances Gnome.

Il permet de dessiner des circuits et de les simuler de manière très simple. Il n'intègre pas de simulateur mais se base sur les back-ends gnucap ou ngspice. Il génère la netlist nécessaire, appelle le back-end et met en forme les résultats. Traduit en français, il propose une interface très intuitive et simple d'utilisation. Vous pouvez réaliser votre 1er circuit en quelques minutes.

Par contre c'est un logiciel encore jeune à qui il manque quelques fonctions. Quelques bugs plus ou moins génant sont aussi présents. On ne peut non plus pas exporter d'image du circuit dessiné (mais on peux l'imprimer)

/!\ Cette astuce fonctionnait avec Dapper, mais semble ne plus marcher en Feisty :(
Dans cette version il n'y pas d'inclusion de composants extérieurs pour la simulation (pour les composants qui ne sont pas de base dans gnucap). On peut quand même s'en sortir :

  • une fois le circuit dessiné, afficher la netlist
  • ajouter une ligne comme .include /data/documents/Electronique/lm317.sub
  • cliquez sur le bouton Simuler

Pour finir regardez comme il est beau[5] : Capture

qucs

qucs semble avoir aussi un développement très actif. Il est fournit avec son propre simulateur et n'utilise donc pas gnucap. Son interface (traduite) est encore plus facile à utiliser que Oregano et très puissante. Il semble être pas mal utilisé et il est relativement facile de trouver de la documentation ou des tutoriaux.

Mais gros problème. Impossible de simuler quoi que ce soit avec la version disponible dans Ubuntu ! Même l'exemple tout simple de la documentation plante chez moi. Visiblement, je ne suis pas le seul, voir ce bug sur Launchpad ou ce fil dans les forums officiels.

Heureusement, grâce au commentaire de C. Joubert j'ai trouvé un contournement. Il suffit de lancer qucs en changeant la locale numérique :

LC_NUMERIC=C qucs

Voici donc une capture d'écran : Capture

Pour avoir un aperçu plus complet, regardez par exemple ce tutorial

gEDA / gscheme

gEDA est la suite de logiciels du projet GNU. Son but est d'offrir un environnement complet pour réaliser les circuits, les simuler et dessiner les circuits imprimés. Je n'ai pas cherché à tester cette dernière fonction. gEDA est donc juste une interface pour accéder aux autres applications.

Celle destinée au dessins de schémas est gscheme. Son interface est principalement basée sur des raccourcis clavier. Cela semble déroutant au début mais avec un peu d'entrainement ce fonctionnement devient très pratique. Les schémas réalisés sont d'un rendu très professionel et la bibliothèque de composants disponibles est impressionnante. Il semble très utilisé et il est donc facile de trouver de la documentation. Par exemple sur le wiki gEDA ou même ces très bons tutoriaux traduits en francais.

En ce qui concerne la simulation, il se base aussi sur gnucap ou spice. Mais il n'y a pas d'interface intégrée permettant de simuler en 3 clicks[6]. Vous devez alors utiliser plusieurs logiciels pour affecter les valeurs aux composants, générer la netlist, simuler puis afficher les résultats. De plus si l'intégration de spice est très documentée, gnucap semble aux abonnés absents :(

Pour finir, une capture et un export en PNG du désormais habituel pont de diodes :
Capture Export

kicad

kicad est une suite logicielle déstinée à la réalisation de shémas et circuits imprimés. Il n'est dans les dépots ubuntu que depuis la sortie de feisty. Sachez tout de suite que c'est un logiciel de très grande qualité qui plus est développé par le Français J-P Charras enseignant chercheur.

D'une ergonomie parfaite, il ne permet pas la simulation mais génère des fichiers netlist que vous pouvez donner à manger à spice. Il dispose en outre d'un module de visualition 3D de vos circuits de toute beauté. Inutile donc absolument indispensable :)

Notez quand même un petit bug dans ubuntu, les fichiers d'aide ne sont pas accessible à partir de l'interface de kicad. Vous les trouverez dans /usr/share/doc/kicad/help/fr si vous avez installé le paquet kicad-doc-fr.

Enfin une capture d'écran un peu chargée car j'ai voulu tout vous montrer : Capture

Autres logiciels

Voici quelques autres logiciels que j'avais testé sous Dapper mais qui ne m'ont pas emballé pour diverses raisons. Je ne les ai donc pas ressayé en Feisty mais les cite quand même pour mémoire.

Electric

electric est un logiciel assez ancien mais très (trop ?) puissant. Son interface est ... rustique. Il permet de dessiner des schémas de circuits, des circuits imprimés mais aussi des circuits intégrés ! C'est le seul que j'ai essayé capable de faire cela.

Il permet la simulation via plusieurs moteurs externes ou un moteur interne. Je n'ai pas réussit à en tirer grand chose mais c'est surement un logiciel qui ravira ceux qui ont ces besoins particuliers.

Capture

XCircuit

XCircuit propose une approche un peu différente des autres logiciels. Il est beaucoup plus orienté dessin que juste placement de composants. Son interface et son ergonomie paraissent un poil antédiluviennes. Il permet d'exporter des netlists et des fichiers postcript[7]

Capture

Dia

Dia est un logiciel permettant de dessiner des diagrammes. Il dispose de nombreuses bibliothèques de symboles que vous pouvez intégrer dans vos schémas et parmi celles-çi, des composants électroniques. Il ne dispose d'aucune fonction propre à l'électronique comme l'export de netlist, mais si vous cherchez juste à dessiner quelques schémas il peut tout à fait vous suffire.

Capture

Conclusion

Voila pour ce petit tour des logiciels d'électronique sous Linux. Il resterai beaucoup à dire sur d'autres logiciels tels que ceux spécifiquement destinés à la création de PCB. Il en existe aussi beaucoup permettant de faire de l'électronique numérique[8]. Je pense d'ailleurs bientôt m'attaquer aux logiciels destinés aux microcontroleurs.

Voila, pour finir, félicitations à ceux qui ont tenu jusqu'au bout ;) et n'hésitez pas à me signaler les logiciels que j'aurais pu oublier.

Notes

[1] comme si j'avais pas déjà assez galéré à l'école

[2] Je ne parlerai donc pas de Eagle ni de faire tourner quoi que ce soit avec Wine

[3] l'électronique numérique reviendra peut-être en deuxième semaine

[4] en particulier analogique

[5] Hum le résultat de la simulation est assez étrange

[6] oui, je suis un gros fainéant

[7] J'avais noté deux bug en dapper et edgy : #42976 et #75456

[8] je ne résiste d'ailleurs pas à linker ce joli compteur à bascule que je me suis amusé à faire avec KLogic

lundi 4 juin 2007

Connexion à Ubuntu Linux à partir de windows : xrdp

Nous allons voir dans cet article comment utiliser graphiquement un bureau linux distant à partir d'une machine windows ne disposant que de l'outil de connexion à distance fournit par Microsoft.

Introduction

NCD ThinSTAR Imaginez que vous ayez une machine Linux[1] et que vous vouliez en prendre le contrôle à partir d'une machine Windows. Facile, on installe VNC ou un serveur X sur le client et hop ça roule !

Mais si vous ne pouvez rien installer sur le Windows ? C'est assez fréquent en entreprise. Il ne vous reste que le client de connexion à distance de Microsoft. Hors celui-çi utilise un protocole propriétaire non nativement supporté sous Linux : RDP. Flûte voici une impasse.

Ne vous désolez pas si vite, il existe une solution ! J'ai nommé xrdp. Il s'agit d'une sorte de proxy qui sera serveur RDP pour le client windows et client VNC pour un serveur sous Linux.

Mais quelle drôle d'idée ! En fait non, j'ai acquis il y a peu de temps un client léger ThinSTAR 400. Malheureusement, celui-ci n'est prévu pour fonctionner qu'avec des serveurs sous Windows[2]. Voila donc pourquoi je me suis intéressé à cette solution[3]

Shema

Installation

Note : Je viens de voir qu'une nouvelle version est sortie (0.4 le 2 juin) Je n'ai pas trouvé de ChangeLog, mais un diff des répertoires indique que le code n'a pas changé, seulement quelques fichiers textes. Donc fonctionnellement elle est identique à celle que je vous propose.

Ce soft n'est pas disponible dans les dépots il va donc falloir mettre un peu les mains dans le cambouis. La deux solutions :

  • compiler à partir des sources, je vous renvoi alors vers les liens en fin d'article. Mais regardez quand même la section patches, car certaines modifications sont nécessaires pour qu'il fonctionne correctement ;
  • utiliser la version déjà compilée et patchée que je vous fournit gracieusement, c'est ce que je vais détailler ci-dessous.

Vous trouverez donc la : xrdp-0.3.2-fr-feisty.tar.bz2 une version fonctionnelle pour Ubuntu Feisty qu'il vous suffit de décompresser dans /opt. Attention le répertoire est important car pleins de chemins sont compilés en dur dans le code :( Cela vous créera un répertoire xrdp avec tout ce qu'il faut[4].

Il vous faut aussi le paquet vnc4server. Par exemple, vous pouvez l'installer avec :

sudo aptitude install vnc4server

Modifiez ensuite le fichier /opt/xrdp/bin/startwm.sh pour lancer le windows manager qui vous convient. Par défaut il s'agit de KDE, les commentaires dans le fichier sont assez clairs.

Bien entendu, cette version est fournie sans autre garantie que chez moi ça marche. Si vous ne me faites pas confiance, vous trouverez ci-dessous les modifications que j'ai apportés pour pouvoir recompiler votre propre version.

Utilisation

Voyons maintenant comment utiliser xrdp pour se connecter à partir de Windows. C'est assez simple :

Lançons d'abord xrdp. L'option nodaemon peut être enlevée à terme.

cd /opt/xrdp/bin
./xrdp -nodaemon

Ensuite sesman qui est le gestionnaire de session et qui gère l'authentification. Il doit être lancé en tant que root.

sudo ./sesman --nodaemon

Vous pouvez tester le login avec la commande suivante. <user> et <password> doivent bien entendu être remplacés par les bonnes valeurs. Les chiffres correspondent à la résolution de l'écran.

./sesrun localhost <user> <password> 1024 768 24

Enfin, il vous suffit de vous connecter à partir du client Windows.
Attention lors du login, le clavier est en qwerty !

Fenêtre de Login

Et voila une nouvelle session X est ouverte ! Screenshot C'est une kubuntu ouverte à partir d'un windows virtualisé sous la même kubuntu. Vous suivez ?

La même session, mais à partir de mon NCD ThinSTAR sous Windows CE : Screenshot

Patches

Plusieurs bugs posent problème pour utiliser la version vanilla de xrdp sous Ubuntu en français.

Tout d'abord xrdp ne sait gérer qu'un clavier Américain. Mais on trouve sur le site sourceforge un hack pour le clavier Allemand. Je l'ai adapté pour le clavier Français. Il reste quand même quelques limitations :

  • la touche AltGr est remplacée par la touche Alt gauche. Pensez-y pour les caractères comme @ # ...
  • les touches accentuées semblent ne pas fonctionner dans tous les cas :(
  • seul le clavier de base est géré, vous n'aurez pas accès à toute la keymap fr-latin9, adieu € Æ « et autres spécificités.

Ensuite, la paquet Xvnc fournit par Ubuntu est buggé et nécessite des options spécifiques pour fonctionner correctement. J'ai ajouté celle-ci aux paramètres de lancement qui sont eux aussi codés en dur dans xrdp.

En cas d'échec de l'authentification, sesman affiche aussi le user/password en clair, ça m'a été bien utile pour voir que le login se faisait en qwerty :)

Pour plus de détails, vous pouvez jeter un oeil aux modifications que j'ai apporté au code. Vous trouverez la xrdp-0.3.2-fr-feisty.diff les différences complètes entre la version vanilla et celle que je vous propose.

Quelques liens

Notes

[1] vous devez être beaucoup parmi mes lecteurs :)

[2] On peux lui installer un serveur X, mais je n'ai pas les softs pour

[3] Oui, c'est mon blog, je raconte ma vie si je veux !

[4] Je n'ai pas eu le courage de me lancer dans la création d'un paquet, si cela dit à quelqu'un ...