/[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 - (hide annotations) (download) (as text)
Sun May 20 04:16:25 2007 UTC (7 years, 2 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 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.6 <!-- $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 vapier 1.1
9     <sections>
10    
11 nightmorph 1.6 <version>8.2</version>
12     <date>2007-05-19</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 neysx 1.5 located. Look for your timezone in <path>/usr/share/zoneinfo</path>, then copy
21     it to <path>/etc/localtime</path>. Please avoid the
22 vapier 1.1 <path>/usr/share/zoneinfo/Etc/GMT*</path> timezones as their names do not
23 neysx 1.5 indicate the expected zones. For instance, <path>GMT-8</path> is in fact
24     GMT+8.
25 vapier 1.1 </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 neysx 1.5 # <i>cp /usr/share/zoneinfo/GMT /etc/localtime</i>
31 vapier 1.1 </pre>
32    
33 nightmorph 1.6 <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 vapier 1.1 </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 nightmorph 1.3 For ARM systems, we will use <c>gentoo-sources</c> (contains additional patches
62     for performance and stability).
63 vapier 1.1 </p>
64    
65     <p>
66 nightmorph 1.3 Now install it using <c>emerge</c>.
67 vapier 1.1 </p>
68    
69     <pre caption="Installing a kernel source">
70 nightmorph 1.3 # <i>emerge gentoo-sources</i>
71 vapier 1.1 </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 vapier 1.2 <pre caption="NetWinder configuration options">
176     <comment>First generate a default config</comment>
177     # <i>make netwinder_defconfig</i>
178 vapier 1.1
179     <comment>Required options</comment>
180     System Type ---&gt;
181 vapier 1.2 ARM system type (FootBridge) ---&gt;
182     (X) FootBridge
183 vapier 1.1 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 nightmorph 1.4
291 vapier 1.1 <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