Correct way to install ppd printer driver

When connecting a printer (with usb) that is not among the standard printers, I get the choices to select printer from database, search online for driver, or select a ppd file. As the printer I connected was not in the database, and no driver was found using the automatic search, I mounted a device with the ppd file and pointed the driver installation to the file location.

It worked in the sense that I could print the documents needed.

After that the device with the ppd file refused to get unmounted - file is still open. Should I have copied to ppd to /lib folder before pointing the driver install to the file?

This might be related to another printing issue I’ve had on linux - when I install a printer (usb or network) and print, it works great. When I at a later time come back to the same printer to print it takes something around 3 minutes from I press print until the printer starts printing. When it has started, the printer takes about 1 minute pause between each page. This has been the case with both printers I’ve used more than once.
What am I doing wrong? Could this behavior indicate that the printer driver used to set up these printers is no longer available to the system? (I’m guessing the two problematic printers was installed using driver downloaded to a temp folder that was cleared before the next time I tried printing to those printers.)

Is there a way to see which files the installed printers depend on? (See if they actually point to files no longer available, or point to files in /lib)

If you tell us the printer model, we can likely find a driver for it and give instruction how to install it.

Or look yourself here:

CUPS - ArchWiki

and/or here:

CUPS/Printer-specific problems - ArchWiki

If it’s a .ppd, then that is not the place for it, as you can see below… :point_down:

[nx-74205:/dev/pts/3][/home/aragorn]
[aragorn] >  locate .ppd
/usr/share/cups/model/CUPS-PDF_noopt.ppd
/usr/share/cups/model/CUPS-PDF_opt.ppd
/usr/share/ghostscript/lib/cbjc600.ppd
/usr/share/ghostscript/lib/cbjc800.ppd
/usr/share/ghostscript/lib/ghostpdf.ppd
/usr/share/ppd/cupsfilters/Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd
/usr/share/ppd/cupsfilters/Generic-PDF_Printer-PDF.ppd
/usr/share/ppd/cupsfilters/HP-Color_LaserJet_CM3530_MFP-PDF.ppd
/usr/share/ppd/cupsfilters/Ricoh-PDF_Printer-PDF.ppd
/usr/share/ppd/cupsfilters/pxlcolor.ppd
/usr/share/ppd/cupsfilters/pxlmono.ppd

Indeed.

The newly installed printer is Oki ES3640 MFP Pro.

I see a bunch of Oki ppd’s in /usr/share/cups/model/foomatic-db-ppds/Oki/
Should I have copied the ppd to that folder before installing printer?

I’m currently at the location of one of the printers that worked great when first installed, but the next time I used it, some weeks later, the it had the behavior of 3 minutes wait for the first page, then 1 minute pause between each page. This printer is a Richo Aficio 1515

copy the ppd to there
then select it when setting up the printer

It is a network capable printer - are you using it as such?
Then it should not be needing any ppd’s

I found this:

Printer: Ricoh Aficio 1515 | OpenPrinting - The Linux Foundation

I can’t go beyond this - have no way of testing it.

1 Like

Do I delete the installed printer, copy the ppd, then reinstall printer, or is there a config file where I can simply change the location where the installed printer looks for ppd?

I tried network first, it didn’t find driver. Then I tried usb, it didn’t find driver, but when using usb I got the option to select ppd manually, which I didn’t see when using network. Hence I did the installation using usb.

Yes, this procedure.
remove the printer, copy ppd, set up the printer again.

… there is - this is what you effectively change when deleting the printer and when you later add it as a new one.

Why you’d want to introduce unnecessary complexity and difficulty like this is beyond me.
There most likely is - but I can’t explain.
The config files are, like all others, in /etc
/etc/cups/...

avahi is needed for networked printers - as far as I know

All I can do is read the provided links - I don’t have a network printer myself and have never had to set one up.

OK. Thank you. I’ll follow that procedure.

Is there any better driver than the one for Oki C9600 printer? (The C9600 driver works at least for the basics, but it is a less advanced printer than the ES3640. I.e. the C9600 driver does not allow to configure the paper trays correctly.)

I have no idea what you mean with that - you said:

I linked to

