Page 1 of 1

Using an .rpm packaged i386 driver on an LMDE amd64 system

Posted: Fri Nov 16, 2012 2:03 am
by BRB
I've got a Dell 2155cdn http://accessories.us.dell.com/sna/prod ... redirect=1 colour network laser printer which I'd like to be able to us from an amd64-based system, running Linux Mint Debian Edition Update Pack 5 (2012.09.17).

Dell claims support for Red Hat and SUSE, and provides a driver as an i386 .rpm file. I figured I'd probably be able to do something with that to get the driver out.

I tried to convert the .rpm on the Dell CD to a .deb file using the command-line program alien, but alien doesn't like to mix architectures:
brodi@kitchen:~/Downloads$ sudo alien /media/DELL/Linux/Dell-2155-Color-MFP-1.0-1.i686.rpm
Warning: Skipping conversion of scripts in package Dell-2155-Color-MFP: postinst postrm
Warning: Use the --scripts parameter to include the scripts.
/media/DELL/Linux/Dell-2155-Color-MFP-1.0-1.i686.rpm is for architecture i386 ; the package cannot be built on this system
brodi@kitchen:~/Downloads$
So, I tried the same on an old netbook running Linux Mint 11 Katya, and alien worked without a hitch, creating a .deb file, dell-2155-color-mfp_1.0-2_i386.deb. I installed the .deb on the netbook, and I was able to install the printer and print from the netbook right away, worked like a charm.

However, I really want to print from my LMDE amd64 system. I tried to install the same .deb files on my amd64 system using dpkg:
brodi@kitchen:~/Downloads$ sudo dpkg -i dell-2155-color-mfp_1.0-2_i386.deb
dpkg: error processing dell-2155-color-mfp_1.0-2_i386.deb (--install):
package architecture (i386) does not match system (amd64)
Errors were encountered while processing:
dell-2155-color-mfp_1.0-2_i386.deb
brodi@kitchen:~/Downloads$
So, I tried adding the --force-all switch to dpkg, figuring that a printer driver is probably identical regardless of the underlying system architecture:
brodi@kitchen:~/Downloads$ sudo dpkg -i --force-all dell-2155-color-mfp_1.0-2_i386.deb
dpkg: warning: overriding problem because --force enabled:
package architecture (i386) does not match system (amd64)
Selecting previously unselected package dell-2155-color-mfp.
(Reading database ... 316342 files and directories currently installed.)
Unpacking dell-2155-color-mfp (from dell-2155-color-mfp_1.0-2_i386.deb) ...
dpkg: dell-2155-color-mfp: dependency problems, but configuring anyway as you requested:
dell-2155-color-mfp depends on libc6 (>= 2.1.3).
dell-2155-color-mfp depends on libcups2 (>= 1.4.0).
dell-2155-color-mfp depends on libcupsimage2 (>= 1.4.0).
dell-2155-color-mfp depends on libgcc1 (>= 1:4.1.1).
dell-2155-color-mfp depends on libstdc++6 (>= 4.1.1).
Setting up dell-2155-color-mfp (1.0-2) ...
brodi@kitchen:~/Downloads$
So, this installed the package, the --force-all switch also forcing dpkg to ignore dependency problems. However, the dependencies listed above are in fact all met. My system has:
  • libc6 2.13
    libcups2 1.5.3
    libcupsimage2 1.5.3
    libgcc1 1:4.7.1
    libstdc++6 4.7.1
Printer, however, doesn't work. When I run the printing troubleshooter in the Gnome system-config-printer, it gives the following message:
Status Messages
There are status message associated with this queue.

The printer's state message is: '/usr/lib/cups/filter/Dell_2155_Color_MFP/DLM_MF failed'
So, the drivers work fine on an i386 system running Linux Mint 11 Katya, which probably has not had a single update in over a year. They do not work on an amd64 system running LMDE Update Pack 5.

Any thoughts on what needs to be done to get this driver working?

-- B

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Fri Nov 16, 2012 6:34 am
by cwsnyder
The Dell package is linked to the 32-bit libraries, not to 64-bit libraries, so it is no more useful to a LMDE amd64 installation than a Mac OS X driver.

You will have to install a 32-bit version of Linux, at least in a VM or Live CD, to actually use this driver. The alternative is if you can get your hands on the source code and re-build with amd64 libraries.

You have already proved that your .deb package can work in Mint, so you could install 32-bit Mint in VirtualBox with a bridged network adapter and set up to share the printer over the internal network connection according to https://help.ubuntu.com/community/Netwo ... WithUbuntu

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Fri Nov 16, 2012 8:03 am
by viking777
Another possible alternative (but really last ditch I should say) is to install the 32 bit packages of the libraries you are missing alongside the 64bit ones you already have. You can get the 32 bit packages from packages.debian.org and install them with the --force-architecture switch. Then reinstall the driver.

The only problem with this strategy is that it might turn into a dependency hell as the 32 bit packages you are missing will have 32 bit dependencies that you are also missing. This could make the whole strategy so frustrating as to be completely worthless - only you can decide that.

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Fri Nov 16, 2012 11:05 am
by BRB
Thanks for your replies, now it makes more sense why this doesn't work.

