我正在尝试在没有 Xserver (Raspbian Buster) 的系统上在电视上显示图像。我无法让 FBI 通过 systemd 服务工作,但它可以通过 ssh 终端工作。
以下通过 ssh 进行工作...
sudo fbi -T 1 /path/to/image.jpg
但它在 systemd 服务(wallpaper.service)中不起作用......
[Unit]
Description=display image
[Service]
Type=simple
ExecStart=/usr/bin/fbi -T 1 /path/to/image.jpg
...当我尝试运行它时...
sudo systemctl daemon-reload
sudo systemctl start wallpaper.service
我尝试添加..
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/tty1
在服务文件中没有运气。
编辑:
输出来自sudo systemctl status wallpaper.service
● wallpaper.service - random wallpaper change script
Loaded: loaded (/etc/systemd/system/wallpaper.service; static; vendor preset: enabled)
Active: inactive (dead) since Wed 2019-08-07 01:34:34 EDT; 12s ago
Process: 888 ExecStart=/usr/bin/fbi -T 1 -a /home/deanresin/temp/fire.dragon.jpg (code=exited, status=0/SUCCESS)
Main PID: 888 (code=exited, status=0/SUCCESS)
Aug 07 01:34:34 kl3mmput3r systemd[1]: Started random wallpaper change script.
Aug 07 01:34:34 kl3mmput3r fbi[888]: using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
Aug 07 01:34:34 kl3mmput3r systemd[1]: wallpaper.service: Succeeded.
输出来自journalctl -u wallpaper.service
Aug 07 01:34:34 kl3mmput3r systemd[1]: Started random wallpaper change script.
Aug 07 01:34:34 kl3mmput3r fbi[888]: using "DejaVu Sans Mono-16", pixelsize=16.67 file=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
Aug 07 01:34:34 kl3mmput3r systemd[1]: wallpaper.service: Succeeded.
编辑:我在某处读到联邦调查局必须从控制台运行 - 这是程序的限制。 Systemd 很糟糕......从那里没有任何作用。
答案1
您缺少-d /dev/fb0
指向实际帧缓冲区设备的选项。顺便说一句,我现在正在尝试选择-T 1
工作,但无论我做什么都失败了。对于fbi
“如果没有给出虚拟终端则/dev/console
使用”的问题还有另一个答案。 (如果我-T
从 systemd开始工作,我会编辑这个)
以下作品(用于显示图像)作为systemd
服务,可在 中找到/etc/systemd/system/splashscreen.service
:
[Unit]
Description=Splash screen
DefaultDependencies=no
After=local-fs.target
[Service]
#ExecStart=/usr/bin/fbi --noverbose -d -T 1 /dev/fb0 -t 60 -a -l /path/to/some/images.lst
ExecStart=/usr/bin/fbi --noverbose -d /dev/fb0 -t 60 -a -l /path/to/some/images.lst
#ExecStart=/usr/bin/fbi --noverbose -d /dev/fb0 -a /path/to/some/image.png
StandardInput=tty
StandardOutput=tty
#TTYPath=/dev/tty1
[Install]
WantedBy=sysinit.target
这些#
行是我正在测试的 atm,第二行和第三ExecStart
行都会显示图像。
如果您离开(默认启动)虚拟控制台,您将丢失帧缓冲区输出(屏幕为空白/黑色),尽管按键输入仍然有效(q
退出 - 使用ps
和进行验证systemctl
)。我想如果你不切换开,一切都会按预期工作,但我无法验证 atm,因为来自自动运行的操作系统作为其主操作系统,默认情况下在另一个终端上打开,并且也使用帧缓冲区设备。