Difference between revisions of "Xerox Phaser 3100MFP"
(→Installation) |
(→Grabbing drivers) |
||
Line 25: | Line 25: | ||
# tar -xf XeroxPhaser3100-1.0-linux-2.6Debian-intel.tar.gz -C printer/ | # 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/ | # tar -xf XeroxPhaser3100sc-1.0-linux-2.6Debian-intel.tar.gz -C scanner/ | ||
− | On my system | + | On my system I use drivers for Debian, but i think there is really no differences which drivers to download. |
{{Note|I use direct links for drivers and packages downloads, but they may change, so if you can't download something, first what you should is to try to correct link or find new version of package.}} | {{Note|I use direct links for drivers and packages downloads, but they may change, so if you can't download something, first what you should is to try to correct link or find new version of package.}} | ||
Revision as of 08:15, 20 September 2010
Contents
Introduction
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.
Installation
Plug in your device and turn it on. 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
Grabbing drivers
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.
Printer
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
Start CUPS:
# /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.
Scanner
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.
Let's install 32bit SANE and necessary libraries:
# wget http://mirror.yandex.ru/archlinux/extra/os/i686/sane-1.0.21-3-i686.pkg.tar.xz # wget http://mirror.yandex.ru/archlinux/core/os/i686/libusb-0.1.12-4-i686.pkg.tar.gz # wget http://mirror.yandex.ru/archlinux/extra/os/i686/libieee1284-0.2.11-2-i686.pkg.tar.gz # wget http://mirror.yandex.ru/archlinux/extra/os/i686/libgphoto2-2.4.9-1-i686.pkg.tar.xz # wget http://mirror.yandex.ru/archlinux/extra/os/i686/libexif-0.6.19-1-i686.pkg.tar.gz # wget http://mirror.yandex.ru/archlinux/extra/os/i686/avahi-0.6.27-2-i686.pkg.tar.xz # mkdir -p /usr/local/bin/ # mkdir -p /usr/local/lib32 # mkdir sane # mkdir libusb # mkdir libgphoto # mkdir libexif # mdkir libieee1284 # mkdir avahi # tar -xf sane-1.0.21-3-i686.pkg.tar.xz -C sane # tar -xf libusb-0.1.12-4-i686.pkg.tar.gz -C libusb/ # tar -xf libieee1284-0.2.11-2-i686.pkg.tar.gz -C libieee1284 # tar -xf avahi-0.6.27-2-i686.pkg.tar.xz -C avahi # cp -r ./sane/usr/lib/* /usr/local/lib32/ # cp ./sane/usr/bin/* /usr/local/bin/ # cp ./libusb/usr/lib/libusb.so /usr/local/lib32/ # cp ./libieee1284/usr/lib/libieee1284.a /usr/local/lib32/ # cp ./libieee1284/usr/lib/libieee1284.so /usr/local/lib32/ # cp ./libgphoto/usr/lib/libgphoto2.so /usr/local/lib32/ # cp ./libgphoto/usr/lib/libgphoto2_port.so /usr/local/lib32/ # cp ./libexif/usr/lib/libexif.so /usr/local/lib32/ # cp ./avahi/usr/lib/libavahi-common.so /usr/local/lib32/ # cp ./avahi/usr/lib/libavahi-client.so /usr/local/lib32/ # ln -s /usr/local/lib32/libusb.so /usr/local/lib32/libusb.so.4 # ln -s /usr/local/lib32/libieee1284.so /usr/local/lib32/libieee1284.so.3 # ln -s /usr/local/lib32/libieee1284.so /usr/local/lib32/libieee1284.so.3.2.2 # ln -s /usr/local/lib32/libgphoto2.so /usr/local/lib32/libgphoto2.so.2 # ln -s /usr/local/lib32/libgphoto2_port.so /usr/local/lib32/libgphoto2_port.so.0 # ln -s /usr/local/lib32/libexif.so /usr/local/lib32/libexif.so.12 # ln -s /usr/local/lib32/libavahi-common.so /usr/local/lib32/libavahi-common.so.3 # ln -s /usr/local/lib32/libavahi-client.so /usr/local/lib32/libavahi-client.so.12 # pacman -S multilib/lib32-v4l-utils multilib/lib32-libtool multilib/lib32-dbus-core
We placed 32bit libraries and binaries to /usr/local, because don't want to mix "tricky" installed stuff with one installed by package manager. Last step is to tell ld where libraries are located: Template:File Check that your ld.so.conf includes just created file. It may looks like this: Template:File Now try to run scanimage, it should work:
$ /usr/local/bin/scanimage -L device `XeroxPhaser3100:usb:001:006' is a XEROX 3100MFP Feeder/Flatbed Scanner
You may want to run scanimage without specifying a full path. Then edit you bashrc (system-wide or just for local user): Template:File