RPi à partir de rien : Configuration avancée.
I) Utilisateurs.
1) Ajouter l’utilisateur root :
/ # echo "root:0:0:root:/root:/sbin/sh" > /etc/passwd / # echo "root:x:0:" > /etc/group
2) Changer le mot de passe
/ # passwd
3) Ajouter un utilisateur normal :
/ # adduser rpi
4) Vérification :
/ # ls -l /home root@RaspberryPi [/root]# ls -l /home total 8 drwxr-sr-x 2 rpi rpi 4096 Jan 1 00:05 rpi / # cat /etc/passwd root:a1U/7iVM41kGs:0:0:root:/root:/bin/sh rpi:gCvrT9cfEydko:1000:1000:Linux User,,,:/home/rpi:/bin/sh
II) Configuration du login :
– Fichier « inittab » :
Ouvrir :
/etc/inittab
Remplacer tout par :
::sysinit:/etc/init.d/rcS tty1::respawn:/sbin/getty 0 /dev/tty1 tty2::respawn:/sbin/getty 0 /dev/tty2 tty3::respawn:/sbin/getty 0 /dev/tty3 tty4::respawn:/sbin/getty 0 /dev/tty4 ttyAMA0::respawn:/sbin/getty 115200 /dev/ttyAMA0
– Fichier « hostname » :
Ouvrir :
/etc/hostname
Ajouter :
RaspberryPi
– Fichier de démarrage :
Ouvrir :
/etc/init.d/rcS
Ajouter :
hostname -F /etc/hostname
– Fichier « profile » :
Ouvrir :
/etc/profile
Ajouter :
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin PS1="\u@\h [\W]" if [ $(id -u) -eq 0 ] then PS1=${PS1}"# " else PS1=${PS1}"$ " fi
II) Réseau :
– Configuration des fichiers réseaux :
Ouvrir :
/etc/resolv.conf
Ajouter :
nameserver 80.10.246.2
Ouvrir :
/etc/init.d/rcS
Ajouter :
/etc/init.d/rc.network &
Ouvrir :
/etc/init.d/rc.network
Ajouter :
#!/bin/sh /sbin/ifconfig lo 127.0.0.1 while ! /sbin/ifconfig -a | grep eth0 >/dev/null do sleep 1 done /bin/ifplugd -i eth0
– Configuration de l’adresse ip statique :
action :
chmod 777 /etc/init.d/rc.network
Ouvrir :
/etc/ifplugd/ifplugd.action-statique
Ajouter :
#!/bin/sh if [ "$1" = "eth0" ] ; then IP_HOST=192.168.1.11 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 IP_DNS=80.10.246.2 if [ "$2" = "up" ] ; then /sbin/ifconfig eth0 ${IP_HOST} netmask ${NETMASK} if [ "${GATEWAY}" != "" ] ; then /sbin/route add default gw "${GATEWAY}" fi if [ "${IP_DNS}" != "" ] ; then echo "nameserver ${IP_DNS}" > /etc/resolv.conf fi fi fi return 0
Action :
/etc/ifplugd/ # ln -s ifplugd.action-statique ifplugd.action /etc/ifplugd/ # chmod 777 ./ifplugd.action*
– Brancher un câble réseau.
– Connexion manuel :
root@RaspberryPi [/root]# ifconfig eth0 192.168.1.11 netmask 255.255.255.0 root@RaspberryPi [/root]# route add default gw 192.168.1.1
– Teste à partir d’un autre ordinateur du réseau :
[~] ➔ ping 192.168.1.11 -c 3 PING 192.168.1.11 (192.168.1.11) 56(84) bytes of data. 64 bytes from 192.168.1.11: icmp_req=1 ttl=64 time=0.470 ms 64 bytes from 192.168.1.11: icmp_req=2 ttl=64 time=0.489 ms 64 bytes from 192.168.1.11: icmp_req=3 ttl=64 time=0.567 ms --- 192.168.1.11 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 0.470/0.508/0.567/0.049 ms
– A partir du RPi
root@RaspberryPi [/root]# ifconfig eth0 Link encap:Ethernet HWaddr B8:27:EB:E7:1A:95 inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::ba27:ebff:fee7:1a95/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:323 errors:0 dropped:0 overruns:0 frame:0 TX packets:212 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:29034 (28.3 KiB) TX bytes:24800 (24.2 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@RaspberryPi [/root]# ping 192.168.1.1 -c 3
root@RaspberryPi [/root]# ping google.fr
III) Service d’un serveur internet :
– Fichier de configuration :
Ouvrir :
/etc/init.d/rcS
Ajouter :
/etc/init.d/rc.services &
Ouvrir :
/etc/init.d/rc.services
Ajouter :
#!/bin/sh /sbin/telnetd /sbin/httpd -h /home/httpd
– Lancement manuel du serveur web :
root@RaspberryPi [/root]# /sbin/httpd -h /home/httpd
– Page web :
Ouvrir :
/home/httpd/index.html
Ajouter :
Raspberry Pi from scratch Framboise Pi
Cette page s'affiche depuis un petit serveur http embarqué sur mon Raspberry Pi.
Action :
root@RaspberryPi [/root]# httpd -h /home/httpd
– Afficher la page web :
Dans un navigateur, taper l’adresse : http://192.168.1.11
IV) Script d’arrêt :
Ouvrir :
/root/arreter.sh
Ajouter :
#!/bin/sh mount / -o ro,remount halt
V) Accés sécurisé :
1) Compilation de dropbear :
A partir de l’ordinateur de développement :
– Répertoire de travail :
[~] ➔ cd RaspberryPi/
– Téléchargement et décompression :
[~/RaspberryPi] ➔ wget https://matt.ucc.asn.au/dropbear/releases/dropbear-2012.55.tar.gz [~/RaspberryPi] ➔ tar xvfz dropbear-2012.55.tar.gz [~/RaspberryPi] ➔ cd dropbear-2012.55/
– Configuration du compilateur arm :
[~/RaspberryPi/dropbear-2012.55] ➔ PATH=$PATH:/usr/local/cross-rpi/usr/bin/ [~/RaspberryPi/dropbear-2012.55] ➔ ./configure --host=arm-linux --disable-zlib
– Compilation :
[~/RaspberryPi/dropbear-2012.55] ➔ make [~/RaspberryPi/dropbear-2012.55] ➔ make scp
– Copier les binaires sur la carte mémoire :
[~/RaspberryPi/dropbear-2012.55] ➔ sudo scp dropbear dropbearkey scp /media/Root/usr/bin/
A partir du RPi :
Ouvrir :
/etc/init.d/rc.services
Ajouter :
if[! -f /etc/dropbearkey.rsa]; then /usr/bin/dropbearkey -t rsa -f /etc/dropbearkey.rsa fi /usr/bin/dropbear -r /etc/dropbearkey.rsa
– Teste :
A partir de l’ordinateur de développement:
[~] ➔ ssh root@192.168.1.11 The authenticity of host '192.168.1.11 (192.168.1.11)' can't be established. RSA key fingerprint is 7c:e8:9b:f4:9c:ba:31:a0:1a:a5:40:b3:4a:84:93:92. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.11' (RSA) to the list of known hosts. root@192.168.1.11's password: root@RaspberryPi [/root]#
Erreur :
[~] ➔ ssh root@192.168.1.11 root@192.168.1.11's password: PTY allocation request failed on channel 0 shell request failed on channel 0
Solution :
root@RaspberryPi [/root]# mkdir /dev/pts root@RaspberryPi [/root]# echo "none /dev/pts devpts defaults 0 0" >> /etc/fstab root@RaspberryPi [/root]# mount /dev/pts
VI) Script d’initialisation du réseau et des services réseaux.
Ouvrir :
/root/reseau.sh
Ajouter :
#!/bin/sh ifconfig eth0 192.168.1.11 netmask 255.255.255.0 route add default gw 192.168.1.1 sleep 3 /sbin/telnetd /sbin/httpd -h /home/httpd /usr/bin/dropbear -r /etc/dropbearkey.rsa mkdir /dev/pts mount /dev/pts
VII) Remarques :
– Espace disque utilisé :
root@RaspberryPi [/root]# df -h Filesystem Size Used Available Use% Mounted on /dev/root 3.5G 42.7M 3.3G 1% / devtmpfs 226.9M 0 226.9M 0% /dev
VIII) Liens :
http://www.blaess.fr/christophe/2013/02/28/linux-mag-158-raspberry-pi-from-scratch/