Projet Avancé
Transcription
Projet Avancé
Projet Avancé LINUX WIFI Embarqué Semestre 5 - 2004/2005 Guillaume GUINDE Xavier NOURISSON Amélie GUION Adrien ZANCAN ENSEIRB Linux WIFI embarqué SOMMAIRE INTRODUCTION......................................................................3 TP1 – MISE EN ŒUVRE DE LINUX.............................................4 I. INSTALLATION LINUX DE 4 I.1. Préparation 4 I.2. Configuration 4 I.3. Compilation 5 I.4. Installation dans le root_fs 5 II. INSTALLATION DE BUSYBOX 5 II.1. Préparation 5 II.2. Configuration, compilation, installation 6 III. MODIFICATION IV. COPIE DE LA CONFIGURATION DE DÉMARRAGE DE DU ROOT_FS SUR LA LINUX 6 COMPACT FLASH 6 TP2 – INSTALLATION DU WIFI SUR L'HÔTE...............................8 I. INSTALLATION 8 DES DRIVERS WLAN II. CONFIGURATION DE L'INTERFACE WLAN 8 TP3 – INSTALLATION DU WIFI SUR LA CIBLE...........................10 I. INSTALLATION DES DRIVERS SUR LE ROOT_FS II. CONFIGURATION 10 11 ET UTILISATION TP4 – INSTALLATION DU SERVEUR WEB BOA SUR L'HÔTE........12 CONCLUSION.......................................................................13 GLOSSAIRE..........................................................................14 RÉFÉRENCES BIBLIOGRAPHIQUES..........................................15 2/15 Introduction INTRODUCTION La finalité de ce projet avancé de troisième année a été l'installation de Linux sur un système embarqué (architecture x86) gérant une connexion WiFi et disposant d'un serveur Web. Il ne s'agit pas d'une distribution Linux standard mais d'une recompilation du noyau, adapté aux besoins de l'application. C'est ce que l'on appel un « Linux from scratch ». Le système d'exploitation ainsi que les logiciel embarqués sont situés sur une compact flash de 128Mo sur laquelle s’initialise la carte. La réalisation complète de ce projet à été détaillée dans la rédaction de 4 Travaux Pratiques pour permettre aux futurs élèves de l'option systèmes embarqués de refaire la démarche de conception que nous avons découvert. Les TP reprennent donc les principaux points de la phase de conception du système. - TP1 Compilation du noyau Linux - TP2 Installation du WiFi sur le PC hôte - TP3 Installation du WiFi sur la cible - TP4 Installation du serveur Web Boa. 3/15 TP1 – Mise en œuvre de Linux TP1 – MISE EN ŒUVRE DE LINUX I. Installation de Linux I.1. Préparation Placez-vous dans le répertoire TP1 : # cd /home/root/tp/tp_final/TP1 Il faut ensuite décompacter l'archive du noyau Linux : # tar -xzvf linux-2.4.26.tar.gz puis se placer dans le répertoire Linux : # cd linux-2.4.26 I.2. Configuration La commande "# make xconfig" crée un fichier ".config" permettant de configurer le noyau Linux. Le travail de configuration du noyau étant un peu fastidieux, le fichier ".config" vous est déjà fourni. Copiez le fichier de configuration du noyau : # cp ../config_kernel .config Il faut ensuite résoudre les dépendances : # make dep 4/15 TP1 – Mise en œuvre de Linux I.3. Compilation Compilez le noyau Linux (version compressée en bzip) # make bzImage Compilez les modules : # make modules I.4. Installation dans le root_fs Installez les modules dans le root_fs : # make modules-install Installez Linux dans le root_fs : # make install Renommez l'exécutable (on créera juste un lien symbolique) : # cd ../root_fs/boot # ln -s vmlinuz bzImage II. Installation de BusyBox II.1. Préparation Placez-vous dans le répertoire TP1 : # cd /home/root/tp/tp_final/TP1 Décompactez l'archive de BusyBox : # tar -xzvf busybox-1.00-pre10.tar.gz 5/15 TP1 – Mise en œuvre de Linux On peut savoir comment compiler et installer BusyBox grâce à l'aide : # more INSTALL II.2. Configuration, compilation, installation Observez le script "gobusybox". Il permet de réaliser la résolution des dépendances, la compilation et l'installation dans le root_fs. Exécutez le script : # ./gobusybox.sh III. Modification de la configuration de démarrage de Linux Placez-vous dans le répertoire TP1 : # cd /home/root/tp/tp_final/TP1 Par défaut, Linux dispose de plusieurs niveau d'éxécution, BusyBox ne sachant pas les gérer, il faut modifier le fichier "root_fs/etc/inittab" et mettre en commentaire la ligne "id:S:initdefault". Pour faire vite, cette modification est déjà faite dans le fichier "inittab" qui vous est fourni, il n'y a plus qu'à le copier : # cp inittab root_fs/etc/ IV. Copie du root_fs sur la Compact Flash Observez le script "gocf". Il permet : • Le démontage du device "/dev/hdc1" au cas où un périphérique était déjà monté ("umount"). 6/15 TP1 – Mise en œuvre de Linux • Le montage de la carte Compact Flash ("mount"). • L'effacement de la carte Compact Flash. • La copie du root_fs sur la Compact Flash. • L'installation du programme de chargement LILO sur la Compact Flash. # ./gocf.sh Vous pouvez maintenant éteindre la carte, sortir le disque dur et redémarrer. Linux doit démarrer automatiquement. 7/15 TP2 – Installation du WiFi sur l'hôte TP2 – INSTALLATION L'HÔTE DU W IF I SUR Placez-vous dans le répertoire TP2. # cd ~/TP2 I. Installation des drivers wlan Décompressez l'archive contenant les drivers et se placer dans le dossier créé : # tar -xzvf at76c503-0.11.tar.gz # cd at76c503-0.11/ Compilez et installez les drivers # make # make install Vous pouvez maintenant, soit copier les modules nécessaires à la main (fichiers .o), soit être fainéant et simplement redémarrer la machine. II. Configuration de l'interface wlan Voici le contenu du script "script_wlan.sh" : # script de config du wlan0 echo "Activation de l'interface wlan0" ifconfig wlan0 up echo "configuration identifiant reseaux" iwconfig wlan0 essid wifi.reelec 8/15 TP2 – Installation du WiFi sur l'hôte echo "Configuration mode et canal" iwconfig wlan0 mode Managed channel 11 echo "Demarrage du client DHCP....." dhclient wlan0 echo "Vous avez configure votre wlan au chocolat" Il permet la configuration complète du Wlan et le démarrage du client DHCP. # ./script_wlan.sh Le wifi est maintenant configuré correctement. 9/15 TP3 – Installation du WiFi sur la cible TP3 – INSTALLATION DU WIFI SUR LA CIBLE Placez vous dans le répertoire TP3 I. Installation des drivers sur le root_fs Décompressez l'archive contenant les drivers. L'installation devra se faire dans le root_fs, le fichier Makefile doit donc être modifié. La version modifiée vous est donnée. Remplacez le Makefile d'origine : # mv Makefile_at76c503-0.11 at76c503-0.11/Makefile Compilez et installez les drivers : # make # make install Vérifiez la présence des fichiers objets (.o) dans le répertoire d'installation de la compact flash (root_fs) : /lib/modules/2.4.26/kernel/drivers/usb/usbcore.o /lib/modules/2.4.26/kernel/drivers/usb/usbdfu.o /lib/modules/2.4.26/kernel/drivers/usb/host/uhci.o /lib/modules/2.4.26/kernel/drivers/usb/host/usb-uhci.o S'ils n'y sont pas, allez les chercher sur l'hôte. 10/15 TP3 – Installation du WiFi sur la cible II. Configuration et utilisation Installez les librairies permettant l'utilisation de iwconfig sur la cible : # ./gomklibs.sh Copier le root_fs dans la compact flash : # ./gocf.sh Redémarrez la machine en bootant sur la compact flash Réinitialisez la connexion wifi comme le fait le script "script_wlan.sh" du TP précédent. 11/15 TP4 – Installation du serveur web Boa sur l'hôte TP4 – INSTALLATION DU SERVEUR BOA SUR L'HÔTE WEB Décompresser l'archive boa-0.92r.tar.gz Placez-vous dans le sous-répertoire src et éditez le fichier defines.h pour changer le répertoire d'installation. Le répertoire par défaut est /usr/local/boa (répertoire choisi pour le reste de l'installation) et peut être changé en modifiant le #define de SERVER_ROOT. Compilez Boa : # ./configure # make Installer manuellement le fichier boa dans le répertoire /sbin. Placez-vous dans le sous-répertoire conf et copier les fichier boa.conf et mime.types dans le répertoire /usr/local/boa/conf préalablement créé. Éditez boa.conf pour changer la configuration de boa : Changez User nobody en User root et Group nogroup en Group root. Le fichier contient également d'autres paramètres intéressants comme le port utilisé, le fichier html d'accueil et le répertoire des pages web. Créez le répertoire /usr/local/boa/htdocs afin de placer les pages web. Démarrez Boa : # boa 12/15 Conclusion CONCLUSION La démarche de conception d’un Linux « from scratch » nous a permis de beaucoup mieux appréhender l’architecture et le fonctionnement d’un système d’exploitation Linux, notamment en ce qui concerne les différentes phases de démarrage et l’installation de périphériques. Les problèmes rencontrés lors des différentes opérations ont mis en avant nos capacités de déductions et notre aptitude à trouver des solutions en utilisant les ressources disponibles. Dans l’état actuel du projet, seule la dernière étape de mise en place du serveur Boa sur la cible n’a pas été validé. Boa fonctionne sur l'hôte mais des problèmes de fonctionnement sur le système embarqué n’ont pas pu être réglés pendant le temps imparti aux séances de projet. Une suite possible au développement du système pourrait être de modifier les scripts de démarrage du système d’exploitation pour lui permettre d’installer et configurer les drivers et le serveur Boa des l’amorçage de la carte, sans intervention extérieure. 13/15 Glossaire GLOSSAIRE BASH : Bourne Against SHell DHCP : Dynamic Host Configuration Protocol DNS : Domain Name System ENSEIRB : École Nationale Supérieure d'Électronique, Informatique et Radiocommunication de Bordeaux GNU : Gnu is Not Unix IP : Internet Protocol USB : Universal Serial Bus 14/15 Références bibliographiques RÉFÉRENCES BIBLIOGRAPHIQUES "Linux embarqué" Pierre Ficheux Éditions Eyrolles ISBN : 2-212-11024-3 "Programmer avec les outils GNU" Loukides Paperback, O'Reilly ISBN : 2-841-77010-9 Site internet "The Linux Kernel Archives" http://www.kernel.org/ Site internet "Busybox" http://www.busybox.net/ Site internet "Boa Webserver" http://www.boa.org/ Site internet "LEA linux" http://www.lea-linux.org/ 15/15