Units shipped by fpgas-online-setup-pi¶
You operate the fleet and want to know which systemd units the fpgas-online-setup-pi package ships to every welland Pi, which of them run, and why the pistat and Arty units do not. This is the root fpgas.online-infra builds (main, read 2026-10-07); the units the root enables are on Services on a Pi host.
From fpgas.online-setup-pi main (units, udev rules, nfpm.yaml), read 2026-10-07. None of these is enabled by a
task in onpi; udev starts the first four.
Unit |
What it does |
Started by |
|---|---|---|
|
|
|
|
The login console on the second gadget port. Separate from |
the same rule, when |
|
Host side only: captures an attached board’s log port to |
|
|
Host side only: |
|
|
One-shot |
nothing |
|
The same for |
nothing |
|
Reports the device-tree model string ( |
nothing |
|
|
nothing |
|
Meant to report whether an Arty is attached. |
nothing; would not run if it were |
|
Meant to check the Pi-to-Arty wiring. |
nothing; would not run if it were |
|
Meant to run the Arty counter demo from |
nothing; would not run if it were |
The pistat and Arty units¶
The task files that used to enable them (pistat.yml, arty_here.yml, arty_wire.yml, arty_blink.yml) are no
longer in fpgas.online-infra main (read 2026-10-07). The fleet agent (fpgas-fleet-agent,
fpgas-fleet-event@…, in the table on Services on a Pi host) is what reports the Pi and its boot stages now.
Note
Enabling the Arty three is not a one-line fix. Their unit bodies were never updated when the package took
over installation, so all three would fail with 203/EXEC: each ExecStart names the pre-package script path
while nfpm.yaml installs the fpgas--prefixed name, and the deb has no scripts: block, no postinstall and
no compatibility symlink. arty_here.sh has the same problem one level down, and arty_wire and
arty_blink order themselves after arty_here.target and arty_wire.target, which exist nowhere in the
package. The unit bodies need the fpgas- names and those two After= targets removed before enabling them
would achieve anything. This is read from the file names, not run.
The four pistat units do not share the path problem: their ExecStart lines call /usr/bin/curl (and
/usr/bin/bash for info) directly, so enabling them is enough, except that fpgas-pistat-cam.service stays
inert because it is bound to cam.service, which was renamed fpgas-cam.service.
Open decision. Whether the pistat path is still wanted. If it is, fix the unit bodies in
fpgas.online-setup-pi and add an include in
onpi/tasks/main.yml that enables the fpgas--prefixed units.
Two smaller oddities in the same package. The pistat-scripts/ Python files are installed onto the Pi as
/usr/local/bin/fpgas-pistat-*.py, but they are server-side code: send.py imports asgiref (channels), and
send_stat.py is a dnsmasq --dhcp-script with the shebang #!/srv/www/pib/venv/bin/python3, a path that does
not exist on a Pi (send_ncc.py has the same shebang, from the earlier docs page, not re-checked). The .link
files that name the two Ethernet interfaces come from this package too, under interface
naming.