【问题标题】:raspberry pi : Auto run GUI on boot树莓派:启动时自动运行 GUI
【发布时间】:2017-04-22 14:41:04
【问题描述】:

我想运行一个 python 脚本,它在启动时执行一个 GUI(当 pi 启动时)。但是我在屏幕上看不到任何 GUI,但是当我打开终端时,我的程序会自动执行并出现 GUI。此外,我的程序在执行时需要互联网连接,但 pi 稍后连接到 wifi,我的脚本首先执行并以未连接到互联网结束。

在 pi 正确启动并且 pi 连接到互联网后,我的 python 脚本有什么办法执行

【问题讨论】:

  • 如果您未登录,则无法运行 GUI。登录 Linux 后运行脚本~/.bashrc
  • 我的 pi 自动启动到 Pi 桌面 GUI。我也禁用了登录名和密码。我在 .bashrc 文件中添加了指向文件的链接。

标签: python user-interface terminal raspberry-pi


【解决方案1】:

Raspian 的两个步骤:

  1. 确保启动到 GUI(可以通过 sudo raspi-config 进行设置)
  2. 编辑 ~/.config/lxsession/LXDE-pi/autostart 并将您的 python 脚本添加到路径中:例如@python /home/pi/your_script.py

如果路径是,则取决于 raspian 的版本

~/.config/lxsession/LXDE-pi/autostart

或

~/.config/lxsession/LXDE/autostart

我建议一次尝试一个。 (旧版本可能使用此路径/etc/xdg/lxsession/LXDE-pi/autostart (ref))

这应该在 UI 初始化后运行脚本,但您无法保证 WiFi 已连接。我建议修改您的 python 脚本以检查它是否首先连接,如果在几秒钟后重试直到连接,然后按预期执行其余部分。

【讨论】:

  • 它适用于一些变化。我在那里只看到 GUI,没有 python 脚本和控制台。此外,启动时运行的脚本不显示图像
【解决方案2】:

在不知道您的情况下设置 Pi 有点困难。但是假设您使用默认的“桌面”模式运行 raspbian:

  1. 通过sshing 或连接显示器/键盘在您的 Pi 上打开一个终端。
  2. 首先我们需要允许您自动登录,所以sudo nano /etc/inittab 打开inittab 进行编辑。
  3. 找到1:2345:respawn:/sbin/getty 115200 tty1这一行并将其更改为#1:2345:respawn:/sbin/getty 115200 tty1
  4. 在该行下,添加1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1。输入 Ctrl+O 然后 Ctrl+X 保存并退出
  5. 接下来,我们可以编辑 rc.local。 sudo nano /etc/rc.local
  6. 在exit 0 行上方添加一行su -l pi -c startx(将pi 替换为您要启动的用户名)。这将在启动时启动 X,从而允许其他应用程序使用图形界面。
  7. 在上一行(例如python /path/to/mycoolscript.py &)下方添加您要运行的命令,但仍位于exit 0 行上方。
    注意此处包含的&。这会“分叉”该过程,即使您的脚本尚未退出,也允许其他命令运行。再次按 Ctrl+O 和 Ctrl+X 保存并退出。

现在,当您打开 Pi 电源时,它会自动登录,启动 X,然后启动您编写的 python 脚本!

另外,我的程序在执行时需要互联网连接,但 pi 稍后连接到 wifi,我的脚本首先执行并以未连接到互联网结束。

这应该在脚本本身中解决。创建一个简单的while 循环,检查互联网访问、等待并重复,直到 wifi 连接。

【讨论】:

    猜你喜欢
    • 2022-11-27
    • 2022-12-05
    • 2016-03-16
    • 1970-01-01
    • 2015-05-11
    • 2023-01-08
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多