How to install printers?

I am trying to get a HP Laserjet 1018 to work with Bluefin-DX. When I run hp-plugin in the terminal, the installation stops with a “error:Plugin installation failed”. What is the preferred method of installing hp-plugin / HPLIP on Bluefin?

Answering my own question if anyone else has this issue: HP printer - #6 by sankarvinayak - Fedora Discussion

It is related to a long standing bug in fedora silverblue can be found in bugzilla redhat

It is caused by the design of the silverblue which will not allow modification to the /usr directry.

HP plugin and firmware are inserted into the /usr/share/hplip/ folder by the hp-setup utility and the firmware are in /usr/share/hplip/data/firmware

The only workaround I found is to temporarily unlock the /usr by using the command
ostree admin unlock
and then running the hp-setup or hp-plugin utility which enable you to print until the next reboot after which the /usr will be as the old.

So each time you have to unlock and install the drivers if you want to print.

It was reported to the upstream hp project long time ago and no changes has been made.

Newer printers mostly support the IPP and does not require the proprietary plugin installation step.
so for someone like me with an older HP printer the options are

  1. Install fedora workstation instead of silverblue you will not have any issue setting up
  2. Unlock /usr every time you need to print
  3. If available use the open open printing drivers (with mixed results for my laserjet 1007)

It’s a bummer that this doesn’t work, you’d think just adding the hplip packages would work, we’ve had those in there since November of last year. :imp:

If the firmware is redistributable I wonder if we can just include it on disk as part of the container build?

Since you have the firmware. Can you try printing with cups with that firmware specified?

Additionally, if you need just that directory mutable there are workarounds so you don’t have to do admin unlock

What are the workarounds, specifically?

take a look at how we handle swtpm. You can bind mount a mutable location over the something in /usr

1 Like

I tried to look up but couldn’t find relevant info. From my (limited) understanding, I think you meant creating a directory in a location that is writable, e.g. /var/mydir, then bind mount this directory over the directory in /usr that we want to be mutable, e.g. /usr/somedir, using the sudo mount --bind command. Correct me if I’m wrong.

Would the bind mount persist over a reboot?

You got the gist of it.

Unfortunately no. You can look at swtpm-workaround and incus-workaround services to see how we handled it.

I would also recommend trying CUPs and specifying the firmware there. At work I found an HP 44" plotter and was able to interact just fine using Gutenberg ppds.


However I see what you mean that it calls for the proprietary plugin

I found a solution called gutenprint, it’s already available for install on Fedora Packages, so just add it to the section of packages.json that pertains to your setup.

Here’s my file - I put it under all.include.bluefin[]: bluefin/packages.json at 4a536f04fe2d6c74fc348ced0664859198ba59fb · jamescalderon/bluefin · GitHub

Gutenprint is already included as a dependency.

1 Like