Printer: Ricoh Aficio 1515 | OpenPrinting - The Linux Foundation

where two ppd’s are mentioned

I didn’t even look for OKI.
It looks like I completely misunderstood you.

This thread is about an OKI printer driver installation

I’ve also mentioned two printers that may have a related issue, where one of them is a Richo

The OKI printer I have not found a driver for, but I think it is mostly the same printer as a C9800, and the closest driver I’ve found is for C9600, which seems to work, but may not support all functions of the larger models. One I’ve noticed I cannot set the correct config for papertrays.

It is a network printer.
It supports IPP - is what I read.

CUPS - ArchWiki

Do you have to use it via USB?

That was a more rhetorical question.
I can’t help either way.

When using network I got to the point where it said it didn’t find any driver, and I didn’t see a way to point it to the ppd.
It is a rather old printer. I’m not sure if IPP is supported. I think the model was introduced in 2005 or so. This unit is from 2009. The web admin interface only works on windows xp with internet explorer and java version from that time. But it’s ability to print details in dark areas of pictures is unique.

That link states

When a PPD file is provided to CUPS, the CUPS server will regenerate the PPD files and save them in /etc/cups/ppd/

And, looking in that folder, there is a file called Oki-C9600.ppd with the timestamp of when I installed the driver. So, the ppd was in fact copied to local folder, and renamed / regenerated. Hence there should not be any need to copy ppd from temporary locations before installing.

With this information it turns out that this thread got off track from the start. Then we are back to the question, why does the printer driver install keep access to the ppd file used to install? Is there a bug that it forgets to close the file? Is some driver install process hanging? (What is the name of the processes I should search for to see if anything is hangig?)

I think that was asked and answered in the other thread before this which I vaguely remember.
I can’t add anything to it.

I also found this:

Verwendung auf einem Mobilgerät | OKI

there likely is an english version as well - it basically says that it can take a few minutes until the printer has joined the network and is discoverable

and the manual as well in the internet archive:
https://archive.org/details/manualsbase-id-10443/mode/2up

They explain the network setup for Windows - I don’t know whether it supports IPP everywhere but I think I read it somewhere.
The avahi service must be functional for this to work.

Good luck!

Yes, and the answer was based on the assumption that ppd’s are not copied to local location during install. New discovered information shows that the installer did in fact copy/regenerate ppd in local folder, hence the assumption that forms the base for the answer was incorrect and there is probably another answer.

Yes. It takes 20-25 minutes before it starts responding to ping on network. At the very first ping print from windows can be sent, and it starts printing within seconds.

With linux apparently driver cannot be found using network. Which should indicate IPP is not supported, I guess.

How does the avahi service status look?

# systemctl status avahi-dnsconfd.service 
â—‹ avahi-dnsconfd.service - Avahi DNS Configuration Daemon
     Loaded: loaded (/usr/lib/systemd/system/avahi-dnsconfd.service; disabled; preset: disabled)
     Active: inactive (dead)

# systemctl status avahi-daemon.service 
â—Ź avahi-daemon.service - Avahi mDNS/DNS-SD Stack
     Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; enabled; preset: disabled)
     Active: active (running) since Sat 2025-01-18 21:42:48 CET; 2 months 0 days ago

Does this indicate avahi not running properly?

I only know that the avahi service needs to be functional in order for IPP or Apple AirPrint to work.

I have zero personal experience with networked printers.
They don’t need drivers/ppd’s - these are only needed when the connection is via USB

I’d love to have such a thing - but I don’t.
(I have an also not trivial to set up Canon LBP2900 - probably about 20 years old black&white laser printer)

I could only refer you to the Arch wiki (which I already did, I think) re avahi and IPP everywhere / Apple AirPrint.

There is probably also howtos and root tips or other kinds of explanations here on this forum.

I have no use for it, I don’t own any device which would need that, so: I never had to use it or care about it or learn how to set it up (if it wasn’t working out of the box).

Perhaps distros like Mint or Ubuntu or others (not rolling like Arch/Manjaro) have that already set up and active by default?
Perhaps even EOS - which is a great way to use Arch without having to do all the work …

I would not know - I cannot test.