Samsung provide drivers for lot's of OS (HP-UX, IBM AIX, GNU/Linux, MacOSX, etc…) but nothing for FreeBSD :-(
Hopefully the GNU/Linux drivers is CUPS based and use standard PPD file… But with a binary only cups-filter.
I didn't know if it was possible to use the Linux emulation layer of FreeBSD for using this cups-filter, but a previous experience was successful, then I try it too.
The major idea is to:
- Install print/cups
- Enable and install the FreeBSD Linux binary compatibility
- Getting the Samsung Unified drivers for the ML-2950 series
- Extracting the PPD file and the i386 binary cups-filter used by the PPD
- Fixing the missing dependency needed by the samsung cups-filter
I will not explain the steps 1,2 and 3.
Extract the Unified Linux Drivers:
$ tar zxvf UnifiedLinuxDriver_0.92.tar.gz
Then check the filter used by the PPD file:
$ grep cupsFilter cdroot/Linux/noarch/at_opt/share/ppd/ML-2950spl2.ppd
*cupsFilter: "application/vnd.cups-postscript 0 rastertosamsungspl"
=> This PPD file use the "rastertosamsungspl" filter.
Now copy the PPD and the Samsung cups-filter to the local cups directories:
$ mkdir /usr/local/share/cups/model/samsung
$ cp cdroot/Linux/noarch/at_opt/share/ppd/ML-2950spl2.ppd /usr/local/share/cups/model/samsung/
$ cp cdroot/Linux/i386/at_root/usr/lib/cups/filter/rastertosamsungspl /usr/local/libexec/cups/filter/
Once copied, you can execute rastertosamsungspl from a CLI for displaying the missing Linux libs:
# /usr/local/libexec/cups/filter/rastertosamsungspl
/usr/local/libexec/cups/filter/rastertosamsungspl: error while loading shared libraries: libcups.so.2: cannot open shared object file: No such file or directory
This method will display missing libs one by one: You need to install the missing libs, running a ldconfig and re-execute rastertosamsungspl for discovering that another libs is missing.
Here is the list of all libs that I've installed:
# cd /tmp
# fetch http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/10/Everything/i386/os/Packages/cups-libs-1.3.9-2.fc10.i386.rpm
# fetch http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/10/Everything/i386/os/Packages/gnutls-2.4.2-2.fc10.i386.rpm
# fetch http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/10/Everything/i386/os/Packages/libtasn1-1.5-1.fc10.i386.rpm
# fetch http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/10/Everything/i386/os/Packages/libgcrypt-1.4.3-2.fc10.i386.rpm
# fetch http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/10/Everything/i386/os/Packages/libgpg-error-1.6-2.i386.rpm
# cd /compat/linux
# rpm2cpio /tmp/cups-libs-1.3.9-2.fc10.i386.rpm | tar -zxf -
# rpm2cpio /tmp/gnutls-2.4.2-2.fc10.i386.rpm | tar -zxf -
# rpm2cpio /tmp/libtasn1-1.5-1.fc10.i386.rpm | tar -zxf -
# rpm2cpio /tmp/libgcrypt-1.4.3-2.fc10.i386.rpm | tar -zxf -
# rpm2cpio /tmp/libgpg-error-1.6-2.i386.rpm | tar -zxf -
# /compat/linux/sbin/ldconfig
Once all dependencies are installed, you should have this message when executing rastertosamsungspl:
# /usr/local/libexec/cups/filter/rastertosamsungspl
INFO: Usage: rastertosamsungspl job-id user title copies options [file]
ERROR: Wrong number of arguments
Now you can your printer from the CUPS admin panel and use your printer :-)