## 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: [[!template id=programlisting text=""" 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.