Xerox Phaser 3100MFP
This article describes setup of Xerox Phaser 3100MFP on Arch Linux x86_64. For this device Xerox provides only 32bit version of drivers and no open-source drivers are available, it makes setup a bit tricky. On x86 you should just install drivers from official site and configure as usual.
Plug in your device and turn it of. You should see something like this:
$ lsusb -v Bus 001 Device 006: ID 0924:3cef Xerox Device Descriptor: ... idVendor 0x0924 Xerox idProduct 0x3cef bcdDevice 1.00 iManufacturer 1 XEROX iProduct 2 Phaser 3100MFP iSerial 3 L508104LE514587
It's easy, you can download drivers from official Xerox website using you browser or just do the following:
# mkdir scanner # mkdir printer # wget http://download.support.xerox.com/pub/drivers/3100MFP/drivers/linux/en/XeroxPhaser3100-1.0-linux-2.6Debian-intel.tar.gz # wget http://download.support.xerox.com/pub/drivers/3100MFP/drivers/linux/en/XeroxPhaser3100sc-1.0-linux-2.6Debian-intel.tar.gz # tar -xf XeroxPhaser3100-1.0-linux-2.6Debian-intel.tar.gz -C printer/ # tar -xf XeroxPhaser3100sc-1.0-linux-2.6Debian-intel.tar.gz -C scanner/
On my system i use drivers for Debian, but i think there is really no differences which drivers to download.
OK, first of all we need to install CUPS:
# pacman -S cups
Since 1.4.x version CUPS requires usblp kernel module to be unloaded, so next step is to remove module:
# rmmod usblp
If you don't want to do it any time you boot, just blacklist kernel module: Template:File Execute driver installer and accept licence:
# cd printer # ./XeroxPhaser3100.install
# /etc/rc.d/cups start :: Starting CUPS Daemon [DONE]
Now open http://localhost:631 in your browser, add printer, and try to print test page. If it's ok, they you are really lucky, but most likely you see this error message:
Identifying printer problem
Well, let's debug a little. Change CUPS debug level: Template:File Restart CUPS:
# /etc/rc.d/cups restart :: Stopping CUPS Daemon [DONE] :: Starting CUPS Daemon [DONE]
Then restart last job and take a look at error log again, you'll see something like this:
As you remember, Xerox told us, that drivers are 32bit only, so we have to install necessary libraries. Use this to see, what libraries are missed:
# readelf -d /usr/lib/cups/filter/rastertoprinterbin Dynamic section at offset 0x10314 contains 25 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libcupsimage.so.2] 0x00000001 (NEEDED) Shared library: [libstdc++.so.6] 0x00000001 (NEEDED) Shared library: [libm.so.6] 0x00000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x00000001 (NEEDED) Shared library: [libc.so.6] 0x00000001 (NEEDED) Shared library: [libcups.so.2]
Installing missed libraries
Let's install libraries:
# pacman -S lib32-libcups lib32-libstdc++5 lib32-libtiff lib32-libpng # ln -s /usr/lib32/libc.so /usr/lib32/libc.so.2
For example, when rastertoprinterbin fails to load shared library in CUPS error log it looks like:
So now try to print, it should work properly.
Installing scanner driver
Create /etc/sane.d directory if it's not exists, because it's need by installer:
# mkdir -p /etc/sane.d
Now install driver:
# cd scanner/ # ./XeroxPhaser3100sc.install
Installing necessary libraries and binaries
Scanner's problem is similar to printer's one: 64bit SANE will not work with 32bit back-end. We need to install 32bit SANE and libraries it depends on.