Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jan 2001 23:44:42 +1300 (NZDT)
From:      dan@freebsddiary.org
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   docs/24148: improve kernel building description
Message-ID:  <200101081044.f08AigF48967@xeon.unixathome.org>

next in thread | raw e-mail | index | archive | help

>Number:         24148
>Category:       docs
>Synopsis:       current instructions for kernel building are not clear in some areas
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-doc
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 08 02:50:03 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Dan Langille
>Release:        FreeBSD 4.2-STABLE i386
>Organization:
The FreeBSD Diary
>Environment:


>Description:

We're seeing lots of people getting confused about config -r and make buildkernel.  This should help. 
>How-To-Repeat:


>Fix:

Patch supplied:

--- chapter.sgml.original	Fri Jan  5 17:57:36 2001
+++ chapter.sgml	Fri Jan  5 19:05:48 2001
@@ -57,7 +57,15 @@
 
   <sect1 id="kernelconfig-building">
     <title>Building and Installing a Custom Kernel</title>
+    <para>There are two methods for building a new kernel. Which method
+      you use depends on whether or not you are doing a build world. If
+      you don't know what a "build world" you can safely ignore that method.
+      If you are just modifying your kernel, then you want the standard 
+      method.  The steps for each method are quite different and will
+      be outlined below.</para>
 
+  <sect1 id="kernelconfig-building">
+    <title>Directory structure</title>
     <para>First, let us take a quick tour of the kernel build directory.
       All directories mentioned will be relative to the main
       <filename>/usr/src/sys</filename> directory, which is also
@@ -77,17 +85,30 @@
       directory structure, with each supported device, filesystem, and
       option in its own subdirectory.</para>
 
-    <note>
-      <para>If there is <emphasis>not</emphasis> a
-	<filename>/usr/src/sys</filename> directory on your system, then
-	the kernel source has not been been installed.  The easiest way to
-	do this is by running <command>/stand/sysinstall</command> as
-	<username>root</username>, choosing <literal>Configure</literal>,
-	then <literal>Distributions</literal>, then
-	<literal>src</literal>, then <literal>sys</literal>.</para>
-    </note>
-
-    <para>Next, move to the
+  <sect1 id="kernelconfig-building">
+   <title>Obtaining the kernel source</title>
+   <para>If there is <emphasis>not</emphasis> a
+     <filename>/usr/src/sys</filename> directory on your system, then
+     the kernel source has not been been installed.  The easiest way to
+     do this is by running <command>/stand/sysinstall</command> as
+     <username>root</username>, choosing <literal>Configure</literal>,
+     then <literal>Distributions</literal>, then
+     <literal>src</literal>, then <literal>sys</literal>.</para>
+
+  <sect1 id="kernelconfig-building">
+   <title>Modifying the kernel configuration file</title>
+   <para>The installed kernel sources include the configuration file for 
+     the GENERIC kernel. This file is named, oddly enough,  
+     <filename>GENERIC</filename>. Do not modify this file. By convention, 
+     the kernel configuration file name is all upper case. Also included 
+     with the kernel source is LINT. This file contains all the 
+     kernel configuration options which are possible.  Most options have
+     a description of what the option is for and any dependencies. Like
+     <filename>GENERIC</filename>, this file should not be modified.</para>
+
+   <para>The first step is configuring your kernel is the creation of your
+     kernel configuration file. We will use <filename>GENERIC</filename>
+     as the starting point. Move to the
       <filename><replaceable>arch</replaceable>/conf</filename> directory
       and copy the <filename>GENERIC</filename> configuration file to the
       name you want to give your kernel.  For example:</para>
@@ -95,7 +116,7 @@
     <screen>&prompt.root; <userinput>cd /usr/src/sys/i386/conf</userinput>
 &prompt.root; <userinput>cp GENERIC MYKERNEL</userinput></screen>
 
-    <para>Traditionally, this name is in all capital letters and, if you
+    <para>As mentioned above, this name is in all capital letters and, if you
       are maintaining multiple FreeBSD machines with different hardware,
       it is a good idea to name it after your machine's hostname.  We will
       call it <filename>MYKERNEL</filename> for the purpose of this
@@ -138,12 +159,14 @@
         for those information than the handbook.</para>
     </note>
 
-    <para>When you are finished, type the following to compile and install
-      your kernel if you are using FreeBSD prior FreeBSD 4.0 and don't
-      want to upgrade to FreeBSD 4.0 or higher with this step,
-      or if you are using a release-version of FreeBSD and your
-      <filename>/usr/src/</filename> directory only contains the
-      <filename>sys/</filename> sub-directory.</para>
+  <sect1 id="kernelconfig-building">
+    <title>Compiling your kernel</title>
+    <para>This section contains the default kernel compilation instructions.
+      If you are upgrading from -RELEASE to -STABLE, using FreeBSD 4.0 or
+      above, then the instructions on this section are for you. If you are 
+      using before FreeBSD 4.0 and are not upgrading to FreeBSD 4.0 or above,
+      then this section is for you. Otherwise you should read the instructions 
+      from the next section to see if they apply to your situation.</para>
 
     <note>
       <para>If you are trying to upgrade your kernel from an older version
@@ -160,6 +183,8 @@
 &prompt.root; <userinput>make</userinput>
 &prompt.root; <userinput>make install</userinput></screen>
 
+  <sect1 id="kernelconfig-building">
+    <title>Alternative compilation instructions</title>
     <para>If you have just upgraded to a newer version of 4.X or
       higher (ie from 3.X to 4-STABLE, or even from 4-STABLE to a
       later version of 4-STABLE), make sure you have <link
@@ -173,9 +198,10 @@
     <para>If you have <emphasis>not</emphasis> upgraded your source
       tree in any way (you have not run <application>CVSup</application>, 
       <application>CTM</application>, or used 
-      <application>anoncvs</application>), then you should use the 
-      <command>config</command>, <command>make depend</command>, 
-      <command>make</command>, <command>make install</command> sequence.</para>
+      <application>anoncvs</application>), then you should use the instructions
+      from the previous section.  However, if all you did was install
+      the kernel source using cvsup, then the instructions in the previous
+      section should be used.</para>
 
     <warning>
       <para>If you have upgraded your sources since your last kernel
@@ -188,6 +214,8 @@
 	sources!</emphasis></para>
     </warning>
     
+  <sect1 id="kernelconfig-building">    
+    <title>Kernel installation</title>
     <para>The new kernel will be copied to the root directory as
       <filename>/kernel</filename> and the old kernel will be moved to
       <filename>/kernel.old</filename>.  Now, shutdown the system and

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-doc" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200101081044.f08AigF48967>