Changeset d4c0817 in clfs-embedded
- Timestamp:
- Oct 21, 2013, 1:43:14 PM (11 years ago)
- Branches:
- master
- Children:
- 390c34a
- Parents:
- 9085699
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BOOK/bootable/common/kernel.xml
r9085699 rd4c0817 37 37 un-tarring.</para> 38 38 39 <para os="e">Configure the kernel via a menu-driven interface. 40 Please note that the udev bootscript requires "rtc" and "tmpfs" to be 41 enabled and built into the kernel, not as modules. BLFS has 42 some information regarding particular kernel configuration requirements of 43 packages outside of CLFS at <ulink 44 url="&blfs-root;view/svn/longindex.html#kernel-config-index"/>:</para> 39 <para os="e">Configure the kernel via a menu-driven interface. Be sure to 40 enable DEVTMPFS so that <filename class="directory">/dev</filename> will 41 be populated automatically.</para> 45 42 46 <note os="f"><para>Since we are building for an embedded system we need to make sure 47 our key components are built into the kernel and not as modules. Our key 48 components are console/video, disk, and network. With out these built in our 49 system will not function properly. If your concerned about disk space, your kernel 50 should be without modules.</para></note> 43 <note os="f"><para>Since you are building for an embedded system make sure 44 all key components are built into the kernel and not as modules. The key 45 components are console/video, disk, and network. With out these built 46 in, the system will not function properly. It is recommended to 47 configure the kernel without modules in order to conserve disk space 48 and to simplify.</para></note> 51 49 52 50 <screen os="g"><userinput>make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}- menuconfig</userinput></screen> 53 51 54 <para os="h">Alternatively, <command>make oldconfig</command> may be more 55 appropriate in some situations. See the <filename>README</filename> 56 file for more information.</para> 52 <para os="h">Alternatively, the <command>make oldconfig</command> or 53 <command>make <replaceable>${CLFS_TARGET}</replaceable>_defconfig</command> 54 may be more appropriate in some situations. See the 55 <filename>README</filename> file for more information.</para> 57 56 58 57 <para os="i">If desired, skip kernel configuration by copying the kernel 59 config file, <filename>.config</filename>, from the hostsystem58 config file, <filename>.config</filename>, from an example system 60 59 (assuming it is available) to the root directory of the unpacked kernel 61 sources. However, we do not recommend this option. It is often better 62 to explore all the configuration menus and create the kernel configuration 63 from scratch.</para> 60 sources.</para> 64 61 65 <para os="j">Compile the kernel image and modules:</para> 62 <note><para>If you are using the u-boot bootloader, creating a 63 <filename>uImage</filename> type kernel is recommended. Install the 64 u-boot tools (not documented here) and append "uImage" when compiling the 65 kernel.</para></note> 66 67 <para os="j">Compile the configured kernel image and modules:</para> 66 68 67 69 <screen os="k"><userinput>make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}-</userinput></screen> 68 70 69 71 <para os="l">If using kernel modules, an 70 <filename>/etc/modprobe.conf</filename> file may be needed. 71 Information pertaining to modules and kernel configuration is 72 located in the kernel documentation in the <filename 73 class="directory">Documentation</filename> directory of the kernel 74 sources tree. Also, <filename>modprobe.conf(5)</filename> may 75 be of interest.</para> 72 <filename>/etc/modprobe.conf</filename> file may be needed. Information 73 pertaining to modules and kernel configuration is located in the kernel 74 documentation in the <filename class="directory">Documentation</filename> 75 directory of the kernel sources tree. Also, 76 <filename>modprobe.conf(5)</filename> may be of interest.</para> 76 77 77 <para os="m">Be very careful when reading other documentation relating to 78 kernel modules because it usually applies to 2.4.x kernels only. As 79 far as we know, kernel configuration issues specific to Hotplug and 80 Udev are not documented. The problem is that Udev will create a device 81 node only if Hotplug or a user-written script inserts the corresponding 82 module into the kernel, and not all modules are detectable by Hotplug. 83 Note that statements like the one below in the 84 <filename>/etc/modprobe.conf</filename> file do not work with Udev:</para> 85 86 <screen os="n"><literal>alias char-major-XXX some-module</literal></screen> 87 88 <para os="o">Because of the complications with Udev and modules, 89 we strongly recommend starting with a completely non-modular kernel 90 configuration, especially if this is the first time using Udev.</para> 91 92 <para os="p">Install the modules, if the kernel configuration uses 93 them:</para> 78 <para os="p">If building modules, install the modules:</para> 94 79 95 80 <screen os="q"><userinput>make ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}- \ 96 INSTALL_MOD_PATH=${CLFS} modules_install</userinput></screen> 97 98 <para os="r">After kernel compilation is complete, additional steps are 99 required to complete the installation. Some files need to be copied to 100 the <filename class="directory">${CLFS}/boot</filename> directory.</para> 101 102 <para os="s">Issue the following command to install the kernel:</para> 103 104 <screen os="t"><userinput>cp vmlinux ${CLFS}/boot/clfskernel-&linux-version;</userinput></screen> 105 106 <para os="u"><filename>System.map</filename> is a symbol file for the kernel. 107 It maps the function entry points of every function in the kernel API, 108 as well as the addresses of the kernel data structures for the running 109 kernel. Issue the following command to install the map file:</para> 110 111 <screen os="v"><userinput>cp System.map ${CLFS}/boot/System.map-&linux-version;</userinput></screen> 112 113 <para os="w">If we compiled our kernel with modules and we made sure 114 <command>depmod.pl</command> is avaiable from BusyBox, we need to create the 115 module dependency list by issuing the following command:</para> 116 117 <screen os="x"><userinput>${CLFS}/cross-tools/bin/depmod.pl -F ${CLFS}/boot/System.map-&linux-version; \ 118 -b ${CLFS}/lib/modules/&linux-version;</userinput></screen> 81 INSTALL_MOD_PATH=${CLFS}/targetfs modules_install</userinput></screen> 119 82 120 83 <para os="y">The kernel configuration file <filename>.config</filename> 121 84 produced by the <command>make menuconfig</command> step above contains 122 85 all the configuration selections for the kernel that was just compiled. 123 It is a good idea to keep this file for future reference :</para>86 It is a good idea to keep this file for future reference.</para> 124 87 125 <screen os="z"><userinput>cp .config ${CLFS}/boot/config-&linux-version;</userinput></screen> 126 127 <warning os="aa"> 128 <para>Some kernel documentation recommends creating a symlink from 129 <filename class="symlink">/usr/src/linux</filename> pointing to the 130 kernel source directory. This is specific to kernels prior to the 131 2.6 series and <emphasis>must not</emphasis> be created on an CLFS 132 system as it can cause problems for packages you may wish to build 133 once your base CLFS system is complete.</para> 134 135 </warning> 136 137 <para os="ab">The bootloaders section contains more information on 138 how to configure the kernel for specifc bootloaders. Please refer 139 to this section for your specific needs.</para> 88 <para>The resulting kernel will be located within the <filename 89 class="directory">arch/${CLFS_ARCH}/boot</filename>. There may be more 90 than one version of the same kernel, simply with different compression or 91 bootloader helpers added. Follow your bootloader's instructions on how to 92 copy the kernel to the final system.</para> 140 93 141 94 </sect2> … … 148 101 149 102 <seglistitem> 150 <seg>config-[linux-version], clfskernel-[linux-version], 151 and System.map-[linux-version]</seg> 103 <seg>.config, Image files, and System.map</seg> 152 104 </seglistitem> 153 105 </segmentedlist> … … 159 111 160 112 <varlistentry id="config"> 161 <term><filename> config-[linux-version]</filename></term>113 <term><filename>.config</filename></term> 162 114 <listitem> 163 115 <para>Contains all the configuration selections for the kernel</para> 164 <indexterm zone="ch-bootable-kernel config">165 <primary sortas="e-/boot/config">/boot/config-[linux-version]</primary>166 </indexterm>167 116 </listitem> 168 117 </varlistentry> 169 118 170 <varlistentry id=" clfskernel">171 <term><filename> clfskernel-[linux-version]</filename></term>119 <varlistentry id="kernel"> 120 <term><filename>zImage, uImage, bzImage, vmlinux</filename></term> 172 121 <listitem> 173 <para>The engine of the Linux system. When turning on the 174 computer, the kernel is the first part of the operating system 175 that gets loaded. It detects and initializes all components of 176 the computer's hardware, then makes these components available 177 as a tree of files to the software and turns a single CPU into 178 a multitasking machine capable of running scores of programs 179 seemingly at the same time.</para> 180 <indexterm zone="ch-bootable-kernel clfskernel"> 181 <primary sortas="b-clfskernel">clfskernel-[linux-version]</primary> 182 </indexterm> 122 <para>The compiled Linux kernel.</para> 183 123 </listitem> 184 124 </varlistentry> 185 125 186 126 <varlistentry id="System.map"> 187 <term><filename>System.map -[linux-version]</filename></term>127 <term><filename>System.map</filename></term> 188 128 <listitem> 189 129 <para>A list of addresses and symbols; it maps the entry points 190 130 and addresses of all the functions and data structures in the 191 kernel</para> 192 <indexterm zone="ch-bootable-kernel System.map"> 193 <primary sortas="e-/boot/System.map">/boot/System.map-[linux-version]</primary> 194 </indexterm> 131 kernel. Useful for debugging, sometimes.</para> 195 132 </listitem> 196 133 </varlistentry>
Note:
See TracChangeset
for help on using the changeset viewer.