[vox-tech] how *not* to load the serial module at boot time?

Mark K. Kim vox-tech@lists.lugod.org
Fri, 20 Sep 2002 23:38:35 -0700 (PDT)


On Fri, 20 Sep 2002, Matt Holland wrote:

> > I think /dev/ttyS0 defaults to IRQ4 + IO 0x03f8 with no configuration
> > whatsoever.  AFAIK, there is no driver to load or unload; you just tell
> > the kernel what the settings are.
>
> This would seem to suggest otherwise:
>
> $ /sbin/lsmod | grep serial
> lirc_serial             8928   1 (autoclean)
> serial                 59392   0 (autoclean)
>
> Also, if there's no driver, what's this?
>
> /lib/modules/2.4.18-5-lirc-0/kernel/drivers/char/serial.o

Let's see...

   $vi /usr/src/linux/drivers/char/serial.c

It looks like it's got code to forward what's written to /dev/ttySN to the
proper port I/O, and it's got stuff to do serial terminal.  I didn't
realize you can make a module out of this.  Oh well.  ::shrug::

Still, I'd think it wouldn't interfere with anything, but the code is more
complicated than I'd thought it'd be.  It's probably complicated because
of all the serial terminal stuff.

But I'm still not sure if the driver getting loaded first is the problem
because you said:

   Nothing works until
   I do:

   # setserial /dev/ttyS0 uart none
   # rmmod lirc_serial
   # insmod lirc_serial

but if the driver itself was interfering, you'd have to unload it, like:

   # rmmod serial
   # rmmod lirc_serial
   # insmod lirc_serial

but obviously you don't, so it's the default configuration of the serial
driver that's problem not the driver itself; and the configuration should
be settable by creating /etc/rc.d/rc.serial.  But if you can't, try
creating /etc/rc.serial instead (check your /etc/rc.d/rc.sysinit --
whichever file it looks for and executes is the one you should create).
Put some debugging output so you can at least check that the file gets
executed.  BTW, make sure you chmod the created file with executable
permission after you create it.

Later!

-Mark

--
Mark K. Kim
http://www.cbreak.org/
PGP key available upon request.