/[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.2 - (hide annotations) (download) (as text)
Sat Sep 2 09:00:59 2006 UTC (7 years, 11 months ago) by vapier
Branch: MAIN
Changes since 1.1: +6 -6 lines
File MIME type: application/xml
move inline make command into <pre>

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

  ViewVC Help
Powered by ViewVC 1.1.20