/[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.50 - (show annotations) (download) (as text)
Mon May 9 19:47:22 2011 UTC (3 years, 4 months ago) by nightmorph
Branch: MAIN
Changes since 1.49: +8 -5 lines
File MIME type: application/xml
update  handbooks for lazy unmount, bug 361561, thanks to swift for the patches

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.49 2011/04/14 09:32:12 jkt 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>12</version>
18 <date>2011-05-09</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 -l /mnt/gentoo/dev{/pts,/shm,}</i>
318 cdimage ~# <i>umount -l /mnt/gentoo{/proc,/sys,}</i>
319 cdimage ~# <i>umount -l /mnt/mac</i>
320 cdimage ~# <i>reboot</i>
321 </pre>
322
323 <p>
324 Of course, don't forget to remove the bootable CD, otherwise the CD will be
325 booted again instead of MacOS.
326 </p>
327
328 <p>
329 Once the machine has booted into MacOS, open the BootX control panel. If you're
330 not using genkernel, select <c>Options</c> and uncheck <c>Use specified RAM
331 disk</c>. If you are using genkernel, ensure that the genkernel initrd is
332 selected instead of the Installation CD initrd. If not using genkernel,
333 there is now an option to specify the machine's Linux root disk and partition.
334 Fill these in with the appropriate values. Depending upon the kernel
335 configuration, additional boot arguments may need to be applied.
336 </p>
337
338 <p>
339 BootX can be configured to start Linux upon boot. If you do this, you will first
340 see your machine boot into MacOS then, during startup, BootX will load and start
341 Linux. See the <uri link="http://penguinppc.org/bootloaders/bootx/">BootX home
342 page</uri> for more information.
343 </p>
344
345 <impo>
346 Make sure that you have support for HFS and HFS+ filesystems in your kernel,
347 otherwise you will not be able to upgrade or change the kernel on your MacOS
348 partition.
349 </impo>
350
351 <p>
352 Now reboot again and boot into Linux, then continue with <uri
353 link="?part=1&amp;chap=11">Finalizing your Gentoo Installation</uri>.
354 </p>
355
356 </body>
357 </section>
358 <section id="quik">
359 <title>Alternative: quik</title>
360 <body>
361
362 <p>
363 <c>quik</c> allows OldWorld Macs to boot without MacOS. However, it isn't well
364 supported and has a number of quirks. If you have the option, it is recommended
365 that you use BootX instead since it is much more reliable and easier to set up
366 than quik.
367 </p>
368
369 <p>
370 First, we'll need to install <c>quik</c>:
371 </p>
372
373 <pre caption="Emerge quik">
374 # <i>emerge quik</i>
375 </pre>
376
377 <p>
378 Next, we'll need to set it up. Edit <path>/etc/quik.conf</path> and set your
379 image to the kernel that we copied to your boot partition.
380 </p>
381
382 <pre caption="Configuring quik.conf">
383 # Example of quik.conf
384 init-message = "Gentoo Linux\n"
385 <comment># This is the boot partition</comment>
386 partition = 2
387 root = /dev/sda4
388 timeout = 30
389 default = gentoo
390 <comment># This is your kernel</comment>
391 image = /<keyval id="kernel-name"/>
392 label = gentoo
393 </pre>
394
395 <p>
396 Your <path>quik.conf</path> file <e>must</e> be on the same disk as the quik
397 boot images, however it can be on a different partition on the same disk,
398 although it is recommended to move it to your boot partition.
399 </p>
400
401 <pre caption="Moving quik.conf to /boot">
402 # <i>mv /etc/quik.conf /boot/quik.conf</i>
403 </pre>
404
405 <p>
406 We will now set your boot variables so that quik loads on boot. To do this,
407 we'll use a program called <c>nvsetenv</c>. The variables that you want to
408 set vary from machine to machine, it's best to find your machine's
409 <uri link="http://penguinppc.org/bootloaders/quik/quirks.php">quirks</uri>
410 before attempting this.
411 </p>
412
413 <pre caption="Setting the boot variables">
414 # <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>
415 # <i>nvsetenv output-device video</i> <comment># Check the quirks page, there are many variations here</comment>
416 # <i>nvsetenv input-device kbd</i>
417 # <i>nvsetenv boot-device scsi/sd@1:0</i> <comment># For SCSI</comment>
418 # <i>nvsetenv boot-device ata/ata-disk@0:0</i> <comment># For ATA</comment>
419 # <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>
420 # <i>nvsetenv boot-command boot</i> <comment># Set this to bye for MacOS and boot for Linux</comment>
421 </pre>
422
423 <note>
424 It is also possible to change your boot variables from MacOS. Depending upon
425 the model, either <uri
426 link="http://penguinppc.org/bootloaders/quik/BootVars.sit.hqx">bootvars</uri> or
427 <uri
428 link="ftp://ftp.apple.com/developer/macosxserver/utilities/SystemDisk2.3.1.smi.bin">
429 Apple System Disk</uri> should be used. Please see the quik quirks page above
430 for more information.
431 </note>
432
433 <p>
434 Now that we've set up our machine to boot, we'll need to make sure the boot
435 images are installed correctly. Run <c>quik -v -C /boot/quik.conf</c>. It
436 should tell you that it has installed the first stage QUIK boot block.
437 </p>
438
439 <note>
440 If something has gone wrong, you can always reset your PRAM back to the default
441 values by holding down <c>command + option + p + r</c> before powering on your
442 machine. This will clear the values you set with nvsetenv and should allow you
443 to boot either a MacOS bootdisk or a Linux bootdisk.
444 </note>
445
446 <p>
447 Now, continue the installation with
448 <uri link="#reboot">Rebooting the System</uri>.
449 </p>
450
451 </body>
452 </section>
453 <section id="bootcreator">
454 <title>Alternative: BootCreator</title>
455 <body>
456
457 <impo>
458 BootCreator will build a nice SmartFirmware bootmenu written in Forth for the
459 Pegasos.
460 </impo>
461
462 <p>
463 First make sure you have <c>bootcreator</c> installed on your system:
464 </p>
465
466 <pre caption = "Installing bootcreator">
467 # <i>emerge bootcreator</i>
468 </pre>
469
470 <p>
471 Now copy the file <path>/etc/bootmenu.example</path> into
472 <path>/etc/bootmenu</path> and edit it to suit your needs:
473 </p>
474
475 <pre caption = "Edit the bootcreator config file">
476 # <i>cp /etc/bootmenu.example /etc/bootmenu</i>
477 # <i>nano -w /etc/bootmenu</i>
478 </pre>
479
480 <p>
481 Below is a complete <path>/etc/bootmenu</path> config file. vmlinux and
482 initrd should be replaced by your kernel and initrd image names.
483 </p>
484
485 <pre caption = "bootcreator config file">
486 <comment>#
487 # Example description file for bootcreator 1.1
488 #</comment>
489
490 [VERSION]
491 1
492
493 [TITLE]
494 Boot Menu
495
496 [SETTINGS]
497 AbortOnKey = false
498 Timeout = 9
499 Default = 1
500
501 [SECTION]
502 Local HD -> Morphos (Normal)
503 ide:0 boot2.img ramdebug edebugflags="logkprintf"
504
505 [SECTION]
506 Local HD -> Linux (Normal)
507 ide:0 <keyval id="kernel-name"/> video=radeonfb:1024x768@70 root=/dev/sda3
508
509 [SECTION]
510 Local HD -> Genkernel (Normal)
511 ide:0 <keyval id="genkernel-name"/> root=/dev/ram0
512 real_root=/dev/sda3 initrd=<keyval id="genkernel-initrd"/>
513 </pre>
514
515 <p>
516 Finally the <path>bootmenu</path> must be transferred into Forth and copied to
517 your boot partition, so that the SmartFirmware can read it. Therefore you have
518 to call <c>bootcreator</c>:
519 </p>
520
521 <pre caption = "Install the bootmenu">
522 # <i>bootcreator /etc/bootmenu /boot/menu</i>
523 </pre>
524
525 <note>
526 Be sure to have a look into the SmartFirmware's settings when you reboot, that
527 <path>menu</path> is the file that will be loaded by default.
528 </note>
529
530 <p>
531 For now, continue the installation with <uri link="#reboot">Rebooting the
532 System</uri>.
533 </p>
534
535 </body>
536 </section>
537 <section id="reboot">
538 <title>Rebooting the System</title>
539 <subsection>
540 <body>
541
542 <p>
543 Exit the chrooted environment and unmount all mounted partitions. Then type in
544 that one magical command you have been waiting for: <c>reboot</c>.
545 </p>
546
547 <pre caption="Exiting the chroot, unmounting all partitions and rebooting">
548 # <i>exit</i>
549 livecd ~# <i>umount -l /mnt/gentoo/dev{/pts,/shm,}</i>
550 livecd ~# <i>umount -l /mnt/gentoo{/proc,/sys,}</i>
551 livecd ~# <i>reboot</i>
552 </pre>
553
554 <p>
555 Once rebooted in your Gentoo installation, finish up with <uri
556 link="?part=1&amp;chap=11">Finalizing your Gentoo Installation</uri>.
557 </p>
558
559 </body>
560 </subsection>
561 </section>
562 </sections>

  ViewVC Help
Powered by ViewVC 1.1.20