Catégories

Installer un Raspberry Pi Zero W en ligne de commande

Temps de lecture : 5 minutes

Le but du jeu ici est de copier sur une Micro SD Card une image Raspbian afin de faire démarrer une Raspberry Zero W qui vient d'arriver aujourd'hui. On n'est pas obligé de faire de cette façon. Voir cette autre page d'instructions par exemple.

  • On est sous PIXEL sur le RP3
  • Ouvrir une console et aller dans le répertoire Téléchargements
  • Saisir, au choix, l'une des deux commandes suivantes :
wget -O rasbian_test.zip https://downloads.raspberry.org/raspbian_latest
wget -O rasbian_test.zip https://downloads.raspberry.org/raspbian_lite_latest
  • Aller boire un thé ou manger une pomme. Lire la suite de ce billet et retenir que par la suite, en fonction du fichier téléchargé il faudra ajouter "lite" ou pas.
  • Vérifier l'intégrité du fichier (ce n'est pas immédiat comme procédure. Le processeur tourne à moins de 10%. Re-thé ou relecture...)
sha1sum raspbian_latest.zip
  • Si besoin aller sur le site https://www.raspberrypi.org/downloads/raspbian/ pour vérifier que les deux nombres coïncident bien
  • Dézipper le fichier (ça prend du temps encore cette histoire et le processeur ne tourne qu'entre 10 et 25%)
unzip raspbian_latest.zip
  • À ce jour (11/03/2017) le fichier s'appelle dorénavant "2017-03-02-raspbian-jessie.img"
  • Ne rien connecter au RP3 et faire l'inventaire des périphériques en l'état.
df -h
  • Insérer une Micro SD Card dans un porteur USB et le brancher le porteur sur le Raspberry 3
  • Relancer la commande précédente pour découvrir comment s'appelle la clé USB
df -h
  • Noter le nom de la clé. Ici elle s'appelle : /dev/sda1 et elle est montée en /media/philippe/ESD-USB. À noter que le 1 à la fin de sda1 indique que c'est la partition 1.
  • Démonter la clé
umount /dev/sda1
  • Si on tape "dd --version" dans la console et si le N° de version qui sort est inférieur à 8.24 alors il faut passer par l'étape suivante si on veut voir une barre de progression à l'écran. C'est à faire une seule fois. Installer le package "pv" pour suivre l'avancement de la commande suivante :
sudo apt-get install pv
  • Copier l'image sur la Micro SD Card. Attention il n'y a pas de N° à la fin de "sdd" (on va machouiller toute la carte et pas une partition particulière)
pv 2017-03-02-raspbian-jessie.img | sudo dd bs=4M of=/dev/sda
  • Si le N° de version de coreutils est supérieur à 8.24 on peut invoquer la commande suivante (à noter le paramètre status=progress ) :
dd bs=4M status=progress if=2017-03-02-raspbian-jessie.img  of=/dev/sda
  •  Vider le cache avant de retirer la Micro SD Card
sudo sync
  • Insérer la Micro SD Card dans le Raspberry Pi Zero W, brancher clavier, souris, écran et alimentation.
  • Boot ! (Attention cela peut prendre du temps...)
  • Quand tout sera configuré il faudra penser à supprimer sur le RP3, dans le répertoire "Téléchargements", le fichier zip téléchargé (rasbian_test.zip par exemple) ainsi que l'image disque associée (2017-03-02-raspbian-jessie.img par exemple).

Configuration du Wifi

  • Saisir la commande suivante
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
  • Compléter le fichier avec les lignes suivantes (ne pas oublier les guillemets)
network={
    ssid="Nom du Wifi"
    psk="Mot de Passe"
}
  • Mettre en route le réseau (pour arrêter c'est sudo ifdown wlan0)
sudo ifup wlan0
  • Faire un test de réseau avec un ifconfg pour récupérer l'adr puis un ping
ifconfig
ping google.com

Configuration du Wifi sans clavier ni écran

  • Je me place dans le cas où on vient de copier l'image sur la Micro SD Card et où on vient de vider le cache USB du Raspberry 3 avec la commande suivante :
sudo sync
  • De plus, je suppose qu'il y a une Box qui fait serveur DHCP qui distribue des adr.
  • Retirer la clé USB qui porte la Micro SD Card
  • Remettre la clé USB. Si besoin, sur le RP3, cliquer sur le bouton "Annuler" de la boîte de dialogue qui apparaît sous PIXEL.
  • Vérifier les périphériques montés avec
df -h
  • Par exemple, sur mon RP3 je vois la liste suivante
...
/dev/sda1            /media/bob/boot
/dev/sda2            /media/bob/8a907.....
  • Aller dans le répertoire /media/bob/8a907.... et inspecter son contenu
cd /media/bob/8a907...
ls -all
  • On retrouve l'arborescence du futur système de fichiers du Raspberry Pi  Zero W
  • Saisir la commande suivante. ATTENTION : il y a un "." devant "/etc" car on va éditer le fichier qui est sur la clé USB et PAS le fichier qui est sur le Raspberry Pi 3.
sudo nano ./etc/wpa_supplicant/wpa_supplicant.conf
  • Compléter le fichier avec les lignes suivantes (ne pas oublier les guillemets) :
network={
    ssid="Nom du Wifi"
    psk="Mot de Passe"
}
  • CTRL+O et CTRL+X pour quitter nano.

Ensuite on va modifier le fichier "interfaces" de la clé USB

  • Ouverture du fichier
nano ./etc/network/interfaces
  • Dans le fichier il faut trouver les lignes
allow-hotplug wlan0
iface wlan0 inet manual
...
  • Et les modifier comme ci-dessous (ne pas oublier le dhcp en bout de ligne 🙂 )
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
...
  • CTRL+O et CTRL+X pour quitter nano.

Pour terminer il faut créer un fichier "ssh" dans le sous-répertoire boot car le protocole ssh n'est pas supporté par défaut.

sudo touch ../boot/ssh
  • ATTENTION : on parle bien du répertoire "/media/bob/boot" et PAS du répertoire "/media/bob/8a907.../boot ". Comme on est dans le répertoire /media/bob/8a907... il faut bien mettre deux points devant /boot dans la commande précédente. Prendre le temps de bien vérifier qu'un fichier vide nommé "ssh" est bien dans "/boot"
  • Terminer avec les commandes suivantes avant de débrancher la clé USB qui porte la Micro SD Card du Raspberry 3
umount /dev/sda1
umount /dev/sda2
sudo sync
  • Insérer la Micro SD Card dans le Raspberry Pi Zero W et brancher l'alimentation.
  • Boot !
  • Ensuite il faut retrouver via sa box, l'adresse IP du Raspberry Pi Zero W et se connecter dessus en SSH pour terminer la configuration.

Utilisation du Bluetooth

Avec un mini clavier RT-MWK02+ par exemple.

Note

À ce jour (mars 2017) les manipes ci-dessous semblent à jour.

  • Allumer le clavier et dans la console saisir la commande suivante :
bluetoothctl
  • On rentre alors dans une session dont le prompt commence par "[bluetooth]#". Dans ce qui suit, après ce prompt c'est ce que l'on saisi. Le reste c'est la réponse de bluetoothctl. Saisir les commandes suivantes :
[bluetooth]# help
Available commands:
  list                       List available controllers
  show [ctrl]                Controller information
  select <ctrl>              Select default controller
  devices                    List available devices
  paired-devices             List paired devices
  power <on/off>             Set controller power
  pairable <on/off>          Set controller pairable mode
  discoverable <on/off>      Set controller discoverable mode
  agent <on/off/capability>  Enable/disable agent with given capability
  default-agent              Set agent as the default one
  scan <on/off>              Scan for devices
  info <dev>                 Device information
  pair <dev>                 Pair with device
  trust <dev>                Trust device
  untrust <dev>              Untrust device
  block <dev>                Block device
  unblock <dev>              Unblock device
  remove <dev>               Remove device
  connect <dev>              Connect device
  disconnect <dev>           Disconnect device
  version                    Display version
  quit                       Quit program
 
[bluetooth]# agent on
Agent registered
 
[bluetooth]# pairable on
Changing pairable on succeeded
 
[bluetooth]# scan on
Discovery started
...
[CHG] Device CC:C5:0A:1C:04:09 Name: Bluetooth 3.0 Macro Keyboard
...
 
bluetooth]# scan off
Discovery stopped
...
 
[bluetooth]# pair CC:C5:0A:1C:04:09
Attempting to pair with CC:C5:0A:1C:04:09
[CHG] Device CC:C5:0A:1C:04:09 Connected: yes
[agent] PIN code: 432703
[CHG] Device CC:C5:0A:1C:04:09 Modalias: usb:v05ACp8502d011B
[CHG] Device CC:C5:0A:1C:04:09 UUIDs:
        00001000-0000-1000-8000-00805f9b34fb
        00001124-0000-1000-8000-00805f9b34fb
        00001200-0000-1000-8000-00805f9b34fb
[CHG] Device CC:C5:0A:1C:04:09 Paired: yes
Pairing successful
[CHG] Device CC:C5:0A:1C:04:09 Connected: no
 
[bluetooth]# trust CC:C5:0A:1C:04:09
[CHG] Device CC:C5:0A:1C:04:09 Trusted: yes
Changing CC:C5:0A:1C:04:09 trust succeeded
 
[bluetooth]# connect CC:C5:0A:1C:04:09
Attempting to connect to CC:C5:0A:1C:04:09
[CHG] Device CC:C5:0A:1C:04:09 Connected: yes
Connection successful
 
[bluetooth]# info CC:C5:0A:1C:04:09
Device CC:C5:0A:1C:04:09
        Name: Bluetooth 3.0 Macro Keyboard
        Alias: Bluetooth 3.0 Macro Keyboard
        Class: 0x002540
        Icon: input-keyboard
        Paired: yes
        Trusted: yes
        Blocked: no
        Connected: yes
        LegacyPairing: yes
        UUID: Service Discovery Serve.. (00001000-0000-1000-8000-00805f9b34fb)
        UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v05ACp8502d011B
 
[bluetooth]# exit

Note

Une fois que cela a été fait, en ce qui me concerne... Rien ne marchait. J'ai simplement éteint et rallumé le clavier et là les caractères apparaissaient bien à l'écran. En tout cas il ne faut pas faire la manipe bluetoothctl à chaque fois 🙂

Si par la suite, le clavier ne fonctionne pas, rentrer dans bluetoothctl et saisir "connect CC:C5:0A:1C:04:09" puis sortir.

Note importante

À ce jour (mars 2017) j'ai de très sérieux problème de charge CPU sur le Raspi Zero W avec Bluetooth. Je n'ai pas ces problèmes sur un Raspberry Pi 3 par exemple. Sur le Zero, si je "joue" avec le clavier, dès que ça marche, /usr/lib/bluetooth/bluetoothd fait grimper la charge à 100%. Je ne comprends pas ce qui se passe. Pour l'instant je m'en sors avec :

sudo systemctl stop bluetooth

Ce n'est pas du tout satisfaisant.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.