CamillaDSP - Cross-platform IIR and FIR engine for crossovers, room correction etc

Headless.

Sorry I don't know how to insert code properly.

camilladsp.service:

[Unit]
Description=CamillaDSP
After=default.target
StartLimitIntervalSec=10
StartLimitBurst=10

[Service]
Type=simple
User=camilladsp
WorkingDirectory=~
ExecStart=camilladsp -s camilladsp/statefile.yml -w -o camilladsp/camilladsp.log -p 1234
Restart=always
RestartSec=1
StandardOutput=journal
StandardError=journal
SyslogIdentifier=camilladsp
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=10

[Install]
WantedBy=default.target

camillagui.service:

[Unit]
Description=CamillaDSP Backend and GUI
After=default.target

[Service]
Type=idle
User=camilladsp
ExecStart=/opt/camillagui_backend/camillagui_backend

[Install]
WantedBy=default.target
 
@ChrisMmm : IMHO it would be worth to learn a bit about key fields of the service unit files so that you can troubleshoot a bit, not just trial/error. E.g. the free github jobpilot can give a simple overview, even troubleshoot your file:

====================

To troubleshoot why your camilladsp.service does not work, let’s review and point out potential issues in your systemd service file:

### 1. WorkingDirectory=~
  • The tilde (~) is not expanded by systemd.
  • Use an absolute path instead, e.g., /home/camilladsp or /var/lib/camilladsp.

### 2. ExecStart
  • If you use relative paths (camilladsp, camilladsp/statefile.yml), they are resolved relative to WorkingDirectory.
  • Make sure the executable camilladsp and the files (statefile.yml, camilladsp.log) exist in your WorkingDirectory.
  • Consider using absolute paths to avoid ambiguity.

### 3. CPUSchedulingPolicy=fifo
  • Real-time scheduling needs special privileges.
  • The camilladsp user must have permission for fifo scheduling.
  • If not, the service will fail to start with a permissions error (check systemctl status camilladsp and journalctl -u camilladsp).
  • You may need to add:
Code:
  [Service]
  LimitRTPRIO=99

### 4. User and Permissions
- The camilladsp user must exist and have read/write permissions for all specified files and directories.

### 5. default.target
- This is not a typical target for services. Usually, you want multi-user.target or graphical.target under [Install] and After=.
- default.target is whatever is set as the system's default, but most services use multi-user.target.

### 6. Logs and Troubleshooting
- Check logs with:
Code:
  journalctl -u camilladsp
  systemctl status camilladsp
- Look for errors about file paths, permissions, user, or CPUSchedulingPolicy.

---

## Example Fixed Service File

INI:
[Unit]
Description=CamillaDSP
After=network.target

[Service]
Type=simple
User=camilladsp
WorkingDirectory=/home/camilladsp
ExecStart=/usr/local/bin/camilladsp -s /home/camilladsp/camilladsp/statefile.yml -w -o /home/camilladsp/camilladsp.log -p 1234
Restart=always
RestartSec=1
StandardOutput=journal
StandardError=journal
SyslogIdentifier=camilladsp
CPUSchedulingPolicy=fifo
CPUSchedulingPriority=10
LimitRTPRIO=99

[Install]
WantedBy=multi-user.target

---

## Summary of likely problems:
  • WorkingDirectory=~ should be an absolute path.
  • Relative paths in ExecStart may not resolve as intended.
  • Real-time scheduling without LimitRTPRIO or proper permissions.
  • Service may not be enabled for the right target.
  • File and directory permissions for the camilladsp user.

---

### Action Items:
1. Fix the WorkingDirectory and all file paths to be absolute.
2. Add LimitRTPRIO=99 for real-time scheduling.
3. Use multi-user.target instead of default.target.
4. Check user permissions.
5. Check logs for specific error messages if it still doesn’t work.

If you have a log error message, please share it and I can help you further diagnose the specific problem!

===================
Just hinting at possible ways to see a bit what is going on.
 
Rebooted this morning with updated service files. Both services started automatically without error so all good.

I had taken the service files from the tutorial which now uses Rpi OS as opposed to Ubuntu server in previous iterations. Even tho both based on Debian there are clearly differences, I will have to be aware of this for future upgrades/builds.

Anyway, many thanks for the help and pointers. Great support on this thread.
 
Glad to hear you got it working. I recently installed CamillaDSP on an HP t630 running Ubuntu Server 24.04 using the commands from my tutorial but substituting amd64 for aarch64. Here are the issues I encountered:

1) Needed to compile CamillaDSP as default amd64 binary assumes pulseaudio is installed
2) Needed to add user to audio group

Otherwise I did not need to change anything, but this was a clean install not an upgrade, it also may be different if you are using Desktop instead of Server.

Michael
 
Thanks Michael.

I may do a clean 24.04/Camilla install sometime on a spare Wyse N07D. My current one has been upgraded (both Ubuntu and CamillaDSP) a few times now so be good to get a clean install.

I love these thin client computers, I have 2 HP (t620 and t630) plus 3 Wyse ones. Prefer the Wyse as they have slightly better processors and a really tidy small footprint.
 
Last edited: