Re: [PARPORT] kmod and ppa


Bjorn Ekwall (bj0rn@blox.se)
Fri, 12 Feb 1999 20:30:57 +0100 (CET)


Geoffrey wrote:
> I'm trying to get kmod to load the ppa driver for my zip drive, but no
> luck. I've not been able to find any docs on how to setup the
> conf.modules file. I've read the kernel docs (kmod.txt, modules.txt),
> but I can't find out the specifics of alias entries in conf.modules. I
> received assistance with setting up parport and lp for my printer, but
> I'm still manually loading ppa.
>
> Would someone be so kind to point me to the right docs for this?

Although kmod has replaced kerneld (for which I was responsible), I might
have some ideas that go part of the way, since the logic of autoloding
has not changed (since it really is handled by modprobe).

When I helped modularize the SCSI subsystem many years ago and also when I
added kerneld support (back in -95, 96 or so), I felt that the "stacking order"
of the modules were a bit "backwards". But, that was just my opinion and I
didn't feel like digging deep enough to "correct it". I guess there are
good reasons for the structure.

My "fix" was to add a kerneld call in scsi.c that was triggered when the
first low level SCSI module was loaded and if there was no host adapter module
loaded already (the init_module funcion in the low level module calls
scsi_register_module). The kerneld call asks for the "symbolic" module
"scsi_hostadapter", a name that is resolved by modprobe via an alias in
/etc/conf.modules.

The other, more standard, fix was the kerneld call generated for all block
devices in fs/devices.c, which for an access on (an unloaded) /dev/sd??
generates a kerneld call for the module "block-major-8".
This call will be resolved by modprobe via an alias, which normally
is defined to be "sd_mod".

Before modprobe loads sd_mod it will load scsi_mod, since the dependencies
in /lib/modules/2.x.y/modules.dep (generated by depmod -a) tells it to.

So, when an access is made to e.g. /dev/sda1, the modules scsi_mod and sd_mod
will be loaded (in that order). When sd_mod has been loaded, your host adapter
module will be loaded (if no host adapter has been loaded before).

Then you are up and running. Quite easy, right? :-)

So, the first thing to check is that you have made the whole SCSI subsystem
as loadable modules and that they are not pre-loaded at system startup.

Then check that the line "alias scsi_hostadapter ppa" is present in
/etc/conf.modules (I assume that ppa can be considered to be such a beast).

If you already have an entry for an existing host adapter, you will have to
trick the system into loading ppa at the same time as your primary adapter.
A (slightly ugly) method is to use a "post-install" entry in conf.modules:
        post-install your_primary_adapter insmod -k -s ppa
Note that the "-k" option to insmod makes the module "autocleanable",
that is it will be removed when not in use any more. This might be a problem,
so you could also try with the variant:
        post-install your_primary_adapter insmod -s ppa

I hope this is a bit of a help on the way.

Cheers,

Bjorn <bj0rn@blox.se>

-- To unsubscribe, send mail to: linux-parport-request@torque.net --
-- with the single word "unsubscribe" in the body of the message. --



This archive was generated by hypermail 2.0b3 on Fri 12 Feb 1999 - 14:39:58 EST