Wednesday, July 30, 2014
linux administration - tips, notes and projects
So, I have a Dell V715w that I’ve had for years. I wanted to get one of my Ubuntu workstations to print to it.
What was first thought to be convenient, Dell’s website actually has a Ubuntu Linux installer and drivers available for download on their website here:
Dell V715W AIO Inkjet Printer, A00
This is a Ubuntu driver release for the V715W printer.
Release Date 11/9/2009
Seems simple enough, right? Not so much.
After downloading, untarring and guzipping the file from Dell’s website, I run the shell script:
chmod +x dell-inkjet-09-driver-1.0-1.i386.deb.sh
A nice little GUI pops up and asks me to continue with the install. I enter my superuser password, and watch it go to work in the debug window. It proceeds to create a temporary directory and drop a .deb along with some other files, then errors out horribly with this:
Extracting file: dxdbuspolicy.te
Extracting file: dell-inkjet-09-driver-1.0-1.i386.deb
Extracting file: jre-6u12-linux-i586.bin
Extracting file: launcher_87b076ac_5714_4095_b8ae_c17133910651
Extracting file: dxlpia.sh
Extracting file: dxnet.te
Execute: sleep 3
Execute: dpkg -i dell-inkjet-09-driver-1.0-1.i386.deb < /dev/null > /dev/null 2>&1
Execute: dpkg -i dell-inkjet-09-driver-1.0-1.i386.deb 2>&1 | tee /home/eriks/lua_iXv8E7/installerror_msgs
dpkg: error processing archive dell-inkjet-09-driver-1.0-1.i386.deb (–install):
parsing file ‘/var/lib/dpkg/tmp.ci/control’ near line 9 package ‘dell-inkjet-09-driver’:
blank line in value of field ‘Description’
Errors were encountered while processing:
dpkg: error processing archive dell-inkjet-09-driver-1.0-1.i386.deb (–install): parsing file ‘/var/lib/dpkg/tmp.ci/control’ near line 9 package ‘dell-inkjet-09-driver’: blank line in value of field ‘Description’Errors were encountered while processing: dell-inkjet-09-driver-1.0-1.i386.deb
Execute: rm -rf /home/eriks/lua_iXv8E7
Of course, the installer cleans up after itself and removes the temporary directory it created which would destroy the hopes of many trying to get their printer to work on a supposedly supported Linux operating system.
In the lifespan of this printer, I’ve probably used it less than a half dozen times as most of my life is digital.
However, at this point I’m more frustrated than I would be had there been absolutely no claim of Linux support from the manufacturer. But that’s simply not the case, it’s supposed to work. It was released in 2009, ample time for them to fix this bug (that is, if they cared about the Linux community at all).
And yes folks, that’s indeed what it was. A bug. A very simple bug that put a newline at the end of the .deb file’s “Description:” field and that some legal garbage about Dell which has no place in a control file for a .deb package.
Remember, at this point I’ve already downloaded and uncompressed the file I downloaded from Dell’s website.
Next, after poking through the shell code, I was able to extract the contents of the sh file into a folder called why_does_dell_hate_linux using the –noexec and –target flags:
./dell-inkjet-09-driver-1.0-1.i386.deb.sh –noexec –target why_does_dell_hate_linux
Next, enter into the why_does_dell_hate_linux directory and untar the file called instaarchive_all:
tar -xvvf instarchive_all –lzma
Now pull out control.tar.gz from the deb package, and then extract/untar that:
ar x dell-inkjet-09-driver-1.0-1.i386.deb control.tar.gz
tar xf control.tar.gz
This will drop the control file in your working directory, so pull out your favorite editor (nano, vim, gedit, whatev.) and edit the file:
It will look something like this:
Dell Series Drivers Package
This package contains the Dell Series Drivers. This is
a copyrighted package, please refer to the copyright notice
for details about using this product.
You can jump down to see where Description: was hastily left blank with a newline inserted, completely blowing the syntax for the package.
Pull the description back to it’s correct line and strip out the legal garbage below it to look like this:
Description: Dell Series Drivers Package
Now, add the files back to control.tar.gz, then the control.tar.gz back to the deb file like so:
tar cfz control.tar.gz ./control ./postinst ./prerm ./preinst
ar r dell-inkjet-09-driver-1.0-1.i386.deb control.tar.gz
Huzzah! You’ve just fixed Dell’s blunder and created a working .deb package that will actually install without the GUI wrapper and error messages.
sudo dpkg –install dell-inkjet-09-driver-1.0-1.i386.deb
So this begs the question, why did I have to spend my time on this when Dell very easily could have done this sometime between 2009 when they screwed it up until present day where it sits on their site still broken?
Hi there, I remember the ‘blank line’ was actually not a problem when I was using Linux Mint 12 (based on Ubuntu, of course). The GUI installer worked just fine & added a Dell Printer Toolbox icon onto the desktop. I believe the issue arose after I upgraded to Linux Mint 13. I googled the error and found a fix by a guy who owned a Lexmark printer with the same problem. Very similar solution to yours, if not the same (I depend on guys like you to get me out of a jam!). The RPM-based Linux distros don’t have this issue with the v715w GUI installer (I also use PCLinuxOS).
Thank you very much! I used your solution to fix the driver dell-v505-driver-1.0-1.i386.deb available on Dell website…
hello, I am having a very similar problem when installing Path Analyzer Pro. However, there appears to be no deb.sh file. How do you “poke around the shell code” as you said? I’m trying to edit the control file to remove the description line like you did. Please help!