作者:风里火 | 来源:互联网 | 2024-11-18 21:09
本文将介绍如何在Linux启动时自动运行一个Python程序,该程序可以在PMOD OLED上显示PYNQ板的IP地址。
首先,我们需要编写一个Python脚本来获取PYNQ板的IP地址并显示在PMOD OLED上。以下是示例代码:
from netifaces import ifaddresses
IP_addr = ifaddresses('eth0:1')[2][0]['addr']
from pynq.overlays.base import BaseOverlay
from pynq.lib import Pmod_OLED
base = BaseOverlay("base.bit")
display = Pmod_OLED(base.PMODA)
display.clear()
display.write("Board IP", 1, 0)
display.write(IP_addr, 3)
接下来,我们需要确保这个脚本在系统启动时自动运行。我们可以通过创建一个Systemd服务来实现这一点。具体步骤如下:
- 创建一个新的Systemd服务文件:
sudo nano /lib/systemd/system/display_ip.service
- 在文件中添加以下内容:
[Unit]
Description=Display IP Address on PMOD OLED
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python3 /home/xilinx/display_ip.py
[Install]
WantedBy=multi-user.target
- 保存并关闭文件,然后运行以下命令以启用服务:
sudo chmod 644 /lib/systemd/system/display_ip.service
sudo systemctl daemon-reload
sudo systemctl enable display_ip.service
重启系统后,脚本将在启动时自动运行。然而,如果系统在启动过程中终止了程序并清除了显示,可能是因为有其他优先级更高的脚本(如/usr/local/bin/flash_leds.py
)干扰了你的程序。
解决方法有两种:
通过以上方法,你可以确保你的Python程序在系统启动时正确运行并显示IP地址。