Using Samsung provided drivers

It's not a great science as it almost works out-of-the-box. All you have to do is to download the driver from samsung web page and copy two files into specified directory of CUPS system.

The steps are as following:

  1. Download following file Linux Driver for CUPS.

  2. Extract the *tar.gz file, cd to the directory cdroot and copy the following files:

   
    cp Linux/i386/at_root/usr/lib/cups/filter/rastertosamsungpcl /usr/pkg/libexec/cups/filter/
    cp Linux/noarch/at_opt/share/ppd/ML-1640spl2.ppd  /usr/pkg/share/cups/model/
  1. After that execute (or reboot the machine) /etc/rc.d/cupds restart and your Samsung ML-1640 will work just out-of-the-box.

Enjoy !

Using a native driver

Nowadays, the best way to get a wide range of Samsung and Xerox laser printers working with CUPS is using the Splix drivers. Since it's not in pkgsrc yet, you have to download and build it yourself.

$ wget http://ufpr.dl.sourceforge.net/sourceforge/splix/splix-2.0.0.tar.bz2 ;# or download from any sourceforge mirror
$ tar jxf splix-2.0.0.tar.bz2
$ cd splix-2.0.0

To build the driver we need CUPS (print/cups) and GNU Make (devel/gmake) installed from pkgsrc. Also, we can optionally disable JBIG support or install wip/jbigkit to fulfill its dependencies. In this example, I'm about to disable it

$ DISABLE_JBIG=1 gmake
$ su root -c 'gmake install'

Now the driver is installed, along with the PPD files. You can add the desired printer(s) the usual way.