我有一个 Raspberry Pi 4,显示屏分辨率为 1280x800,没有键盘或鼠标。我通过 WiFi 远程 ssh 进入它,并对它进行编码以显示图像,最终无需我 ssh 进入它。我安装了 feh 并在 python 脚本中使用它来显示图像:
import subprocess
image = subprocess.Popen(["feh", "--hide-pointer", "-x", "-q", "-B", "black", "-g", "1280x800", "./test.jpg"])
如果我在命令行中输入,我就可以让这段代码工作
export DISPLAY=:0.0
事先。但是,我希望在启动时自动执行此操作,以便我也可以在启动时运行 python 代码并让它自主运行。我尝试将该行放入 /etc/profile 中,但没有成功。
抱歉我的操作系统太幼稚——这确实是一个弱点。提前感谢您的帮助。
有几种方法可以做到这一点,我将列出最适合我的一种:
sudo nano /etc/pam.d/sudo
#并添加这一行
session optional pam_xauth.so
这是 ssh 问题的 GUI 的最终解决方案。这有助于使用 ssh 进行调试。
并使用 GUI 自动化任何 Python 代码以在启动时运行。 (将“main.py”替换为您的文件名。同时根据您的用户名更改目录名称。)
sudo nano launcher.sh
将以下行添加到此文件中
#!/bin/sh
#launcher.sh
#navigate to home directory, then to this directory, then execute python script, then back home
cd /
cd home/pi4
export DISPLAY=:0;sudo python3 main.py &
然后,要使其在启动时执行,请执行以下操作:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
#添加以下行
./launcher.sh
如果您在测试时需要通过 ssh 运行此代码并且收到无法使用“sudo”错误,请使用以下命令:
sudo apt-get install libatlas-base-dev
有关更多信息,请浏览我发现的此页面: https://www.instructables.com/Raspberry-Pi-Launch-Python-script-on-startup/