summaryrefslogtreecommitdiff
path: root/src/Dell_V305_Printer_on_Linux.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Dell_V305_Printer_on_Linux.adoc')
-rw-r--r--src/Dell_V305_Printer_on_Linux.adoc190
1 files changed, 190 insertions, 0 deletions
diff --git a/src/Dell_V305_Printer_on_Linux.adoc b/src/Dell_V305_Printer_on_Linux.adoc
new file mode 100644
index 0000000..16da7e8
--- /dev/null
+++ b/src/Dell_V305_Printer_on_Linux.adoc
@@ -0,0 +1,190 @@
+Dell V305 Printer on Linux
+==========================
+:author: Aaron Ball
+:email: nullspoon@iohq.net
+
+
+== {doctitle}
+
+I spent this week hanging out with my wife and grandparents-in-law and spent
+some of my time performing the obligatory family tech support (no complaining
+here, I love doing that most of the time). To sum up the beginning quickly
+because I really don't want to write the post in great detail, my grandfather's
+computer got temporarily hosed and the guy from Dell made it even worse (thanks
+Deepak). He actually wiped the computer after taking very minimal backups
+(thankfully just enough). Not only that, but the restore from the Dell image
+actually corrupted a bunch of the core system libraries making installing and
+updating Windows or Microsoft software impossible. After wasting an hour trying
+to fix this, I finally decided to reinstall a fresh copy of Windows. Then it
+hit me, my grandfather doesn't use his computer for much more than Word
+documents, PDFs, browsing the internet, and email - all things that Linux does
+very well. With that, I suggested to him that he try
+http://linuxmint.com/[Linux Mint] (my favorite ready-to-go Linux desktop
+distro). After he played around with the live version for a bit, he decided he
+really liked it (kudos to you Linux Mint guys) so I went ahead to install it.
+
+I got everything working easily but one thing... his printer.
+
+[[the-dell-v305-printer]]
+The Dell V305 Printer
+--------------------
+
+The Dell V305 is actually a Lexmark printer rebranded as a Dell. Specifically,
+it is the Lexmark x4650. Thankfully, Lexmark makes
+http://support.lexmark.com/index?page=downloadFile&actp=CONTENT&productCode=LEXMARK_X4650&id=DR20523&segment=DOWNLOAD&userlocale=EN_US+&locale=en&oslocale=en_US[a
+linux driver] for this thing, but it is of course, very problematic. When I
+first ran the .sh with an embedded binary, it ran fine until I got to the
+install where it gave me an ambiguous "failed to install". When you click
+**OK**, it closes the window with the actually error text in it. While the
+"failed to install" dialog is up, you can't check the log because it won't let
+you select the background window. Also, the background window isn't resizable
+so you can't hope for a bigger window to compensate for no scrollback. Great
+design, huh?
+
+I did notice on the last three or so lines though that it was trying to remove
+a .deb file. With that, I set out to search for it.
+
+
+[[the-fun-begins]]
+The Fun Begins
+--------------
+
+If you run the
+'http://support.lexmark.com/index?page=downloadFile&actp=CONTENT&productCode=LEXMARK_X4650&id=DR20523&segment=DOWNLOAD&userlocale=EN_US+&locale=en&oslocale=en_US[lexmark-08z-series-driver-1.0-1.i386.deb.sh]'
+file with the _--keep_ switch, the script will not remove all files extracted
+to perform the install process. This will leave you with a nicely populated tmp
+folder.
+
+If you cd into the tmp directory, you will find a file called
+**installarchived_all**. This is actually an lzma archive file. What you want
+to do now is extract this file using the following command
+
+----
+tar -xvf ./installarchived_all --lzma
+----
+
+This will extract several files, one of which will be called
+__lexmark-08z-series-driver-1.0-1.i386.deb__. You might think that this is a
+time for rejoicing, but alas it is not. From this point we should be able to
+run _dpkg -i ./lexmark-08z-series-driver-1.0-1.i386.deb_ and it would work, but
+it won't. If you do that you will receive the following friendly error:
+
+----
+dpkg: error processing ./lexmark-08z-series-driver-1.0-1.i386.deb (--install):
+ parsing file '/var/lib/dpkg/tmp.ci/control' near line 9 package 'lexmark-08z-series-driver':
+ blank line in value of field 'Description'
+Errors were encountered while processing:
+ ./lexmark-08z-series-driver-1.0-1.i386.deb
+----
+
+What? The .deb file was constructed wrong? 'Tis a shame. Here's where it gets
+really fun. What we need to do now is extract the deb file, modify the contents
+of a single file, and repackage the whole thing back up.
+
+First, let's create a working directory, copy our deb file in there, extract
+it, and set up a deb package folder structure. Create our working directory and put the bad .deb file in there.
+
+----
+mkdir ./working
+cp ./lexmark-08z-series-driver-1.0-1.i386.deb ./working/
+cd working
+----
+
+Extract the .deb file and clean up a bit (don't forget the period at the
+end of the dpkg-deb line).
+
+----
+dpkg-deb -R lexmark-08z-series-driver-1.0-1.i386.deb .
+rm ./lexmark-08z-series-driver-1.0-1.i386.deb
+----
+
+
+[[fixing-the-problem]]
+Fixing the Problem
+------------------
+
+The problem as you like noticed earlier is because the .deb file has a file
+named _control_ that is improperly formatted. Specifically, control files
+cannot have blank lines in them. To have a "blank" line in a .deb control file,
+you must have a period instead. That said, here's how we fix the file.
+
+Open up the control file in the DEBIAN directory and put a ' .' (yes, with the
+space before it) like so
+
+----
+Description:
+ Lexmark 08z Series Drivers Package
+ .
+ This package contains the Lexmark 08z Series Drivers. This is
+ a copyrighted package, please refer to the copyright notice
+ for details about using this product.
+----
+
+Now that that's done, We just need to repackage the .deb file and install it.
+To do that, cd out to one directory above the lexmark-08z directory (the
+working directory) and run **dpkg -b lexmark-08z**. This will take a few
+seconds (it's 22 megs) but it should create a file called lexmark-08z.deb. Now
+install this using **dpkg -i**.
+
+----
+dpkg -b lexmark-08z dpkg -i ./lexmark-08z.deb
+----
+
+_I'm too lazy to write the rest out right now so here's the shorthand_
+
+Now you have to edit a ton of files in __/usr/local/lexmark/08zero/etc/__.
+
+Firstly, we need to edit 99-lexmark-08z.rules and take the following
+line on the top so it looks like so
+
+----
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="5305", MODE="666"
+
+ACTION!="add", GOTO="lexmark_custom_rules_end"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="5305", MODE="666"
+ATTRS{idVendor}=="043d", ATTRS{idProduct}=="0142", MODE="666"
+ATTRS{idVendor}=="043d", ATTRS{idProduct}=="0150", MODE="666"
+ATTRS{idVendor}=="043d", ATTRS{idProduct}=="013f", MODE="666"
+ATTRS{idVendor}=="043d", ATTRS{idProduct}=="0151", MODE="666"
+ATTRS{idVendor}=="043d", ATTRS{idProduct}=="0116", MODE="666"
+LABEL="lexmark_custom_rules_end"
+
+----
+
+Now that we've updated the 99-lexmark-08z.rules file, we need to edit a load of
+the lxd*.conf files. I say we need to edit lots of them because I'm still not
+sure which one or combination of them actually did the trick. I can say though
+that just lxdm.conf wasn't enough.
+
+Now, edit the following files
+
+* lxdm.conf
+* lxdq.conf
+* lxdw.conf
+* lxdu.conf
+* lxdx.conf
+
+...and replace *all* instances of _0116_ with _5305_ and all instances of
+_043D_ with _413C_
+
+Once that is done, add your printer from the cups admin console
+(localhost:631). Once you get to the driver part, select Lexmark 3600-4600 and
+you should be set!
+
+**Whew**
+
+Finally, here are the resources I found to help me out with this
+solution.
+
+* http://ubuntuforums.org/showpost.php?p=7809488&postcount=1
+* http://ubuntuforums.org/archive/index.php/t-1243920.html
+* http://ubuntuforums.org/archive/index.php/t-1554718.html
+* http://ubuntuforums.org/showthread.php?t=1379902
+* http://ubuntuforums.org/showthread.php?t=1554718&page=1
+
+
+Category:Linux
+Category:Debian
+
+
+// vim: set syntax=asciidoc:

Generated by cgit