Index: BOOK/cross-tools/arm/linux-headers.xml
===================================================================
--- BOOK/cross-tools/arm/linux-headers.xml	(revision e1b2402392427fd305644c810aedea26399a058d)
+++ BOOK/cross-tools/arm/linux-headers.xml	(revision 4b05af93692a485cd0b81ad52469d1e58395b65c)
@@ -6,10 +6,10 @@
 ]>
 
-<sect1 id="ch-system-linux-headers" role="wrap">
+<sect1 id="ch-cross-tools-linux-headers" role="wrap">
   <?dbhtml filename="linux-headers.html"?>
 
-  <title>Linux-Headers-&linux-headers-version;</title>
+  <title>Linux-Headers-&linux-version;</title>
 
-  <indexterm zone="ch-system-linux-headers">
+  <indexterm zone="ch-cross-tools-linux-headers">
     <primary sortas="a-Linux-Headers">Linux-Headers</primary>
   </indexterm>
@@ -28,14 +28,19 @@
   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
   href="../x86/linux-headers.xml"
+  xpointer="xpointer(//*[@os='p1'])"/>
+
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+  href="../x86/linux-headers.xml"
+  xpointer="xpointer(//*[@os='p2'])"/>
+
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+  href="../x86/linux-headers.xml"
   xpointer="xpointer(//*[@os='b'])"/>
 
 <screen os="c"><userinput>install -dv ${CLFS}/usr/include