Just noticed the latest post on the Linux Mint front page, http://blog.linuxmint.com/?p=2211 is talking about Multiarch - http://wiki.debian.org/Multiarch. Could that solve the dependency problem? I may give it a try.

The other option, which (if Multiarch doesn't work) may actually be the easiest in the long run, particularly as I am someone who doesn't like spending a lot of time trying to tweak non-standard setups, is to simply reinstall LMDE using the 32-bit version; my /home folder is on a separate partition, so this would only mean reinstalling a few applications. I recognize it may not be 'optimal', but I'm not a power user and it is a fast enough machine (AMD A8-3850 2.9Ghz quad core, 8GbRAM), so doubt I would even notice whatever performance differences there may be.

-- B

SOLVED: Re: Using an .rpm i386 printer driver on amd64 syste

Posted: Sat Nov 17, 2012 4:32 pm
by BRB
Multiarch solved the problem. Lucky for that bug in Linux Mint 14 I mentioned above, gave me the solution.

The failed dependencies that came up from installing the .deb file appeared to be noted by the apt package manager, so after setting up multiarch to install the necessary i386 packages, the missing packages were installed by running apt-get -f install.

Here's what I did to set up multiarch:

Code: Select all

sudo dpkg --add-architecture i386
sudo apt update
I then ran the following:

Code: Select all

sudo apt-get -f install
I then reinstalled the printer driver to make sure everything was set up properly:

Code: Select all

sudo dpkg -i dell-2155-color-mfp_1.0-2_i386.deb
I then went back to the Gnome Administration/Printing settings (system-config-printer), and was able to install the printer with no problems.

-- B.

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Tue Jan 15, 2013 6:28 am
by joesken
Hi,

Firstly thanks for taking the time to write up all this. I've been having the same problem with a Dell 2155cn and could find no answers anywhere to help.

Would you mind uploading the .deb file you made or emailing it? I tried to run 'alien' however it won't build it on this system (64bit) and I don't have another machine to build it off.

Again thanks for writing it up in detail like this, really helps for those of new to this whole thing.

Joe

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Tue Jan 15, 2013 11:01 pm
by BRB
Would you mind uploading the .deb file you made or emailing it?
Would post it, but it seems that this forum doesn't allow attachments (or at least not .deb files).

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Tue Jan 15, 2013 11:08 pm
by zerozero
joesken wrote:I tried to run 'alien' however it won't build it on this system (64bit)
is your system already converted to multiarch? http://forums.linuxmint.com/viewtopic.p ... 0&t=122296

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Wed Jan 16, 2013 10:58 am
by BRB
zerozero wrote:
joesken wrote:I tried to run 'alien' however it won't build it on this system (64bit)
is your system already converted to multiarch? http://forums.linuxmint.com/viewtopic.p ... 0&t=122296
zerozero, just to clarify, are you saying if an amd64 system is converted to multiarch, alien should be able to build an i386 .deb package, e.g., you wouldn't get the error message from alien I quoted near the top of my original post?

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Wed Jan 16, 2013 2:38 pm
by zerozero
in many ways multiarch is still a work in progress (and i never used alien before) but if alien has now multiarch support it should build i386 pkgs in amd64 systems (it should).

at that time (nov.) there were more bits missing and the conversion to multiarch wasn't straightforward (yet), we found out with UP6 http://forums.linuxmint.com/viewtopic.p ... 7&t=119075 later on in dec that multiarch was a necessity not an option.

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Thu Jan 17, 2013 1:49 pm
by joesken
Just a quick update.

I followed BRB's instructions (along with installing libcups2:i386 and libcupsimage2:i386) and all installed perfectly. Thanks.

Zerozero the 'alien' command to convert the rpm to a deb package didn't run even though I did have the multiarch support installed.

Re: Using an .rpm packaged i386 driver on an LMDE amd64 sys

Posted: Wed Oct 22, 2014 2:42 pm
by lpdrummerboy87
Hey guys don't know if any of you are still struggling with this but I just went through it to install a Dell 2150cn printer in Linux Mint 17 x64 and figured a few things out that may be useful.

For the people saying they had problems getting alien to work with the 32 bit rpm file on their 64 bit systems, here is how I got it to work for me.

You have to first tell alien to convert the rpm to a tgz file...

Code: Select all

$ sudo alien --to-tgz Dell-2150-Color-Printer-1.0-1.i686.rpm 
Warning: Skipping conversion of scripts in package Dell-2150-Color-Printer: postinst postrm
Warning: Use the --scripts parameter to include the scripts.
Dell-2150-Color-Printer-1.0.tgz generated
Then have it build the deb package from that and it works no problem!

Code: Select all

$ sudo alien --to-deb Dell-2150-Color-Printer-1.0.tgz 
dell-2150-color-printer_1.0-2_all.deb generated
I was then able to install it no problem and the printer worked perfectly the first try!

Code: Select all

$ sudo dpkg -i dell-2150-color-printer_1.0-2_all.deb 
Selecting previously unselected package dell-2150-color-printer.
(Reading database ... 160377 files and directories currently installed.)
Preparing to unpack dell-2150-color-printer_1.0-2_all.deb ...
Unpacking dell-2150-color-printer (1.0-2) ...
Setting up dell-2150-color-printer (1.0-2) ...