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