plustek@linuxhacker.org
>>>>>>>>>>>>>>>>>> Original Message <<<<<<<<<<<<<<<<<<
On 6/8/01, 4:44:50 PM, kevin <kjsisson@bellsouth.net> wrote regarding Re:
Trouble making and installing driver with Mandrake 8.0:
> Dave Croal wrote:
> >
> >
> > I checked that parport pc is loaded.
> > Proc fs is enabled and mounted too.
> >
> > I don't get unresolved symbols today, now I get:
> >
> > [root@croalnotebook plustek driver]# make load
> > /sbin/modprobe pt drv || exit 1
> > /lib/modules/2.4.3-20mdk-win4lin/misc/pt drv.o: init module: Success
> > Hint: insmod errors can be caused by incorrect module parameters,
> > including invalid IO or IRQ parameters
> > /lib/modules/2.4.3-20mdk-win4lin/misc/pt drv.o: insmod
> > /lib/modules/2.4.3-20mdk-win4lin/misc/pt drv.o failed
> > /lib/modules/2.4.3-20mdk-win4lin/misc/pt drv.o: insmod pt drv failed
> > make: *** [load] Error 1
> >
> > IIRC it is after a reboot that the unresolved symbols happen. BTW I did
> > update my modules.conf and did run depmod.
> >
> > I also noticed that make load fails to create the /dev/pt drv* nodes,
> > guess it doesn't make it that far.
> >
> > Are you willing to send me a copy of your pt drv.o to try? I am running
> > gcc 2.96, kernel 2.4.3mdk stock on an AMD K6-450 (i586).
> >
> > Am willing to try any and all legal suggestions. Thanks for your help.
> >
> > Dave Croal
> I will send it to you if you want, but I have the debug turned on
> so it is large (~2 MB). I will first rebuild it with debug off so
> it is smaller and check that that works. The other thing you could
> check is in the ../h/plustek scan.h file, near the beginning. Just
> before the
> #define OUTB CTRL.. outb p...
> statements there is an
> #if 1 or #if 0 statement.
> If it is 0, change it to 1 and rebuild the driver. I would also be
> sure the outb (lower case on right hand side of statement) is
> outb p (same for inb -> inb p). There seem to be timing issues
> involved here; I have only had consistent success with the outb p
> statements (they put in a slight delay). Since the /dev/pt drv do
> not seem to be created by the install, you might want to create
> them by hand (mknod /dev/pt drv c 40 0 at least).
> Kevin
I believe ../h/plustek scan.h is compliant with your suggestions in the
original tarball (see below) but no luck yet. Will keep trying, thanks
for your help. For now I have hooked my OpticPro 4800P up to another box
running 2.2.17mdk, no problems there at all.
Regards,
Dave Croal
#if 1
#define OUTB CTRL(pSD,port value)
OPF(port value,pSD->IO.pbControlPort)
#define OUTB DATA(pSD,port value)
OPF(port value,pSD->IO.pbSppDataPort)
#define OUTB ECTL(pSD,port value)
OPF(port value,(pSD->IO.portBase+0x402))
#define OUTB STATUS(pSD,port value)
OPF(port value,pSD->IO.pbStatusPort)
#define INB CTRL(pSD)
IPF(pSD->IO.pbControlPort)
#define INB DATA(pSD)
IPF(pSD->IO.pbSppDataPort)
#define INB EPPDATA(pSD)
IPF(pSD->IO.pbEppDataPort)
#define INB STATUS(pSD)
IPF(pSD->IO.pbStatusPort)
#define INB ECTL(pSD)
IPF((pSD->IO.portBase+0x402))
#else
#define OUTB CTRL(pSD,port value)
parport pc write control(pSD->pp, port value)
#define OUTB DATA(pSD,port value) parport pc write data(pSD->pp,
port value)
#define OUTB STATUS(pSD,port value) parport pc write status(pSD->pp,
port value)
#define INB CTRL(pSD)
parport pc read control(pSD->pp)
#define INB DATA(pSD)
parport pc read data(pSD->pp)
#define INB STATUS(pSD)
parport pc read status(pSD->pp)
#ifdef LINUX 24
# define OUTB ECTL(pSD,port value)
outb p(port value,(pSD->IO.portBase+0x402))
# define INB EPPDATA(pSD)
inb p(pSD->IO.pbEppDataPort)
# define INB ECTL(pSD)
inb p((pSD->IO.portBase+0x402))
#else
# define OUTB ECTL(pSD,port value)
parport pc write econtrol(pSD->pp, port value)
# define INB EPPDATA(pSD)
parport pc read epp(pSD->pp)
# define INB ECTL(pSD)
parport pc read econtrol(pSD->pp)
#endif
#endif