Have been meaning to write this when I was struggling with it for the first time, but never got round to doing it. Now, I needed to do it again, and here’s my report.
If you own a Samsung ML-2010 (or 2010R) printer, you may or may not know that it requires very special printer drivers due to Samsung’s own printer language SPL. The eeepc by default only supports the printer by half. You may hook the printer up to your netbook and it will even recognize it and suggest the (normally) correct driver/PPD. However, if you go with those suggestions, you won’t be able to print, because the installed software lacks the translation engine for SPL. It could be included (as it is with most current Linux distributions). There is an open source implementation called splix that I have previously written about when I ported it to the D-Link DNS-323 NAS device. Unfortunately, I haven’t been able to find a working binary package for the eeepc (and was too lazy to set up a build or cross-compile environment for it.) I found an easy alternative, though, that didn’t involve installing the huge and messy Samsung driver in its entirety. Here’s what I did:
- download the Samsung unified driver and save it to /home/user
- extract it (e. g. through the file manager and right-click on the archive). You should end up with a folder /home/user/cdroot.
- open a terminal (press house-key and “T”)
- cd /home/user/cdroot/Linux/i386/at_root/usr/lib/cups/
- cp backend/mfp /usr/lib/cups/backend/
- cp filter/rastertosamsungspl* /usr/lib/cups/filter/
- /etc/init.d/cupsys restart
Before you delete the driver archive and the extracted cdroot directory, be sure to add your printer. When the “add printer” wizard suggests a driver, don’t accept the default, but select the ppd from file. You’ll find the ppd files covered by the unified driver under: cdroot/Linux/noarch/at_opt/share/ppd/ML-2010spl2.ppd
Note, that not all printers supported by the unified driver use SPL. So, the procedure above may not work for every one of those printers. If you pick a ppd file of a printer using a different printer language, you will get errors in the cups logs (/var/logs/cups/) about a missing filter. You may get away with copying the other filters, too (in step 6). However, those may depend on additional libraries (check with ldd), which also may need to be copied to appropriate places (like /usr/lib).