Installing an Old Dell B1165nfw Printer Driver on Ubuntu 26.04

After moving my workstation to Ubuntu 26.04, I ran into a small problem with my old Dell B1165nfw Mono MFP.

Ubuntu automatically discovered the network printer without any issue. Unfortunately, the automatically selected driver was the wrong one.

The printer itself is quite old, and Dell’s original Linux driver package dates back many years. Still, the old driver turned out to work — with a little manual help.

The Dell Driver

I downloaded and extracted Dell’s original Linux driver package.

Inside the package I found the correct PPD:

Linux/noarch/at_opt/share/ppd/B1165nfw.ppd

Checking the PPD showed that it requires the following CUPS filter:

*cupsFilter: "application/vnd.cups-raster 0 rastertospl"

Fortunately, Dell also included a 64-bit version of that filter:

Linux/x86_64/rastertospl

Before installing it, I checked its dependencies:

ldd Linux/x86_64/rastertospl

Everything looked fine except for one missing library:

libscmssc.so => not found

That library was also included in the Dell package:

Linux/x86_64/libscmssc.so

Installing the Required Files

Instead of running Dell’s complete legacy installer, I decided to install only the components actually required by CUPS.

From the extracted cdroot directory:

sudo install -m 755 \
  Linux/x86_64/rastertospl \
  /usr/lib/cups/filter/rastertospl

sudo install -m 644 \
  Linux/x86_64/libscmssc.so \
  /usr/lib/x86_64-linux-gnu/libscmssc.so

sudo ldconfig

I then verified that the filter could find its library:

ldd /usr/lib/cups/filter/rastertospl | grep -E 'scmssc|not found'

libscmssc.so was now resolved correctly.

Adding the Printer

Ubuntu had already discovered the B1165nfw on the network, so the remaining part was easy.

In the Ubuntu printer configuration I selected the option to provide my own PPD file and used:

B1165nfw.ppd

Ubuntu now identified the printer correctly as:

Dell B1165nfw Mono MFP

Test page sent.

Adding the Scanner

Printing was working, but getting the scanner detected required an additional workaround.

Simply connecting the Dell B1165nfw via USB was not enough. Ubuntu’s SANE installation did not initially recognize the scanner because the device was missing from the xerox_mfp configuration and the required USB permissions were not being applied.

The B1165nfw is based on Samsung hardware and can be handled by SANE’s xerox_mfp backend.

Adding the B1165nfw to SANE

First, I edited the xerox_mfp configuration:

sudo nano /etc/sane.d/xerox_mfp.conf

and added:

# Dell B1165nfw
usb 0x413c 0x523c

The two hexadecimal values are the USB vendor and product IDs for the scanner.

Fixing the USB Permissions with udev

SANE still needs permission to access the USB device. For that I added a udev rule.

I edited:

sudo nano /etc/udev/rules.d/55-libsane.rules

and added:

SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0660", GROUP="plugdev", ENV{libsane_matched}="yes"

After saving the file, I restarted udev:

sudo systemctl restart udev.service

I then disconnected and reconnected the USB cable.

Verifying Scanner Detection

Now SANE could finally see the scanner:

scanimage -L

which returned:

device `xerox_mfp:libusb:003:010' is a Samsung B1165nfw Mono MFP multi-function peripheral

The 003:010 part is just the current USB bus/device address and can change after reconnecting the printer or rebooting.

At this point Ubuntu’s graphical scanner application also detected the B1165nfw.

Checking the Document Feeder

The flatbed was working, but I also wanted to verify the Automatic Document Feeder (ADF).

The available scan sources can be queried directly from SANE:

scanimage \
  -d 'xerox_mfp:libusb:003:010' \
  --all-options | grep -A8 -i source

The xerox_mfp backend exposed the ADF as an available source.

A direct test confirmed it:

scanimage \
  -d 'xerox_mfp:libusb:003:010' \
  --source ADF \
  --format=png > adf-test.png

Instead of using the flatbed, the B1165nfw pulled the document through the feeder.

For multiple pages from the command line, scanimage can use batch mode:

scanimage \
  -d 'xerox_mfp:libusb:003:010' \
  --source ADF \
  --batch='page-%03d.pnm'

For everyday use this isn’t necessary. Ubuntu’s graphical scanner application provides a scan all pages option, allowing all pages in the ADF to be scanned and saved as a multi-page PDF.

The final scanner path therefore looks like this:

Dell B1165nfw
       |
       v
USB + udev permissions
       |
       v
SANE
       |
       v
xerox_mfp
       |
       +---- Flatbed
       |
       +---- ADF / Multi-page scanning

So unlike the printer setup, the scanner wasn’t simply plug-and-play. The missing SANE device entry and udev rule were the crucial pieces that made Ubuntu detect the scanner.

After that, both the flatbed and automatic document feeder work under Ubuntu 26.04.


Final Verdict

Instead of running an old installer as root and letting it install legacy Qt tools, scanner utilities and other components, installing only the required PPD, CUPS filter and library turned out to be the better solution.