Common Questions Not Specifically Related to Troubleshooting Printing or Scanning
Q0. HELP! I Updated the Packages and Now Something Doesn't Work!
Q1. Why Don't You Provide Source Code? Why Isn't the Driver Better? Can You Fix a Bug? Who Do I Complain To?
Q2. My Printer Seems to Be Configured but I Can't Scan, Print, or Launch the Configurator
Q3. Will You Provide Packages for the Samsung Smart Panel and Printer Settings Utility?
Q4. Can You Provide Packages for Additional Architectures (Beyond i386 and amd64)?
Q5. Will These Drivers/Packages Work with Non-Samsung Printers?
Q6. Why Do I Get an Error About the cupsys-common Package?
Q7. Why Do You Store Files in /opt/?
Q8. What Do All the Binary Components Do?
Q9. Why Are These Pages So Simple? Can't You Make Them More Exciting?
Q10. How Do I Set the Default Paper Size?
Q11. What's Up With All the Transitional Packages?
Q12. What's Going On With All the Strange Version Numbers?
Q13. How I Do I Ensure Future Updates Don't Break Anything?
Q14. Why Can't I Install the Qt3 Configurator Packages?
Q15. Which Printer Models Are Supported?
Q16. Why Do I See an Error About cupsys When Starting the Configurator in a Terminal?
Q17. Does the Unified Driver Work With the CJX- Line of Multifunction Inkjet Printers?
Q18. Can I Use This Repository If I'm Not Using Debian (or Derivatives Such as Ubuntu, Mint, etc.)?
Q19. What's With the .app Naming of the Configurator Binaries?
Q20. How Can I Stop Getting This GPG Error?
Q21. Why Is Forum Registration So Difficult?
Q22. Why Are There So Many Different Driver Versions?
Q23. Should I Update to the Newest Driver Version?
Q24. Which Package Should I Try Changing/Updating for a Particular Error?
Q25. How Do I Fix apt-get Timeouts?
Q0. HELP! I Updated the Packages and Now Something Doesn't Work!
On rare occassions, something may not go smoothly in an upgrade process. You can try uninstall all your packages from this repository and then reinstalling the ones you still need. Otherwise, post to the forums for help.
Q1. 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, the forums, and the original (and now locked for being obselete) support thread. Maybe they could even distribute proper .deb (and .rpm, etc.) packages themselves, and render my entire repository obsolete.
Q2. My Printer Seems to Be Configured but I Can't Scan, Print, or Launch the Configurator
There is a problem with the libpng12/libpng3 packages (v1.2.44-1); an essential link was not included. If there is not a more recent version of the package available through your distribution (Debian 6.0 Squeeze and Ubuntu 11.04 Natty are affected, but earlier and later releases are not), install the libpng12-dev package to get the correct link. Alternatively, you can try:
- sudo ln -s /lib/libpng12.so.0 /usr/lib/libpng.so.3
to create the correct link. (libpng12.so.0 may also be in /lib32/ or /lib/x86_64-linux-gnu/ instead of /lib/ if your systems is configured for multiarch.) If none of these solutions fixes the problem (or the link already exists), post to the forums asking for help. This problem will manifest itself as being unable to print, scan, or launch the Samsung Configurator.
Q3. 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 May 2012, 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. Some versions of 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.)
Q4. 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. So systems built on a different chip (all Raspberry Pi computers and other ARM-based systems such as most smart phones) will need to use amd64 emulation (if possible); see this thread on enabling in a Raspberry Pi. Samsung did briefly provide support for the "armel" architecture, but the drivers were outdated before the first release and not relevant to any ARM-based system produced since approximately 2012 or 2013.
Q5. Will These Drivers/Packages Work with Non-Samsung Printers?
In some cases. See the list of supported printers (which is probably incomplete), and a partial list can be seen on the SpliX website.
Q6. 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 only caught up with the version 4 drivers in mid-2011. The error is meaningless, as the correct CUPS packages are installed if you can print.
Q7. 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. The driver2 packages do not make use of /opt/ at all.
Q8. 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. I am also including only those files actually included in one or more repository packages. Not all files are included in all driver releases.
- /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/plugins/* - necessary libraries for the Configurator and ImageManager programs
- /opt/Samsung/mfp/share/utils/* - a Java applet that has an unknown fuction, and I don't believe to be essential; maybe network related?
- /usr/sbin/smfpd - the daemon to interface with the parallel port
- /usr/bin/local/lpr (/usr/bin/lpr in the original installer) - 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/sane/libsane-smfp.* - the scanning library for talking to sane
- /usr/lib/cups/backend/mfp - the interface to CUPS for printing
- /usr/lib/cups/backend/smfpnetdiscovery - to autodetect network printers (driver2)
- /usr/lib/cups/filter/rastertosamsung* - utilities to render printing output
- /usr/lib/cups/filter/rastertoslp* - 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 to render printing output
- /usr/lib/cups/filter/smfpautoconf - autoconfiguration/detection utility
- /usr/lib/cups/filter/smfppreload - unknown
Q9. 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. I was also introduced to web design way back in the Mosiac days, and still dislike most of the "new" flashy garbage that most "modern" web pages are making use of.
Q10. 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.
Q11. What's Up With All the Transitional Packages?
This repository is a work in progress, and responds to arbitrary changes made by Samsung. I believe the package design is now fairly stable, but it may change again in the future and has changed multiple times in the past. The result is considerable re-naming of packages (or even whether particular packages are necessary). All the transitional packages are leftovers to assist people updating to new packages, and all may (and should) be removed. The complexity of the dependencies amongst all the packages is usually an advantage, although occasionally it confuses apt during an update.
Q12. What's Going On With All the Strange Version Numbers?
Samsung is not very consistent with versioning. For example, some versions of the 3.00.65 and 3.00.90 driver were also listed as version 1.14, and 1.15, respectively, while the first versions of the 4.00.35 driver were also listed as version 1.01. Moreover, identical files are sometimes released as different versions, and occasionally files marked as the same version are actually different. Finally, even within a particular release, different components receive different version numbers. For example, the 4.00.35 driver for the SCX-3405W is version 4.00.35 for "Common" files, 4.00.25 for the "Printer", and 4.00.14 for the "Scanner". These can be viewed in the "About" window of the Configurator, along with a 2001 copyright date (for files all actually compiled in 2005 through the present). I have generally adopted the version advertised on the Samsung website (typically the "Common" version) as the version I report for drivers and ppd packages, as that appears to be the most meaningful to distinguish between different Samsung releases. I use the "Common" version for Configurator versions. Everything else gets arbitrary version numbers.
This got even worse with the August 2013 driver release, when Samsung re-started numbering. So the latest drivers were 1.00.06, and I created "driver2" to distinguish these and indicate that they were more recent despite the lower version number. Fortunately, Samsung also radically simplified the driver system and eliminated the Configurator, so with driver2 packages there is only a single version.
Q13. How I Do I Ensure Future Updates Don't Break Anything?
The simplest way is to never update anything. Obviously there are limits to this approach, but there are two methods that you can use with this repository. The simplest is to just disable the repository (comment out or delete the repository lines added when configuring the repository) after you get everything working, and only come back if you have problems in the future. However, with the 2013 restructuring of the repository, this issue should be less common unless something in a system update requires you to update to a new driver version.
Q14. Why Can't I Install the Qt3 Configurator Packages?
As of summer 2012, Debian is in the process of removing all Qt3 support files; at some point this will trickle down into Ubuntu, Mint, etc. This means that the libqt3-mt package may not be available. There is no advantage to the Qt3 version of the Configurator over the Qt4 version, so I suggest you install one of the Qt4 Configurator packages instead (e.g., suld-configurator-2-qt4). However, because in some cases the Qt4 versions do not work reliably, I have included the necessary Qt3 libraries in my repository.
Q15. Which Printer Models Are Supported?
Click here.
Q16. Why Do I See an Error About cupsys When Starting the Configurator in a Terminal?
All the "cupsys" packages were renamed to "cups" by Debian with the CUPS 1.4 release in 2008. However, the Configurator still does a check for the existence of "cupsys" when it starts, and reports that the package is not found. This error has no meaning and does not indicate a real problem.
Q17. Does the Unified Driver Work With the CJX- Line of Multifunction Inkjet Printers?
In spring 2012, Samsung introduced the CJX inkjet multifunction printers. The initial models are the CJX-1000, CJX-1050W, and CJX-2000FW, sold in Germany with plans to expand throughout Europe. These printers are actually re-branded Kodak printers, and so the Unified driver does not work with them. And Kodak does not support Linux. However, there are alternative solutions that do not involve the Samsung Unified driver: see here for printing and here for scanning.
Q18. Can I Use This Repository If I'm Not Using Debian (or Derivatives Such as Ubuntu, Mint, etc.)?
Possibly. At least a few Gentoo and Slackware users have done so. Some Fedora users have reported mixed success with alien to convert the packages to .rpm files. Some versions of alien seem to have trouble converting the symlinks in the suld-driver-* packages (although the Debian version I have works okay). In addition, alien does not convert installer scripts, so restarting services (cups) will not take place, and boot scripts (for suld-scanner-usblp-fix and suld-parallel) will have to be activated manually. There may also be issues with suld-driver-common-1 depending on debconf, which naturally does not exist in Fedora. Although I would be happy to host a yum (rpm) repository in paralle with the existing apt (deb) one, I simply do not have the time to learn the ins and outs of .spec files and yum necessary to create one. For anyone with some experience building rpms, converting the debs to rpms and building a repository may not be a big deal in. If you are interested in working on this (in particular, generating the necessary .spec files), contact me via the forums.
Q19. What's With the .app Naming of the Configurator Binaries?
Beginning with the 4.00.36 release, Samsung started using wrappers around the Configurator binaries in /opt/Samsung/mfp/bin/ (including Configurator, ImageManager, etc.) to provide log information in /tmp/. In addition, the wrapper sets some additional library load directories; that is actually irrelevant with these packages, but does not do any harm so I have not modified it.
Q20. How Can I Stop Getting This GPG Error?
First, make sure that you have installed the GPG key. If not, you will receive warnings about unathenticated packages. If you are receiving messages about invalid signatures (something like in this thread), then there may be an error in your apt cache (possibly due to trying to refresh package lists when this server was temporarily unresponsive). Follow the steps in this post to reset the cache.
Q21. Why Is Forum Registration So Difficult?
Because I don't have time to deal with spam. So you'll have to jump through a few hoops to initially register, sorry. I keep the settings at the lowest annoyance threshold that also keeps out the spambots, so I'm not wasting the little time I have to spend on this project dealing with them. One side effect is that registering with a throw-away (temporary) email address probably won't work, as the registration link will probably not arrive before the temporary email address expires. Using a real email address also allows you to receive notices of responses to your posts. Those are optional, and the only traffic you should receive after registering.
Q22. Why Are There So Many Different Driver Versions?
Because different drivers work better for some people, with some printers, under some conditions, with some distributions. Basically, it's all complicated, and if it wasn't really necessary for some people to have access to older drivers, I wouldn't continue to provide them. See the list of supported printers to determine which driver versions are appropriate for your printer. In general, I would suggest choosing the "last updated" version, not necessarily the newest driver. However, as Linux continues to evolve over time, older versions will gradually become non-functional for reasons having nothing to do directly with the printer driver itself. In general, you can probably assume that a particular driver version is usable in a distribution released up to 3-5 years after the original release date of the driver itself (but this is only an average).
Q23. Should I Update to the Newest Driver Version?
Probably not. If you have a version of the driver that is working for you, I suggest you stick with it. When something in a new distribution release breaks something I can fix with an older driver, I will do so and release an update to that driver version. Otherwise, the only time you need to consider moving to a newer driver is if the driver completely stops working and I can't release an update to fix it (or you don't want to wait), or if you buy a newer printer. You can also check the list of supported printers to see if the latest driver had any impact on your printer, in which case you might want to consider switching.
Q24. Which Package Should I Try Changing/Updating for a Particular Error?
You can get a good idea of what package a file resides in by its location (folder/directory), by reading the package descriptions. A more direct way is use "dpkg -S /path/to/file" in a terminal, which will tell you exactly which package a file belongs to. If the file is in a driver package, switching driver versions might help. Similarly for Configurator packages. If the file is in some other package, you should post to the forums with your problem after ensuring you are using the latest version of the package.
Q25. How Do I Fix apt-get Timeouts?
In rare cases, the internationalization files seem to be corrupted. Look at this post for a solution.