GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens L’électronique grand public au service de l’instrumentation scientifique Aurélien Jarno Réseau des électroniciens de la recherche - Rhône-Auvergne 14 décembre 2006 Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Introduction L’électronique grand public miniaturisation de plus en plus performante une foule de nouveaux produits Instrumentation scientifique nouveaux moyens de communication avec le monde exterieur : Ethernet Wi-Fi USB systèmes de plus en plus complexes développement à l’unité ou en petite série nécessité de développer vite, bien et pas cher Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens GNU/Linux Système d’exploitation Le noyau : Linux L’espace utilisateur : GNU Système UNIX Logiciel libre Multitâche, temps réel possible (RTAI) Support TCP/IP natif Nécessite peu de ressources Fonctionne sur un grand nombre d’architectures (15+) Un grand nombre de distributions Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens GNU/Linux : vers l’électronique grand public Au début, un challenge d’informaticien sur : les assistants numériques personnels (PDA) les consoles de jeux (X-Box, PS2, etc.) Ensuite utilisé de base par les fabricants sur : les consoles de jeux les assistants numériques personnels les baladeurs MP3 les (( boxes )) ADSL les routeurs ADSL les points d’accès Wi-Fi les disques durs réseau les caméras IP les téléphones voix sur IP etc. Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Des modifications possibles Utilisations Avantages Des modifications possibles Les sources sont disponibles, profitons en ! Firmware alternatifs Souvent basé sur le firmware original, quelques fonctionnalités supplémentaires Distributions spécifiques Spécifique à un ou plusieurs produits Nombreux logiciels disponibles Limité par la taille de la mémoire FLASH Distributions généralistes Fonctionne sur un grand nombre de machines, du baladeur MP3 au supercalculateur, en passant par le PC de bureau Environnement logiciel identique Un très grand nombre de logiciels disponibles Nécessite de rajouter de la mémoire de masse (disque dur, clé USB) Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Des modifications possibles Utilisations Avantages Pour quoi faire ? Pour l’informaticien : Serveur faible coût petit silencieux Plateforme de développement Pour le (( bricoleur )) : Caméra autonome Centrale météo Et pour l’électronicien ? Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Des modifications possibles Utilisations Avantages Et pour l’électronicien ? Exploiter les possibilités d’entrées/sorties, quitte à modifier la carte Ethernet, Wi-Fi Ports RS232 (µC, capteurs, etc.) Ports USB (disque dur, webcam, Wi-Fi, etc.) I2 C (très nombreux composants) E/S disponibles ((( GPIO ))) Exemples : Centrale de mesure Contrôle à distance Surveillance vidéo Traitement du signal Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Des modifications possibles Utilisations Avantages Avantages Materiel quasiment prêt à l’emploi puissance de calcul faibles dimensions, faible consommation Logiciel système multitâche, temps réel possible TCP/IP natif très grand nombre de logiciels, bibliothèques même environnement qu’un PC de bureau Des langages de programmation (( standards )) C, C++, C# , Fortran, Java, Ada Mais aussi des langages de haut niveau Shell UNIX, Python, Perl, Ruby, Smalltalk, Eiffel, Lisp, OCaml, etc. Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les critères Les grande familles de CPU Les CPU ARM Les CPU MIPS Quelques exemples de produits Outils de développement Le choix du produit à modifier CPU supporté par Linux 8 Mo de mémoire minimum, 32 Mo conseillés au moins 4 Mo de mémoire FLASH si possible au moins 1 port USB pour mettre un disque dur / clé USB des E/S (RS232, I2 C, GPIO) Pour l’électronicien, un produit pour lequel le travail de développement logiciel a été fait. Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les critères Les grande familles de CPU Les CPU ARM Les CPU MIPS Quelques exemples de produits Outils de développement ARM ou MIPS ou ? Marché réparti entre ARM (60 %) et MIPS (30 %) ARM sur les assistants personnels MIPS sur les produits orientés (( réseaux )) M32R au Japon et en Corée PowerPC sur les produits haut de gamme x86 (486, Geode, Via C3 ou C7), mais peu répandu Une fois GNU/Linux installé, peu de différences pour l’utilisateur, excepté le (( problème )) big/little endian. Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les critères Les grande familles de CPU Les CPU ARM Les CPU MIPS Quelques exemples de produits Outils de développement Les CPU ARM Processeur RISC 32 bits conçu en 1983 Ré-orientation vers l’embarqué au début des années 1990 Faible consommation Mode (( Thumb )) 16 bits Jusqu’au dual-coeur 1,2 GHz Disponible en tant qu’IP Nombreux fabricants : Intel, IBM, Infineon, NXP, STMicroelectronics, Freescale, Texas Instrument, etc. Souvent disponible en temps que (( System-on-a-Chip )) FPU souvent absent Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les critères Les grande familles de CPU Les CPU ARM Les CPU MIPS Quelques exemples de produits Outils de développement Les CPU MIPS Processeur RISC 32 bits conçu en 1981 Premier CPU 64 bits en 1991 Utilisé par Silicon Graphics pour ses stations graphiques Utilisé dans les supercalculateurs Ré-orientation vers l’embarqué fin des années 1990 Faible consommation Jusqu’au quad-coeur 64 bits à 1,0 GHz Disponible en tant qu’IP Nombreux fabricants : NEC, Toshiba, Broadcom, Infineon, NXP, Texas Instrument, etc. Souvent disponible en temps que (( System-on-a-Chip )) Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les critères Les grande familles de CPU Les CPU ARM Les CPU MIPS Quelques exemples de produits Outils de développement Quelques exemples de produits Linksys WRT54G Thecus N2100 D-Link DSMG600 Netgear WGT634U Netgear SC101 Linksys NSLU2 Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les critères Les grande familles de CPU Les CPU ARM Les CPU MIPS Quelques exemples de produits Outils de développement Outils de développement Les mêmes que sur un PC Compilateur GCC Debugger GDB L’éditeur de son choix Possibilité d’installer les outils de développement sur la machine cible sur une autre machine (cross-compilation) limité par les capacités de la machine Pas de compilation pour la plupart des langages de haut niveau (langages interprétés) Possibilité d’utiliser un émulateur (par exemple QEMU) Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Un exemple concret : le Linksys NSLU2 Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Le NSLU2 Fonction originale : (( Network Attached Storage )) Partage d’un disque dur USB sur un réseau TCP/IP (Ethernet) Environ 100 e dans les grandes surfaces et chez les revendeurs informatiques Processeur Intel IXP420 133 MHz (ou 266 MHz) 32 Mo de SD-RAM 8 Mo de Flash Interface Ethernet 100 Mbit/s Contrôleur USB 2.0 (2 prises) Horloge Interface I2 C, interface RS232 Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles NSLU2 : La carte Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Les supports de masse Disque dur externe Disques de très grande taille Attention aux disques durs alimentés par l’USB ! Clé USB Les clés USB de 2 ou 4 Go sont devenues abordables Le nombre d’écriture est limité en théorie, peu de problèmes en pratique Éviter les clés USB (( no-name )) De préférence, choisir une clé USB (( rapide )) Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles NSLU2 : Choix de la distribution Installation à partir des sources Installation d’une distribution qui supporte ce produit : SlugOS Gentoo Debian Choix de Debian Installeur Logiciels déja compilés Environ 15 Go de logiciels disponibles Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Installation de Debian GNU/Linux (1/2) Changer le firmware Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Installation de Debian GNU/Linux (2/2) Connexion via SSH à la machine, utilisation de (( Debian Installer )) Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Première connexion à la machine Connexion via SSH à la machine Shell UNIX standard Outils d’administration standards Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Overclocking Fonctionne de base à 133 MHz Spécification Intel : 266 MHz sans dissipateur Une résistance à enlever Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Ajouter de la mémoire 2 x 16 Mo de base SD-RAM standard Superposition des composants Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Port RS232 Souder un connecteur à l’emplacement prévu Logique 3,3 V (si besoin utiliser un composant de type MAX232) Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Bus I2 C (1/2) Bus (( Inter Integrated Circuit )) devéloppé au début des années 1980 par Philips Bus 3 fils : masse, données (SDA), horloge (SCL) Bus maı̂tre / esclave ; plusieurs maı̂tres et plusieurs esclaves possibles ; une adresse par esclave 100 kbit/s, 400 kbit/s, ou 1 Mbit/s Un grand nombre de composants disponibles : microcontrôleurs E/S 8 ou 16 bits convertisseurs A/N et N/A mémoires (RAM, EPROM, EEPROM, etc.) capteur de température afficheurs LCD, LED, ... audio, video, télétexte etc. Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Les supports de masse Installation de GNU/Linux Première connexion Modifications matérielles Bus I2 C (2/2) Il s’agit en fait de broches (( GPIO )) Récupérer les broches SDA et SCL sur l’horloge Récupérer une masse et un +3,3 V ou +5 V près de l’alimentation Logique 3,3 V Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Démonstration Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Démonstration (1/3) Isolateur I2 C WebCam Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Démonstration (2/3) E/S 8 bits Thermomètre / thermostat Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Démonstration (3/3) CAN 4 entrées 8 bits / CNA 8 bits Aurélien Jarno Ventilateur de PC Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Quelques liens Aurélien Jarno Électronique grand public et instrumentation scientifique GNU/Linux Électronique grand public Le choix du produit à modifier Linksys NSLU2 Démonstration Quelques liens Quelques liens Linux : http ://fr.wikipedia.org/wiki/Linux Langages de programmation : http ://fr.wikipedia.org/wiki/Langage de programmation NSLU2-Linux : http ://www.nslu2-linux.org Debian : http ://www.debian.org Debian on the Linksys NSLU2 : http ://www.cyrius.com/debian/nslu2/ Le bus I2 C : http ://www.aurel32.net/elec/i2c.php Aurélien Jarno Électronique grand public et instrumentation scientifique