Update (08-Nov-08): Updated for Ubuntu 8.10 Intrepid Ibex
Update (30-Apr-08): Improved the workaround with hal-cups-utils
Update (28-Apr-08): Updated for Ubuntu 8.04 Hardy Heron
Update (23-Oct-07): Updated for Ubuntu 7.10 Gutsy Gibbon
I want to make a Fuji Xerox WorkCentre PE220 to work with Ubuntu GNU/Linux. A printer driver for GNU/Linux is found in a CD provided, but DON'T use it as it is probably too old! I finally make it work. Here are the steps involved.
Some Xerox printers are Samsung OEM. This Xerox WorkCentre PE220 looks like a clone of Samsung SCX-4521F [www.samsung.com] (Note: This link changed very often! Navigate from the main page if the link does not work.) except that it has a slightly different button layout on the control panel. Download the driver. The latest driver I use is 20070720165133984_UnifiedLinuxDriver.tar.gz (Version 2.00.97) as of this writing.
To ease the installation, turn OFF the printer or DISCONNECT it from the computer before installing the Samsung driver.
/proc/bus/usb/$ sudo vi /etc/init.d/mountdevsubfs.sh
(For Ubuntu 8.04) Look for the comment "# Magic to make /proc/bus/usb work" and uncomment its following four lines for making /proc/bus/usb work.
(For Ubuntu 8.10) Look for the line:
domount devpts "" /dev/pts devpts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE
and add the following lines just below it:
# Magic to KEEP /proc/bus/usb working mkdir -p /dev/bus/usb/.usbfs domount usbfs "" /dev/bus/usb/.usbfs usbfs -obusmode=0700,devmode=0600,listmode=0644 ln -s .usbfs/devices /dev/bus/usb/devices mount --rbind /dev/bus/usb /proc/bus/usbAfter that, restart the script:
$ sudo /etc/init.d/mountdevsubfs.sh stop $ sudo /etc/init.d/mountdevsubfs.sh start
Untar the tarball and grant all files the root ownership:
$ tar zxvf 20070720165133984_UnifiedLinuxDriver.tar.gz $ cd cdroot/ $ sudo chown -R root:root *
Modify (with sudo) the installation script to use bash:
$ cd Linux $ sudo vi install.sh
Replace the first line with #!/bin/bash.
Initiate the installation of the printer driver:
$ sudo ./install.sh
Simply follow the instructions in the graphical installer. Do not add any printer model at this moment.
Note: This step does not seem necessary for Ubuntu 8.04/8.10.
The default AppArmor CUPS profile shipped with Ubuntu 7.10 is too restrictive for accessing the printer. A workaround is to disable the profile with:
$ sudo aa-complain cupsd Setting /etc/apparmor.d/usr.sbin.cupsd to complain mode. $ sudo aa-status cupsd apparmor module is loaded. 2 profiles are loaded. 0 profiles are in enforce mode. 2 profiles are in complain mode. /usr/sbin/cupsd /usr/lib/cups/backend/cups-pdf 1 processes have profiles defined. 0 processes are in enforce mode : 1 processes are in complain mode. /usr/sbin/cupsd (4505) 0 processes are unconfined but have a profile defined.
Turn ON the printer now. Ubuntu should detect the printer automatically but will also install an incorrect printer driver for it. The reason being that Ubuntu does not know that the printer is Samsung OEM. Click 'Find driver' or invoke the printer configuration program (system-config-printer). Under the 'Settings' tab, make the following changes:
mfp:/dev/mfp/4.Now print a test page and hope that everything just works! (You may use Samsung Unified Driver Configurator for this step, but I haven't tried it thoroughly.)
After the installation, if you use xsane or scanimage -L, you will get a Segmentation Fault! The problem happens because /usr/lib/libmfp.so.1.0.1 tries to detect some scanners connected to the parallel ports, but as a normal user you cannot do so.
A workaround exists [jacobo.tarrio.org] if your scanner is connected to a USB port. There are two things you need to do here:
1. Use the patched /usr/lib/libmfp.so.1.0.1. Use the fix for the driver version 2.00.97.
2. Log in to the group lp to access the scanner. This is required by the driver. So add yourself to the group lp:
$ sudo adduser $USER lp
Add other users who are permitted to access the scanner in a similar way. Reboot the computer and you should be able to access the scanner now.
For scanner connected to a parallel port: I am not sure if there is a workaround available yet.
When you dismiss the printer months or years later, you may want to uninstall the driver. Luckily, the package comes with an uninstallation script uninstall.sh that works ok but fails to remove at least the following files on Ubuntu (32-bit):
/usr/lib/libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libtiff.so.3.6.1 /usr/lib/libtiff.so.3
These files are installed by install.sh when it fails to find them on your system. There is no efficient way to find out if these libraries are still required by other programs, so the uninstaller just leaves them there. This is mostly harmless. Such files that may be installed but will not be removed are packaged in cdroot/Linux/noarch/lib*.tar.gz.
The reasons behind the 'troublesome' installation are briefly explained here. Knowing the real problems behind helps hackers to find proper workarounds to make the printer work. (There were even more problems in the older versions.)
install.sh) makes use of some bash extension but specifies to use /bin/sh in its first line, which points to /bin/dash instead of /bin/bash in Ubuntu. This causes some installation problems.root:root, are not set properly./dev/bus/usb/ but instead look for them under /dev/bus/usb/, which is obsolete.lp group (instead of the scanner group in the Ubuntu convention) to use the scanner.chmod -s some applications. Luckily this step is no longer required as the terrible issue has been fixed in the latest version. (See this [lwn.net].)As you see, it is quite annoying and problematic to install the driver. I like the high-quality multi-function printer but not the driver. Hope that Samsung will spend more efforts improving the driver, or even generously donates the source codes to the free software community. The community can also help in maintaining the code and this should encourage more people to buy the Samsung or Xerox printers.
http://ubuntuforums.org/showthread.php?t=341621
http://jacobo.tarrio.org/Samsung_SCX-4200_on_Debian
http://ubuntuforums.org/showpost.php?p=4776310&postcount=114
Comments
Thank you!!!
Thank you!!!
Yes - thanks you kind sir.
I got stuck trying to install our xerox pe220 on a fresh build of ubuntu 8.04. Your instructions were perfect and have saved me many hours. This is my first attempt to move away from windows after ten years+ and it could have been a show stopper but for your effort.
Thank you again - all the best.
David from New Zealand.
Thanks!
Boy, was this a godsend! Thanks for the extremely clear instructions, and the cogent explanations. I would have been sunk without you.
Thank you.
I have been struggling to install this printer dirver for a long time now. Thanks to your clear instructions. Could install in a few mins.
Thank you for the help.
Thanks! It works for the SCX-4100 also.
Thank you so very much for the well-written steps, for not assuming a PhD+ decades of *nix expertise, and especially for the explanation of Why, in addition to How.
Print and scann all working lovely!
Mike F.