old-www/LDP/LG/issue39/tag/6.html

222 lines
8.2 KiB
HTML

<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<META NAME="generator" CONTENT="lgazmail v1.1J.c">
<TITLE>The Answer Guy 39: Recompiling Kernel to Support CD-ROM</TITLE>
</HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"
LINK="#3366FF" VLINK="#A000A0">
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<H4>"The Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<P> <hr> <P>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<center>
<H1><A NAME="answer">
<img src="../../gx/dennis/qbubble.gif" alt="(?)"
border="0" align="middle">
<font color="#B03060">The Answer Guy</font>
<img src="../../gx/dennis/bbubble.gif" alt="(!)"
border="0" align="middle">
</A></H1>
<BR>
<H4>By James T. Dennis,
<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a><BR>
LinuxCare,
<A HREF="http://www.linuxcare.com/">http://www.linuxcare.com/</A>
</H4>
</center>
<p><hr><p>
<!-- endcut ======================================================= -->
<!-- begin 6 -->
<H3 align="left"><img src="../../gx/dennis/qbubble.gif"
height="50" width="60" alt="(?) " border="0"
>Recompiling Kernel to Support CD-ROM</H3>
<p><strong>From PEREZ, Martin on Fri, 05 Mar 1999
</strong></p>
<!-- ::
Recompiling Kernel to Support CD-ROM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi,
</STRONG></P>
<P><STRONG>
I am new to Linux and I though I would start on <A HREF="http://www.redhat.com/">Red Hat</A> 5.1, I'll
</STRONG></P>
<P><STRONG>
upgrade to 5.2 when I am happy and used to installing 5.1. Now I am able to
install without an error, however, when ever I attempt to mount a CDROM with
the -tiso9660 I get the error saying the format is not recognize.
Therefore, I try to recompile the kernel using a '<tt>make config</tt>', but
WHAM!! I get a response of "<tt>No rule to make target 'config'</tt>".
I have installed the relevant C libraries and the like on install.
Please Help!!!
</STRONG></P>
<P><STRONG>
Martin Perez
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
HEIGHT="28" WIDTH="50" BORDER="0"
>
Let's take this one step at a time.
</BLOCKQUOTE>
<BLOCKQUOTE>
I usually put a space between my <tt>-t</tt> and my filetype
specification. That might not be a problem, let's
see...
</BLOCKQUOTE>
<BLOCKQUOTE>
O.K. The mount command doesn't care.
</BLOCKQUOTE>
<BLOCKQUOTE>
I can't say whether there is some other problem with
the mount command that you are attempting since you
don't give a full example of that command line.
</BLOCKQUOTE>
<BLOCKQUOTE>
In most Recent versions of Red Hat Linux the kernel is
modular. Thus the <tt>iso9660</tt> filesystem type is often
contained in a module rather than being linked directly
into the kernel. You can see which filesystem are currently
linked into your kernel and/or provided by loaded modules by
using the command
</BLOCKQUOTE>
<BLOCKQUOTE><blockquote><code>
cat /proc/filesystems
</code></blockquote></BLOCKQUOTE>
<BLOCKQUOTE>
... which is a dynamic list.
</BLOCKQUOTE>
<BLOCKQUOTE>
Perhaps you need to load the iso9660 module from
its home under <TT>/lib/modules/X.Y.ZZ/fs/</TT> (where
X.Y.ZZ is your currently loaded kernel's version number).
You could use the '<tt>insmod</tt>' or '<tt>modprobe</tt>' commands.
</BLOCKQUOTE>
<BLOCKQUOTE>
But wait. Many of us don't have to manually load these
modules. What's going on?
</BLOCKQUOTE>
<BLOCKQUOTE>
Well, there is a daemon (<tt>kerneld</tt>) which dynamically loads
kernel modules "on demand" --- when it's properly loaded
and configured. The phrase "on demand" means slightly
different things (under the hood) for device drivers,
filesystems, and network protocols. Also <tt>kerneld</tt> was a
2.0 thing. The new 2.2 kernels should be using a different
facility called '<tt>kmod</tt>' instead.
</BLOCKQUOTE>
<BLOCKQUOTE>
So, it could be that you have a problem with your dynamic
module loading subsystem.
</BLOCKQUOTE>
<BLOCKQUOTE>
This all suggests that you've either changed things a bit
from the default Red Hat installation, or that you haven't
successfully completed that installation. You might
want to build/rebuild your modules "dependencies" table.
You can do that with the command:
</BLOCKQUOTE>
<BLOCKQUOTE><BLOCKQUOTE><CODE>
depmod -a
</CODE></BLOCKQUOTE></BLOCKQUOTE>
<BLOCKQUOTE>
... which is often in the startup scripts (<TT>/etc/rc.d/*</TT>)
somewhere. "<tt>modprobe</tt>" and the dynamic module loaders
require this information in order to load interdependent
sets of modules in the proper order. For example, the
<tt>iso9660</tt> filesystem module depends upon lower level
CD-ROM device support. (They aren't combined into a
single module for a few reasons: first a CD can have
non-ISO9660 filesystems on it; Linux allows this; also,
there are many different CD device drivers for non-SCSI
and non-ATAPI CD-ROM controllers).
</BLOCKQUOTE>
<BLOCKQUOTE>
So, try that.
</BLOCKQUOTE>
<BLOCKQUOTE>
No, regarding your problem with building a new
kernel. Naturally you have be "in" the proper
directory when you start this process. That would
usually be <TT>/usr/src/linux</TT> --- which is usually a symlink
to the top level diretory of a specific set of kernel
sources.
</BLOCKQUOTE>
<BLOCKQUOTE>
It's possible that you've installed just the kernel
headers. This allows you to build other programs
(which need to know about certain kernel prototypes and
defined values (constants). However, you need to install
the full kernel source set to actually build a kernel.
</BLOCKQUOTE>
<BLOCKQUOTE>
You can try the command: <tt>make menuconfig</tt>
<br>or: <tt>make xconfig</tt>
</BLOCKQUOTE>
<BLOCKQUOTE>
... to get a more attractive and friendly interface for
configuring your kernel. It's also possible to manually
edit your <tt>.config</tt> file --- if you insist.
</BLOCKQUOTE>
<BLOCKQUOTE>
Anyway, make sure that you actually have the kernel
sources installed, not just the kernel headers. Also
make sure that you're in the correct directory and,
if you're following a symlink, that the symlink(s)
point to the right place.
</BLOCKQUOTE>
<!-- sig -->
<!-- end 6 -->
<!--startcut ======================================================= -->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/copying.html"
>Copyright &copy;</a> 1999, James T. Dennis
<BR>Published in <I>The Linux Gazette</I> Issue 39 April 1999</H5>
<P> <hr> <P>
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
<TABLE WIDTH="96%"><TR VALIGN="center" ALIGN="center">
<TD ROWSPAN="2" WIDTH="30%"><A HREF="../lg_answer39.html"
><IMG SRC="../../gx/dennis/answernew.gif"
ALT="[ Answer Guy Index ]"></A></td>
<TD WIDTH="6%"><A HREF="2.html">2</A></TD>
<TD WIDTH="6%"><A HREF="3.html">3</A></TD>
<TD WIDTH="6%"><A HREF="4.html">4</A></TD>
<TD WIDTH="6%"><A HREF="5.html">5</A></TD>
<TD WIDTH="6%"><A HREF="6.html">6</A></TD>
<TD WIDTH="6%"><A HREF="7.html">7</A></TD>
<TD WIDTH="6%"><A HREF="8.html">8</A></TD>
<TD WIDTH="6%"><A HREF="9.html">9</A></TD>
<TD WIDTH="6%"><A HREF="10.html">10</A></TD>
<TD WIDTH="6%"><A HREF="11.html">11</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
<TD><A HREF="12.html">12</A></TD>
<TD><A HREF="13.html">13</A></TD>
<TD><A HREF="15.html">15</A></TD>
<TD><A HREF="16.html">16</A></TD>
<TD><A HREF="18.html">18</A></TD>
<TD><A HREF="19.html">19</A></TD>
<TD><A HREF="21.html">21</A></TD>
<TD><A HREF="22.html">22</A></TD>
<TD><A HREF="23.html">23</A></TD>
</TR></TABLE>
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
<P> <hr> <P>
<!-- begin lgnav ::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<A HREF="../index.html"
><IMG SRC="../../gx/indexnew.gif" ALT="[ Table Of Contents ]"></A>
<A HREF="../../index.html"
><IMG SRC="../../gx/homenew.gif" ALT="[ Front Page ]"></A>
<A HREF="../lg_bytes39.html"
><IMG SRC="../../gx/back2.gif" ALT="[ Previous Section ]"></A>
<A HREF="../lg_tips39.html"
><IMG SRC="../../gx/fwd.gif" ALT="[ Next Section ]"></A>
<!-- end lgnav ::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
</BODY></HTML>
<!--endcut ========================================================= -->