Monthly Archives: July 2009

Ask me questions

Have a question about unix, linux, freebsd.  Or maybe you want some advice about configuring apache, mysql,an email server like exim, qmail, postfix, a proxy server like squid cache or antinat, dns or anything else similar. Want some help with php programming or maybe you want to create a wordpress plugin?

Feel free to ask and I'll do my best to answer it on this blog. I will publish a new blog post for each question and my answer.

You can use the contact form or ( if your question is short enough ) you can send it to me over twitter

You can follow me on twitter or subscribe to my RSS feeds if you want to be notified when I post the answer to your question.

This week on twitter 2009-07-26

Powered by Twitter Tools.

This week on twitter 2009-07-19

  • Why you should limit login attempts http://ff.im/5g8sm #
  • setting up pppoe in ubuntu/network manager just a few clicks. Huge improvement since last time I had to do this (a few years ago ) #
  • reset thunderbird's master password: thunderbird -chrome chrome://pippki/content/resetpassword.xul #
  • Mowing the lawn http://ff.im/5iwc1 #
  • I wish I could merge more then 10 contacts in gmail #
  • finally found the path to publish_post: wp_publish_post calls wp_transition_post_status which calls do_action #
  • did anyone manage to use ddiwrapper on ubuntu 9.04? maybe with canon pixma mp830 ? :)#
  • RT: @lorelleonwp: I vote for death & destruction of #followfriday and all follow-memes. They are sheer time wasters. STOP the chain tweets. #

Powered by Twitter Tools.

ddiwrapper on ubuntu 9.04

I have a Canon Pixma MP830 printer. This printer supports high resolution printing up to 9600x2400 dpi, but the gutenprint driver only supports 600x600 dpi.

So what do I do to make it print with higher resolution?

I wanted to use ddiwrapper, a system that would let you use the native win2k/winxp drivers from the manufacturer. Basically it uses wine to load those drivers feed the print job into the driver and feed the driver's output to the printer.

Note:

This is an incomplete solution. I managed to get as far as being able to install ddiwrapper and the driver. I didn't manage to actually print a test page. When trying to print the test page I don't get any errors, and the printing system reports printing has finished but nothing is actually printed.
I wrote this post in case there are others that might want to try this and maybe can find the final solution.

There were two problems with ddiwrapper:

  1. it didn't compile on my system ( Ubuntu 9.04 x86_64 with Wine 1.1.25 ), complaining that : "Relocatable linking with relocations from format elf32-i386 (gdi32.o) to format elf64-x86-64 (gdi32.e8IuDu.o) is not supported" . This was fixed as soon as I added -m32 in a few Makefiles
  2. the excanondriver utility that is used to extract the driver is meant to be used with executable archives, zip or lha files, but the driver for MP830 is just an executable so I modified this file to work with driver files from a directory.

The fixes to both problems are provided in the diff file bellow.

Compile ddiwrapper

  1.  
  2. apt-get install wine-dev
  3. wget http://www.linuxprinting.org/download/ddiwrapper/ddiwrapper_0.3-rc1.tgz
  4. tar -xzpf ddiwrapper_0.3-rc1.tgz
  5. cd ddiwrapper
  6.  

apply the diff file ddiwrapper 0.3rc1 ubuntu 9.04 amd64-0.1 (2.58 KB) , compile and install:

  1.  
  2. patch -p1 < ddiwrapper.diff
  3. make && make install
  4.  

Install the drivers

Insert the driver's cdrom that came with the printer, it shoud be automounted.
Copy drivers from the cdrom to a local folder ~/cdrv :

  1.  
  2. mkdir ~/cdrv
  3. cp /media/cdrom/MP/Drv2KXP/*  ~/cdrv
  4.  

Delete the drivers for fax and scanner:

  1.  
  2. cd ~/cdrv
  3. sudo rm -rf Fax mp830fx.cat MP830fx.inf mp830sc.cat MP830sc.inf Scan
  4.  

Move all drivers from ~/cdrv/Print to ~/cdrv :

  1.  
  2. sudo mv ~/cdrv/Print/*  ~/cdrv
  3. rmdir ~/cdrv/Print
  4.  

Now install the driver:

  1.  
  2. sudo excanondriver ~/cdrv/ /usr/share/ddiwrapper/drivers/default
  3.  

Add the printer ( usb://dev/usblp0 should be replaced with whatever is the location of your printer) :

  1.  
  2. cd ~/ddiwrapper
  3. lpadmin -p ddiwrapper -v usb://dev/usblp0 -P doc/ddiwrapper.ppd -E
  4.  

or you can use the Printing admin application from System->Administration->Printing and load the ppd file in ~/ddiwrapper/doc/ddiwrapper.ppd

Apparmor setup

Ubuntu 9.04 has apparmor installed, and there is a profile for cupsd. The ddiwrapper tries to access files that are not specified in this profile, but by looking at the error messages generated in the logs I managed to find all the files and add them to the profile. Here's a diff file with the changes I did : apparmor cupsd profile patch- (871 bytes)

Apply the diff file to cups apparmor profile and restart apparmor:

  1.  
  2. patch < usr.sbin.cupsd.diff
  3. /etc/init.d/apparmor restart
  4.  

Testing

The new printer should show up in the Printing admin and I thought I  should be able print a test page but it didn't work.
The README file for ddiwrapper mentions there is a way to "dry" test this by feeding the driver a ps file and verifying if the output is correct but there are no details about how to do that.
Now what ? Has anyone managed to make this work for Pixma MP830 ? Any idea about how to debug it ?

This week on twitter 2009-07-12

Powered by Twitter Tools.

Webmin 1.480: Bulk add ip addresses

A few months ago I published a patch for webmin that would allow you to easily add a lot of ip addresses to an interface in webmin. At that time I mentioned that the patch could only be applied on webmin 1.410.

Now I needed this patch again but this time on webmin 1.480 so I adapted it to work with the new version.

For usage instructions please see the original post

You can download the new version here: webmin bulk add net aliases-1.480 (4.13 KB)

Notes

This only works for interfaces activated at boot. The code could easily be copied to work with the other interfaces too but I didn't see a use for that.

After you add the ip addresses ( aliases ) you have to go to the list of interfaces, select the newly added interfaces and click the "Apply selected interfaces" button if you want the new aliases to be activated without having to reboot.

This week on twitter 2009-07-05

Powered by Twitter Tools.