/[gentoo]/xml/htdocs/doc/en/handbook/hb-install-arm-kernel.xml
Gentoo

Contents of /xml/htdocs/doc/en/handbook/hb-install-arm-kernel.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (show annotations) (download) (as text)
Sun May 20 04:16:25 2007 UTC (7 years, 7 months ago) by nightmorph
Branch: MAIN
Changes since 1.5: +14 -3 lines
File MIME type: application/xml
for safety's sake, needed to move the conf.d/clock TIMEZONE edit to immediately before compiling a kernel. users still run into the warning message if it's left at the end, before rebooting. fixes http://forums.gentoo.org/viewtopic-t-560322.html and other reports.

1 <?xml version='1.0' encoding='UTF-8'?>
2 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3
4 <!-- The content of this document is licensed under the CC-BY-SA license -->
5 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6
7 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-arm-kernel.xml,v 1.5 2007/05/15 13:07:41 neysx Exp $ -->
8
9 <sections>
10
11 <version>8.2</version>
12 <date>2007-05-19</date>
13
14 <section>
15 <title>Timezone</title>
16 <body>
17
18 <p>
19 You first need to select your timezone so that your system knows where it is
20 located. Look for your timezone in <path>/usr/share/zoneinfo</path>, then copy
21 it to <path>/etc/localtime</path>. Please avoid the
22 <path>/usr/share/zoneinfo/Etc/GMT*</path> timezones as their names do not
23 indicate the expected zones. For instance, <path>GMT-8</path> is in fact
24 GMT+8.
25 </p>
26
27 <pre caption="Setting the timezone information">
28 # <i>ls /usr/share/zoneinfo</i>
29 <comment>(Suppose you want to use GMT)</comment>
30 # <i>cp /usr/share/zoneinfo/GMT /etc/localtime</i>
31 </pre>
32
33 <p>
34 Next, define the timezone you just used in <path>/etc/conf.d/clock</path> so
35 that further upgrades of the <c>sys-libs/timezone-data</c> package can update
36 <path>/etc/localtime</path> automatically.
37 </p>
38
39 <pre caption="Setting the TIMEZONE variable in /etc/conf.d/clock">
40 # <i>nano -w /etc/conf.d/clock</i>
41 TIMEZONE="GMT"
42 </pre>
43
44 </body>
45 </section>
46 <section>
47 <title>Installing the Sources</title>
48 <subsection>
49 <title>Choosing a Kernel</title>
50 <body>
51
52 <p>
53 The core around which all distributions are built is the Linux kernel. It is the
54 layer between the user programs and your system hardware. Gentoo provides its
55 users several possible kernel sources. A full listing with description is
56 available at the <uri link="/doc/en/gentoo-kernel.xml">Gentoo Kernel
57 Guide</uri>.
58 </p>
59
60 <p>
61 For ARM systems, we will use <c>gentoo-sources</c> (contains additional patches
62 for performance and stability).
63 </p>
64
65 <p>
66 Now install it using <c>emerge</c>.
67 </p>
68
69 <pre caption="Installing a kernel source">
70 # <i>emerge gentoo-sources</i>
71 </pre>
72
73 <p>
74 When you take a look in <path>/usr/src</path> you should see a symlink called
75 <path>linux</path> pointing to your kernel source. In this case, the installed
76 kernel source points to <c>gentoo-sources-<keyval id="kernel-version"/></c>.
77 Your version may be different, so keep this in mind.
78 </p>
79
80 <pre caption="Viewing the kernel source symlink">
81 # <i>ls -l /usr/src/linux</i>
82 lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -&gt; linux-<keyval id="kernel-version"/>
83 </pre>
84
85 </body>
86 </subsection>
87 </section>
88 <section id="manual">
89 <title>Default: Manual Configuration</title>
90 <subsection>
91 <title>Introduction</title>
92 <body>
93
94 <p>
95 Manually configuring a kernel is often seen as the most difficult procedure a
96 Linux user ever has to perform. Nothing is less true -- after configuring a
97 couple of kernels you don't even remember that it was difficult ;)
98 </p>
99
100 <p>
101 However, one thing <e>is</e> true: you must know your system when you start
102 configuring a kernel manually. Most information can be gathered by emerging
103 pciutils (<c>emerge pciutils</c>) which contains <c>lspci</c>. You will now
104 be able to use <c>lspci</c> within the chrooted environment. You may safely
105 ignore any <e>pcilib</e> warnings (like pcilib: cannot open
106 /sys/bus/pci/devices) that <c>lspci</c> throws out. Alternatively, you can run
107 <c>lspci</c> from a <e>non-chrooted</e> environment. The results are the same.
108 You can also run <c>lsmod</c> to see what kernel modules the Installation CD
109 uses (it might provide you with a nice hint on what to enable).
110 </p>
111
112 <p>
113 Now go to your kernel source directory and execute <c>make menuconfig</c>. This
114 will fire up an ncurses-based configuration menu.
115 </p>
116
117 <pre caption="Invoking menuconfig">
118 # <i>cd /usr/src/linux</i>
119 # <i>make menuconfig</i>
120 </pre>
121
122 <p>
123 You will be greeted with several configuration sections. We'll first list some
124 options you must activate (otherwise Gentoo will not function, or not function
125 properly without additional tweaks).
126 </p>
127
128 </body>
129 </subsection>
130 <subsection>
131 <title>Activating Required Options</title>
132 <body>
133
134 <p>
135 Due to the highly specific nature of the embedded, we'll cover known
136 configurations for boards here. If your machine is not listed, then you should
137 visit the respective community website to figure out how to properly configure
138 your kernel.
139 </p>
140
141 <p>
142 Regardless of your machine, you should make sure to activate the use of
143 development and experimental code/drivers. You need this, otherwise some very
144 important code/drivers won't show up:
145 </p>
146
147 <pre caption="Selecting experimental code/drivers, General setup">
148 Code maturity level options ---&gt;
149 [*] Prompt for development and/or incomplete code/drivers
150 </pre>
151
152 <p>
153 Please select your machine from the list below to jump to the configuration
154 section.
155 </p>
156
157 <ul>
158 <li><uri link="#netwinder">NetWinder</uri></li>
159 </ul>
160
161 </body>
162 </subsection>
163 </section>
164 <section id="netwinder">
165 <title>NetWinder configuration options</title>
166 <body>
167
168 <p>
169 Remember that EXT2 support is required for the boot partition as that is the
170 only filesystem that the bootloader can read reliably. Otherwise, the only
171 filesystem that has been tested is EXT3 but your welcome to try your luck with
172 the others ;).
173 </p>
174
175 <pre caption="NetWinder configuration options">
176 <comment>First generate a default config</comment>
177 # <i>make netwinder_defconfig</i>
178
179 <comment>Required options</comment>
180 System Type ---&gt;
181 ARM system type (FootBridge) ---&gt;
182 (X) FootBridge
183 Footbridge Implementations ---&gt;
184 [*] NetWinder
185
186 Floating point emulation ---&gt;
187 [*] NWFPE math emulation
188
189 File systems ---&gt;
190 [*] Second extended fs support
191 Pseudo Filesystems ---&gt;
192 [*] /proc file system support
193 [*] Virtual memory file system support (former shm fs)
194
195 Device Drivers ---&gt;
196 ATA/ATAPI/MFM/RLL support ---&gt;
197 [*] ATA/ATAPI/MFM/RLL support
198 [*] Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
199 [*] Include IDE/ATA-2 DISK support
200 --- IDE chipset support/bugfixes
201 [*] PCI IDE chipset support
202 [*] Winbond SL82c105 support
203 [*] Generic PCI bus-master DMA support
204 [*] Use PCI DMA by default when available
205
206 Network device support ---&gt;
207 [*] Network device support
208 Ethernet (10 or 100Mbit) ---&gt;
209 [*] Ethernet (10 or 100Mbit)
210 Tulip family network device support ---&gt;
211 [*] "Tulip" family network device support
212 [*] DECchip Tulip (dc2114x) PCI support
213 [*] Use PCI shared mem for NIC registers
214 [*] Use NAPI RX polling
215 [*] EISA, VLB, PCI and on board controllers
216 [*] PCI NE2000 and clones support
217
218 Character devices ---&gt;
219 Serial drivers ---&gt;
220 [*] 8250/16550 and compatible serial support
221 [*] Console on 8250/16550 and compatible serial port
222 --- Non-8250 serial port support
223 [*] DC21285 serial port support
224 [*] Console on DC21285 serial port
225 Watchdog Cards ---&gt;
226 [*] Watchdog Timer Support
227 [*] NetWinder WB83C977 watchdog
228 [*] NetWinder thermometer support
229 [*] NetWinder Button
230 [*] Reboot Using Button
231
232 <comment>Recommended options</comment>
233 Kernel Features ---&gt;
234 [*] Preemptible Kernel
235 [*] Timer and CPU usage LEDs
236 [*] CPU usage LED
237
238 File systems ---&gt;
239 [*] Ext3 journalling file system support
240
241 Device Drivers ---&gt;
242 Input device support ---&gt;
243 [*] Keyboards ---&gt;
244 [*] AT keyboard
245 [*] Mouse ---&gt;
246 [*] PS/2 mouse
247
248 Graphics support ---&gt;
249 [*] Support for frame buffer devices
250 [*] Enable firmware EDID
251 [*] CyberPro 2000/2010/5000 support
252 Logo configuration ---&gt;
253 [*] Bootup logo
254 [*] Standard 224-color Linux logo
255
256 Sound ---&gt;
257 [*] Sound card support
258 Open Sound System ---&gt;
259 [*] Open Sound System
260 [*] OSS sound modules
261 [*] Yamaha FM synthesizer (YM3812/OPL-3) support
262 [*] Netwinder WaveArtist
263
264 <comment>You should only enable this to upgrade your flash</comment>
265 Device Drivers ---&gt;
266 Character devices ---&gt;
267 [*] NetWinder flash support
268 </pre>
269
270 <p>
271 When you've finished configuring the kernel, continue with <uri
272 link="#compiling">Compiling and Installing</uri>.
273 </p>
274
275 </body>
276 </section>
277 <section id="compiling">
278 <title>Compiling and Installing</title>
279 <body>
280
281 <p>
282 Now that your kernel is configured, it is time to compile and install it. Exit
283 the configuration and start the compilation process:
284 </p>
285
286 <pre caption="Compiling the kernel">
287 # <i>make &amp;&amp; make modules_install</i>
288 </pre>
289
290
291 <p>
292 When the kernel has finished compiling, copy the kernel image to
293 <path>/boot</path>. Use whatever name you feel is appropriate for your kernel
294 choice and remember it as you will need it later on when you configure your
295 bootloader. Remember to replace <c><keyval id="kernel-name"/></c> with the
296 name and version of your kernel.
297 </p>
298
299 <pre caption="Installing the kernel">
300 # <i>cp vmlinux.gz /boot/<keyval id="kernel-name"/></i>
301 </pre>
302
303 <p>
304 Now continue with <uri link="#kernel_modules">Kernel Modules</uri>.
305 </p>
306
307 </body>
308 </section>
309 <section id="kernel_modules">
310 <title>Kernel Modules</title>
311 <subsection>
312 <title>Configuring the Modules</title>
313 <body>
314
315 <p>
316 You should list the modules you want automatically loaded in
317 <path>/etc/modules.autoload.d/kernel-2.6</path>. You can add extra options to
318 the modules too if you want.
319 </p>
320
321 <p>
322 To view all available modules, run the following <c>find</c> command. Don't
323 forget to substitute <c><keyval id="kernel-version"/></c> with the version of
324 the kernel you just compiled:
325 </p>
326
327 <pre caption="Viewing all available modules">
328 # <i>find /lib/modules/<keyval id="kernel-version"/>/ -type f -iname '*.o' -or -iname '*.ko'</i>
329 </pre>
330
331 <p>
332 For instance, to automatically load the <c>3c59x.o</c> module, edit the
333 <path>kernel-2.6</path> file and enter the module name in it.
334 </p>
335
336 <pre caption="Editing /etc/modules.autoload.d/kernel-2.6">
337 # <i>nano -w /etc/modules.autoload.d/kernel-2.6</i>
338 </pre>
339
340 <pre caption="/etc/modules.autoload.d/kernel-2.6">
341 3c59x
342 </pre>
343
344 <p>
345 Continue the installation with <uri link="?part=1&amp;chap=8">Configuring
346 your System</uri>.
347 </p>
348
349 </body>
350 </subsection>
351 </section>
352 </sections>

  ViewVC Help
Powered by ViewVC 1.1.20