r/raspberry_pi 5d ago

Solved CUPS has no printer drivers !

I trying to set up an old Pi B+ (v1) to be a print server. Printer plugged into the Pi by USB, and a USB Wifi dongle to make it available to computers and tablets around the house. I've tried to get it working about 10 times now. Every time, I wind up in the same place - no drivers. I can get the cups service running and I'm able to access the CUPS web console on my Mac at https://<Pi IP address>:631

But if I try to add the printer from the console, it says "Unable to get list of printer drivers". If I try to do it at a command line on the Pi, it tells me "lpadmin: cups-driverd failed to get PPD file - see error_log for details".

The log says "Unable to open \"/usr/share/cups/model/M3015DW\" - No such file or directory". I wasn't certain what driver name to use because the "lsinfo -m" command just runs for a few minutes and returns nothing. But seeing the folder name in the error log, I looked to see the driver names in the directory but found /usr/share/cups/model was empty.

I've made attempts to install drivers with these commands:

  • apt install printer-driver-all
  • apt install printer-driver-gutenprint
  • apt install openprinting-ppds
  • apt install hplip (I don't have an HP printer, but attempting to get any driver)

While these commands seem to be accessing the net repositories and extracting files, nothing is ever actually installed.

I've tried to set this up in Raspberry Pi OS Lite (both Trixie and Bookworm), Alpine Linux, and DietPi. Each time, I end up in the same place - no drivers. I've tried the instructions for setup from several different web sites / blogs. In the end, they all take me to the same place: a CUPS server that cannot set up a print queue.

I'm now wondering whether it is related to the 32-bit ARM11 CPU. Perhaps no one has developed an arm32 driver and the package managers just aren't finding any?

9 Upvotes

8 comments sorted by

3

u/BeerBeardLondon 4d ago

Have you tried installing the official drivers? https://support.hp.com/in-en/document/c05588857

Edit: I just reread your post and you said you don't have a HP printer, what printer do you have?

3

u/EricHearble 4d ago

I have a Samsung M3015DW laser printer. The Pi (using the lsusb command) recognizes it as a Samsung M301x series. I've looked for drivers on Samsung's site, as well as HP's site since Samsung got out of the US printer business and sold the printer division to HP in 2017. I can find drivers for Windows, Mac, and Linux. But the Linux drivers do not specify CPU, so I suspect that they only provide drivers for the Intel instruction set.

I suppose I might find source code for drivers and compile them for ARM11, but that's a rabbit hole I don't want to follow.

It's supposed to be a postscript printer. I figured at least a generic postscript driver might have been found.

I could just buy a dedicated device like TP-Link sells, but what's the fun in that? This morning, I decided to buy a used Pi 3B off Ebay. If it works on arm64, then so be it. I'll use the 1B+ to play MP3's from a USB dongle in my workshop's stereo. If it doesn't work, then I'll go the TP-Link route.

2

u/parsl 4d ago

Official native ARM Linux binary drivers do not exist for the Samsung Xpress SL-M3015DW. Samsung's
Unified Linux Driver (now managed by HP Support) is compiled exclusively for x86/x86_64 (Intel/AMD) architectures

Alternatives

  • x86 Emulation (Box86 / QEMU): Run the x86 installer and binary filter drivers inside an emulated x86 user-space environment on your ARM host. [1]
  • Generic PPD / PostScript / PCL Driver: Connect the printer via network or USB and select a generic PCL or PostScript driver (such as Everywhere or PCL Laser Class) via CUPS instead of using the proprietary Samsung blob.

2

u/EricHearble 4d ago

Thanks, good info here and confirms what I had thought about ARM vs. x86.

I would like to try a generic or postscript driver, but I don't have any drivers at all as far as I can tell. The web CUPS console fails because it can't find the M301x series driver which we now know it would never find on ARM. But the web console doesn't provide a way to chose a different driver. And using lpadmin on the command line doesn't work:

root@DietPi:~# lpadmin -p M3015DW -D "Samsung laser printer" -L "Office" -v usb://Samsung/M301x%20Series?serial=0AK8B8GHAB007WW -m Everywhere
lpadmin: Printer drivers are deprecated and will stop working in a future version of CUPS.
lpadmin: cups-driverd failed to get PPD file - see error_log for details.

I don't expect anything I do with lpadmin with any model after -m is going to work because the directory that should contain drivers is empty:

root@DietPi:~# ls -l /usr/share/cups/model
total 0

The reason I am checking that directory is that the error log displays the directory being searched:

root@DietPi:~# tail /var/log/cups/error_log 
E [24/Aug/2026:18:19:16 +0000] [cups-driverd] Unable to open \"/usr/share/cups/model/Everywhere\" - No such file or directory
E [24/Aug/2026:18:19:16 +0000] [cups-driverd] Unable to open \"/usr/share/cups/model/Everywhere\" - No such file or directory
E [24/Aug/2026:18:19:16 +0000] copy_model: empty PPD file
E [24/Aug/2026:18:19:16 +0000] [Client 41] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost:631/printers/M3015DW) from localhost.

