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

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.44

  ViewVC Help
Powered by ViewVC 1.1.20