Недавно мы рассмотрели ноутбук Raspberry Pi 4 с настраиваемым интерфейсом, из-за которого нецелесообразно делать снимки экрана непосредственно на устройстве. Поэтому нам пришлось делать скриншоты удаленно по SSH. Сделать это довольно просто. Большинство шагов могут быть воспроизведены в других системах Linux и не относятся к Raspberry Pi.
Включить SSH в Raspberry Pi
Сначала включите SSH с помощью sudo raspi-config в окне терминала и выберите 5. Параметры интерфейса, затем P2 SSH…
Если по какой-то причине у вас нет доступа к терминалу, выньте MicroSD карту из платы Raspberry Pi и создайте на компьютере новый пустой файл с именем «ssh» в загрузочном разделе.
Теперь, если у вас есть имя пользователя и пароль для вашей платы, вы можете подключиться к SSH с IP-адресом с терминала:
1 |
ssh <username>@<ip_address> |
или такую программу, как Putty.
Снимок экрана удаленно
Теперь вы готовы сделать следующий снимок экрана:
1 2 3 |
cd ~/Pictures sudo apt install scrot DISPLAY=:0 scrot screenshot.png |
scrot – это программа, которая делает снимок экрана, DISPLAY определяет изображение для захвата, а третий параметр – это имя файла, которое может иметь расширение png, jpg или gif.
Вы можете сделать сколько угодно снимков экрана с разными именами файлов, а затем перенести их обратно на свой компьютер по SSH либо из командной строки внутри Raspberry Pi:
1 |
scp *.png <pc_username>@<pc_ip_address> |
или со своего компьютера с помощью Filezilla или других программ, поддерживающих SFTP (протокол передачи файлов SSH).
Сохраните снимок экрана Raspberry Pi прямо на свой компьютер
Если вы хотите иметь возможность напрямую сделать снимок экрана на Raspberry Pi с изображением, сохраненным непосредственно на вашем компьютере, вы можете сделать это, сначала установив ssh без пароля с помощью открытых/закрытых ключей, чтобы избежать необходимости вводить пароль каждый раз. Когда вы закончите, вам больше не нужно будет спрашивать пароль при входе в Raspberry Pi через SSH:
1 2 3 4 5 6 7 8 9 10 |
jaufranc@CNX-LAPTOP-4:~/.ssh$ ssh pi@192.168.1.9 Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Sep 10 10:57:06 2020 from 192.168.1.4 |
Затем есть два способа продолжить работу: запустить команду с компьютера Linux или с платы Raspberry Pi.
Запуск команды с компьютера Linux
Вернитесь в окно терминала на своем компьютере и выполните следующую команду, чтобы удаленно сделать снимок экрана и сохранить файл на своем компьютере:
1 |
FILE="screenshot-001.png"; ssh pi@<pi_ip_address> 'DISPLAY=:0 scrot "'$FILE'"; scp "'$FILE'" <pc_user>@<pc_ip_address>:<remote_directory>; rm "'$FILE'" |
Для каждого нового снимка экрана просто меняйте значение переменной FILE. Командная строка подключается к Raspberry Pi через SSH, делает снимок экрана, передает его на ваш компьютер и удаляет его с платы Raspberry Pi.
[Обновление: как указано в комментариях, использование maim – более красивый метод, поскольку он выводит снимок экрана в stdout, что позволяет нам сохранить изображение на локальный компьютер с помощью простого перенаправления.
Сначала установите maim на Raspberry Pi:
1 |
sudo apt install maim |
Теперь мы можем сделать снимок экрана Raspberry Pi с нашего компьютера с помощью гораздо более простой команды:
1 |
ssh -t pi@<pi_ip_address> 'DISPLAY=:0 maim' > screenshot.png |
Начать создание снимка экрана с Raspberry Pi
Если у вас нет компьютера Linux, описанный выше метод не будет работать, если вы не используете подсистему Windows для Linux. Другой способ – установить SSH-сервер в Windows, а затем выполнить следующую команду внутри Raspberry Pi:
1 2 |
pi@raspberrypi:~/Pictures $ FILE="screenshot-002.png"; DISPLAY=:0 scrot $FILE; scp $FILE <pc_user>@<pc_ip_address>:<remote_directory>; rm $FILE screenshot-002.png 100% 536KB 33.8MB/s 00:00 |
Вот и все. Если вам нужен метод, который автоматически загружает снимок экрана после выбора области с помощью мыши, взгляните на скрипт upscrot Python.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.