Triladers Tech Blog

Using a Samsung ML-2545 Laser Printer With a RaspberryPi

My old Kodak printer had a broken/jammed printing head and went through ink cartridges faster than I liked because I wasn’t used that often and the Linux support for it was lacking (read: non-existent).

So I decided to get myself a new printer. I bought Samsung ML-2545 because there are Linux drivers for it and because the replacement toner isn’t too expensive.

Getting the printer to work with my RaspberryPi running ArchLinuxARM was easy after I got the installation script provided by Samsung to work.

The CUPS version I am currently running is 1.6.3

Here is what I did:

  • Download the latest “Unified Linux Drivers” from the Samsung website. The trick is that Samsung doesn’t offer the Linux drivers for every printer but most are actually supported by it. The latest version at the time of writing this is 1.00.06 which I downloaded from here.

  • Unpack the driver

linenos:false
1
tar xaf ULD_Linux_V1.00.06.tar.gz
  • Modify the file noarch/packet.sh to fix some derps:
noarch/packet.sh start:59
1
2
-elif [ "$ARCH" = "arm" ]; then
+elif [ "$ARCH" = "arm" -o "$ARCH" = "armv6l" ]; then

Comment out lines 492 to 494 which checks the hardware platform which I think they forgot to add the checks for ARM to which was added to the driver in a recent version I believe.
For reference in my version of the file those lines:

start:492
1
2
3
if [ "$HARDWARE_PLATFORM" != "$ARCH_32" -a "$HARDWARE_PLATFORM" != "$ARCH_64" ]; then
    abort_execution "Unsuppored hardware platform \"$HARDWARE_PLATFORM\""
fi
  • Run the install.sh script provided by Samsung, it installs all the Samsung files into /opt/samsung and /opt/smfp-common and installs them into the correct location for CUPS and Sane to find via symlinks.

  • Install the printer via CUPS as normal. I could explain it here but there are many good tutorials out there that probably explain it better than me.

I also want to try to install the driver manually without the script just by unpacking the archive and copying the binarys/ppds to the correct location but as I have it running now I think it won’t happen soon.

Comments