/[gentoo]/xml/htdocs/doc/en/handbook/hb-install-ppc-bootloader.xml
Gentoo

Contents of /xml/htdocs/doc/en/handbook/hb-install-ppc-bootloader.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.49 - (show annotations) (download) (as text)
Thu Apr 14 09:32:12 2011 UTC (2 years, 1 month ago) by jkt
Branch: MAIN
Changes since 1.48: +5 -5 lines
File MIME type: application/xml
#360261, remove extra init=/linuxrc, ramdisk=... and root=...

1 <?xml version='1.0' encoding='UTF-8'?>
2 <!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-install-ppc-bootloader.xml,v 1.48 2011/03/16 07:45:13 nightmorph Exp $ -->
4
5 <!-- The content of this document is licensed under the CC-BY-SA license -->
6 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
7
8 <sections>
9
10 <abstract>
11 Several bootloaders exist. Each one of them has its own way of
12 configuration. In this chapter we'll describe all possibilities for you
13 and step you through the process of configuring a bootloader to your
14 needs.
15 </abstract>
16
17 <version>11</version>
18 <date>2011-04-14</date>
19
20 <section>
21 <title>Making your Choice</title>
22 <subsection>
23 <title>Introduction</title>
24 <body>
25
26 <p>
27 Now that your kernel is configured and compiled and the necessary system
28 configuration files are filled in correctly, it is time to install a
29 program that will fire up your kernel when you start the system. Such a
30 program is called a <e>bootloader</e>.
31 </p>
32
33 <p>
34 The bootloader that you use will depend upon the type of PPC machine you have.
35 </p>
36
37 <p>
38 If you are using a NewWorld Apple or IBM machine, you need to use
39 <uri link="#yaboot">yaboot</uri>. OldWorld Apple machines have two options,
40 <uri link="#bootx">BootX</uri> (recommended) and <uri link="#quik">quik</uri>.
41 The Pegasos does not require a bootloader, but you will need to emerge
42 <uri link="#bootcreator">bootcreator</uri> to create SmartFirmware boot menus.
43 </p>
44
45 </body>
46 </subsection>
47 </section>
48 <section id="yaboot">
49 <title>Default: Using yaboot</title>
50 <subsection>
51 <title>Introduction</title>
52 <body>
53
54 <impo>
55 yaboot can only be used on NewWorld Apple and IBM systems!
56 </impo>
57
58 <p>
59 In order to find the boot devices, yaboot needs access to the device nodes
60 created by udev on startup and the sysfs filesystem. These two filesystems
61 are found at <path>/dev</path> and <path>sys</path> respectively. To do this,
62 you will need to "bind mount" these filesystems from the Installation CD's root
63 to the <path>/dev</path> and <path>/sys</path> mount points inside the chroot.
64 If you have already bind mounted these filesystems, there is no need to do it
65 again.
66 </p>
67
68 <pre caption="Bind-mounting the device and sysfs filesystems">
69 # <i>exit </i> # this will exit the chroot
70 # <i>mount --rbind /dev /mnt/gentoo/dev</i>
71 # <i>mount --rbind /sys /mnt/gentoo/sys</i>
72 # <i>chroot /mnt/gentoo /bin/bash</i>
73 # <i>/usr/sbin/env-update &amp;&amp; source /etc/profile </i>
74 </pre>
75
76 <p>
77 To set up yaboot, you can use <c>yabootconfig</c> to automatically create a
78 configuration file for you. If you are installing Gentoo on a G5 (where
79 <c>yabootconfig</c> does not always work), or you plan to boot from FireWire
80 or USB, you will need to manually configure yaboot.
81 </p>
82
83 <note>
84 You will need to manually edit the <path>yaboot.conf</path> when using
85 <c>genkernel</c>, even if <c>yabootconfig</c> is used. The kernel image section
86 of <path>yaboot.conf</path> should be modified as follows (using
87 <path>vmlinux</path> and <path>initrd</path> as the name of kernel and
88 <path>initrd</path> image):
89 </note>
90
91 <pre caption="Adding genkernel boot arguments to yaboot.conf">
92 <comment>###########################################################
93 ## This section can be duplicated if you have more than one
94 ## kernel or set of boot options - replace the image and initrd
95 ## with the exact filename of your kernel and initrd image.
96 ###########################################################</comment>
97 image=/boot/<keyval id="genkernel-name"/>
98 label=Linux
99 root=/dev/ram0
100 partition=3
101 initrd=/boot/<keyval id="genkernel-initrd"/>
102 <comment># You can add additional kernel arguments to append such as
103 # rootdelay=10 for a USB/Firewire Boot</comment>
104 append="real_root=/dev/sda3"
105 read-only
106 <comment>##########################################################</comment>
107 </pre>
108
109 <ul>
110 <li><uri link="#yabootconfig">Default: Using yabootconfig</uri></li>
111 <li>
112 <uri link="#manual_yaboot">Alternative: Manual yaboot Configuration</uri>
113 </li>
114 </ul>
115
116 </body>
117 </subsection>
118 <subsection id="yabootconfig">
119 <title>Default: Using yabootconfig</title>
120 <body>
121
122 <p>
123 <c>yabootconfig</c> will auto-detect the partitions on your machine and will
124 set up dual and triple boot combinations with Linux, Mac OS, and Mac OS X.
125 </p>
126
127 <p>
128 To use <c>yabootconfig</c>, your drive must have an Apple_Bootstrap partition,
129 and <path>/etc/fstab</path> must be configured to reflect your Linux
130 partitions (note that the Bootstrap partition should <e>not</e> be in your
131 fstab). These steps should have already been completed before, but check
132 <path>/etc/fstab</path> before proceeding. Now, install <c>yaboot</c>.
133 </p>
134
135 <pre caption = "Installing yaboot">
136 # <i>emerge yaboot</i>
137 </pre>
138
139 <p>
140 Now exit the chroot and run <c>yabootconfig --chroot /mnt/gentoo</c>. First, the
141 program will confirm the location of the bootstrap partition. If you are using
142 the suggested disk partitioning scheme, your bootstrap partition should be
143 <path>/dev/sda2</path>. Type <c>Y</c> if the output is correct. If not, double
144 check your <path>/etc/fstab</path>. <c>yabootconfig</c> will then scan your
145 system setup, create <path>/etc/yaboot.conf</path> and run <c>mkofboot</c> for
146 you. <c>mkofboot</c> is used to format the Apple_Bootstrap partition, and
147 install the yaboot configuration file into it. After this enter the chroot
148 again.
149 </p>
150
151 <pre caption="Re-enter the chroot">
152 # <i>chroot /mnt/gentoo /bin/bash</i>
153 # <i>/usr/sbin/env-update &amp;&amp; source /etc/profile</i>
154 </pre>
155
156 <p>
157 You should verify the contents of <path>/etc/yaboot.conf</path>. If you make
158 changes to <path>/etc/yaboot.conf</path> (like setting the default/boot OS),
159 make sure to rerun <c>ybin -v</c> to apply changes to the Apple_Bootstrap
160 partition. Whenever you make a change to yaboot.conf, like when testing a new
161 kernel, always remember to run <c>ybin -v</c> to update the bootstrap
162 partition.
163 </p>
164
165 <p>
166 Now continue with <uri link="#reboot">Rebooting the System</uri>.
167 </p>
168
169 </body>
170 </subsection>
171 <subsection id="manual_yaboot">
172 <title>Alternative: Manual yaboot Configuration</title>
173 <body>
174
175 <p>
176 First, install <c>yaboot</c> on your system:
177 </p>
178
179 <pre caption="Installing yaboot">
180 # <i>emerge yaboot</i>
181 </pre>
182
183 <p>
184 An example <path>yaboot.conf</path> file is given below, but you will need to
185 alter it to fit your needs.
186 </p>
187
188 <pre caption = "/etc/yaboot.conf">
189 <comment>## /etc/yaboot.conf
190 ##
191 ## run: "man yaboot.conf" for details. Do not make changes until you have!!
192 ## see also: /usr/share/doc/yaboot/examples for example configurations.
193 ##
194 ## For a dual-boot menu, add one or more of:
195 ## bsd=/dev/sdaX, macos=/dev/sdaY, macosx=/dev/sdaZ
196
197 ## The bootstrap partition:</comment>
198
199 boot=/dev/sda2
200
201 <comment>## ofboot is the Open Firmware way to specify the bootstrap partition.
202 ## If this isn't defined, yaboot fails on the G5 and some G4s (unless
203 ## you pass the necessary arguments to the mkofboot/ybin program).
204 ## hd:X means /dev/sdaX.
205 ##
206 ## G5 users should uncomment this line!!
207
208 #ofboot=hd:2
209
210 ## Users booting from firewire should use something like this line:
211 # ofboot=fw/node/sbp-2/disk@0:
212
213 ## Users booting from USB should use something like this line:
214 # ofboot=usb/disk@0:
215
216 ## hd: is shorthand for the first hard drive Open Firmware sees</comment>
217 device=hd:
218
219 <comment>## Firewire and USB users will need to specify the whole OF device name
220 ## This can be found using ofpath, which is included with yaboot.
221
222 # device=fw/node@0001d200e00d0207/sbp-2@c000/disk@0:
223 </comment>
224
225 delay=5
226 defaultos=macosx
227 timeout=30
228 install=/usr/lib/yaboot/yaboot
229 magicboot=/usr/lib/yaboot/ofboot
230
231 <comment>############################################################
232 ## This section can be duplicated if you have more than one
233 ## kernel or set of boot options - replace the image variable
234 ## with the exact filename of your kernel.
235 ###########################################################</comment>
236 image=/boot/<keyval id="kernel-name"/>
237 label=Linux
238 root=/dev/sda3
239 partition=3
240 <comment># append="rootdelay=10" # Required for booting USB/Firewire</comment>
241 read-only
242 <comment>##################
243
244 ## G5 users and some G4 users should set
245 ## macos=hd:13/
246 ## macosx=hd:12
247 ## instead of the example values.</comment>
248 macos=/dev/sda13
249 macosx=/dev/sda12
250 enablecdboot
251 enableofboot
252 </pre>
253
254 <p>
255 Once <path>yaboot.conf</path> is configured, run <c>mkofboot -v</c> to format
256 the Apple_bootstrap partition and install the settings. If you change
257 yaboot.conf after the Apple_bootstrap partition has been created, you can
258 update the settings by running <c>ybin -v</c>
259 </p>
260
261 <pre caption="Setting up the bootstrap partition">
262 # <i>mkofboot -v</i>
263 </pre>
264
265 <p>
266 For more information on yaboot, take a look at the <uri
267 link="http://penguinppc.org/bootloaders/yaboot">yaboot project</uri>. For
268 now, continue the installation with <uri link="#reboot">Rebooting the
269 System</uri>.
270 </p>
271
272 </body>
273 </subsection>
274 </section>
275 <section id="bootx">
276 <title>Alternative: BootX</title>
277 <body>
278
279 <impo>
280 BootX can only be used on OldWorld Apple systems with MacOS 9 or earlier!
281 </impo>
282
283 <p>
284 Since BootX boots Linux from within MacOS, the kernel will need to be copied
285 from the Linux Partition to the MacOS partition. First, mount the MacOS
286 partition from outside of the chroot. Use <c>mac-fdisk -l</c> to find the
287 MacOS partition number, sda6 is used as an example here. Once the partition is
288 mounted, we'll copy the kernel to the system folder so BootX can find it.
289 </p>
290
291 <pre caption="Copying the kernel to the MacOS partition">
292 # <i>exit</i>
293 cdimage ~# <i>mkdir /mnt/mac</i>
294 cdimage ~# <i>mount /dev/sda6 /mnt/mac -t hfs</i>
295 cdimage ~# <i>cp /mnt/gentoo/usr/src/linux/vmlinux "/mnt/mac/System Folder/Linux Kernels/<keyval id="kernel-name"/>"</i>
296 </pre>
297
298 <p>
299 If genkernel is used, both the kernel and initrd will need to be copied to the
300 MacOS partition.
301 </p>
302
303 <pre caption="Copying the Genkernel kernel and initrd to the MacOS partition">
304 # <i>exit</i>
305 cdimage ~# <i>mkdir /mnt/mac</i>
306 cdimage ~# <i>mount /dev/sda6 /mnt/mac -t hfs</i>
307 cdimage ~# <i>cp /mnt/gentoo/boot/<keyval id="genkernel-name"/> "/mnt/mac/System Folder/Linux Kernels"</i>
308 cdimage ~# <i>cp /mnt/gentoo/boot/<keyval id="genkernel-initrd"/> "/mnt/mac/System Folder"</i>
309 </pre>
310
311 <p>
312 Now that the kernel is copied over, we'll need to reboot to set up BootX.
313 </p>
314
315 <pre caption="Unmounting all partitions and rebooting">
316 cdimage ~# <i>cd /</i>
317 cdimage ~# <i>umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo/sys /mnt/gentoo /mnt/mac</i>
318 cdimage ~# <i>reboot</i>
319 </pre>
320
321 <p>
322 Of course, don't forget to remove the bootable CD, otherwise the CD will be
323 booted again instead of MacOS.
324 </p>
325
326 <p>
327 Once the machine has booted into MacOS, open the BootX control panel. If you're
328 not using genkernel, select <c>Options</c> and uncheck <c>Use specified RAM
329 disk</c>. If you are using genkernel, ensure that the genkernel initrd is
330 selected instead of the Installation CD initrd. If not using genkernel,
331 there is now an option to specify the machine's Linux root disk and partition.
332 Fill these in with the appropriate values. Depending upon the kernel
333 configuration, additional boot arguments may need to be applied.
334 </p>
335
336 <p>
337 BootX can be configured to start Linux upon boot. If you do this, you will first
338 see your machine boot into MacOS then, during startup, BootX will load and start
339 Linux. See the <uri link="http://penguinppc.org/bootloaders/bootx/">BootX home
340 page</uri> for more information.
341 </p>
342
343 <impo>
344 Make sure that you have support for HFS and HFS+ filesystems in your kernel,
345 otherwise you will not be able to upgrade or change the kernel on your MacOS
346 partition.
347 </impo>
348
349 <p>
350 Now reboot again and boot into Linux, then continue with <uri
351 link="?part=1&amp;chap=11">Finalizing your Gentoo Installation</uri>.
352 </p>
353
354 </body>
355 </section>
356 <section id="quik">
357 <title>Alternative: quik</title>
358 <body>
359
360 <p>
361 <c>quik</c> allows OldWorld Macs to boot without MacOS. However, it isn't well
362 supported and has a number of quirks. If you have the option, it is recommended
363 that you use BootX instead since it is much more reliable and easier to set up
364 than quik.
365 </p>
366
367 <p>
368 First, we'll need to install <c>quik</c>:
369 </p>
370
371 <pre caption="Emerge quik">
372 # <i>emerge quik</i>
373 </pre>
374
375 <p>
376 Next, we'll need to set it up. Edit <path>/etc/quik.conf</path> and set your
377 image to the kernel that we copied to your boot partition.
378 </p>
379
380 <pre caption="Configuring quik.conf">
381 # Example of quik.conf
382 init-message = "Gentoo Linux\n"
383 <comment># This is the boot partition</comment>
384 partition = 2
385 root = /dev/sda4
386 timeout = 30
387 default = gentoo
388 <comment># This is your kernel</comment>
389 image = /<keyval id="kernel-name"/>
390 label = gentoo
391 </pre>
392
393 <p>
394 Your <path>quik.conf</path> file <e>must</e> be on the same disk as the quik
395 boot images, however it can be on a different partition on the same disk,
396 although it is recommended to move it to your boot partition.
397 </p>
398
399 <pre caption="Moving quik.conf to /boot">
400 # <i>mv /etc/quik.conf /boot/quik.conf</i>
401 </pre>
402
403 <p>
404 We will now set your boot variables so that quik loads on boot. To do this,
405 we'll use a program called <c>nvsetenv</c>. The variables that you want to
406 set vary from machine to machine, it's best to find your machine's
407 <uri link="http://penguinppc.org/bootloaders/quik/quirks.php">quirks</uri>
408 before attempting this.
409 </p>
410
411 <pre caption="Setting the boot variables">
412 # <i>nvsetenv auto-boot true</i> <comment># Set to false if you want to boot into OF, not all models can display the OF output</comment>
413 # <i>nvsetenv output-device video</i> <comment># Check the quirks page, there are many variations here</comment>
414 # <i>nvsetenv input-device kbd</i>
415 # <i>nvsetenv boot-device scsi/sd@1:0</i> <comment># For SCSI</comment>
416 # <i>nvsetenv boot-device ata/ata-disk@0:0</i> <comment># For ATA</comment>
417 # <i>nvsetenv boot-file /boot/<keyval id="kernel-name"/> root=/dev/sda4</i> <comment>First item is the path to the kernel, the second is the root partition. You may append any kernel options to the end of this line.</comment>
418 # <i>nvsetenv boot-command boot</i> <comment># Set this to bye for MacOS and boot for Linux</comment>
419 </pre>
420
421 <note>
422 It is also possible to change your boot variables from MacOS. Depending upon
423 the model, either <uri
424 link="http://penguinppc.org/bootloaders/quik/BootVars.sit.hqx">bootvars</uri> or
425 <uri
426 link="ftp://ftp.apple.com/developer/macosxserver/utilities/SystemDisk2.3.1.smi.bin">
427 Apple System Disk</uri> should be used. Please see the quik quirks page above
428 for more information.
429 </note>
430
431 <p>
432 Now that we've set up our machine to boot, we'll need to make sure the boot
433 images are installed correctly. Run <c>quik -v -C /boot/quik.conf</c>. It
434 should tell you that it has installed the first stage QUIK boot block.
435 </p>
436
437 <note>
438 If something has gone wrong, you can always reset your PRAM back to the default
439 values by holding down <c>command + option + p + r</c> before powering on your
440 machine. This will clear the values you set with nvsetenv and should allow you
441 to boot either a MacOS bootdisk or a Linux bootdisk.
442 </note>
443
444 <p>
445 Now, continue the installation with
446 <uri link="#reboot">Rebooting the System</uri>.
447 </p>
448
449 </body>
450 </section>
451 <section id="bootcreator">
452 <title>Alternative: BootCreator</title>
453 <body>
454
455 <impo>
456 BootCreator will build a nice SmartFirmware bootmenu written in Forth for the
457 Pegasos.
458 </impo>
459
460 <p>
461 First make sure you have <c>bootcreator</c> installed on your system:
462 </p>
463
464 <pre caption = "Installing bootcreator">
465 # <i>emerge bootcreator</i>
466 </pre>
467
468 <p>
469 Now copy the file <path>/etc/bootmenu.example</path> into
470 <path>/etc/bootmenu</path> and edit it to suit your needs:
471 </p>
472
473 <pre caption = "Edit the bootcreator config file">
474 # <i>cp /etc/bootmenu.example /etc/bootmenu</i>
475 # <i>nano -w /etc/bootmenu</i>
476 </pre>
477
478 <p>
479 Below is a complete <path>/etc/bootmenu</path> config file. vmlinux and
480 initrd should be replaced by your kernel and initrd image names.
481 </p>
482
483 <pre caption = "bootcreator config file">
484 <comment>#
485 # Example description file for bootcreator 1.1
486 #</comment>
487
488 [VERSION]
489 1
490
491 [TITLE]
492 Boot Menu
493
494 [SETTINGS]
495 AbortOnKey = false
496 Timeout = 9
497 Default = 1
498
499 [SECTION]
500 Local HD -> Morphos (Normal)
501 ide:0 boot2.img ramdebug edebugflags="logkprintf"
502
503 [SECTION]
504 Local HD -> Linux (Normal)
505 ide:0 <keyval id="kernel-name"/> video=radeonfb:1024x768@70 root=/dev/sda3
506
507 [SECTION]
508 Local HD -> Genkernel (Normal)
509 ide:0 <keyval id="genkernel-name"/> root=/dev/ram0
510 real_root=/dev/sda3 initrd=<keyval id="genkernel-initrd"/>
511 </pre>
512
513 <p>
514 Finally the <path>bootmenu</path> must be transferred into Forth and copied to
515 your boot partition, so that the SmartFirmware can read it. Therefore you have
516 to call <c>bootcreator</c>:
517 </p>
518
519 <pre caption = "Install the bootmenu">
520 # <i>bootcreator /etc/bootmenu /boot/menu</i>
521 </pre>
522
523 <note>
524 Be sure to have a look into the SmartFirmware's settings when you reboot, that
525 <path>menu</path> is the file that will be loaded by default.
526 </note>
527
528 <p>
529 For now, continue the installation with <uri link="#reboot">Rebooting the
530 System</uri>.
531 </p>
532
533 </body>
534 </section>
535 <section id="reboot">
536 <title>Rebooting the System</title>
537 <subsection>
538 <body>
539
540 <p>
541 Exit the chrooted environment and unmount all mounted partitions. Then type in
542 that one magical command you have been waiting for: <c>reboot</c>.
543 </p>
544
545 <pre caption="Exiting the chroot, unmounting all partitions and rebooting">
546 # <i>exit</i>
547 livecd ~# <i>umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo/sys /mnt/gentoo</i>
548 livecd ~# <i>reboot</i>
549 </pre>
550
551 <p>
552 Once rebooted in your Gentoo installation, finish up with <uri
553 link="?part=1&amp;chap=11">Finalizing your Gentoo Installation</uri>.
554 </p>
555
556 </body>
557 </subsection>
558 </section>
559 </sections>

  ViewVC Help
Powered by ViewVC 1.1.13