Common Questions Not Specifically Related to Printing or Scanning
Why Don't You Provide Source Code? Why Isn't the Driver Better? Can You Fix a Bug? Who Do I Complain To?
Basically, my role is to provide a public service to address many of the installation bugs and conflicts that the lousy Samsung installer and driver create. I have no say in anything about the driver itself, which is a closed-source binary. I have no connection to Samsung, and have never once received a response from them regarding various issues I've pointed out to them. However, given that thousands of people are using this repository, and presumably many more Linux users exist, it seems that there should be motivation for Samsung to fix the problems: update the driver to use a modern libc6, USB system, libtiff, libpng, and libnetsnmp; stop overwriting files or installing them in ways that prevent clean removal; stop using setuid and requiring root access; avoid static linking to libc; and anything else you may think to point out. The only long-term solution is for everyone to contact Samsung directly and ask them to solve these issues (it is not important if you understand any or all of them; if you want to learn more, there's plenty on this website and the support forum. Maybe they could even distribute proper .deb (and .rpm, etc.) packages themselves, and render my entire repository obsolete.
The Configurator Won't Launch. What's Wrong?
There is a problem with the libpng12/libpng3 packages (v1.2.44-1 & some earlier versions); an essential link was not included. If there is not a more recent version of the package available through your distribution, install the libpng12-dev package to get the correct link. Alternatively, you can try:
to create the correct link. If none of these solutions fixes the problem (or the link already exists), post to the forum asking for help. This problem will manifest itself as being unable to print, scan, or launch the Samsung Configurator.
Will You Provide Packages for the Samsung Smart Panel and Printer Settings Utility?
No. Certain Samsung printers have the option of using the Samsung Smart Panel & Printer Settings Utility. I have not packaged these and you should download them directly from Samsung if you wish to use them. However, read the following before you do so.
The packages in this repository are compatible with the Samsung utility packages. These utilities appear to only come in Qt3 compiled versions. However, you should note that as of January 2011, all versions of these utilities still require the use of setuid root (i.e., they run as root regardless of who executes them) and so represent a security risk. In addition, by default the installer will create the /opt/Samsung/... directories with world-write access, another security risk; you can solve this by a "find . -type d -exec chmod 755 {} \;" in the "cdroot" folder before installing to reset folder permissions. Non-executable files are also marked as executable by default in /opt/.../bin and /opt/.../share/, a small but real security risk. The way the installers deal with menu entries, menu directories, and autostart is also highly non-standard, but does not appear to be anything other than sloppy. Both utilities also install local (in /opt) copies of the Qt3 libraries, which could potentially cause conflicts but is unlikely to be a significant issue. Finally, because one of the two Smart Panel executables is 32-bit only, the installer tries to copy both the 32-bit and 64-bit libstdc++5 libraries onto the system on 64-bit installations; this is a problem on Debian-based systems, because the method used to check for those files fails due to the symlinking of /usr/lib64 to /usr/lib, and so only one of the two libraries will be installed (I don't know the consequences of this, but any resulting instability/bugs probably only affects the Smart Panel).
In general, I discourage you from installing these tools for the security reasons above. Please do not ask me to package either; I am unable to test them with my printer and unwilling to distribute a package that requires setuid, especially when unable to test it myself. In addition, both utilities come in a wide variety of versions on the Samsung website, and the printers supported by individual versions varies, so I would have to package multiple versions of each for specific printers. (It is possible that the multiple versioning issue is just sloppiness on Samsung's part, but since I am unable to test this I cannot resolve the issue.)
Can You Provide Packages for Additional Architectures (Beyond i386 and amd64)?
No. The Samsung Unified Linux Driver is only available for i386 and amd64 architectures (most Intel/AMD based 32-bit and 64-bit systems); because the driver is not open source, I have no control over this limitation.
Will These Drivers/Packages Work with Non-Samsung Printers?
In some cases. There are a variety of printers that are not Samsung-branded but are actually equivalent, and so this information is also appropriate for them. For example, the Xerox WorkCentre PE220 and some Xerox Phasers. I do not have an extensive list of such printers, but a partial list can be seen on the SpliX website.
How Do I Set the Default Paper Size?
Independent of anything to do with the Samsung Unified Linux Driver, you can change the default paper size for all applications this way: edit (as root) /etc/papersize to say "letter" or "A4" or whatever your preference is. There are also various graphical interfaces for CUPS, foomatic, etc.
Why Do I Get an Error About the cupsys-common Package?
If you start the Configurator from the command line, you will likely see an error about the cupsys-common package not being found (unless your distro is fairly old). This package was renamed in 2008 (in Debian), and Samsung has yet to catch up. The error is meaningless, as the correct CUPS packages are installed if you can print.
Why Do You Store Files in /opt/?
Some of the file paths for the Samsung utilities are hard-coded, and so for the various pieces to work, some files must be located in particular directories off the /opt/ stem. There is nothing I can do about this. Every file that can be moved out of there without breaking something has been relocated.
What Do All the Binary Components Do?
(Note that the v2 drivers have a few extra pieces in /opt and a few missing pieces in /usr, but I won't discuss those.)
/opt/Samsung/mfp/bin/Configurator - the Configurator program
/opt/Samsung/mfp/bin/ImageManager - scanning and image controls
/opt/Samsung/mfp/bin/netdiscovery - to autodetect network printers
/opt/Samsung/mfp/bin/printeradd - the Samsung add printer utility
/opt/Samsung/mfp/bin/printertest - the Samsung utility to print test pages
/opt/Samsung/mfp/bin/sshv - the Help interface
/opt/Samsung/mfp/bin/slpr - the Samsung lpr interface
/opt/Samsung/mfp/bin/smfpscan - scanning utility
/opt/Samsung/mfp/lib/* - necessary libraries for the Configurator and ImageManager programs
/opt/Samsung/mfp/uninstall/* (not in these pacakges) - uninstall programs and scripts
/opt/Samsung/mfp/share/utils/* - a Java applet that has an unknown fuction, and I don't believe to be essential; maybe network related?
/opt/smfp-common/lib/* (contents actually located in /usr/lib/ in these packages) - communication libraries needed by non-legacy netdiscovery and smfpautoconf, a fancy library for the "about" window in some versions of the Configurator, and libraries for the GUI installer (the last are not included in the packages)
/usr/sbin/smfpd - the daemon to interface with the parallel port
/usr/bin/lpr (not in these packages) - a link to override the normal lpr by pointing to /opt/Samsung/mfp/bin/slpr after moving the original lpr to lpr.orig
/usr/lib/libmfp.so* - the main library for printing and scanning
/usr/lib/libcups.so (not in these packages) - a link to a cups library that isn't necessary
/usr/lib/sane/libsane-smfp.* - the scanning library for talking to sane
/usr/lib/cups/backend/mfp - the interface to CUPS for printing
/usr/lib/cups/filter/rastertosamsung* - utilities to render printing output
/usr/lib/cups/filter/libscms* - libraries for using the ppd/cms files provided by Samsung
/usr/lib/cups/filter/ps* - postscript libraries for reading cms files and converting formats (I don't really know the details)
/usr/lib/cups/filter/smfpautoconf - autoconfiguration/detection utility [v3.00.43 and higher]
/usr/lib/libqt3-mt* (not in these packages) - qt3 library that may already be installed on your system
/usr/lib/libtiff.so.3* (not in these packages) - obselete display library
/usr/lib/libstdc++5* (not in these packages) - C++ library that may already be installed on your system
Why Are These Pages So Simple? Can't You Make Them More Exciting?
Because I'm short on time and this project is strictly volunteer. These pages get the job done.