I just put these instructions together today after struggling through this exact problem on my Ubuntu Feisty setup. I
think they should work equally well for Kubuntu.
I have managed to get ppscsi to work properly in feisty. I'm posting the full instructions I've typed up here for anyone else who stumbles across them. The individual parts of this all exist out there on the net, but I've not found anywhere that puts the whole lot together, so here goes:
How to make a HP ScanJet 5100/5200C work with (K)Ubuntu? Feisty (Kernel 2.6.20)
1. Make sure that you have the kernel headers installed:
Code:
sudo apt-get install linux-headers-`uname -r`
2. Download the latest(?) version of ppscsi from
http://penguin-breeder.org/kernel/download/ : ppscsi-beta2-20060424.tar.gz
3. Once downloaded extract the file:
tar zxvf ppscsi-beta2-20060424.tar.gz
This next bit is from translated instructions on the spanish Ubuntu website:
Quote:
When extracted and running make we get two significant errors as per the above website:
… /ppscsi-beta2/ppscsi.h: 16: 26: error: linux/config.h: The directory file does not exist or
… /ppscsi-beta2/ppscsi.c: 1148: 39: error: macro “INIT_WORK” received 3 arguments, but it only took 2
Analysis:
The file linux/config.h this obsolete and macro “INIT_WORK” at the moment receives two arguments.
That is to say, the file config.h is replaced at the moment by the file autoconf.h
|
Solution:
4. Open ppscsi.h in the editing program of your choice.
Change the where it says
#include <linux/config.h> to read
#include <linux/autoconf.h>
This is on line 16 of the copy of ppscsi.h that I'm working with.
5. Save and close ppscsi.h and open ppscsi.c
Change the following lines:
static void ppsc_tq_int (void *data)
change to
static void ppsc_tq_int (struct work_struct *data)
(Note: This is line 191 in the copy of ppscsi.c I'm working with)
INIT_WORK (&pha->wq, ppsc_tq_int, pha);
change to
INIT_WORK (&pha->wq, ppsc_tq_int);
(Note: This is line 1148 in the copy of ppscsi.c I'm working with)
6. Save and close ppscsi.c and run make. This should produce a set of .ko files, including the all important (to us anyway) ppscsi.ko and epst.ko.
7. Since the Makefile for ppscsi has no instructions for installing these files we need to copy them to their new location manually:
Code:
sudo cp ppscsi.ko epst.ko /lib/modules/`uname -r`/kernel/drivers/parport
8. Next we need to tell the kernel that they exist:
9. Lastly we need to load the modules:
Code:
sudo modprobe ppscsi
sudo modprobe epst
This will make the scanner useable until next time the computer is rebooted.
In order to make sure that the scanner is recognised from the moment you boot up it is necessary to edit
/etc/modules and add the following two lines to the end of the file:
My apologies if this seems a little cluttered, but hopefully it should work as well for you as it did for me.