Hey everyone,
I’m trying to set up my HP OfficeJet 3080 network printer on KDE Linux (Project Banana) (Arch-based, immutable), but I’m running into several issues. The printer worked fine on other distros, but here, I can’t get it working properly.
Issues I’m Facing:
-
Adding the printer via GUI only works if I select a driver, but the file becomes null.
-
The recommended driver gives an “invalid argument” error when adding the printer.
-
CUPS web interface loops when logging in as root but works as a normal user.
-
Driverless setup fails with an error about not being able to retrieve an IPP file.
-
Printing with driverless fails with “can’t locate printer printer.local”.
This makes me suspect Avahi, systemd-resolved, or mDNS issues.
What I Can and Can’t Do:
I CAN modify and enable services (CUPS, Avahi, systemd-resolved, etc.)
I CAN use systemd-sysext for overlays
I HAVEN’T tried anything yet besides encountering these issues
Next Steps - Need Help With:
-
Has anyone gotten network printing to work on Project Banana or similar immutable Arch distros?
-
Could this be an Avahi/mDNS issue, and if so, how do I fix it?
-
Should I try overlaying hplip or other drivers with systemd-sysext, or is there a better way?
Any help would be appreciated! Thanks in advance!
You may have already solved this, but in case you haven’t, I had to take some extra steps to get my Brother network printer working on the new immutable KDE Linux (i.e., the KDE Settings → add printer route did not work). Essentially some of the CUPS conf files weren’t set up automatically. The sequence of commands I ran were:
sudo mkdir -p /etc/cups
sudo cp /tmp/cupsd.conf /etc/cups/cupsd.conf
sudo chown root:lp /etc/cups/cupsd.conf && sudo chmod 640 /etc/cups/cupsd.conf
sudo mkdir -p /run/cups && sudo chown root:lp /run/cups && sudo chmod 755 /run/cups
sudo mkdir -p /var/spool/cups && sudo chown root:lp /var/spool/cups && sudo chmod 710 /var/spool/cups
sudo usermod -a -G lp hugh
sudo systemctl start cups.service
lpadmin -p "Brother-HL-L2370DW" -E -v "ipp://192.168.68.54:631/ipp/print" -m "everywhere" -D "Brother HL-L2370DW"
There may be better/simpler ways of doing this, but my printer works fine after running those commands.
1 Like
Thanks for mentioning. I fixed the local domain resolving in KDE Linux 6 months ago.
This seems strange. All of those files are present on my KDE Linux system. When did you install yours? Mine was installed a few weeks ago, and then updated daily. Is yours a very old installation?
No my system is very recent. In fact I just reinstalled yesterday using the latest raw image (I reinstalled because I wanted to use an encrypted hard drive). There is no /etc/cups/cupsd.conf file present (and nothing in /run/cups and no /var/spool directory). systemctl status cups. service produces:
○ cups.service - CUPS Scheduler
Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled; preset: enabled)
Active: inactive (dead) (Result: exit-code) since Thu 2025-08-28 20:22:28 EDT; 11s ago
Invocation: 0364e6492a9a4e09a4a79056ff974782
TriggeredBy: × cups.socket
× cups.path
Docs: man:cupsd(8)
Process: 2741 ExecStart=/usr/bin/cupsd -l (code=exited, status=1/FAILURE)
Main PID: 2741 (code=exited, status=1/FAILURE)
Mem peak: 1.7M
CPU: 42ms
Aug 28 20:22:28 archlinux systemd[1]: cups.service: Scheduled restart job, restart counter is at 1.
Aug 28 20:22:28 archlinux systemd[1]: Stopped cups.service.
Aug 28 20:22:28 archlinux systemd[1]: Dependency failed for cups.service.
Aug 28 20:22:28 archlinux systemd[1]: cups.service: Job cups.service/start failed with result 'dependency'.
Can you report this at Issues · KDE Linux / KDE Linux · GitLab? Bonus points if you can figure out which dependency is missing.
Yes. I will do that. For what it’s worth, an AI analysis of the problem (Warp Terminal) reports that the primary failure is caused by inability to find /etc/cups/cupsd.conf (reported by the journal). Because the main CUPS service keeps failing and restarting, the associated systemd units cups.path and cups.socket are hitting their start limits and also failing. This creates a cascade of dependency failures.
The Solution
The system appears to use factory defaults stored in /usr/share/factory/etc/cups/. The configuration files need to be copied from the factory location to /etc/cups/.
To fix this, you need to copy the factory configuration files:
sudo cp -r /usr/share/factory/etc/cups/* /etc/cups/
sudo chown -R root:cups /etc/cups/
sudo chmod 640 /etc/cups/cupsd.conf /etc/cups/cups-files.conf /etc/cups/snmp.conf
Then restart the CUPS services:
sudo systemctl reset-failed cups.service cups.path cups.socket
sudo systemctl start cups.service
I can confirm that if I run these commands, the cups service runs and KDE settings can see my network printer.
That makes sense. We’ve had to do this for a bunch of other things that still hardcode a path in /etc. This is fixable by creating some symlinks using mkosi.extra/usr/lib/tmpfiles.d/etc.conf · master · KDE Linux / KDE Linux · GitLab . Would you like to try your hand at that and submit a patch?
Thank you so much, but I think that doing the patch is beyond my skill level. I think I see the logic of the symlink file, but I’m afraid I might mess up the chown and chmod syntax. I also want to report that to actually get my printer working, I had to add two missing directories: /var/spool/cups and /run/cups/certs (as otherwise CUPS cannot create the necessary spool files and cert files). I then did
sudo chown root:cups /var/spool/cups /run/cups/certs
sudo chmod 755 /var/spool/cups /run/cups/certs
and restarted the cups.service
Here is an attempt at a patch. I don’t know how to submit it or, more importantly test it. I will also add this to the issues entry I created.
--- a/mkosi.extra/usr/lib/tmpfiles.d/etc.conf
+++ b/mkosi.extra/usr/lib/tmpfiles.d/etc.conf
@@ -59,3 +59,18 @@ L /etc/avahi/avahi-dnsconfd.action
L /etc/avahi/hosts
d /etc/avahi/services 0755 root root - -
+# CUPS printing service configuration
+# Link the main CUPS configuration directory
+L /etc/cups
+# Set proper ownership and permissions for key CUPS config files
+z /etc/cups/cupsd.conf 640 root cups - -
+z /etc/cups/cups-files.conf 640 root cups - -
+z /etc/cups/snmp.conf 640 root cups - -
+# Ensure cups group owns the config directory
+z /etc/cups - root cups - -
+# Create CUPS spool and runtime directories with proper permissions
+d /var/spool/cups 755 root cups - -
+d /run/cups 755 root cups - -
+d /run/cups/certs 755 root cups - -
+# Ensure lp user owns the spool directory contents
+z /var/spool/cups - lp lp - -
This is an amateur attempt – so should be reviewed by someone who knows what they are doing