Système de développement

De Wiki Cours Linux embarqué CPE-Lyon
< Dev
Aller à : navigation, rechercher

Démarrage du système

Boot

  • Automatique
Tout c'est bien passé, votre PC autorise le boot sur Clé USB, et vous avez le menu de sélection de syslinux : appuyez simplement sur entrée.
  • Semi-automatique
Sur la majorité des machines CPE le boot sur Clé USB est désactivé, mais l'entrée "Advance menu" du bootloader "FOG" permet de démarrer automatiquement sur la clé USB fournie.
  • Manuel
Il était auparavant possible d'utiliser la ligne de commande de GRUB pour démarrer. C'est désormais impossible dans la majorité des cas, mais pour archive :
  • Appuyez sur 'c' pour ouvrir la ligne de commande de GRUB quand le menu GRUB apparaît (celui qui permet de choisir entre les différents OS)
  • Entrez les lignes suivantes (Attention, clavier qwerty) :
set root=(hd1,msdos1)
linux /vmlinuz
boot

Création d'un utilisateur

  • Connectez vous en root (login : root, passord : cpe)
  • Utilisez la commande "adduser" pour ajouter votre utilisateur.
adduser toto
  • Ajoutez ce nouvel utilisateur au groupe dialout
adduser toto dialout
  • Déconnectez vous du compte root (exit / Ctrl-D)
  • Connectez vous avec le compte utilisateur que vous venez de créer.

Customisations facultatives

Installation et configuration sudo

Cette étape est facultative.

Pour pouvoir redémarrer le poste de développement via le menu de l'interface graphique votre utilisateur doit avoir le droit d'utiliser les commandes correspondantes.
Une des solutions est l'utilisation de sudo, qui permet de donner le droit à certains utilisateurs d'utiliser certaines commandes.
Attention, donner tous les droits à un utilisateur autre que root n'est jamais une bonne idée.
Installez sudo :

apt-get install sudo

La modification de la configuration se fait avec la commande "visudo"
En dessous de la ligne commençant par root, ajoutez une ligne similaire à celle-ci (en appuyant sur 'o' pour passer en même temps en mode insertion) :

toto ALL=NOPASSWD:/sbin/halt,/sbin/reboot

puis sauvez et quittez (<ESC> pour quitter le mode insertion, puis ":wq" (commande "w(rite) and q(uit)"))

Configuration FVWM

Cette étape est facultative

Il reste maintenant à finir la configuration de FVWM.
FVWM est un gestionnaire de fenêtres très léger, très complet, et dont toute la configuration est faite par de simples fichiers texte, simple à échanger entre personnes, à sauvegarder, à modifier, ou à étudier.
Bien entendu, si vous préférez un autre gestionnaire de fenêtres, il en existe d'autres répondant aux mêmes contraintes, et vous pouvez bien entendu installer celui que vous préférez/connaissez. Ne perdez cependant pas de temps avec cette étape !

Le menu de FVWM auquel vous avez accès par les clics gauche et droits sur le fond d'écran est défini dans le fichier ".fvwm/conf/menu.fvwm2rc". C'est ici que vous pouvez ajouter de nouvelles entrées à ce menu.
Les entrées pour redémarrer ou éteindre le PC sont déjà présentes, mais font appel aux commandes "$[fvwm_reboot]" et "$[fvwm_halt]" qui elles n'existent pas. La définition de ces commandes se fait dans le fichier ".fvwm/config".
Ajoutez les lignes suivantes dans ce fichier (après les autres lignes similaires par exemple, et en tout cas avant l'inclusion du fichier "menu.fvwm2rc"

SetEnv fvwm_reboot     "sudo /sbin/reboot"
SetEnv fvwm_halt       "sudo /sbin/halt"

Sauvez vos modifications puis rechargez la configuration en appuyant sur <Ctrl>+<Alt>+r (Raccourcis défini dans le fichier ".fvwm/conf/key.fvwm2rc").

Activation des screenshots :
Le menu accessible par le bouton vert en haut à droite de chaque fenêtre vous permet de déclencher des captures d'écran de la fenêtre ou de l'écran entier.
Pour que tout fonctionne, il est nécessaire d'installer imagemagick sur la clé USB (qui contient l'utilitaire convert utilisé). Utilisez le gestionnaire de paquets Debian pour le faire.

Note : le découpage de la configuration de FVWM en plusieurs fichiers n'est pas une obligation, mais rend les choses plus lisibles, comme pour le code (quand le découpage est bien fait, ce qui n'est pas vraiment le cas de ma configuration FVWM).

Trucs et astuces : déplacement des fenêtres

Vous pouvez déplacer les fenêtres avec "Alt + clic gauche".
Vous pouvez redimensionner les fenêtres avec "Alt + clic molette".

Configuration APT

Déjà réalisé, pour info :

  • Désactiver l'installation des paquets recommandés
Créer un fichier "/etc/apt/apt.conf.d/01norecommends" (chemin important, nom sans importance) contenant ceci :
APT::Install-Recommends "0";
  • Désactiver l'installation de systemd