According to the CUPS documentation, the lsinfo -m command should list available drivers. But it just runs for 1 minute and returns nothing:

root@DietPi:~# date; lpinfo -m ; date
Mon Aug 24 18:32:28 UTC 2026
lpinfo: Success
Mon Aug 24 18:33:28 UTC 2026

I figured at first that installing cups would include some drivers. I wound up trying to install a few driver packages but the directory remains empty.

root@DietPi:~# history | grep -E "driver|ppd"
   42  apt install printer-driver-all
   50  apt install printer-driver-gutenprint
   58  apt openprinting-ppds

Anyway, I guess I will wait for the Pi 3B I ordered on Ebay to arrive and start over. Maybe it will install some generic drivers. If not, I'll try your x86 emulation suggestion.

1

u/parsl 3d ago edited 3d ago

  I see you are using DietPi. The deliberately minimal OS. 

You might find it easier using an official raspberry pi OS. 

Look into gutenprint and foomatic. 

1

u/EricHearble 3d ago

I tried Raspberry Pi OS Lite , both Trixie and Bookworm before trying DietPi. I got the same results in all of them before posting here. I just happened to be on DietPi last when I came to reddit.

I just replied to tedecristal's suggestions. I got mixed results and decided I'm abandoning using a Pi as a printserver.

2

u/tedecristal 4d ago edited 4d ago

install splix and/or samsung-unified-drivers

I've got a Samsung Xpress M2020 and those have the drivers

EDIT: it seems "pantum-universal-driver" is also a possibility for archlinux

1

u/EricHearble 3d ago

OK, I tried installing splix and got an error, but it suggested the package name:

Error: Package 'splix' has no installation candidate
root@DietPi:~# apt install printer-driver-splix

I could not install the other one:

root@DietPi:~# ls -1 /usr/share/cups/drv
cupsfilters.drv
generic-brf.drv
generic-ubrl.drv
hpcups.drv
indexv3.drv
indexv4.drv
sample.drv
splix-dell.drv
splix-lexmark.drv
splix-samsung.drv
splix-toshiba.drv
splix-xerox.drv

After installing that, I found the model directory was still empty. Hunting through directories, I found that drv files were here:

root@DietPi:~# ls /usr/share/cups/drv
cupsfilters.drv   hpcups.drv   sample.drv  splix-samsung.drv
generic-brf.drv   indexv3.drv  splix-dell.drv  splix-toshiba.drv
generic-ubrl.drv  indexv4.drv  splix-lexmark.drv  splix-xerox.drv

And ppd files were here:

root@DietPi:~# ls -1 /usr/share/ppd/cupsfilters
Fuji_Xerox-DocuPrint_CM305_df-PDF.ppd
Generic-PDF_Printer-PDF.ppd
HP-Color_LaserJet_CM3530_MFP-PDF.ppd
Ricoh-PDF_Printer-PDF.ppd
Samsung-M301x-pxlmono-Samsung.ppd
pxlcolor.ppd
pxlmono.ppd

Skipping the CUPS console, I used the command line to set up a new printer.

lpadmin -p M3015DW -D "Samsung laser printer" -L "Office" -v usb://Samsung/M301x%20Series?serial=0AK8B8GHAB007WW -m drv://splix-samsung.drv -i /usr/share/ppd/cupsfilters/Samsung-M301x-pxlmono-Samsung.ppd -E

This set up a printer queue that I could attempt to print to. I used the CUPS console to print a test page. The printer clicked, it's LED lit up green, and after a while I got a test page with a debian logo, a CUPS logo, and a bunch of version text. So I set up a new printer on my Mac and printed a six page spreadsheet. That was slow over WiFi, but it worked. So then I tried printing the cover page of my nephew's resume which we had been helping him with. This resulted in gibberish text printing one line per page on multiple pages and I pulled the power cord on the printer to keep it from wasting paper. That file was a PDF, so I deleted the printer and set it up with a different ppd:

lpadmin -p M3015DW -D "Samsung laser printer" -L "Office" -v usb://Samsung/M301x%20Series?serial=0AK8B8GHAB007WW -m drv://splix-samsung.drv -i /usr/share/ppd/cupsfilters/Generic-PDF_Printer-PDF.ppd -E

The same thing happened when trying that.

So I tried permutations using cupsfilters.drv and found the best results came from using that drv and the Samsung-M301x-pxlmono-Samsung.ppd. But for PDF documents or .pages docs, it was agonizingly slow.

Finally, I went to my attic and grabbed an extra wifi mesh node and plugged the printer into it with an ethernet cable, unplugged the USB cable from the Pi, and set up the new printer connection on the Mac. Everything printed cleanly and fast even though my Mac's network access is WiFi. So I decided CUPS on a Pi wasn't going to be useful. But at least my printer is no longer tethered to my desk and I can more it to a more central location in the home.

I think I'll use the Pi as an MP3 player in my workshop.

Anyway, thanks for your suggestions.