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
- Install fedora workstation instead of silverblue you will not have any issue setting up
- Unlock
/usr
every time you need to print - 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.
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
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.