Créer un fichier "/etc/apt/preferences.d/01-no_systemd" (chemin important, nom sans importance) contenant ceci :
Package: systemd
Pin: origin *
Pin-Priority: -100

Package: systemd-sysv
Pin: origin *
Pin-Priority: -100

Package: libpam-systemd
Pin: origin *
Pin-Priority: -100

Package: systemd*
Pin: origin *
Pin-Priority: -100
  • Recherche de fichiers dans des paquets non installés
# apt-get install apt-file
Puis en utilisateur, mettre à jour la base de donnée et faire la recherche:
apt-file update
apt-file search /chemin/vers/fichier
Note : Si le chemin n'est pas connu, une recherche de "fichier" fonctionne aussi, mais risque de renvoyer bien plus de résultats (filtrer avec grep si besoin :)

Auto-login "maison"

Cette étape est facultative.

A compiler :

#include <unistd.h>
int main() {
    execlp("login","login","-f", "utilisateur",NULL);
    return 0;
}

inittab :

1:2345:respawn:/sbin/getty -L tty1 -n -l /bin/autologinperso 38400 linux

.bashrc :

if [ -z "$DISPLAY" ]; then
    if [ "$(tty)"=="/dev/tty1" ]; then
        startx
    fi
fi

.xinitrc :

setxkbmap fr
exec ssh-agent dbus-launch --exit-with-session fvwm

Installation des outils manquants

Utilitaires divers

Pour vous forcer à manipuler le système, certains utilitaires ont été volontairement omis de l'installation.

Il s'agit entre autre de bc, dosfstools, git, et des cross-compilateurs, mais il peut y en avoir d'autres. Utilisez la commande "apt-get install ....." pour les installer et/ou suivez les informations ci-dessous.

Installation des chaînes de (cross-)compilation

Voir la page concernant l'installation des chaînes de cross compilation.

Utilisation

Minicom

Pour simplifier l'utilisation de minicom, il est possible d'enregistrer une configuration.
La commande "minicom -s" lance minicom en mode configuration.

$ minicom -s
   --> Configuration du port série 
     A   -->     /dev/ttyUSB0
     F   -->     Désactiver le contrôle de flux matériel
   --> Enregistrer la configuration sous ...
   --> Sortir de Minicom

Il est possible d'enregistrer la configuration sous un identifiant de configuration spécifique pour faciliter la cohabitation de plusieurs configurations sur un même système. Ceci nécessite cependant dans certains cas de faire partie d'un groupe ayant le droit d'écrire dans le dossier /etc/minicom. Le plus simple est d'être dans le groupe dialout (nécessaire pour accéder au port USB-Serie), et de donner les droits en écriture sur ce dossier et son contenu au membres du groupe dialout :

# chown -R :dialout /etc/minicom
# chmod -R g+rw /etc/minicom

L'utilisation pourra alors être faite de l'une des façons suivantes :

$ minicom -ow [identifiant de configuration] [-C log_file]
$ minicom -ow -D /dev/ttyUSB0

Partage réseau

Sur le poste de dev

Il est possible de partager le réseau avec votre carte BeagleBone pour lui donner accès à internet.

  • Ajout d'un alias :

Lorsque le poste de développement ne dispose pas de seconde interface réseau (eth1) il est possible de créer un alias pour la première interface (eth0).

# ifconfig eth0:0 192.168.GG.XXX
avec GG = votre numéro de groupe et XXX de votre choix.

Sinon, vous utiliserez la deuxième carte réseau (sans alias) :

# ifconfig eth1 192.168.GG.XXX

Pour que cette configuration soit persistante, vous modifierez le fichier "/etc/network/interfaces" sur votre clé USB.

  • Activation du forwarding sur le poste de développement :
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Note : "eth0" représente l'interface de sortie, c'est à dire celle qui donne accès à internet

Pour rendre persistante cette partie de la configuration, vous modifierez le fichier "/etc/rc.local".

Sur la carte

  • Configuration réseau (adresse IP)

Il faut donner à l'interface réseau connectée (directement ou non) à votre PC une adresse sur le sous-réseau créé sur le poste de dev :

# ifconfig eth0 192.168.GG.YYY
  • Sélection d'un serveur DNS

Pour l'accès à internet, vous aurez besoin d'un serveur de noms :
Modification du fichier /etc/resolv.conf

echo "nameserver 208.67.222.222" > /etc/resolv.conf

OU, à CPE (CPE bloque l'utilisation de DNS externes):

echo "nameserver 134.214.49.16" > /etc/resolv.conf
  • Définition de la passerelle par défaut

Il est aussi nécessaire de définir la passerelle par défaut sur le système cible. La table de routage actuelle peut être vue avec la commande suivante :

netstat -rn

Et pour ajouter votre PC (192.168.GG.XXX) comme passerelle par défaut :

route add default gw 192.168.GG.XXX

Vous pourrez aussi rendre cette configuration persistante en modifiant le même fichier que pour le poste de développement.