-cp -av include/{asm-generic,linux,mtd,scsi,sound} ${CLFS}/usr/include</userinput></screen>
-
-  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-  href="../x86/linux-headers.xml"
-  xpointer="xpointer(//*[@os='d'])"/>
-
-<screen><userinput>cp -av include/asm-arm ${CLFS}/usr/include/asm</userinput></screen>
+make mrproper
+make ARCH=arm headers_check
+make ARCH=arm INSTALL_HDR_PATH=dest headers_install
+cp -rv dest/include/* ${CLFS}/usr/include</userinput></screen>
 
   </sect2>
Index: BOOK/cross-tools/mips/linux-headers.xml
===================================================================
--- BOOK/cross-tools/mips/linux-headers.xml	(revision e1b2402392427fd305644c810aedea26399a058d)
+++ BOOK/cross-tools/mips/linux-headers.xml	(revision 4b05af93692a485cd0b81ad52469d1e58395b65c)
@@ -6,10 +6,10 @@
 ]>
 
-<sect1 id="ch-system-linux-headers" role="wrap">
+<sect1 id="ch-cross-tools-linux-headers" role="wrap">
   <?dbhtml filename="linux-headers.html"?>
 
-  <title>Linux-Headers-&linux-headers-version;</title>
+  <title>Linux-Headers-&linux-version;</title>
 
-  <indexterm zone="ch-system-linux-headers">
+  <indexterm zone="ch-cross-tools-linux-headers">
     <primary sortas="a-Linux-Headers">Linux-Headers</primary>
   </indexterm>
@@ -28,14 +28,19 @@
   <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
   href="../x86/linux-headers.xml"
+  xpointer="xpointer(//*[@os='p1'])"/>
+
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+  href="../x86/linux-headers.xml"
+  xpointer="xpointer(//*[@os='p2'])"/>
+
+  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+  href="../x86/linux-headers.xml"
   xpointer="xpointer(//*[@os='b'])"/>
 
 <screen os="c"><userinput>install -dv ${CLFS}/usr/include
-cp -av include/{asm-generic,linux,mtd,scsi,sound} ${CLFS}/usr/include</userinput></screen>
-
-  <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-  href="../x86/linux-headers.xml"
-  xpointer="xpointer(//*[@os='d'])"/>
-
-<screen><userinput>cp -av include/asm-mips ${CLFS}/usr/include/asm</userinput></screen>
+make mrproper
+make ARCH=mips headers_check
+make ARCH=mips INSTALL_HDR_PATH=dest headers_install
+cp -rv dest/include/* ${CLFS}/usr/include</userinput></screen>
 
   </sect2>
Index: BOOK/cross-tools/x86/linux-headers.xml
===================================================================
--- BOOK/cross-tools/x86/linux-headers.xml	(revision e1b2402392427fd305644c810aedea26399a058d)
+++ BOOK/cross-tools/x86/linux-headers.xml	(revision 4b05af93692a485cd0b81ad52469d1e58395b65c)
@@ -6,10 +6,10 @@
 ]>
 
-<sect1 id="ch-system-linux-headers" role="wrap">
+<sect1 id="ch-cross-tools-linux-headers" role="wrap">
   <?dbhtml filename="linux-headers.html"?>
 
-  <title>Linux-Headers-&linux-headers-version;</title>
+  <title>Linux-Headers-&linux-version;</title>
 
-  <indexterm zone="ch-system-linux-headers">
+  <indexterm zone="ch-cross-tools-linux-headers">
     <primary sortas="a-Linux-Headers">Linux-Headers</primary>
   </indexterm>
@@ -18,5 +18,5 @@
     <title/>
 
-    <para>The Linux Headers package contains the
+    <para>The Linux Kernel contains a make target that installs
     <quote>sanitized</quote> kernel headers.</para>
 
@@ -26,21 +26,18 @@
     <title>Installation of Linux Headers</title>
 
-    <para os="a">For years it has been common practice to use
-    <quote>raw</quote> kernel headers (straight from a kernel tarball) in
-    <filename class="directory">/usr/include</filename>, but over the last few
-    years, the kernel developers have taken a strong stance that this
-    should not be done. This gave birth to the Linux-Libc-Headers Project,
-    which was designed to maintain an API stable version of the Linux
-    headers. Recently this project stopped producing updates, so the Cross-LFS
-    team started development on our own project to sanitize the headers.</para>
+    <para os="a">For this step you will need the kernel tarball.</para>
+
+    <para os="p1">The following patch contains a fix for a header that will prevent
+    kbd from compiling properly:</para>
+
+<screen os="p2"><userinput>patch -Np1 -i ../&linux-serial-patch;</userinput></screen>
 
     <para os="b">Install the header files that are common to all architectures:</para>
 
 <screen os="c"><userinput>install -dv ${CLFS}/usr/include
-cp -av include/{asm-generic,linux,mtd,scsi,sound} ${CLFS}/usr/include</userinput></screen>
-
-    <para os="d">Install the header files that are specific to this architecture:</para>
-
-<screen><userinput>cp -av include/asm-i386 ${CLFS}/usr/include/asm</userinput></screen>
+make mrproper
+make ARCH=i386 headers_check
+make ARCH=i386 INSTALL_HDR_PATH=dest headers_install
+cp -rv dest/include/* ${CLFS}/usr/include</userinput></screen>
 
   </sect2>
@@ -53,5 +50,5 @@
 
       <seglistitem>
-        <seg>/usr/include/{asm,linux}/*.h</seg>
+        <seg>/usr/include/{asm,asm-generic,drm,linux,mtd,rdma,sound,video}/*.h</seg>
       </seglistitem>
     </segmentedlist>
@@ -64,8 +61,8 @@
       <varlistentry id="linux-headers">
         <term><filename
-        class="headerfile">/usr/include/{asm,linux}/*.h</filename></term>
+        class="headerfile">/usr/include/{asm,asm-generic,drm,linux,mtd,rdma,sound,video}/*.h</filename></term>
         <listitem>
           <para>The Linux API headers</para>
-          <indexterm zone="ch-system-linux-headers linux-headers">
+          <indexterm zone="ch-cross-tools-linux-headers linux-headers">
             <primary
             sortas="e-/usr/include/{asm,linux}/*.h">/usr/include/{asm,linux}/*.h</primary>
Index: BOOK/materials/common/packages.xml
===================================================================
--- BOOK/materials/common/packages.xml	(revision e1b2402392427fd305644c810aedea26399a058d)
+++ BOOK/materials/common/packages.xml	(revision 4b05af93692a485cd0b81ad52469d1e58395b65c)
@@ -79,13 +79,4 @@
 
     <varlistentry>
-      <term>Linux-Headers (&linux-headers-version;) - <token>&linux-headers-size;</token>:</term>
-      <listitem>
-        <para>Home page: <ulink url="&linux-headers-home;"/></para>
-        <para>Download: <ulink url="&linux-headers-url;"/></para>
-        <para>MD5 sum: <literal>&linux-headers-md5;</literal></para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
       <term>uClibc (&uclibc-version;) - <token>&uclibc-size;</token>:</term>
       <listitem>
Index: BOOK/materials/common/patches.xml
===================================================================
--- BOOK/materials/common/patches.xml	(revision e1b2402392427fd305644c810aedea26399a058d)
+++ BOOK/materials/common/patches.xml	(revision 4b05af93692a485cd0b81ad52469d1e58395b65c)
@@ -83,4 +83,13 @@
 
     <varlistentry>
+      <term>Linux Serial Header Fix Patch - <token>&linux-serial-patch-size;</token>:</term>
+      <listitem>
+        <para>Download: <ulink
+        url="&patches-root;&linux-serial-patch;"/></para>
+        <para>MD5 sum: <literal>&linux-serial-patch-md5;</literal></para>
+      </listitem>
+    </varlistentry>
+
+    <varlistentry>
       <term>MPFR Branch Update Patch - <token>&mpfr-branch_update-patch-size;</token>:</term>
       <listitem>
Index: BOOK/packages.ent
===================================================================
--- BOOK/packages.ent	(revision e1b2402392427fd305644c810aedea26399a058d)
+++ BOOK/packages.ent	(revision 4b05af93692a485cd0b81ad52469d1e58395b65c)
@@ -49,15 +49,9 @@
 <!ENTITY linux-dl-version "2.6">
 
-<!ENTITY linux-version "2.6.20.1">
-<!ENTITY linux-size "42,529 KB">
+<!ENTITY linux-version "2.6.28.1">
+<!ENTITY linux-size "51,516 KB">
 <!ENTITY linux-url "&kernel;linux/kernel/v&linux-dl-version;/linux-&linux-version;.tar.bz2">
-<!ENTITY linux-md5 "3288ad6c10ba89e85041a8416bd9644d">
+<!ENTITY linux-md5 "5298ae8dcbb32202a16c328a046a7df4">
 <!ENTITY linux-home "http://www.kernel.org">
-
-<!ENTITY linux-headers-version "&linux-version;-02252007">
-<!ENTITY linux-headers-size "1,626 KB">
-<!ENTITY linux-headers-url "&packages-root;linux-headers-&linux-headers-version;.tar.bz2">
-<!ENTITY linux-headers-md5 "91871367451dfe36926f860887657db9">
-<!ENTITY linux-headers-home "http://headers.cross-lfs.org">
 
 <!ENTITY mpfr-version "2.3.2">
Index: BOOK/patches.ent
===================================================================
--- BOOK/patches.ent	(revision e1b2402392427fd305644c810aedea26399a058d)
+++ BOOK/patches.ent	(revision 4b05af93692a485cd0b81ad52469d1e58395b65c)
@@ -32,4 +32,8 @@
 <!ENTITY gmp-branch_update-patch-md5 "31606a19116f646a2d891d639fbfc339">
 <!ENTITY gmp-branch_update-patch-size "12 KB">
+
+<!ENTITY linux-serial-patch "linux-&linux-version;-serial_h_fix-1.patch">
+<!ENTITY linux-serial-patch-md5 "aa82ce2ee0cd5ab270359a0a2ed89cde">
+<!ENTITY linux-serial-patch-size "4 KB">
 
 <!ENTITY mpfr-branch_update-patch "mpfr-&mpfr-version;-branch_update-1.patch">
