Adding Canon printer support to the Eee PC

The Denki-Guy’s Eee PC 900 is getting a lot of use while TV viewing as more and more TV programs have companion web sites.  For example, recipes for the dishes presented on a cooking show are often provided in written form over the web.  When it comes time to try a new recipe, I am sometimes tempted to carry the Eee PC into the kitchen to refer to the online receipes.   Fortunately, my practical side points out that I might splash tomato sauce onto the screen or keyboard.  A better solution is to print the recipe and leave the Netbook next to the TV.

For those of you who have read some of my earlier posts, you will know that my Eee PC 900 is running a flavor of Linux, not Windows.  Installing a printer on Eee PC Linux can be simple if the force is with you and the driver is already bundled with the CUPS printing manager.  All you need to do is click on the printers icon under the settings tab and walk through the steps.  Unfortunately, according to the printer driver database on the CUPS site, only a small number of Canon printer drivers are included with CUPS.  The Denki-Guy’s preferred printer, the Canon PIXMA MP750, is not supported by default.

To find a driver for my preferred printer, I turned to the OpenPrinting database to see if a Linux driver exists.  Entering “Canon” as the maker and “PIXMA MP750” as the model, I am told the recommended printer driver is canonpixusip4100.ppd available directly from Canon in Japan.  When you go to the Canon download site, you will see files like bjfilter-pixusip4100-2.50-2.i386.rpm. The dot rpm file extension means that these files are for use with the RPM Package Manager which is used by Red Hat Linux among others.  The Eee PC version of Linux, a customized version of Xandros, requires dot deb files for use with the Debian package management tools like dpkg and apt.  It seems that there is a tool to convert rpm to deb packages so this is an option.  I decided to look for a driver in a deb package first before I try the conversion tool.  Although I have not tried the procedure, this website gives a procedure for converting and installing Canon drivers packaged in rpm format.

There are some Debian packaged drivers for Canon printers available on the Canon-Asia website.  I see drivers for the iP100 series, iP1900 series, iP2600 series,  iP3500 series,  iP4500 series, MP140 series, MP520 series, MP610 series and MX330 series printers.  Go to the support page and search on “debian Printer Driver”.  Unfortunately, I don’t think any of these drivers work with my printer.  Must keep looking.

Searching on “Canon Pixus iP4100 Debian”, I found a site where Takushi Miyoshi from Japan posted Debian packages of various Canon drivers.  Takushi specifically mentions that the iP4100 driver works with the MP750.  BINGO!  The installation instructions on Takushi’s site are concise and to the point.  Follow my instructions below for a verbose version.

From the home page, press Ctrl Alt t to open a terminal window.  Next type the command su and enter the root password in response to the prompt.  The su command will grant the terminal window SuperUser status.   All of the commands below must be executed from the SuperUser terminal.

  1. The first step is to tell the package manager, APT, where it can find the Canon driver and related packages.  This is done via the sources.list file.  To use xedit to update the file, type the command:  xedit /etc/apt/sources.list.  Add the following entry to the bottom of the list:
    deb ./
    Save the changes and close the window.
  2. Next we need to tell APT to read the package list from the kyoto-u server.  To do this, type the command: apt-get update from the command line.
  3. Now that APT knows where to find the packages we want, it is time to install components.  The command for installing the Canon driver for the Canon Pixus iP4100 driver is: apt-get install libcnbj-2.5 bjfilter-2.5 pstocanonbj

At this point the driver for the Canon printer is present and all we need to do is add it after clicking on the “printers” icon under the “Settings” tab.  In my case, the Canon MP750 is a shared printer connected to Windows XP workstation so I choose the “Network printer” option.  From the “Set Printer Attribites” window, I choose “Windows” as the network type, called the printer “Canon” and clicked the “Browse” button to look for the printer.  A Windows Network heading appeared but no devices could be seen on the network.  I quickly realized that the Eee PC belonged to the Workgroup, “WORKGROUP” whereas the shared printer was located in the workgroup “DENKIGAI”.  I spent a lot of time looking for a GUI that allowed me to change the Workgroup but I struck out.  It is time to edit another config file.

Windows Network support under Linux is provided by a module called SAMBA.  Again, I used xedit to edit the configuration file.  In the terminal window type:  xedit /etc/samba/smb.comf.  Look for the line that says: workgroup = WORKGROUP and change it to workgroup = MY_GROUP_HERE.  In my case I changed this line to workgroup = DENKIGAI.  Save the changes and exit.

The next time through the add printer process, I was able to see the DENKIGAI workgroup and my XP workstation.  Clicking on the workstation icon, the shared printer appears.  Choose the printer and click OK.  On the Set Printer Model page, choose “Canon” as Manufacturer and “PIXUS iP4100 Ver.2.50” as Model.  The final page in the Add Printer Wizard asks if you want to print a test page.  Choose No and then click Finish.  For some reason, if I try to print the test page, the driver is not added.

With much anticipation, I opened the web browser and found a simple page to print.  In an instant the job arrived in the printer queue and the printer started to grind.  Yes, I mean grind.  It seems as if the printer was tring to load paper from auxiliary paper slot, not the paper cassette.  I found the solution on the Canon PIXMA Linux Blog.  It seems as if the printer driver defaults to rear paper tray.  The solution to this problem once again involves changing a conf file.  The target file in this case is the dot ppd file in the /etc/cups/ppd/ directory.  In my case I called my printer Canon so the target file is Canon.ppd.  In the terminal window type:  xedit /etc/cups/ppd/Canon.ppd.  Look for the line that says: *DefaultInputSlot: asf and change it to *DefaultInputSlot: cassette.  Save the changes and exit.

Finally, printing from my Eee PC is working the way I want it to.  I can send pages to the printer from anywhere in the house.  Isn’t Linux fun?

The Denki-Guy


Tags: , , , ,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: