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

Diff of /xml/htdocs/doc/en/handbook/hb-install-alpha-kernel.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.6 Revision 1.54
1<?xml version='1.0' encoding='UTF-8'?> 1<?xml version='1.0' encoding='UTF-8'?>
2<!DOCTYPE sections SYSTEM "/dtd/book.dtd"> 2<!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3 3
4<!-- The content of this document is licensed under the CC-BY-SA license --> 4<!-- The content of this document is licensed under the CC-BY-SA license -->
5<!-- See http://creativecommons.org/licenses/by-sa/1.0 --> 5<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
6 6
7<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-alpha-kernel.xml,v 1.6 2004/08/21 04:43:14 vapier Exp $ --> 7<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-alpha-kernel.xml,v 1.54 2013/04/06 08:24:16 swift Exp $ -->
8 8
9<sections> 9<sections>
10<section>
11<title>Timezone</title>
12<body>
13 10
14<p> 11<version>17</version>
15You first need to select your timezone so that your system knows where it is 12<date>2013-04-06</date>
16located. Look for your timezone in <path>/usr/share/zoneinfo</path>, then make a
17symlink to <path>/etc/localtime</path> using <c>ln</c>:
18</p>
19 13
20<pre caption="Setting the timezone information">
21# <i>ls /usr/share/zoneinfo</i>
22<comment>(Suppose you want to use GMT)</comment>
23# <i>ln -sf /usr/share/zoneinfo/GMT /etc/localtime</i>
24</pre>
25
26</body>
27</section>
28<section> 14<section>
29<title>Installing the Sources</title> 15<title>Installing the Sources</title>
30<subsection> 16<subsection>
31<title>Choosing a Kernel</title> 17<title>Choosing a Kernel</title>
32<body> 18<body>
38available at the <uri link="/doc/en/gentoo-kernel.xml">Gentoo Kernel 24available at the <uri link="/doc/en/gentoo-kernel.xml">Gentoo Kernel
39Guide</uri>. 25Guide</uri>.
40</p> 26</p>
41 27
42<p> 28<p>
43For alpha-based systems we have <c>vanilla-sources</c> (the default kernel 29For alpha-based systems we have <c>gentoo-sources</c> (the default 2.6 kernel
44source as developed by the linux-kernel developers), <c>alpha-sources</c> 30source).
45(kernel source optimized for alpha users) and <c>compaq-sources</c> (kernel
46source as used by RedHat for Alpha, maintained by Compaq).
47</p>
48
49<p>
50Choose your kernel source and install it using <c>emerge</c>.
51</p>
52
53<p>
54In the next example we install the <c>vanilla-sources</c>.
55Of course substitute with your choice of sources, this is merely an example:
56</p> 31</p>
57 32
58<pre caption="Installing a kernel source"> 33<pre caption="Installing a kernel source">
59# <i>emerge vanilla-sources</i> 34# <i>emerge gentoo-sources</i>
60</pre> 35</pre>
61 36
62<p> 37<p>
63When you take a look in <path>/usr/src</path> you should see a symlink called 38When you take a look in <path>/usr/src</path> you should see a symlink called
64<path>linux</path> pointing to your kernel source: 39<path>linux</path> pointing to your kernel source. In this case, the installed
40kernel source points to <c>gentoo-sources-<keyval id="kernel-version"/></c>.
41Your version may be different, so keep this in mind.
65</p> 42</p>
66 43
67<pre caption="Viewing the kernel source symlink"> 44<pre caption="Viewing the kernel source symlink">
68# <i>ls -l /usr/src/linux</i> 45# <i>ls -l /usr/src/linux</i>
69lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -&gt; linux-2.4.24 46lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -&gt; linux-<keyval id="kernel-version"/>
70</pre> 47</pre>
71 48
72<p>
73If this isn't the case (i.e. the symlink points to a different kernel source)
74change the symlink before you continue:
75</p> 49<p>
76
77<pre caption="Changing the kernel source symlink">
78# <i>rm /usr/src/linux</i>
79# <i>cd /usr/src</i>
80# <i>ln -s linux-2.4.24 linux</i>
81</pre>
82
83<p>
84Now it is time to configure and compile your kernel source. You 50Now it is time to configure and compile your kernel source. You can use
85can use <c>genkernel</c> for this, which will build a generic kernel as used 51<c>genkernel</c> for this, which will build a generic kernel as used by the
86by the LiveCD. We explain the "manual" configuration first though, as it is 52Installation CD. We explain the "manual" configuration first though, as it is
87the best way to optimize your environment. 53the best way to optimize your environment.
88</p> 54</p>
89 55
90<p> 56<p>
91If you want to manually configure your kernel, continue now with <uri 57If you want to manually configure your kernel, continue now with <uri
92link="#manual">Default: Manual Configuration</uri>. If you want to use 58link="#manual">Default: Manual Configuration</uri>. If you want to use
93<c>genkernel</c> you should read <uri link="#genkernel">Alternative: Using 59<c>genkernel</c> you should read <uri link="#genkernel">Alternative: Using
94genkernel</uri> instead. 60genkernel</uri> instead.
95</p> 61</p>
96 62
97</body> 63</body>
98</subsection> 64</subsection>
102<subsection> 68<subsection>
103<title>Introduction</title> 69<title>Introduction</title>
104<body> 70<body>
105 71
106<p> 72<p>
107Manually configuring a kernel is often seen as the most difficult course every 73Manually configuring a kernel is often seen as the most difficult procedure a
108Linux users ever has to go through. Nothing is less true -- after configuring a 74Linux user ever has to perform. Nothing is less true -- after configuring a
109couple of kernels you don't even remember that it was difficult ;) 75couple of kernels you don't even remember that it was difficult ;)
110</p> 76</p>
111 77
112<p> 78<p>
113However, one thing <e>is</e> true: you must know your system when you start 79However, one thing <e>is</e> true: you must know your system when you start
114configuring a kernel manually. Most information can be gathered by viewing the 80configuring a kernel manually. Most information can be gathered by emerging
115contents of <path>/proc/pci</path> (or by using <c>lspci</c> if available). You 81pciutils (<c>emerge pciutils</c>) which contains <c>lspci</c>. You will now
82be able to use <c>lspci</c> within the chrooted environment. You may safely
83ignore any <e>pcilib</e> warnings (like pcilib: cannot open
84/sys/bus/pci/devices) that <c>lspci</c> throws out. Alternatively, you can run
85<c>lspci</c> from a <e>non-chrooted</e> environment. The results are the same.
116can also run <c>lsmod</c> to see what kernel modules the LiveCD uses (it might 86You can also run <c>lsmod</c> to see what kernel modules the Installation CD
117provide you with a nice hint on what to enable). 87uses (it might provide you with a nice hint on what to enable).
118</p> 88</p>
119 89
120<p> 90<p>
121Now go to your kernel source directory and execute <c>make menuconfig</c>. This 91Now go to your kernel source directory and execute <c>make menuconfig</c>. This
122will fire up an ncurses-based configuration menu. 92will fire up an ncurses-based configuration menu.
138<subsection> 108<subsection>
139<title>Activating Required Options</title> 109<title>Activating Required Options</title>
140<body> 110<body>
141 111
142<p> 112<p>
143First of all, activate the use of development and experimental code/drivers.
144You need this, otherwise some very important code/drivers won't show up:
145</p>
146
147<pre caption="Selecting experimental code/drivers">
148Code maturity level options ---&gt;
149 [*] Prompt for development and/or incomplete code/drivers
150</pre>
151
152<p>
153Now go to <c>File Systems</c> and select support for the filesystems you use. 113First go to <c>File Systems</c> and select support for the filesystems you use.
154<e>Don't</e> compile them as modules, otherwise your Gentoo system will not be 114<e>Don't</e> compile the file system you use for the root filesystem as module,
155able to mount your partitions. Also select <c>Virtual memory</c>, <c>/proc 115otherwise your Gentoo system will not be able to mount your partition. Also
156file system</c>, <c>/dev file system</c> + <c>Automatically mount at boot</c>: 116select <c>Virtual memory</c> and <c>/proc file system</c>.
157</p> 117</p>
158 118
159<pre caption="Selecting necessary file systems"> 119<pre caption="Selecting necessary file systems">
160<comment>(With a 2.4.x kernel)</comment>
161File systems ---&gt;
162 [*] Virtual memory file system support (former shm fs)
163 [*] /proc file system support
164 [*] /dev file system support (EXPERIMENTAL)
165 [*] Automatically mount at boot
166 [ ] /dev/pts file system for Unix98 PTYs
167
168<comment>(With a 2.6.x kernel)</comment>
169File systems ---&gt; 120File systems ---&gt;
170 Pseudo Filesystems ---&gt; 121 Pseudo Filesystems ---&gt;
171 [*] /proc file system support 122 [*] /proc file system support
172 [*] /dev file system support (OBSOLETE)
173 [*] Automatically mount at boot
174 [*] Virtual memory file system support (former shm fs) 123 [*] Virtual memory file system support (former shm fs)
175 124
176<comment>(Select one or more of the following options as needed by your system)</comment> 125<comment>(Select one or more of the following options as needed by your system)</comment>
177 &lt;*&gt; Reiserfs support 126 &lt;*&gt; Reiserfs support
178 &lt;*&gt; Ext3 journalling file system support 127 &lt;*&gt; Ext3 journalling file system support
185If you are using PPPoE to connect to the Internet or you are using a dial-up 134If you are using PPPoE to connect to the Internet or you are using a dial-up
186modem, you will need the following options in the kernel: 135modem, you will need the following options in the kernel:
187</p> 136</p>
188 137
189<pre caption="Selecting PPPoE necessary drivers"> 138<pre caption="Selecting PPPoE necessary drivers">
190<comment>(With a 2.4.x kernel)</comment>
191Network device support ---&gt;
192 &lt;*&gt; PPP (point-to-point protocol) support
193 &lt;*&gt; PPP support for async serial ports
194 &lt;*&gt; PPP support for sync tty ports
195
196<comment>(With a 2.6.x kernel)</comment>
197Device Drivers ---&gt; 139Device Drivers ---&gt;
198 Networking support ---&gt; 140 Network device support ---&gt;
199 &lt;*&gt; PPP (point-to-point protocol) support 141 &lt;*&gt; PPP (point-to-point protocol) support
200 &lt;*&gt; PPP support for async serial ports 142 &lt;*&gt; PPP support for async serial ports
201 &lt;*&gt; PPP support for sync tty ports 143 &lt;*&gt; PPP support for sync tty ports
202</pre> 144</pre>
203 145
204<p> 146<p>
205The two compression options won't harm but are not definitely needed, neither 147The two compression options won't harm but are not definitely needed, neither
206does the <c>PPP over Ethernet</c> option, that might only be used by 148does the <c>PPP over Ethernet</c> option, that might only be used by <c>ppp</c>
207<c>rp-pppoe</c> when configured to do kernel mode PPPoE. 149when configured to do kernel mode PPPoE.
208</p> 150</p>
209 151
210<p> 152<p>
211If you require it, don't forget to include support in the kernel for your 153If you require it, don't forget to include support in the kernel for your
212ethernet card. 154ethernet card.
213</p> 155</p>
214 156
215<p> 157<p>
216The following Alpha-specific options are recommended as well: 158The following options are recommended as well:
217</p> 159</p>
218 160
219<pre caption="Alpha-specific options"> 161<pre caption="Recommended Alpha options">
220General setup ---&gt; 162General setup ---&gt;
221 &lt;*&gt; SRM environment through procfs 163 &lt;*&gt; SRM environment through procfs
222 &lt;*&gt; Configure uac policy via sysctl 164 &lt;*&gt; Configure uac policy via sysctl
223 165
224Plug and Play configuration ---&gt; 166Plug and Play configuration ---&gt;
269 [*] Persistent DMA buffers 211 [*] Persistent DMA buffers
270 &lt;M&gt; 100% Sound Blaster compatibles 212 &lt;M&gt; 100% Sound Blaster compatibles
271</pre> 213</pre>
272 214
273<p> 215<p>
216Next select <e>Maintain a devtmpfs file system to mount at /dev</e> so that
217critical device files are already available early in the boot process.
218</p>
219
220<pre caption="Enabling devtmpfs support">
221Device Drivers ---&gt;
222 Generic Driver Options ---&gt;
223 [*] Maintain a devtmpfs filesystem to mount at /dev
224 [ ] Automount devtmpfs at /dev, after the kernel mounted the rootfs
225</pre>
226
227<p>
274When you've finished configuring the kernel, continue with <uri 228When you've finished configuring the kernel, continue with <uri
275link="#compiling">Compiling and Installing</uri>. 229link="#compiling">Compiling and Installing</uri>.
276</p> 230</p>
277 231
278</body> 232</body>
281<title>Compiling and Installing</title> 235<title>Compiling and Installing</title>
282<body> 236<body>
283 237
284<p> 238<p>
285Now that your kernel is configured, it is time to compile and install it. Exit 239Now that your kernel is configured, it is time to compile and install it. Exit
286the configuration and run <c>make dep &amp;&amp; make vmlinux modules 240the configuration and start the compilation process:
287modules_install</c>:
288</p> 241</p>
289 242
290<pre caption="Compiling the kernel"> 243<pre caption="Compiling the kernel">
291<comment>(For 2.4 kernel)</comment>
292# <i>make dep &amp;&amp; make vmlinux modules modules_install</i>
293
294<comment>(For 2.6 kernel)</comment>
295# <i>make &amp;&amp; make modules_install</i> 244# <i>make &amp;&amp; make modules_install</i>
296
297<comment>(For all kernels)</comment>
298# <i>make boot</i> 245# <i>make boot</i>
299</pre> 246</pre>
300 247
301<p> 248<p>
302When the kernel is done compiling, copy over the kernel image to 249When the kernel has finished compiling, copy the kernel image to
303<path>/boot</path>. In the next example we assume you have configured and 250<path>/boot</path>. Recent kernels might create <path>vmlinux</path> instead of
304compiled <c>vanilla-sources-2.4.24</c>: 251<path>vmlinux.gz</path>. Keep this in mind when you copy your kernel image.
305</p> 252</p>
306 253
307<pre caption="Installing the kernel"> 254<pre caption="Installing the kernel">
308# <i>cp arch/alpha/boot/vmlinux.gz /boot/</i> 255# <i>cp arch/alpha/boot/vmlinux.gz /boot/</i>
309# <i>cp System.map /boot/System.map-2.4.24</i>
310</pre>
311
312<p>
313It is also wise to copy over your kernel configuration file to
314<path>/boot</path>, just in case :)
315</p> 256</pre>
316 257
317<pre caption="Backing up your kernel configuration">
318# <i>cp .config /boot/config-2.4.24</i>
319</pre>
320
321<p>
322Now continue with <uri link="#kernel_modules">Installing Separate Kernel
323Modules</uri>.
324</p>
325
326</body> 258</body>
259</subsection>
327</subsection> 260<subsection>
261<include href="hb-install-initramfs.xml"/>
262</subsection>
263
328</section> 264</section>
329<section id="genkernel"> 265<section id="genkernel">
330<title>Alternative: Using genkernel</title> 266<title>Alternative: Using genkernel</title>
331<body> 267<body>
332 268
334If you are reading this section, you have chosen to use our <c>genkernel</c> 270If you are reading this section, you have chosen to use our <c>genkernel</c>
335script to configure your kernel for you. 271script to configure your kernel for you.
336</p> 272</p>
337 273
338<p> 274<p>
339Now that your kernel source tree is installed, it's now time to compile your 275Now that your kernel source tree is installed, it's now time to compile your
340kernel by using our <c>genkernel</c> script to automatically build a kernel for 276kernel by using our <c>genkernel</c> script to automatically build a kernel for
341you. <c>genkernel</c> works by configuring a kernel nearly identically to the 277you. <c>genkernel</c> works by configuring a kernel nearly identically to the
342way our LiveCD kernel is configured. This means that when you use 278way our Installation CD kernel is configured. This means that when you use
343<c>genkernel</c> to build your kernel, your system will generally detect all 279<c>genkernel</c> to build your kernel, your system will generally detect all
344your hardware at boot-time, just like our Live CD does. Because genkernel 280your hardware at boot-time, just like our Installation CD does. Because
345doesn't require any manual kernel configuration, it is an ideal solution for 281genkernel doesn't require any manual kernel configuration, it is an ideal
346those users who may not be comfortable compiling their own kernels. 282solution for those users who may not be comfortable compiling their own
283kernels.
347</p> 284</p>
348 285
349<p> 286<p>
350Now, let's see how to use genkernel. First, emerge the genkernel ebuild: 287Now, let's see how to use genkernel. First, emerge the genkernel ebuild:
351</p> 288</p>
367module). 304module).
368</p> 305</p>
369 306
370<pre caption="Running genkernel"> 307<pre caption="Running genkernel">
371# <i>genkernel all</i> 308# <i>genkernel all</i>
372GenKernel v3.0.1_beta10
373* ARCH: Alpha
374* KERNEL VER: 2.4.24
375* kernel: configuring source
376* kernel: running mrproper
377<comment>(Output removed to increase readability)</comment>
378* Kernel compiled successfully!
379* Required Kernel Params:
380* : root=/dev/ram0 init=/linuxrc real_root=/dev/$ROOT
381* where $ROOT is the devicenode for your root partition as
382* you should have specified in /etc/fstab
383*
384* You MUST tell your bootloader to use the generated initrd
385*
386* Recommended Kernel Params:
387* : vga=0x317 splash=verbose
388*
389* Do NOT report kernel bugs (configs included) as genkernel bugs.
390* Make sure you have the latest genkernel before reporting bugs
391*
392* For more info see /usr/share/genkernel/README
393</pre> 309</pre>
394 310
395<p> 311<p>
396Once <c>genkernel</c> completes, a kernel, full set of modules and 312Once <c>genkernel</c> completes, a kernel, full set of modules and <e>initial
397<e>initial root disk</e> (initrd) will be created. We will use the kernel 313ram disk</e> (initramfs) will be created. We will use the kernel and initrd when
398and initrd when configuring a boot loader later in this document. Write 314configuring a boot loader later in this document. Write down the names of the
399down the names of the kernel and initrd as you will need it when writing 315kernel and initrd as you will need it when writing the bootloader configuration
400the bootloader configuration file. The initrd will be started immediately after 316file. The initrd will be started immediately after booting to perform hardware
401booting to perform hardware autodetection (just like on the Live CD) before 317autodetection (just like on the Installation CD) before your "real" system
402your "real" system starts up. 318starts up.
403</p> 319</p>
404 320
405<pre caption="Checking the created kernel image name and initrd"> 321<pre caption="Checking the created kernel image name and initrd">
406# <i>ls /boot/kernel* /boot/initrd*</i> 322# <i>ls /boot/kernel* /boot/initramfs-*</i>
407</pre>
408
409<p>
410Now, let's perform one more step to get our system to be more like the Live
411CD -- let's emerge <c>hotplug</c>. While the initrd autodetects hardware that
412is needed to boot your system, <c>hotplug</c> autodetects everything else.
413To emerge and enable <c>hotplug</c>, type the following:
414</p>
415
416<pre caption="Emerging and enabling hotplug">
417# <i>emerge hotplug</i>
418# <i>rc-update add hotplug default</i>
419</pre> 323</pre>
420 324
421</body> 325</body>
422</section> 326</section>
423<section id="kernel_modules"> 327<section id="kernel_modules">
424<title>Installing Separate Kernel Modules</title> 328<title>Kernel Modules</title>
425<subsection>
426<title>Installing Extra Modules</title>
427<body>
428 329
429<p>
430If appropriate, you should emerge ebuilds for any additional hardware that is
431on your system. Here is a list of kernel-related ebuilds that you could emerge:
432</p>
433
434<table>
435<tcolumn width="1in"/>
436<tcolumn width="4in"/>
437<tcolumn width="2in"/>
438<tr>
439 <th>Ebuild</th>
440 <th>Purpose</th>
441 <th>Command</th>
442</tr>
443<tr>
444 <ti>xfree-drm</ti>
445 <ti>
446 Accelerated graphics for ATI Radeon up to 9200, Rage128, Matrox, Voodoo and
447 other cards for XFree86. Please check the <c>IUSE_VIDEO_CARDS</c> variable
448 in the <path>/usr/portage/x11-base/xfree-drm</path> ebuilds to see what you
449 need to fill in as <c>yourcard</c>.
450 </ti>
451 <ti><c>VIDEO_CARDS="yourcard" emerge xfree-drm</c></ti>
452</tr>
453</table>
454
455<p>
456Beware though, some of these ebuilds might deal with big dependencies. To verify
457what packages will be installed by emerging an ebuild, use <c>emerge
458--pretend</c>. For instance, for the <c>xfree-drm</c> package:
459</p>
460
461<pre caption="View full installation package listing">
462# <i>emerge --pretend xfree-drm</i>
463</pre>
464
465</body>
466</subsection> 330<subsection>
331<include href="hb-install-kernelmodules.xml"/>
467<subsection> 332</subsection>
468<title>Configuring the Modules</title>
469<body>
470 333
471<p>
472You should list the modules you want automatically loaded in
473<path>/etc/modules.autoload.d/kernel-2.4</path> (or <path>kernel-2.6</path>).
474You can add extra options to the modules too if you want.
475</p>
476
477<p>
478To view all available modules, run the following <c>find</c> command. Don't
479forget to substitute "&lt;kernel version&gt;" with the version of the kernel you
480just compiled:
481</p>
482
483<pre caption="Viewing all available modules">
484# <i>find /lib/modules/&lt;kernel version&gt;/ -type f -iname '*.o' -or -iname '*.ko'</i>
485</pre>
486
487<p>
488For instance, to automatically load the <c>3c59x.o</c> module, edit the
489<path>kernel-2.4</path> or <path>kernel-2.6</path> file and enter the module
490name in it.
491</p>
492
493<pre caption="Editing /etc/modules.autoload.d/kernel-2.4">
494<comment>(Example for 2.4 kernels)</comment>
495# <i>nano -w /etc/modules.autoload.d/kernel-2.4</i>
496</pre>
497
498<pre caption="/etc/modules.autoload.d/kernel-2.4 or kernel-2.6">
4993c59x
500</pre>
501
502<p>
503Now run <c>modules-update</c> to commit your changes to the
504<path>/etc/modules.conf</path> file:
505</p>
506
507<pre caption="Running modules-update">
508# <i>modules-update</i>
509</pre>
510
511<p>
512Continue the installation with <uri link="?part=1&amp;chap=8">Configuring
513your System</uri>.
514</p>
515
516</body>
517</subsection>
518</section> 334</section>
519</sections> 335</sections>

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.54

  ViewVC Help
Powered by ViewVC 1.1.20