Ok, mod-jackd
runs properly, but its systemd unit (jack2) hangs when starting up.
It seems that it’s hanging on some unmet dependencies.
systemctl list-jobs
JOB UNIT TYPE STATE
74 mixserver.service start waiting
63 enable-usb-gadget.service start running
71 cpu-freq-manager.service start running
82 post-boot-actions.service start waiting
153 jack-netmanager.service start waiting
65 jack-usb-gadget.service start waiting
66 jack2.service start waiting
75 mod-ui.service start waiting
64 mod-peakmeter.service start waiting
At the end of the script that enable-usb-gadget
runs this is ran,
/usr/bin/systemctl start jack-netmanager
I lucked out a bit and I recalled that command being around when I ran ps aux | grep "jack"
to look for jackd.
To my surprise, jack-netmanager
depends on jack2
,
jack2.service
└─enable-usb-gadget.service (ExecStart=/usr/sbin/enable-usb-gadget.sh)
└─(Runs /usr/bin/systemctl start jack-netmanager)
└─jack-netmanager.service
└─jack2.service
Seems like a deadlock to me 
Since enable-usb-gadget.sh
conditionally runs systemctl start
I commented that line out.
After a reboot systemd got to run the jackd
and the mod-ui
, so now I can just unplug/plug
the box and get a working pedal without ssh-ing into it.
However, systemd-analyze
still complains that the boot has not finished.
systemctl list-jobs
JOB UNIT TYPE STATE
56 cpu-freq-manager.service start running
1 multi-user.target start waiting
Looking at /usr/sbin/cpu-freq-manager
it seems that the oneshot unit won’t ever finish, so startup won’t finish. Maybe it should be set up as a daemon instead of a oneshot.
I tried out using Type=simple
and got systemd’s startup fixed,
systemd-analyze critical-chain
multi-user.target @2.034s
└─mod-ui.service @2.034s
└─controlchaind.service @1.848s +182ms
└─basic.target @465ms
└─sockets.target @465ms
└─controlchaind.socket @465ms
└─sysinit.target @464ms
└─systemd-tmpfiles-setup.service @242ms +222ms
└─systemd-journal-flush.service @220ms +16ms
└─var.mount @201ms +5ms
└─local-fs-pre.target @200ms
└─systemd-tmpfiles-setup-dev.service @188ms +10ms
└─kmod-static-nodes.service @113ms +20ms
└─system.slice @97ms
└─-.slice @95ms
Also, I guess that setting Restart=always
shouldn’t hurt.