converted bullet point install instructions into procedures with steps.

This commit is contained in:
emmajane 2004-07-23 02:57:47 +00:00
parent 1a5f54c61e
commit 3dfa0d0ceb
1 changed files with 126 additions and 203 deletions

View File

@ -2,21 +2,11 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[
<!ENTITY kernel-compile "
<note>
<title>Kernel compile help</title>
<para>For non-Debian instructions see the Appendix
<quote><xref linkend='nodebkernel' /></quote>.</para>
<para>For more information on how to compile the kernel The Debian
Way please read <ulink
url='http://newbiedoc.sourceforge.net/system/kernel-pkg.html'>Creating
custom kernels with Debian&apos;s kernel-package system</ulink></para>
</note>
">
<!ENTITY kernel-version "<replaceable>&lt;version&gt;</replaceable>">
<!ENTITY kernel-name "<replaceable>&lt;date&gt;</replaceable>">
<!ENTITY kernel-name "<replaceable>&lt;a_unique_and_clever_name&gt;</replaceable>">
<!ENTITY rop "<prompt>#</prompt>">
<!ENTITY prompt "<prompt>$ </prompt>">
]>
@ -322,10 +312,10 @@ url="http://tuxmobil.org/Mobile-Guide.db/mobile-guide-p2c1-hardware-in-detail.ht
<sect2 id="apmtoacpi">
<title>Why switch?</title>
<para>Not all systems support both APM and ACPI. I switched because my
system only supported ACPI. Pretty easy decision really. If you're switching
system only supported ACPI. Pretty easy decision really. If you are switching
to get <ulink
url="http://acpi.sourceforge.net/documentation/sleep.html">S3</ulink> (suspend
to RAM) support and you're using a 2.4.x kernel, don't bother. It is <ulink
to RAM) support and you are using a 2.4.x kernel, don't bother. It is <ulink
url="http://lists.debian.org/debian-laptop/2003/debian-laptop-200304/msg00418.html">not supported</ulink>.</para>
<para><ulink url="http://acpi.sf.net">ACPI4Linux</ulink> has a list of <ulink
@ -419,7 +409,7 @@ distributions have already patched their kernels. This is the case for
Debian, and may be the case for others. For more information on the
patches that have been applied to the Debian kernel source package scan through:
<filename>/usr/src/kernel-source-&kernel-version;/README.Debian</filename>. If you are not using Debian
look in the <filename class="directory">/usr/src/kernel-source&kernel-version;</filename> directory for an equivalent file.</para>
look in the <filename class="directory">/usr/src/kernel-source-&kernel-version;</filename> directory for an equivalent file.</para>
<note><title>Using pre-compiled kernels</title>
<para>I do not use the Debian pre-compiled kernels. I always opt to compile my own kernels using The Debian Way. If you are using your distribution's pre-compiled kernel, please check to make sure it has all relevant ACPI patches applied before you install it.</para></note>
@ -441,20 +431,30 @@ grasp of reality so it is not covered in this document.</para></warning>
<title>Backups</title>
<para>If you are already running a kernel that is the same version of the
one you are about to patch I recommend creating a fresh
directory for the newly patched kernel. Remember that backups are
<emphasis>never</emphasis> a bad thing. These are the files that I back up:</para>
directory for the newly patched kernel. You should create a backup of all important kernel configuration and kernel-related files that may be affected by your work. Remember that backups are <emphasis>never</emphasis> a bad thing and can be easily deleted after your system has been successfully patched.</para>
<example id="ex-backups">
<title>Files to Backup</title>
<itemizedlist>
<listitem><para><filename>/etc/lilo.conf</filename></para></listitem>
<listitem><para><filename>/usr/src/*.deb</filename>
(Debian-specific)</para></listitem>
<listitem><para><filename>/etc/modules</filename></para></listitem>
<listitem><para><filename>/etc/modutils/aliases</filename></para></listitem>
<listitem><para><filename>/usr/src/linux/.config</filename></para></listitem>
<listitem><para>If you are <emphasis>not</emphasis> doing things The Debian Way you should also back up the <filename class="directory">/lib/modules</filename> directory, <filename>/boot/vmlinuz</filename>, <filename>/usr/src/linux/arch/i386/boot/bzImage</filename> and <filename>/usr/src/System.map</filename>. It's possible the location of these files differs on your system. Do a <userinput><command>locate</command> <replaceable>&lt;file&gt;</replaceable></userinput> if they're not where I've stated they should be.</para></listitem>
</itemizedlist>
<procedure>
<step><para><filename>/etc/lilo.conf</filename></para></step>
<step><para><filename>/usr/src/*.deb</filename>
(Debian-specific)</para></step>
<step><para><filename>/etc/modules</filename></para></step>
<step><para><filename>/etc/modutils/aliases</filename></para></step>
<step><para><filename>/usr/src/linux/.config</filename></para></step>
</procedure>
<para>If you are <emphasis>not</emphasis> doing things The Debian Way you should also back up the following files:</para>
<procedure>
<step><para><filename class="directory">/lib/modules</filename> (the entire directory)</para></step>
<step><para><filename>/boot/vmlinuz</filename></para></step>
<step><para><filename>/usr/src/linux/arch/i386/boot/bzImage</filename></para></step>
<step><para><filename>/usr/src/System.map</filename></para></step>
</procedure>
<para>It's possible the location of these files differs on your system. Use <application>locate</application> as follows if the files are not in the locations specified above: <cmdsynopsis><command>locate</command> <replaceable>&lt;file&gt;</replaceable></cmdsynopsis></para>
</example>
</sect2>
@ -468,7 +468,7 @@ directory for the newly patched kernel. Remember that backups are
kernel. I am still working on the full notes for a 2.6.x series install.</para>
<example id="ex-requiredpackages">
<title>Required Packages</title>
<title>Packages required for patching your kernel</title>
<itemizedlist>
<title>2.4.x series kernels</title>
<listitem><para>kernel source files</para></listitem>
@ -476,77 +476,42 @@ kernel. I am still working on the full notes for a 2.6.x series install.</para>
version</para></listitem>
<listitem><para>debian packages: make, bzip2, gcc, libc6-dev, tk8.3,
libncurses5-dev, kernel-package</para></listitem>
<listitem><para>after you've patched the kernel add the debian
packages: acpid, acpi (this last package is available in testing and
unstable versions of Debian, but not stable)</para></listitem>
</itemizedlist>
</example>
</sect3>
<sect3 id="unpack">
<title>Unpack</title>
<para>We need to unpack the bz2 file (bzip2) and shuffle the directories around a bit.
<para>We need to unpack the bz2 file (bzip2) and move the directories into place.
<filename class="directory">/usr/src/linux</filename> probably points
to your current kernel. We need it to point to the new kernel, so we'll do that as well.</para>
to your current kernel. We need it to point to the new kernel, so we will update that link now as well.</para>
<example id="ex-unpack">
<title>Unpacking your kernel source files</title>
<itemizedlist>
<listitem><para>
<procedure>
<step><para>
<command>
cd <filename class="directory">/usr/src</filename>
</command>
</para></listitem>
</para></step>
<listitem><para>
<command>mkdir <filename
class="directory">kernel-source-&kernel-version;</filename>
</command>
(use an alternate name if you already have a version of this kernel
installed)
</para></listitem>
<listitem><para>
<command>cp
<filename>linux.&kernel-version;.tar.bz2</filename>
<filename>/usr/src/kernel-source-&kernel-version;</filename>
</command>
</para></listitem>
<listitem><para>
<command>cd
<filename
class="directory">/usr/src/kernel-source-&kernel-version;</filename>
</command>
</para></listitem>
<listitem><para>
<step><para>
<command>tar <option>xjfv</option>
<filename>linux.&kernel-version;.tar.bz2</filename></command>
</para></listitem>
</para></step>
<listitem><para>
<command>mv
<filename
class="directory">linux.&kernel-version;</filename>
<filename
class="directory">/usr/src/linux-&kernel-version;</filename>
</command>
</para></listitem>
<listitem><para>
<step><para>
<command>rm <filename>linux</filename></command>
(assuming that's a link to your old kernel)
</para></listitem>
</para></step>
<listitem><para>
<step><para>
<command>ln <option>-s</option>
<filename>/usr/src/linux-&kernel-version;</filename>
<filename>/usr/src/linux.&kernel-version;</filename>
<filename>linux</filename>
</command>
</para></listitem>
</itemizedlist>
</para></step>
</procedure>
</example>
<para>If your kernel needs to be patched, do so now.
@ -562,168 +527,132 @@ Instructions are available from <xref linkend="howto-patch" />.</para>
<title>Patch Your Kernel First</title>
<para>If you are using an old kernel you will need to patch it before
you can proceed. Instructions on patching your kernel are available
from <xref linkend="howto-patch" />. The 2.6.x series kernels do not need to
be patched.</para>
from <xref linkend="howto-patch" />. Always check to see if your kernel should be patched.</para>
</note>
<para>Now instead of using <command>make
<parameter>menuconfig</parameter></command>, I have an excellent
alternative. Check
this out: copy your current <filename>.config</filename> file into
<filename class="directory">/usr/src/linux</filename>.
Now use <quote><command>make <parameter>oldconfig</parameter></command></quote>. It will run through your old config file and see
what's been updated so that you don't have to find all the new options.
For <emphasis>everything</emphasis> to do with ACPI and your specific
hardware (Toshibas choose the Toshiba options, Asus choose the Asus
<para>We will use <command>make <parameter>oldconfig</parameter></command> to configure your new kernel. Using <parameter>oldconfig</parameter> instead of <parameter>menuconfig</parameter> allows us to start with the options you have selected in your current kernel and prompts you to select your preference for all new kernel options. This is much easier than looking for all of the new options by hand. For everything specific to ACPI and your
hardware (if you use a Toshiba choose the Toshiba options, Asus choose the Asus
options) choose <option>M</option> for module. There are about ten
different ACPI related options that you will need to select.</para>
<para>In point form, this is how the kernel should be configured:</para>
<example id="ex-configure">
<title>Configuring your kernel</title>
<para>Please also read the list of <xref linkend="known-issues" />.</para>
<itemizedlist>
<listitem><para>
<procedure>
<step><para>
<command>cd
<filename class="directory">/usr/src/linux</filename>
</command>
</para></listitem>
</para></step>
<listitem><para>
<step><para>
<command>cp
<filename>/usr/src/<replaceable>&lt;oldkernel-source-directory&gt;</replaceable>/.config</filename>
<filename>.config</filename>
</command>
</para></listitem>
</para></step>
<listitem><para>
<step><para>
<command>make <parameter>oldconfig</parameter></command>
(say <option>M</option> to all new options for
ACPI--you can also say <quote><option>Y</option></quote> if you prefer to compile it directly
into your kernel)
</para></listitem>
</itemizedlist>
<para>Now go in to the config file with <command>make
<parameter>menuconfig</parameter></command>. I want you do check
and make sure you have your APM (the old stuff) turned off. Under
<quote><menuchoice><guimenu>General Setup</guimenu></menuchoice></quote>, make sure that:</para>
<itemizedlist>
<listitem><para>
<menuchoice><guimenuitem>Power Management Support</guimenuitem></menuchoice>
is ON</para></listitem>
<listitem><para>
<menuchoice><guimenuitem>APM (Advanced Power
Management)</guimenuitem></menuchoice> is OFF (this is the old one--you
don't even want it as a module unless you really know what you're
doing. And if you really know what you're doing you're probably not
reading this.)</para></listitem>
<listitem><para>everything to do with ACPI should be
<option>M</option> (modules) or <option>*</option> (compiled
directly into the kernel). Read the list
<emphasis>carefully</emphasis>. Some options will not apply to your
hardware.</para></listitem>
</itemizedlist>
<para>exit and save the new configuration</para>
ACPI--you can also say <quote><option>Y</option></quote> if you prefer to compile it directly into your kernel)
</para></step>
<step><para>Now we will confirm the kernel is properly configured.</para>
<procedure>
<step><para><command>make <parameter>menuconfig</parameter></command></para></step>
<step><para>Select <quote><menuchoice><guimenu>General Setup</guimenu></menuchoice></quote></para></step>
<step><para>Confirm <menuchoice><guimenuitem>Power Management Support</guimenuitem></menuchoice>
is ON</para></step>
<step><para>Confirm <menuchoice><guimenuitem>APM (Advanced Power Management)</guimenuitem></menuchoice> is OFF (this is the old style of power management that we are replacing)</para></step>
<step><para>Check everything to do with ACPI. Options related to your hardware should be <option>M</option> (modules) or <option>*</option> (compiled directly into the kernel). Read the list <emphasis>carefully</emphasis>. Some options will not apply to your hardware.</para></step>
<step><para>Exit and save the new configuration</para></step>
</procedure>
</step>
</procedure>
</example>
</sect2>
<sect2 id="kernelcompile">
<title>Compile the new kernel</title>
<title>Compile and install the new kernel</title>
<para>It is now time to compile the kernel. These instructions are for Debian users. If you are not using Debian, or you do not like compiling your kernel The Debian Way, please read <xref linkend="nodebkernel" /> for more help.</para>
<para>If you have additional modules that are not part of the main source
tree, you will need to add modules_image when you make your Debian
packages. This is almost inevitable if you're using a laptop and an older
kernel. Only my nvidia graphics card now requires additional modules.</para>
packages. This is almost inevitable if you are using a laptop and an older
kernel. I still need this option even in the 2.6.6 kernel due to my nVidia graphics card.</para>
<example id="ex-compile-deb">
<title>Compiling the kernel</title>
<itemizedlist>
<listitem><para>
<command>cd
<filename class="directory">/usr/src/linux</filename>
</command>
</para></listitem>
<listitem><para>
<command>make-kpkg <parameter>clean</parameter></command>
</para></listitem>
<listitem><para>
<command>make-kpkg
<option>--append-to-version=.&lt;date&gt;</option>
<parameter>kernel_image</parameter>
<parameter>modules_image</parameter>
</command>
</para></listitem>
</itemizedlist>
<title>Compiling the kernel The Debian Way</title>
<para>Each of these steps should be performed as the root user.</para>
<procedure>
<step><para><command>cd <filename class="directory">/usr/src/linux</filename></command></para></step>
<step><para><command>make-kpkg <parameter>clean</parameter></command></para></step>
<step><para><command>make-kpkg <option>--append-to-version=.&kernel-name;</option> <parameter>kernel_image</parameter> <parameter>modules_image</parameter></command></para></step>
</procedure>
<para>I no longer use .<replaceable>date</replaceable> to distinguish
kernel builds. It was too frustrating to have 030627a, 032627b (etc) as I tried to figure things out. I now use names, in alphabetical order, starting with the kernel build <quote>alien</quote>. My current kernel build is <quote>Ulairi.</quote> (The machine itself is <quote>Smeagol</quote>--a name it has earned.)</para>
</example>
<note>
<title>Naming kernel builds</title>
<para>I no longer use .<replaceable>date</replaceable> to distinguish
kernel builds. It was too
frustrating to have 030627a, 032627b (etc) as I tried to figure things out.
I now use names, in alphabetical order, starting with the kernel build
<quote>alien</quote>. I'm going to leave the date option in though as I
still think it's a good way to do things.</para>
<para>My current kernel, 2.6.7, is <quote>Ulairi.</quote> The machine itself is <quote>Smeagol.</quote></para></note>
&kernel-compile;
</sect2>
<sect2 id="kernelinstall">
<title>Install the new kernel</title>
<para>I like to configure lilo on my own, but I leave that decision up to you.</para>
<para>Now that the kernel is compiled, we will <quote>install</quote> it. For Debian users this means installing the Debian package file you created in the last step and then loading the new kernel into <application>lilo</application>. I like to configure lilo on my own and have provided the instructions here, but I leave that decision up to you.</para>
<example id="ex-kernel-install">
<title>Install the new kernel</title>
<itemizedlist>
<listitem><para>
<command>cd
<filename class="directory">/usr/src</filename>
</command>
</para></listitem>
<listitem><para>
<command>dpkg <option>-i</option>
kernel-image-&kernel-version;.&kernel-name;_10.00.Custom_i386.deb</command>
At this point I decline <emphasis>all</emphasis> the lilo updates and configure
it myself by hand.
</para></listitem>
<listitem><para>configure lilo by hand: <command>vi
<filename>/etc/lilo.conf</filename></command>
</para></listitem>
<para>Each of these steps should be performed as the root user.</para>
<procedure>
<step><para><command>cd <filename class="directory">/usr/src</filename></command></para></step>
<step><para><command>dpkg <option>-i</option> kernel-image-&kernel-version;.&kernel-name;_10.00.Custom_i386.deb</command></para></step>
<step><para>At this point I decline <emphasis>all</emphasis> the lilo updates and configure it myself by hand.
</para></step>
<listitem><para>
load the new kernel into lilo: <command>lilo</command>
</para></listitem>
<step><para>To configure lilo:</para>
<procedure>
<step><para><command>vi <filename>/etc/lilo.conf</filename></command></para></step>
<step><para>Scroll to the end of the file and look for a line that starts with <parameter>image=</parameter>.</para></step>
<step><para>Create an entry for your new kernel by adding the following three lines:</para>
<programlisting>
image=/vmlinuz
label=&kernel-name;
read-only
</programlisting>
</step>
<step><para>Update the entry for your old kernel so that it points to the right <filename>vmlinuz</filename> file. You can use either <filename>vmlinuz.old</filename> if this is your first time recompiling the kernel, or look in <filename class="directory">/boot</filename> for the correct file.</para></step>
<step><para>If you would like, you can update the kernel that is selected by default by changing the <parameter>default=</parameter> parameter.</para></step>
</procedure>
</step>
<step><para>
load the new kernel into lilo by running <application>lilo</application> from the command line. You need only type: <command>lilo</command>
</para></step>
<listitem><para>
<step><para>
If you have any other deb files for your modules you should
install them now as well. If you're not sure check
install them now as well. If you are not sure check
<filename class="directory">/usr/src</filename> for additional
<filename class="extension">.deb</filename> files.
</para></listitem>
</itemizedlist>
</para></step>
</procedure>
</example>
&kernel-compile;
</sect2>
<sect2 id="finishinstall">
<title>Reboot and test</title>
<para>At this point you should reboot your machine. When your system comes
back up (assuming of course that everything went well and you still have a
system), check to see what kernel you're running with <command>uname
system), check to see what kernel you are running with <command>uname
<option>-a</option></command>.
It should show you the one you just built. You also need to make
sure the correct patch was installed.</para>
@ -849,7 +778,7 @@ dot-o) on a separate line. You can also try running
<title>Switching from APM to ACPI</title>
<para>Do not let <application>apmd</application> and
<application>acpid</application> run at the same time unless you REALLY know
what you're doing. Debian will <emphasis>not</emphasis> make sure only one is running
what you are doing. Debian will <emphasis>not</emphasis> make sure only one is running
at a time. You will have to check.
APM will try to put your system into S3. On the 2.4.x (and before) series
kernels this will quite probably hang your machine. S3 is not supported
@ -867,7 +796,7 @@ to solve the hanging problem.</para>
<para>There are a few different applications/daemons you will want to install
on your system: <application>acpid</application> (the daemon that will control your hardware states), and <application>acpi</application> (the interface to monitor events and states) are the base install. The
<application>acpi</application> Debian package is only available in testing and is unstable. If
you're running stable you won't be able to install it without playing
you are running stable you won't be able to install it without playing
around with apt and your <filename>list.sources</filename> file. You can probably
also compile from source. If you do get <application>acpi</application>
installed you can use it to monitor your system like this: <command>acpi
@ -953,7 +882,7 @@ to fix bugs. You can find this information on the ACPI4Linux site.</para>
url="http://www.kernel.org">www.kernel.org</ulink>. You need to make sure you
get a full kernel. Find the <quote>latest stable version of the Linux kernel</quote>
and click on <option>F</option> for FULL. Wait patiently. A bzipped kernel
is about 26M. If you're feeling particularly geeky you could also
is about 26M. If you are feeling particularly geeky you could also
<command>wget</command>
<filename>http://kernel.org/pub/linux/kernel/v2.4/linux-&kernel-version;.tar.bz2</filename>.
</para>
@ -966,13 +895,8 @@ url="http://www.kernel.org/pub/linux/kernel/">/pub/linux/kernel</ulink>
directory on the <ulink url="http://www.kernel.org">kernel.org</ulink>
site to find the kernel you'd like.</para></tip>
<para>While you're waiting, grab a copy of the patch as well. For the 2.4.20
kernel use the <ulink
url="http://prdownloads.sourceforge.net/acpi/acpi-20021212-2.4.20.diff.gz?download">2.4.20
patch</ulink>. It's dated 2002.12.12. You'll need to know that number later
when we check to make sure the patch worked. If you are using a different
kernel version make sure you take note of the date of your patch. Your
numbers will differ slightly from the one I use later on.</para>
<para>While you are waiting, grab a copy of the latest patch for your kernel. This may or may not be the newest patch available. Please look carefully. For example: if you are using the 2.4.20 kernel you would get <ulink
url="http://prdownloads.sourceforge.net/acpi/acpi-20021212-2.4.20.diff.gz?download" />. Note the revision date. In this case it is 20021212 (December 12, 2002), but it will almost certainly be different for your kernel. You will need to know this number when we check to make sure the patch worked.</para>
<para>Once you've got those two files (the kernel and the patch) unpack them
and patch the kernel.</para>
@ -999,7 +923,7 @@ look for the absence of errors.)</para>
<filename>acpi-20021212-2.4.20.diff.gz</filename>
<filename>/usr/src/linux/.</filename>
</command>
(Your patch filename will be different if you're not using the
(Your patch filename will be different if you are not using the
2.4.20 kernel.)
</para></listitem>
@ -1037,8 +961,7 @@ generic way. In fact it's probably only 10 or so lines of difference.</para>
<listitem><para>
<command>cd
<filename class="directory">/usr/src/linux</filename>
</command> which should point to the 2.4.20
kernel (unzipped) files
</command> which should point to the kernel (unzipped) files
</para></listitem>
<listitem><para>
@ -1107,7 +1030,7 @@ lilo. If you are not doing things <citetitle>The Debian Way</citetitle> your <qu
<?dbhtml filename="nodebsoftware.html"?>
<title>Software packages</title>
<para>You can still use all of the software mentioned in this HOWTO even if
you're not using Debian. Unfortunately it will take a little more effort on
you are not using Debian. Unfortunately it will take a little more effort on
your part to download and install everything. Fortunately it's really not
that difficult. Most software packages include a README file when you
gunzip them which will explain what you need to do to get things working on
@ -1194,7 +1117,7 @@ read-only
<para>After editing the configuration file, load the new information by running the command <command>lilo</command> as root.</para>
<screen><userinput><prompt># </prompt><command>lilo</command></userinput></screen>
<screen><userinput>&rop; <command>lilo</command></userinput></screen>
</example>