222 lines
8.2 KiB
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 ©</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 ========================================================= -->
|