Formation PUB110 : Linux, 2018 Opérations diverses

6.1 Effectuer une impression d'écran sous Raspberry Pi OS


Je vous présente ici quelques utilitaires qui permettent de faire des impressions d'écran sous Linux.

fbcat

fbcat est un petit utilitaire tout simple qui effectue une impression d'écran de la console.

Il peut fonctionner même sans environnement graphique, par exemple sous Raspberry Pi OS Lite.

Il génère un fichier au format .ppm (Portable Pixmap Format).

Pour l'installer :

Terminal

sudo apt install fbcat

Et pour l'utiliser :

Terminal

fbcat > nom_fichier.ppm

Voici ce que j'obtiens si je lance cette commande dans une fenêtre SSH alors que le Pi n'a aucun écran branché.

fbcat

Et si je branche un clavier et un écran sur le Raspberry Pi et que je relance la commande, j'obtiendrai exactement ce que je vois à l'écran.

fbcat

fbgrab

L'utilitaire fbgrab fonctionne un peu comme fbcat sauf que le résultat est un fichier .png et que la syntaxe ne nécessite pas de redirection (>).

Il est automatiquement installé quand vous installez fbcat.

Pour l'utiliser :

Terminal

fbgrab nom_fichier.png

setterm

La commande setterm (SET TERMinal atttibutes) permet d'enregistrer dans un fichier texte ce qui est affiché dans le terminal.

Ce n'est pas tout à fait une impression d'écran mais les informations trouvées sont les mêmes puisque le terminal n'affiche que du texte.

Terminal

sudo setterm --dump

Par défaut, les informations seront enregistrées dans un fichier nommé screen.dump dans le dossier courant.

Un fichier .dump est un simple fichier texte.

Il est possible de spécifier le nom du fichier désiré. Vous pouvez même utiliser l'extension .txt si vous préférez.

Terminal

sudo setterm --dump --file mon_fichier.txt

Voici ce que j'obtiens si je lance la commande setterm dans une fenêtre SSH alors que le Pi n'a aucun écran branché.

Fichier screen.dump

[ OK ] Started Manage Sound Card State (restore and store).
       Starting Save/Restore Sound Card State...
       Starting Snappy daemon...
[ OK ] Started triggerhappy global hotkey daemon.
[ OK ] Started System Logging Service.
[ OK ] Started Raise network interfaces.
[ OK ] Started Deferred execution scheduler.
[ OK ] Started rng-tools.service.
[ OK ] Started Save/Restore Sound Card State.
[ OK ] Reached target Sound Card.
[ OK ] Started Login Service.
[ OK ] Started WPA supplicant.
[ OK ] Started Avahi mDNS/DNS-SD Stack.
[ OK ] Started dphys-swapfile - set up, mount/unmount, and delete a swap file.
       Starting Authorization Manager...
[ OK ] Started Authorization Manager.
[ OK ] Started Modem Manager.
[ OK ] Started Check for Raspberry Pi EEPROM updates.
[ OK ] Started LSB: Switch to ondemand cpu governor (unless shift key is pressed).
[ OK ] Started Snappy daemon.
       Starting Wait until snapd is fully seeded...
       Starting Time & Date Service...
[ OK ] Started Time & Date Service.
[ OK ] Started Wait until snapd is fully seeded.
       Starting Load/Save RF Kill Switch Status...
[ OK ] Started Configure Bluetooth Modems connected by UART.
[ OK ] Started Load/Save RF Kill Switch Status.
[ OK ] Created slice system-bthelper.slice.
       Starting Raspberry Pi bluetooth helper...
[ OK ] Started Raspberry Pi bluetooth helper.
       Starting Bluetooth service...
[ OK ] Started Bluetooth service.
[ OK ] Reached target Bluetooth.
       Starting Hostname Service...
[ OK ] Started Hostname Service.
[ OK ] Started dhcpcd on all interfaces.
[ OK ] Reached target Network.
       Starting Permit User Sessions...
[ OK ] Reached target Network is Online.
[ OK ] Started Unattended Upgrades Shutdown.
       Starting MariaDB 10.3.34 database server...
       Starting Fail2Ban Service...
       Starting OpenBSD Secure Shell server...
       Starting Network Time Service...
       Starting The Apache HTTP Server...
       Starting /etc/rc.local Compatibility...
My IP address is 192.168.1.113
[ OK ] Started Permit User Sessions.
[ OK ] Started Fail2Ban Service.
[ OK ] Started /etc/rc.local Compatibility.
       Starting Terminate Plymouth Boot Screen...
       Starting Hold until boot process finishes up...

Raspbian GNU/Linux 10 raspberrypi tty1


raspberrypi login:

Et si je branche un clavier et un écran sur le Raspberry Pi et que je relance la commande, j'obtiendrai exactement ce que je vois à l'écran.

Fichier screen.dump

pi@raspberrypi:~ $ hostname -I
192.168.1.113
pi@raspberrypi:~ $ sudo setterm --dump

Scrot

Scrot (SCReenshOT) et un autre utilitaire qui permet d'effectuer des impressions d'écran.

Il est plus puissant que les autres mais il nécessite qu'un environnement graphique soit installé et ce, même pour faire une capture d'écran de la console.

Il est installé par défaut avec Raspberry Pi OS with Desktop.

Je vous propose ici une astuce pour pouvoir tout de même l'utiliser avec Raspberry Pi OS Lite.

Installation d'un environnement graphique sous Raspberry Pi OS Lite

Dans la version Lite de Raspberry Pi OS, vous devrez d'abord installer un environnement graphique.

Si vous tentez d'appeler Scrot alors qu'aucun environnement graphique n'est disponible, vous obtiendrez le message « giblib error: Can't open X display. It *is* running, yeah? ».

Je vous propose d'installer XFCE, un environnement graphique léger.

Terminal

sudo apt install xfce4

Si vous ne souhaitez pas que votre Raspberry Pi démarre toujours en environnement graphique :

Terminal

sudo systemctl set-default multi-user.target

Vous devrez cependant passer en mode graphique avant d'utiliser Scrot.

Terminal

sudo service lightdm start

Installation de Scrot

Une fois que vous avez un environnement graphique en place, vous pouvez installer Scrot.

Terminal

sudo apt install scrot

Utilisation

Si votre clavier dispose d'une touche ImpÉcr ou Print Screen, vous n'avez qu'à appuyer sur cette touche et une image de l'écran sera enregistrée dans votre dossier personnel.

Sinon, vous pouvez ouvrir une fenêtre Terminal et entrer la commande :

Terminal

scrot

Ceci créera une image de l'écran au format .png, placée dans le dossier courant. Pour connaître le chemin de ce dossier, entrez la commande pwd (Print Working Directory). Sous Raspberry Pi OS, il s'agit par défaut du dossier /home/pi.

L'image créée incluera la fenêtre Terminal.

Pour ne pas avoir la fenêtre Terminal dans l'image, il est possible de demander un délai. Par exemple, avec la commande :

Terminal

scrot -d 3

Vous aurez un délai de 3 secondes pour refermer la fenêtre Terminal avant que l'impression d'écran soit faite.

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre