If you are planning to work with the Samsung driver directly, you should usually download it directly from Samsung. However, for those who want the versions that match what I'm using in the repository and/or are having trouble finding a download from Samsung that is appropriate for their printer (although a different model download usually works fine), you can download selected versions here:
If you find yourself with some need to install manually instead of using the repository, please share why this is so and I will attempt to modify the repository to address the problem. (Even non-Debian users can convert the packages and install them manually.) As far as I know, there is no advantage to installing directly and many disadvantages.
Problems With the v3.00.xx Installer/Uninstaller
Files Left Behind
As with the v2 driver, the uninstaller can't tell if certain files should be deleted or not, and so leaves them in /usr/lib:
/usr/lib/libqui.so* (provided by package libqt3-mt)
/usr/lib/libqt-mt* (provided by package libqt3-mt)
/usr/lib/libtiff.so.3* (provided by package libtiff3, which was replaced by libtiff4 several years ago)
/usr/lib/libstdc++.so.5* (provied by package libstdc++5)
/usr/lib/libcups.so (symbolic link to libcups.so.2 in v3.00.43 and higher)
The Uninstaller Routinely Fails
Depending on the exact combination of Qt3 and Qt4 libraries on your computer, one of several errors could occur when trying to run the uninstaller that results in the inability to automatically remove the driver.
Replacement of /usr/bin/lpr
As with the v2 driver, the Samsung installer still moves /usr/bin/lpr to /usr/bin/lpr.org and writes /usr/bin/lpr as a link to /opt/Samsung/mfp/bin/slpr, which (a) breaks the cups-bsd (or cupsys-bsd) packages, (b) can itself be overwritten when the CUPS package is updated and it writes back to /usr/bin/lpr, and (c) breaks non-graphical and automated applications, because slpr requires a graphical environment and user intervention.
Parallel Port Interference
Also as with the v2 driver, the Samsung installer writes parallel port information to /etc/modprobe.conf, which then blocks reading of /etc/modprobe.d/, and so all blacklists or other hardware support configurations present in /etc/modprobe.d/ are ignored. In addition, computers without physical parallel ports sometimes exhibit odd behavior due to this forced parallel support.
Inappropriate Permissions
Many of the files installed to /usr/lib/ end up with 777 permissions: i.e., world-writable and world-executable. Even non-executable library files are given these permissions. The result is a possible security risk to your system (although smaller than any of the v2 issues).
Inappropriate Ownership
Greatly improved compared to the v2 installer, the only incorrect ownership is that the .gnome-desktop folder and .desktop file within it are given a group of root rather than the user. This is not a security risk, but can be a nuisance.
Apparent Unavailability for Many Printers
Samsung has recently decreased the number of printers that they provide an official driver for, even though they do in fact still support them (for example, the CLP-550N no longer provides a Linux driver for download at the Samsung USA site, even though it had for years prior to that point and the new drivers still work). In addition, many different versions of the Linux driver are present on their site, and exactly which version you get depends on which printer model you search for.
Library Conflicts
There are many library conflicts with modern Linux distributions. I have largely fixed these in my packages available through the repository, but you will run into problems (especially with network scanning, but also often printing & USB scanning) if you install directly from Samsung and are using a libc6 newer than 2.10. Additional sources of conflict if you perform a manual install include qt3 libraries, libc5, libnetsnmp, libtiff, and libpng. (Note that the 3.00.90 version of the driver eliminates the libc6 conflicts, at least with libc6 >= 2.10, but causes another possible conflict with libnetsnmp.)
Additional Notes about the v3 Installer/Uninstaller
The installer does prompt to add users to the lp group, which is helpful for using the Samsung Configurator, but fairly minor.
The installer automatically installs a printer; sometimes it is the correct one and it works, sometimes it appears but correct but doesn't work, and sometimes it's a seemingly random choice (it's not, it actually has to do with sort order in the samsung/ppd folder).
libnetsnmp.so.10.0.2 and a symbolic link are installed in /opt/smfp-common/lib/. The library, as libnetsnmp.so.10, is specifically required only by smfpautoconf, and must also be in /usr/lib, not /opt, and so this installation routine is entirely useless. In actual fact, all utilities seem to work fine with libsnmp15, and so the library is redundant anyway.
Files Installed by the Samsung v3 Driver
Note: for AMD64 installations, /usr/lib/ may actually be /usr/lib64/ (this is not true of Debian).
Note: [1] indicates that file or directory is only present in v3.00.43 and later; earlier versions do not include it
Note: [2] indicates that file or directory is only present in v3.00.37 and earlier; later versions do not include it
Note: [3] indicates that the file or directory is sometimes missing from specific download files provided by Samsung, independent of version number
/opt/Samsung/mfp/*
/opt/smfp-common/* [1]
/usr/sbin/smfpd
/usr/bin/lpr (link to /opt/Samsung/mfp/bin/slpr after moving the original lpr to lpr.orig)
/usr/share/cups/model/samsung/*
/usr/share/ppd/samsung
/usr/lib/libmfp.so*
usr/lib/libstdc++-3-libc6.2-2-2.10.0.so
/usr/lib/libstdc++-libc6.2-2.so.3
/usr/lib/libstdc++.so.5* (if no version of libstdcc++5 installed)
/usr/lib/libtiff.so.3*
/usr/lib/libqt-mt.so* (only if no version of libqt3-mt installed)
/usr/lib/libqui.so* (only if no version of libqt3-mt installed)
/usr/lib/libcups.so [1]
/usr/lib/cups/backend/mfp
/usr/lib/cups/filter/libscmssf.so [2]
/usr/lib/cups/filter/libscmssc.so
/usr/lib/cups/filter/rastertosamsunginkjet
/usr/lib/cups/filter/rastertosamsungpcl
/usr/lib/cups/filter/rastertosamsungspl
/usr/lib/cups/filter/rastertosamsungsplc
/usr/lib/cups/filter/pscms
/usr/lib/cups/filter/smfpautoconf [1]
/usr/lib/sane/libsane-smfp.so* [3]
/etc/sane.d/smfp.conf [3]
/etc/modprobe.conf
/etc/mfpcommon.modules.conf
/etc/init.d/smfpd
/etc/rc0.d/K07smfpd
/etc/rc1.d/K07smfpd
/etc/rc6.d/K07smfpd
/etc/rc2.d/S93smfpd
/etc/rc3.d/S93smfpd
/etc/rc4.d/S93smfpd
/etc/rc5.d/S93smfpd
/etc/cups/smfp.convs [1]
/etc/cups/smfp.types [1]
/etc/udev/rules.d/98_smfpautoconf.rules [1]
/etc/udev/rules.d/99_smfpautoconf.rules [1]
The following are typically installed, but the location may vary somewhat with distribution and desktop environment:
The following are only present if you ran the Configurator help:
/root/.shhvrc
/root/.shhvfavs
~/.shhvrc
~/.shhvfavs
The following is only present if you ran the Configurator scanner utility:
~/.qt/scanconfrc
Finally, the following is modified to add "smfp" to the end of the file:
/etc/sane.d/dll.conf
Installing the Samsung Unified Linux Driver v3.00.xx Directly
In the following instructions, I will assume that you are a regular user using "sudo" to execute root commands. If you are instead logged in as the root user (e.g., via su or sudo -i), then simply leave off the "sudo" from each command where it appears. WARNING: I do not recommend you install this way, and I do not regularly check if there have been any changes to the installer. The below is current up to v3.00.90 to the best of my knowledge, but I do not promise there are no errors nor that future installer versions won't be different.
Download the driver from Samsung's website and save it to a folder that does not contain any spaces in the path. (The most common cause of the installer crashing and leaving your system in a partially installed state is the presence of a space in the path.) For this example I will use ~, but ~/Desktop or similar will also work.
Unpack the file, which will create a folder called cdroot.
In a terminal, navigate to the cdroot folder and then enter
find . -type d -exec chmod 755 {} \;
to ensure that all directories work correctly, frequently the ppd and/or cms directories (under Linux/noarch/at_opt/share) are incorrectly set, which can cause problems when trying to remove the [i]cdroot[/i] folder.
Then, still in the cdroot folder, execute:
sudo ./autorun
or
sudo Linux/install.sh
to start the graphical installer.
The installer will ask if you want to install parallel support; choose no unless you actually need it.
The installer will ask if you wish to add users to the "lp" group; select users who should be added only if you have a multifunction printer you plan to use for scanning.
The installer should be automated from that point, up to and including installing a default printer. Note that this default choice is set rather haphazardly, so should be uninstalled if it does not correspond to your printer. Even if this choice does correspond to your printer, it may still need to be removed and a new printer added unless your printer was connected via USB and turned on during the installation.
You can add/remove/confirm/test the printer added either using the default approach for your desktop (e.g., for Gnome: System menu -> Administration -> Printing), or through the Samsung Unified Linux Driver Configurator that should now be present in your programs menu and on your desktop. Either approach is pretty straightforward. Note that for network printers, IPP may or may not work; LPD is usually reliable; and AppSocket/JetDirect/RAW sometimes works but can be erratic. Note that the Configurator requires an actual root account to work correctly when adding a printer, so will usually fail if you make use of "sudo" instead. You can work around this by running the Configurator from a terminal instead of the menu:
sudo /opt/Samsung/mfp/bin/Configurator
If you wish to use the Qt4 Configurator, you should copy certain files out of the cdroot folder to /opt/Samsung/mfp first (which will overwrite the automatically installed Qt3 version):
where is i386 or x86_64 as appropriate for your computer. Also note that you will the packages libqt4-core or libqt-core4, libqt4-gui or libqt-gui4, libqt4-qt3support, and libqt4-svg installed. (Yet another reason to use the .debs instead, because they handle installation of these dependencies.)
You may now remove the cdroot folder.
If you do not have a multifunction printer but do have a separate scanner, and encounter sudden difficulties using it after installing the driver, then (as root) edit /etc/sane.d/dll.conf and comment out the line that says "smfp" (probably the last line).
If you do not have your printer connected via parallel port, then you should:
sudo rm /etc/modprobe.conf
if you have an /etc/modprobe.d/ directory (true for all 2008 or later Debian/Ubuntu distros, and maybe earlier). If you do happen to be using the parallel port, then
You will have a new ~/.gnome-desktop folder, which contains the Configurator link on your desktop. You should either remove this folder entirely:
rm -r ~/.gnome-desktop
or at least fix the permissions on it, which are wrong:
chown -r user.user ~/.gnome-desktop
where "user" is your user login.
Uninstallation of the v3.00.xx Driver
If you wish to uninstall, then execute the following in a terminal:
sudo /opt/Samsung/mfp/uninstall/uninstall.sh
Assuming the uninstaller actually runs (this is very hit or miss, and depends on the exact combination of Qt3 and Qt4 libraries you have installed), you will still need to do the following:
sudo rm /usr/lib/libtiff.so.3*
rm ~/.sshvfavs
rm ~/.sshvrc
If you do not have the libstdc++5 package installed, then you can also:
sudo rm /usr/lib/libstdc++.so.5*
although it doesn't hurt anything to leave this file. Similarly, if you do not have the libqt3-mt package installed, you can:
sudo rm /usr/lib/libqt-mt.so*
sudo rm /usr/lib/libqui.so*
but they are also pretty harmless. If you do have either of those packages installed and perform these actions, you should reinstall them using apt-get, Synaptic, etc.
Important: always reinstall the cups-bsd or cupsys-bsd package (whichever you have installed) to ensure that /usr/bin/lpr is functioning correctly.
If uninstall failed (you did not get a graphical window), then you should execute the following:
sudo rm -r /opt/Samsung/mfp/
sudo rm /usr/sbin/smfpd
sudo rm /usr/bin/lpr.orig
sudo rm /usr/bin/lpr
sudo rm -r /usr/share/cups/model/samsung
sudo rm /usr/lib/libmfp.so*
sudo rm /usr/lib/cups/backend/mfp
sudo rm /usr/lib/cups/filter/libscmss*.so
sudo rm /usr/lib/cups/filter/rastertosamsung*
sudo rm /usr/lib/cups/filter/pscms
sudo rm /usr/lib/cups/filter/psto* [only v3.00.80 and newer]
sudo rm /usr/lib/cups/filter/smfpautoconf [only v3.00.43 and newer]
sudo rm /usr/lib/sane/libsane-smfp.so*
sudo rm /etc/sane.d/smfp.conf
sudo rm /etc/mfpcommon.modules.conf
sudo rm /etc/init.d/smfpd
sudo rm /etc/rc0.d/K07smfpd
sudo rm /etc/rc1.d/K07smfpd
sudo rm /etc/rc6.d/K07smfpd
sudo rm /etc/udev/rules.d/9?_smfpautoconf.rules [only v3.00.43 and newer]
Then you should execute the following, and delete (as root) all files found (exactly where these files end up depends on which desktop environment and version you are running):
find /usr -type f -name Samsung\*.desktop
find /usr -type f -name Samsung\*.directory
find /usr -type f -name Samsung\*.menu
find /etc -type f -name Samsung\*.desktop
find /etc -type f -name Samsung\*.directory
find /etc -type f -name Samsung\*.menu
Then delete/modify files and reinstall packages as described in the steps above following a successful execution of the uninstaller. You may also need to cleanup some of the desktop files mentioned in the last few steps of the installation description above.