View Full Version : [ubuntu] epson scanner install help

January 9th, 2011, 05:22 PM
I am trying to load the linux driver for an epson 3170 scanner on to my ubuntu 10.10 64 bit laptop. I downloaded the rpm package (iscan-2.10.0-1.c2.i386.rpm and iscan-plugin-gt-9400-1.10.0-1.c2.i386.rpm) to my desktop. I extracted the files and and tried to use alien to convert the rpm to a deb file in terminal. The following are the steps I took and the message I received. Before I tried this I installed libsane-dev. and libsane-extras.
michael@michael-laptop:~/Desktop$ sudo alien -d iscan-2.10.0-1.c2.i386.rpm
Warning: Skipping conversion of scripts in package iscan: postinst postrm preinst prerm
Warning: Use the --scripts parameter to include the scripts.
mkdir: cannot create directory `iscan-2.10.0': File exists
unable to mkdir iscan-2.10.0: at /usr/share/perl5/Alien/Package.pm line 257.
I also tried using sudo alien -k iscan.2.10.0-1.c2.i386.rpm and got a file not found message. I am totally lost and have no idea what to try. Can anyone help? Thanks - Mike

February 2nd, 2011, 05:48 AM
Did you ever get your 3170 working? I have not been able to with Meerkat 64-bit. As far as installing the iscan rpm's, here is how I did it (sorry, I lost the link. Also, substitute your iscan version for "dbvis..." below):

When using alien to convert this .rpm to .deb like so ...

sudo alien --veryverbose -c -d dbvis_linux_7_0_4.rpm
it stops with the follwing error :

dpkg-gencontrol: error: current host architecture 'amd64' does not appear in package's architecture list (i386)
dh_gencontrol: dpkg-gencontrol returned exit code 255
make: *** [binary-arch] Error 1
find dbvis-7.0.4 -type d -exec chmod 755 {} ;
find: `dbvis-7.0.4': No such file or directory
rm -rf dbvis-7.0.4
So apparently the architecture of the package is set wrongly, or alien is not detecting it correctly, who cares? Well I do. So, let us stop the conversion half way with the -g option like so ( if you executed the previous command, please first remove the build directory via "sudo rm -fr dbvis-7.0.4" ):

sudo alien --veryverbose -c -d -g dbvis_linux_7_0_4.amd64.rpm
to quote from the alien man page :

-g, --generate
Generate a temporary directory suitable for building a package
from, but do not actually create the package. This is useful if you
want to move files around in the package before building it. The
package can be built from this temporary directory by running
"debian/rules binary", if you were creating a Debian package, or by
running "rpmbuild -bb <packagename>.spec" if you were creating a
Red Hat package.
So now we can make changes and the build the binary .deb by changing to the build directory that alien created, in this case dbvis-7.0.4, and executing the command :

sudo ./debian/rules binary
but not just yet. First we need to change the architecture to amd64. So change to the ./dbvis-7.0.4/debian/ directory and edit the control file, it should have contents similar to this (and is named control):

Source: dbvis
Section: alien
Priority: extra
Maintainer: blah von bliep <blah@bliep.com>

Package: dbvis
Architecture: i386
Depends: ${shlibs:Depends}
(Converted from a rpm package by alien version 8.78.)
change the i386 item to amd64 and save, using your favorite editor.

now change one directory back like so :
cd ..
you should be in the build directory, in this case dbvis-7.0.4, and now to start the .deb build, run the rules file like so :
sudo ./debian/rules binary
Lots of magic behind the scenes code will run giving output similar to this :

dh_clean -k -d
find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \
xargs -0 -r -i cp -a {} debian/dbvis
dpkg-gencontrol: warning: unknown substitution variable ${shlibs:Depends}
dpkg-deb: building package `dbvis' in `../dbvis_7.0.4-2_amd64.deb'.
and you will end with a dbvis_7.0.4-2_amd64.deb package.

Now use dpkg to install this package like so :

sudo dpkg --install dbvis_7.0.4-2_amd64.deb

April 17th, 2012, 01:19 AM
No,I never did get it to work. I gave up. I thought it might be easier with 11.10 but not so. I thought there was a force-architecture command to convert 32 bit packages to work in 64 bit. I will read over what you sent and try it. Thanks