## 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](http://org.downloadcenter.samsung.com/downloadfile/ContentsFile.aspx?CDSite=nl&CttFileID=1860607&CDCttType=DR&ModelType=N&ModelName=ML-1640/SEE&VPath=DR/200802/20080227113738171_UnifiedLinuxDriver.tar.gz).
* * *
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/
* * *
3. 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](http://splix.ap2c.org/) 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.