/[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.3 - (hide annotations) (download) (as text)
Mon Feb 26 08:54:53 2007 UTC (7 years, 4 months ago) by nightmorph
Branch: MAIN
Changes since 1.2: +7 -13 lines
File MIME type: application/xml
removed USE=symlink by request of dsd as part of the USE flag removal from all kernel sources, bug 167703. also further vanilla-sources removals as it's unsupported.

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

  ViewVC Help
Powered by ViewVC 1.1.20