1007 lines
19 KiB
HTML
1007 lines
19 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>Common problems and things that make you wonder</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.52"><LINK
|
|
REL="HOME"
|
|
TITLE="Linux kerneld mini-HOWTO"
|
|
HREF="index.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="Special kerneld uses"
|
|
HREF="goodies.html"></HEAD
|
|
><BODY
|
|
CLASS="SECT1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Linux kerneld mini-HOWTO</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="goodies.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
> </TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="COMMONPROBLEMS"
|
|
>Common problems and things that make you wonder</A
|
|
></H1
|
|
><DIV
|
|
CLASS="QANDASET"
|
|
><DL
|
|
><DT
|
|
>1. <A
|
|
HREF="commonproblems.html#AEN381"
|
|
>Why do I get <SPAN
|
|
CLASS="ERRORNAME"
|
|
>Cannot locate module for
|
|
net-pf-</SPAN
|
|
><TT
|
|
CLASS="VARNAME"
|
|
>X</TT
|
|
> messages when I
|
|
run <B
|
|
CLASS="COMMAND"
|
|
>/sbin/ifconfig</B
|
|
>?</A
|
|
></DT
|
|
><DT
|
|
>2. <A
|
|
HREF="commonproblems.html#AEN398"
|
|
>After starting kerneld, my system slows to a crawl
|
|
when I activate my ppp-connection</A
|
|
></DT
|
|
><DT
|
|
>3. <A
|
|
HREF="commonproblems.html#AEN410"
|
|
>kerneld does not load my SCSI driver!</A
|
|
></DT
|
|
><DT
|
|
>4. <A
|
|
HREF="commonproblems.html#AEN418"
|
|
>modprobe complains about
|
|
<SPAN
|
|
CLASS="ERRORNAME"
|
|
>gcc2_compiled</SPAN
|
|
> being
|
|
undefined</A
|
|
></DT
|
|
><DT
|
|
>5. <A
|
|
HREF="commonproblems.html#AEN424"
|
|
>My sound driver keeps forgetting its settings for
|
|
volume etc</A
|
|
></DT
|
|
><DT
|
|
>6. <A
|
|
HREF="commonproblems.html#AEN432"
|
|
>DOSEMU needs some modules; how can I get kerneld to
|
|
load those ?</A
|
|
></DT
|
|
><DT
|
|
>7. <A
|
|
HREF="commonproblems.html#AEN437"
|
|
>Why do I get <SPAN
|
|
CLASS="ERRORNAME"
|
|
>Ouch, kerneld timed out,
|
|
message failed</SPAN
|
|
> messages ?</A
|
|
></DT
|
|
><DT
|
|
>8. <A
|
|
HREF="commonproblems.html#AEN449"
|
|
>Mount doesn't wait for kerneld to load the
|
|
filesystem module</A
|
|
></DT
|
|
><DT
|
|
>9. <A
|
|
HREF="commonproblems.html#AEN455"
|
|
>kerneld fails to load the <TT
|
|
CLASS="LITERAL"
|
|
>ncpfs</TT
|
|
>
|
|
module</A
|
|
></DT
|
|
><DT
|
|
>10. <A
|
|
HREF="commonproblems.html#AEN464"
|
|
>kerneld fails to load the <TT
|
|
CLASS="FILENAME"
|
|
>smbfs</TT
|
|
>
|
|
module</A
|
|
></DT
|
|
><DT
|
|
>11. <A
|
|
HREF="commonproblems.html#AEN472"
|
|
>I built everything as modules, and now my system
|
|
cannot boot or kerneld fails to load the root filesystem
|
|
module!</A
|
|
></DT
|
|
><DT
|
|
>12. <A
|
|
HREF="commonproblems.html#AEN488"
|
|
>kerneld will not load at boot time; it complains
|
|
about libgdbm</A
|
|
></DT
|
|
><DT
|
|
>13. <A
|
|
HREF="commonproblems.html#AEN498"
|
|
>I get Cannot load module <TT
|
|
CLASS="VARNAME"
|
|
>xxx</TT
|
|
> but
|
|
I just reconfigured my kernel without
|
|
<TT
|
|
CLASS="VARNAME"
|
|
>xxx</TT
|
|
> support!</A
|
|
></DT
|
|
><DT
|
|
>14. <A
|
|
HREF="commonproblems.html#AEN507"
|
|
>I rebuilt my kernel and modules, and still get
|
|
messages about unresolved symbols when
|
|
booting</A
|
|
></DT
|
|
><DT
|
|
>15. <A
|
|
HREF="commonproblems.html#AEN516"
|
|
>I installed Linux 2.1/2.3 and now I cannot
|
|
load <I
|
|
CLASS="EMPHASIS"
|
|
>any</I
|
|
> modules!</A
|
|
></DT
|
|
><DT
|
|
>16. <A
|
|
HREF="commonproblems.html#AEN532"
|
|
>What about dial-on-demand networking?</A
|
|
></DT
|
|
></DL
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN381"
|
|
></A
|
|
><B
|
|
>1. </B
|
|
>Why do I get <SPAN
|
|
CLASS="ERRORNAME"
|
|
>Cannot locate module for
|
|
net-pf-</SPAN
|
|
><TT
|
|
CLASS="VARNAME"
|
|
>X</TT
|
|
> messages when I
|
|
run <B
|
|
CLASS="COMMAND"
|
|
>/sbin/ifconfig</B
|
|
>?</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>Around kernel version 1.3.80, the networking code
|
|
was changed to allow loading protocol families (e.g. IPX,
|
|
AX.25 and AppleTalk) as modules. This caused the addition
|
|
of a new kerneld request:
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>net-pf-</TT
|
|
><TT
|
|
CLASS="VARNAME"
|
|
>X</TT
|
|
>, where
|
|
<TT
|
|
CLASS="VARNAME"
|
|
>X</TT
|
|
> is a number identifying the protocol
|
|
(see
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/usr/src/linux/include/linux/socket.h</TT
|
|
>
|
|
for the meaning of the various numbers). Unfortunately,
|
|
<B
|
|
CLASS="COMMAND"
|
|
>ifconfig</B
|
|
> accidentally triggers these
|
|
messages, so a lot of people get a couple of messages
|
|
logged when the system boots and it runs
|
|
<B
|
|
CLASS="COMMAND"
|
|
>ifconfig</B
|
|
> to setup the loopback
|
|
device. The messages are harmless, and you can disable
|
|
them by adding the lines</P
|
|
><TABLE
|
|
BORDER="0"
|
|
BGCOLOR="#E0E0E0"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
><PRE
|
|
CLASS="SCREEN"
|
|
> alias net-pf-3 off # Forget AX.25
|
|
alias net-pf-4 off # Forget IPX
|
|
alias net-pf-5 off # Forget AppleTalk</PRE
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><P
|
|
>to <TT
|
|
CLASS="FILENAME"
|
|
>/etc/conf.modules</TT
|
|
>. Of
|
|
course, if you do use IPX as a module, you should not add
|
|
a line to disable IPX. </P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN398"
|
|
></A
|
|
><B
|
|
>2. </B
|
|
>After starting kerneld, my system slows to a crawl
|
|
when I activate my ppp-connection</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>There have been a couple of reports of this. It
|
|
seems to be an unfortunate interaction between kerneld and
|
|
the <SPAN
|
|
CLASS="PRODUCTNAME"
|
|
>tkPPP</SPAN
|
|
> script that is used
|
|
on some systems to setup and monitor the PPP
|
|
connection. The script apparently runs loops while running
|
|
<B
|
|
CLASS="COMMAND"
|
|
>ifconfig</B
|
|
>. This triggers kerneld, to
|
|
look for the
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>net-pf-</TT
|
|
><TT
|
|
CLASS="VARNAME"
|
|
>X</TT
|
|
> modules
|
|
(see above), keeping the system load high and possibly
|
|
pouring lots of Cannot locate module for
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>net-pf-</TT
|
|
><TT
|
|
CLASS="VARNAME"
|
|
>X</TT
|
|
> messages
|
|
into the system log. There is no known workaround, other
|
|
than not use <SPAN
|
|
CLASS="PRODUCTNAME"
|
|
>tkPPP</SPAN
|
|
>, or change
|
|
it to use some other way of monitoring the
|
|
connection.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN410"
|
|
></A
|
|
><B
|
|
>3. </B
|
|
>kerneld does not load my SCSI driver!</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>Add an entry for the SCSI hostadapter to your
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/etc/conf.modules</TT
|
|
>. See the
|
|
description of the <A
|
|
HREF="special-devs.html#SCSIDEVS"
|
|
><TT
|
|
CLASS="LITERAL"
|
|
>scsi_hostadapter</TT
|
|
></A
|
|
>
|
|
entry above.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN418"
|
|
></A
|
|
><B
|
|
>4. </B
|
|
>modprobe complains about
|
|
<SPAN
|
|
CLASS="ERRORNAME"
|
|
>gcc2_compiled</SPAN
|
|
> being
|
|
undefined</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>This is a bug in the module utilities, that show up
|
|
only with binutils 2.6.0.9 and later, and it is also
|
|
documented in the release note for the binutils. So read
|
|
that, or fetch an upgrade to the module-utilities that fix
|
|
this bug. </P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN424"
|
|
></A
|
|
><B
|
|
>5. </B
|
|
>My sound driver keeps forgetting its settings for
|
|
volume etc</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>The settings for a module are stored inside the
|
|
module itself when it is loaded. So when kerneld
|
|
auto-unloads a module, any settings you have made are
|
|
forgotten, and the next time the module loads it reverts
|
|
to the default settings. </P
|
|
><P
|
|
>You can tell kerneld to configure a module by
|
|
running a program after the module has been
|
|
auto-loaded. See <A
|
|
HREF="special-devs.html#PRE-POST"
|
|
>Pre/Post Install</A
|
|
> on the
|
|
<TT
|
|
CLASS="LITERAL"
|
|
>post-install</TT
|
|
> entry. </P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN432"
|
|
></A
|
|
><B
|
|
>6. </B
|
|
>DOSEMU needs some modules; how can I get kerneld to
|
|
load those ?</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>You cannot. None of the dosemu versions, official or
|
|
development versions, support loading the dosemu modules
|
|
through kerneld. However, if you are running kernel 2.0.26
|
|
or later, you do not need the special dosemu modules any
|
|
longer; just upgrade dosemu to 0.66.1 or higher.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN437"
|
|
></A
|
|
><B
|
|
>7. </B
|
|
>Why do I get <SPAN
|
|
CLASS="ERRORNAME"
|
|
>Ouch, kerneld timed out,
|
|
message failed</SPAN
|
|
> messages ?</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>When the kernel sends a request off to to kerneld,
|
|
it expects to receive an acknowledgment back within one
|
|
second. If kerneld does not send this acknowledgment,
|
|
this message is logged. The request is retransmitted, and
|
|
should get through eventually. </P
|
|
><P
|
|
>This usually happens on systems with a very high
|
|
load. Since kerneld is a user-mode process, it is
|
|
scheduled just like any other process on the system. At
|
|
times of high load, it may not get to run in time to send
|
|
back the acknowledgment before the kernel times
|
|
out. </P
|
|
><P
|
|
>If this happens even when the load is light, try
|
|
restarting kerneld. Kill the kerneld process, and start
|
|
it again with the command <B
|
|
CLASS="COMMAND"
|
|
>/usr/sbin/kerneld</B
|
|
>. If the problem persists,
|
|
you should mail a bug report to
|
|
<TT
|
|
CLASS="EMAIL"
|
|
><<A
|
|
HREF="mailto:linux-kernel@vger.rutgers.edu"
|
|
>linux-kernel@vger.rutgers.edu</A
|
|
>></TT
|
|
>, but
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>please</I
|
|
> make sure that your versions
|
|
of the kernel, kerneld and the module utilities are
|
|
up-to-date before posting about the problem. Check the
|
|
requirements in
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>linux/Documentation/Changes</TT
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN449"
|
|
></A
|
|
><B
|
|
>8. </B
|
|
>Mount doesn't wait for kerneld to load the
|
|
filesystem module</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>There has been a number of reports that the mount(8)
|
|
command does not wait for kerneld to load the filesystem
|
|
module. <B
|
|
CLASS="COMMAND"
|
|
>lsmod</B
|
|
> does show that kerneld
|
|
loads the module, and if you repeat the mount command
|
|
immediately it will succeed. This appears to be a bug in
|
|
the module-utilities version 1.3.69f that affects some
|
|
Debian users. It can be fixed by getting a later version
|
|
of the module-utilities. </P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN455"
|
|
></A
|
|
><B
|
|
>9. </B
|
|
>kerneld fails to load the <TT
|
|
CLASS="LITERAL"
|
|
>ncpfs</TT
|
|
>
|
|
module</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>You need to compile the ncpfs utilities with
|
|
<SPAN
|
|
CLASS="TOKEN"
|
|
>-DHAVE_KERNELD</SPAN
|
|
>. See the
|
|
<SPAN
|
|
CLASS="PRODUCTNAME"
|
|
>ncpfs</SPAN
|
|
>
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>Makefile</TT
|
|
>. </P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN464"
|
|
></A
|
|
><B
|
|
>10. </B
|
|
>kerneld fails to load the <TT
|
|
CLASS="FILENAME"
|
|
>smbfs</TT
|
|
>
|
|
module</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>You are using an older version of the
|
|
<SPAN
|
|
CLASS="PRODUCTNAME"
|
|
>smbmount</SPAN
|
|
> utilities. Get the
|
|
latest version (0.10 or later) from <A
|
|
HREF="ftp://tsx-11.mit.edu/pub/linux/filesystems/smbfs/"
|
|
TARGET="_top"
|
|
>the
|
|
SMBFS archive one TSX-11</A
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN472"
|
|
></A
|
|
><B
|
|
>11. </B
|
|
>I built everything as modules, and now my system
|
|
cannot boot or kerneld fails to load the root filesystem
|
|
module!</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>You cannot modularize
|
|
<I
|
|
CLASS="EMPHASIS"
|
|
>everything</I
|
|
>: The kernel must have
|
|
enough drivers built in for it to be able to mount your
|
|
root filesystem, and run the necessary programs to start
|
|
kerneld<A
|
|
NAME="AEN477"
|
|
HREF="#FTN.AEN477"
|
|
>[1]</A
|
|
>. You cannot modularize </P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>the driver for the hard disk
|
|
where your root filesystem lives </P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>the root filesystem driver itself
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>the binary format loader for init,
|
|
kerneld and other programs </P
|
|
></LI
|
|
></UL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN488"
|
|
></A
|
|
><B
|
|
>12. </B
|
|
>kerneld will not load at boot time; it complains
|
|
about libgdbm</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>Newer versions of kerneld need the GNU dbm library,
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>libgdbm.so</TT
|
|
>, to run. Most
|
|
installations have this file in
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/usr/lib</TT
|
|
>, but you are probably
|
|
starting kerneld before the <TT
|
|
CLASS="FILENAME"
|
|
>/usr</TT
|
|
>
|
|
filesystem is mounted. One symptom of this is that kerneld
|
|
will not start during boot-up (from your rc-scripts), but
|
|
runs fine if you start it by hand after that system is
|
|
up. The solution is to either move the kerneld startup to
|
|
after your <TT
|
|
CLASS="FILENAME"
|
|
>/usr</TT
|
|
> is mounted, or move
|
|
the gdbm library to your root filesystem, e.g. to
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/lib</TT
|
|
>.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN498"
|
|
></A
|
|
><B
|
|
>13. </B
|
|
>I get Cannot load module <TT
|
|
CLASS="VARNAME"
|
|
>xxx</TT
|
|
> but
|
|
I just reconfigured my kernel without
|
|
<TT
|
|
CLASS="VARNAME"
|
|
>xxx</TT
|
|
> support!</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>The Slackware installation (possibly others) builds
|
|
a default <TT
|
|
CLASS="FILENAME"
|
|
>/etc/rc.d/rc.modules</TT
|
|
> which
|
|
does an explicit modprobe on a variety of modules. Exactly
|
|
which modules get modprobed depends on the original
|
|
kernel's configuration. You have probably reconfigured
|
|
your kernel to exclude one or more of the modules that is
|
|
getting modprobed in rc.modules, thus, the error
|
|
message(s). Update your rc.modules by commenting out any
|
|
modules you no longer use, or remove the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>rc.modules</TT
|
|
> entirely and let kerneld
|
|
load the modules when they are needed.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN507"
|
|
></A
|
|
><B
|
|
>14. </B
|
|
>I rebuilt my kernel and modules, and still get
|
|
messages about unresolved symbols when
|
|
booting</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>You probably reconfigured/rebuilt your kernel and
|
|
excluded some modules. You've got some old modules that
|
|
you no longer use hanging around in the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/lib/modules</TT
|
|
> directory. The easiest
|
|
fix is to delete your
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/lib/modules/</TT
|
|
><TT
|
|
CLASS="VARNAME"
|
|
>x.y.z</TT
|
|
>
|
|
directory and do a <B
|
|
CLASS="COMMAND"
|
|
>make modules_install</B
|
|
>
|
|
from the kernel source directory again. Note that this
|
|
problem only occurs when reconfiguring your kernel without
|
|
changing versions. If you see this error when moving to a
|
|
newer kernel version you've got some other problem.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN516"
|
|
></A
|
|
><B
|
|
>15. </B
|
|
>I installed Linux 2.1/2.3 and now I cannot
|
|
load <I
|
|
CLASS="EMPHASIS"
|
|
>any</I
|
|
> modules!</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>Odd numbered Linux are development kernels. As such,
|
|
it should be expected that things break from time to
|
|
time. One of the things that has changed significantly is
|
|
the way modules are handled, and where the kernel and
|
|
modules are loaded into memory.</P
|
|
><P
|
|
>In brief, if you want to use modules with a
|
|
development kernel, you must</P
|
|
><P
|
|
></P
|
|
><UL
|
|
><LI
|
|
><P
|
|
>read the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>Documentation/Changes</TT
|
|
> file and see
|
|
what packages need upgrading on your system</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
>use the latest modutils package,
|
|
available from <A
|
|
HREF="ftp://ftp.redhat.com/pub/alphabits/"
|
|
TARGET="_top"
|
|
>AlphaBits on
|
|
Red Hat</A
|
|
> or the mirror site at <A
|
|
HREF="ftp://tsx-11.mit.edu/pub/linux/packages/alphabits/"
|
|
TARGET="_top"
|
|
>TSX-11</A
|
|
></P
|
|
></LI
|
|
></UL
|
|
><P
|
|
>I recommend using at least kernel 2.1.29, if you
|
|
want to use modules with a 2.1 kernel.</P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="QANDAENTRY"
|
|
><DIV
|
|
CLASS="QUESTION"
|
|
><P
|
|
><A
|
|
NAME="AEN532"
|
|
></A
|
|
><B
|
|
>16. </B
|
|
>What about dial-on-demand networking?</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="ANSWER"
|
|
><P
|
|
><B
|
|
> </B
|
|
>kerneld originally had some support for establishing
|
|
dial-up network connections on demand; trying to send
|
|
packets to a network without being connected would cause
|
|
kerneld to run the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/sbin/request_route</TT
|
|
> script to setup a
|
|
PPP or SLIP connection.</P
|
|
><P
|
|
>This turned out to be a bad idea. Alan Cox of Linux
|
|
networking fame wrote on the linux-kernel mailing list</P
|
|
><BLOCKQUOTE
|
|
CLASS="BLOCKQUOTE"
|
|
><P
|
|
>The request-route stuff is obsolete, broken and
|
|
not required [...] Its also removed from 2.1.x
|
|
trees.</P
|
|
></BLOCKQUOTE
|
|
><P
|
|
>Instead of using the request-route script and
|
|
kerneld, I highly recommend Eric Schenk's <A
|
|
HREF="http://www.dna.lth.se/~erics/diald.html"
|
|
TARGET="_top"
|
|
>diald
|
|
package</A
|
|
> to manage your demand dialing.</P
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
></DIV
|
|
><H3
|
|
CLASS="FOOTNOTES"
|
|
>Notes</H3
|
|
><TABLE
|
|
BORDER="0"
|
|
CLASS="FOOTNOTES"
|
|
WIDTH="100%"
|
|
><TR
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
WIDTH="5%"
|
|
><A
|
|
NAME="FTN.AEN477"
|
|
HREF="commonproblems.html#AEN477"
|
|
>[1]</A
|
|
></TD
|
|
><TD
|
|
ALIGN="LEFT"
|
|
VALIGN="TOP"
|
|
WIDTH="95%"
|
|
><P
|
|
>Actually, this is not true. Late
|
|
1.3.x and all 2.x kernels support the use of an initial
|
|
ram-disk that is loaded by LILO or LOADLIN; it is possible
|
|
to load modules from this disk very early in the boot
|
|
process. How to do it is described in the
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>linux/Documentation/initrd.txt</TT
|
|
> file
|
|
that comes with the kernel source-files. </P
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="goodies.html"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
> </TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>Special kerneld uses</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
> </TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
> </TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |