.\" $NetBSD: install,v 1.40.2.1 2019/11/21 19:28:41 martin Exp $ . .Ss2 Open Firmware boot syntax . The syntax of the Open Firmware .Ic boot command is: .Pp .Dl boot boot-device [boot-file] [-as] .Pp where the .Li boot-device describes where to find the bootloader, .Li boot-file describes where to find the .Nx kernel, and the options specify how you want to boot. .Pp You use the .Li boot-device to tell Open Firmware where to find .Xr ofwboot 8 by listing the device, the partition (if it's a disk), and the filename of the bootloader (if using .Pa ofwboot.xcf ) . .Pp If the .Li boot-file is on the same device and partition (if it's a disk) as the .Li boot-device then you can just specify the kernel filename. Otherwise, you need to specify the full Open Firmware path to the kernel. .Pp The .Fl a flag will ask you for the location of the next item to load (i.e. the bootloader will ask where the kernel is (if unspecified), or the kernel will ask where the root file system is). The .Fl s flag will boot into .Sq single-user mode. .Pp The exact command you will be using depends on which version of Open Firmware your machine has and which device you will be booting from. Sometimes you may have to guess as we don't know all of the combinations of models, device names, and file names. In general the format is: .Li "device:[partition][,\efilename]" . Keep in mind for the future that you may be able to have your .Li boot-device and .Li boot-file on entirely different devices (such as the bootloader netbooted from .Li enet and the kernel loaded from a hard drive on the .Li ultra0 ATA/IDE bus). .Pp We'll try to walk you through the process of figuring out what Open Firmware calls your device, partition, and file names. To start with, Open Firmware keeps a .Dq device tree with all of the devices it finds in your system. You can get a listing of the nodes in this device tree with the .Ic dev and .Ic ls commands. .Ic dev is similar to the unix .Ic cd command and is used to change between the nodes in the Open Firmware device tree (similar to a file system). .Ic ls of course is similar to the unix .Ic ls command and is used to list the contents of the current device node. To get a listing of all the devices available in your system, use the following commands: .(disp .No 0 \*[Gt] Ic "dev /" .No 0 \*[Gt] Ic "ls" .disp) .Pp Open Firmware has device aliases which are simple names for the full hardware path to a device (similar to .Ic alias in .Xr csh 1 ). You can find out what device aliases Apple created on your machine with the .Ic devalias command. For example, here are the devaliases on a PowerMacintosh 7300: .Pp .(disp .No 0 \*[Gt] Ic devalias vci0 /chaos@F0000000 pci1 /bandit@F2000000 pci2 /bandit@F4000000 fd /bandit/gc/swim3 kbd /bandit/gc/via-cuda/adb/keyboard ttya /bandit/gc/escc/ch-a ttyb /bandit/gc/escc/ch-b enet /bandit/gc/mace scsi /bandit/gc/53c94 scsi-int /bandit/gc/mesh ok .disp) .Pp On most systems, you'll find the devices you're looking for. Typical aliases are: .Bl -column xxx "scsi-intxxxxxx" "internal scsi bus (on system with multiple SCSI busses)" .It Ta Li hd Ta No "internal hard drive" .It Ta Li cd Ta No "CD-ROM drive" .It Ta Li zip Ta No "internal Zip drive" .It Ta Li enet Ta No ethernet .It Ta Li fd Ta No "floppy drive" .It Ta Li scsi Ta No "SCSI bus" .It Ta Li scsi-int Ta No "internal SCSI bus (on systems with multiple SCSI busses)" .It Ta Li ata Ta No "ATA/IDE bus" .It Ta Li ideN Ta No "ATA/IDE bus number N" .It Ta Li ultraN Ta No "Ultra/66 or Ultra/100 IDE bus number N" .El .Pp Note that some of these items are the device itself, and some are a bus. When you only have the devalias to a bus, you need to specify which device on that bus you want to use. You can use the Open Firmware .Ic dev No and Ic ls commands. For example, here are the devices on the internal SCSI bus of a PowerMacintosh 7300: .(disp .No 0 \*[Gt] Ic "dev scsi-int" .No 0 \*[Gt] Ic "ls" FF83C850: /sd@0,0 FF83D480: /st@0,0 ok .disp) .Pp In this case, Open Firmware seems to be saying there are two devices, both at address zero (one is a SCSI disk .Sq sd@0,0 and the other is a SCSI tape .Sq st@0,0 ). Unfortunately, older systems will only list the naming convention and not the actual devices currently connected, but that's OK -- we've got more tricks up our sleeve. .Pp If you've got ATA/IDE drives, you have all the device information you need (since Apple only ever ships drives as .Dq master which is typically something like .Li ata-disk@0 , Li ATA-Disk@0 , Li atapi-disk , or Li disk@0 ). .Pp You can find out the devices on your SCSI bus with the .Ic show-children command: .(disp .No 0 \*[Gt] Ic "dev scsi-int" .No 0 \*[Gt] Ic "show-children" Target 0 Unit 0 Disk IBM DCAS-32160 S65A Target 3 Unit 0 Removable Read Only device SONY CD-ROM CDU-8005 1.0j ok .disp) .Pp Open Firmware calls SCSI IDs .Dq Li Target . The .Dq Li Unit number is the Logical Unit Number (LUN). This is almost always zero. Thus, this PowerMacintosh system has an IBM hard drive (DCAS-32160) at SCSI ID 0, and a Sony CD-ROM drive (CDU-8005) at SCSI ID 3. .Pp Now, we've got enough information to construct the device name for Open Firmware. Just stick everything together to describe to Open Firmware what you want. For example, Open Firmware calls the CD-ROM drive in this system .Li scsi-int/sd@3 . .Pp To determine if a device is bootable, type: .Pp .(disp .No 0 \*[Gt] Ic dev scsi-int/sd@3 .No 0 \*[Gt] Ic words load write read seek close open write-blocks read-blocks max-transfer block-size dma-sync dma-map-out dma-map-in dma-free dma-alloc ok .disp) .Pp If the .Ic word Dq Li open is present in the list, then the device is almost certainly bootable. .Pp Next, you need to figure out what partition Open Firmware thinks your bootloader is located on if you're going to boot from a disk. If you're using a .Dq "partition zero" bootloader, the answer is obvious: 0. Thus, your .Li boot-device for the .Nx*M CD-R image on an Open Firmware 1.0.5 system would be .Li scsi-int/sd@3:0 since the image has a .Sq "partition zero" bootloader. .Pp Other situations get a little trickier, as we know of no way to get a partition map from within Open Firmware, and it uses a different numbering scheme than either .Nx or MacOS 9 (or earlier). You can use .Ic pdisk to get a listing of the partitions on a disk. See the Partitioning HOW-TO for help: .Lk http://www.NetBSD.org/ports/macppc/partitioning.html#pdisk .Pp Typically, MS-DOS and ISO9660 formatted disks have their file systems at partition 1. Typically, Drive Setup formatted disks have their file systems starting at partition number 9. Often, if you omit the partition number, Open Firmware looks in the first partition it understands holding a valid file system. .Pp Open Firmware uses a comma (,) to separate the partition number from the filename. It uses a backslash (the .Pa \e character) to separate directories. The bootloader uses forward slashes (the .Pa / character) to separate directories when specifying the .Li boot-file . Thus, to specify the top of the file system on a CD-ROM in the example PowerMacintosh 7300 system, you'd use: .Li scsi-int/sd@3:,\e .Pp Now, to confirm that you and Open Firmware are looking at the same files, you can get a directory listing of the file system on your device with the .Ic dir command. This command is only useful with file systems that Open Firmware understands and is able to boot from. On Open Firmware 1.0.5, 1.1.22, and 2.0.x systems, you can use .Ic dir on ISO9660 (not hybrid) and MS-DOS file systems. On Open Firmware 2.4, you can use it on HFS, HFS+, hybrid, ISO9960, and MS-DOS file systems. On Open Firmware 3, you can use it on HFS, HFS+, hybrid (not pure ISO9660), and MS-DOS file systems. The one exception to this rule is that Open Firmware cannot list files on a disk with a .Sq "partition zero" bootloader (including the .Nx*M CD-R image and installation floppies). .(disp .No 0 \*[Gt] Ic "dir fd:,\e" FINDER .DAT 022 2 2B8 DESKTOP . 022 0 0 RESOURCE.FRK 012 3 0 NETBSD~1.GZ 020 5 1FDFCA TRASH . 010 B00 0 OFWBOOT .XCF 020 A75 D8F4 ok .disp) You can see that this MS-DOS formatted disk has a bunch of stuff, as well as the two important files: .Pa NETBSD~1.GZ No and Pa OFWBOOT.XCF . Note that .Tn MacOS shortened .Pa netbsd-GENERIC_MD.gz No to Pa NETBSD~1.GZ since MS-DOS file systems can only natively hold 8 characters for the filename. .(Note Keep in mind that Open Firmware is often case-sensitive when it comes to filenames. .Note) .(Note You may need to append a .Pa ;1 to the filename when using a ISO 9660 file system. This .Dq "version number" is part of the ISO 9660 specification and will show up in the directory listing if it is present on the disk. For example: .(disp .No 0 \*[Gt] Ic "boot cd:,\eOFWBOOT.XCF;1 NETBSD.MACPPC;1" .disp) .Note) .(Note PowerPC 601 machines need to specify the .Pa NETBSD.601 kernel when booting from the install CD, and use the .Pa kern-GENERIC_601.\*[setsuffix] and .Pa netbsd-INSTALL_601.gz kernels. .Note) .Pp If the .Ic dir command showed you the files you're looking for, then you've figure out how to tell Open Firmware to look for your bootloader! In this case, your .Sq Li boot-device is .Sq Li fd:,\eOFWBOOT.XCF and your .Sq Li boot-file is .Sq Li fd:,/NETBSD~1.GZ . .Pp For additional help, see .Xr ofwboot 8 and the FAQ on topics like how to use the Open Firmware command environment and how to boot from a device attached to a PCI card which has Open Firmware support: .Lk http://www.NetBSD.org/ports/macppc/faq.html#ofw-use .Lk http://www.NetBSD.org/ports/macppc/faq.html#boot-pci . .Ss2 Examples of Open Firmware boot commands . Here are some examples of the commands you might use to boot your system: .(bullet .To 2 "Booting the NetBSD/macppc install CD-R" .Em "Booting the NetBSD/\*M install CD-R" .br (Open Firmware 1.0.5, Open Firmware 1.1.22, Open Firmware 2.0.x, Open Firmware 2.4) .Pp Here are some examples of what you might use to boot from CD-ROM (Apple usually sets their CD-ROM drives to SCSI ID 3): .Pp .(disp .No 0 \*[Gt] Ic "boot cd:0 NETBSD.MACPPC" .No 0 \*[Gt] Ic "boot cd:0 NETBSD.601" .No 0 \*[Gt] Ic "boot scsi-int/sd@3:0 NETBSD.MACPPC" .No 0 \*[Gt] Ic "boot scsi/sd@3:0 NETBSD.MACPPC" .No 0 \*[Gt] Ic "boot ata/atapi-disk:0 NETBSD.MACPPC" .No 0 \*[Gt] Ic "boot ide1/disk@0:0 NETBSD.MACPPC" .disp) .Pp .It .Em "Booting the NetBSD/\*M install CD-R" .br (Open Firmware 3) .Pp .(disp .No 0 \*[Gt] Ic "boot cd:,\eofwboot.xcf netbsd.macppc" .disp) .It .To 2 "Booting the NetBSD install floppies" .Em "Booting the NetBSD install floppies" .br (Open Firmware 1.0.5, Open Firmware 1.1.22, Open Firmware 2.0.x, Open Firmware 2.4) .Pp The first floppy disk has a .Sq "partition zero" bootloader. When it has loaded the kernel, it will ask you to insert the second floppy disk. .(Note This is not a normal .Tn MacOS boot floppy -- you must enter Open Firmware and type a boot command. .Note) All you need to do is: .Pp .(disp .No 0 \*[Gt] Ic boot fd:0 .disp) .Pp It is common to see .Dq "READ TIMEOUT@" from the floppy. This means that Open Firmware is having difficulty reading the media. See the section below on .Sx "Common Problems and Error Messages" for more information about this and what you can do to get a successful boot. .Pp You can eject a floppy by typing: .Pp .(disp .No 0 \*[Gt] Ic eject fd .disp) .It .To 2 "Booting an IDE or SCSI drive with an HFS partition" .Em "Booting an IDE or SCSI drive with an HFS or HFS+ partition" .br (Open Firmware 2.4, Open Firmware 3) .Pp .Tn MacOS drives have several system-level partitions reserved for .Tn MacOS drivers. You may find that your first HFS or HFS+ partition might be as high as partition 9. You may need to keep trying higher partition numbers until you find the one that has your bootloader. You can use .Ic pdisk to print out your partition map: .Lk http://www.NetBSD.org/ports/macppc/partitioning.html#pdisk .Pp You should use the Open Firmware .Ic dir command to get a directory listing of the files on your hard drive. .Pp If bootloader is on a different partition from the .Nx kernel, you will need to specify where to find the kernel. .Pp Remember, that SCSI Zip disks are usually ID 5 or 6. Internal hard drives are usually SCSI ID 0. .Pp Here are some examples of what you might use to boot the installer kernel located on an HFS or HFS+ partition: .Pp .(disp .No 0 \*[Gt] Ic "boot hd:9,\eofwboot.xcf netbsd-GENERIC_MD.gz" .No 0 \*[Gt] Ic "boot scsi/sd@0:9,\eofwboot.xcf netbsd-GENERIC_MD.gz" .No 0 \*[Gt] Ic "boot ide0/disk@0:10,\eofwboot.xcf netbsd-GENERIC_MD.gz" .No 0 \*[Gt] Ic "boot ultra1:9,ofwboot.xcf netbsd-GENERIC_MD.gz" .disp) .Pp .It .To 2 "Booting a custom CD-ROM" .Em "Booting a custom CD-ROM" .br (All Open Firmware versions) .Pp Open Firmware doesn't understand long filenames (created with the RockRidge and Joliet extensions), so you may need to figure out what your file is called. You should use the Open Firmware .Ic dir command to get a listing of the files on your CD. .Pp For instance, .Ic Toast for .Tn MacOS creates CDs with long filenames, but uses .Tn MS-DOS style short names as well. Instead of referencing .Pa netbsd-GENERIC you would need to open .Pa NETBSD-G.ENE The .Ic mkisofs program has a similar problem, .Pa netbsd-GENERIC_MD.gz becomes .Pa NETBSD-GENERIC_MD.GZ . .Pp Another thing to note is that you .Em must use the same case when specifying the filename to load that Open Firmware uses. Also, keep in mind what format your CD-R has to be for your version of Open Firmware (pure ISO versus hybrid ISO/HFS). .Pp We'll assume that you've wisely renamed your kernel to .Pa netbsd.gz to avoid many of these name issues. Here are some examples of what you might use to boot from CD-ROM (Apple usually sets their CD-ROM drives to SCSI ID 3): .Pp .(disp .No 0 \*[Gt] Ic "boot cd:,\eofwboot.xcf netbsd.gz" .No 0 \*[Gt] Ic "boot scsi-int/sd@3:,\eOFWBOOT.XCF NETBSD.GZ" .No 0 \*[Gt] Ic "boot scsi/sd@3:,\eOFWBOOT.XCF NETBSD.GZ" .No 0 \*[Gt] Ic "boot ata/atapi-disk:,\eOFWBOOT.XCF NETBSD.GZ" .No 0 \*[Gt] Ic "boot ide1/disk@0:,\eOFWBOOT.XCF NETBSD.GZ" .disp) .It .To 2 "Booting an MS-DOS floppy" .Em "Booting an MS-DOS floppy" .br (Open Firmware 1.0.5, Open Firmware 1.1.22, Open Firmware 2.0.x, Open Firmware 2.4) .(Note This is not a normal .Tn MacOS boot floppy -- you must enter Open Firmware and type a boot command. .Note) .Pp Use the Open Firmware .Ic dir command to get a listing of the files on the floppy. Typically you'll find filenames like .Li OFWBOOT.XCF No and Li NETBSD~1.GZ . .(disp .No 0 \*[Gt] Ic "boot fd:,\eOFWBOOT.XCF NETBSD~1.GZ" .disp) .Pp You can eject a floppy by typing: .Pp .(disp .No 0 \*[Gt] Ic eject fd .disp) .It .To 2 "Booting over the ethernet" .Em "Booting over the ethernet" .br (Open Firmware 1.0.5, Open Firmware 1.1.22, Open Firmware 2.0.x, Open Firmware 2.4) .Pp You can try the simple form (i.e. that you are booting from ethernet): .Pp .(disp .No 0 \*[Gt] Ic "boot enet:,ofwboot.xcf" .disp) .Pp Or you may be more specific, specifying the bootloader filename and the kernel name: .Pp .(disp .No 0 \*[Gt] Ic "boot enet:,ofwboot.xcf enet:,/netbsd-GENERIC_MD.gz" .disp) .(Note Some Open Firmware 1.0.5 machines have their MAC address stored incorrectly. Make sure that your netboot server is using the same MAC address that your \*M client is using. See the section on .Sx "Setting up Open Firmware 1 and 2 to boot NetBSD" to figure out your MAC address. .Note) .(Note Some machines cannot load compressed kernels over ethernet. Uncompress them first. .Note) .It .Em "Booting over the ethernet" .br (Open Firmware 3) .Pp You can try the simple form (i.e. that you are booting from ethernet): .Pp .(disp .No 0 \*[Gt] Ic "boot enet:0" .disp) .Pp Or you may be more specific, specifying the bootloader filename and the kernel name: .Pp .(disp .No 0 \*[Gt] Ic "boot enet:0,ofwboot.xcf enet:0,/netbsd-GENERIC_MD.gz" .disp) .It .To 2 "Booting an IDE or SCSI drive with 'partition zero'" .Em "Booting an IDE or SCSI drive with a" .Sq Em "partition zero" .Em bootloader .br (Open Firmware 1.0.5, Open Firmware 1.1.22, Open Firmware 2.0.x, Open Firmware 2.4) .Pp You do not specify a file to load, since the .Sq "partition zero" bootloader knows what to do. You would boot such a system if you have dumped the CD-R image to your drive, or if you have an already-installed .Nx*M system .Pp Remember, that SCSI Zip disks are usually ID 5 or 6. Internal hard drives are usually SCSI ID 0. .Pp Here are some examples of what you might use to boot from such a drive: .Pp .(disp .No 0 \*[Gt] Ic "boot zip:0" .No 0 \*[Gt] Ic "boot scsi-int/sd@0:0" .No 0 \*[Gt] Ic "boot scsi/sd@0:0" .No 0 \*[Gt] Ic "boot ata/ata-disk@0:0" .No 0 \*[Gt] Ic "boot ata/ATA-Disk@0:0" .No 0 \*[Gt] Ic "boot ide0/disk@0:0" .disp) .bullet) . .Ss2 Example of a normal boot . Of course, a lot of the information in this example depends on your model and what your boot method is, but we'll include this anyways just so you get an idea of what to expect (user-typed commands are in .Ic bold ) . .(disp Apple PowerBook3,1 2.1f1 BootROM built on 01/29/00 at 22:38:07 Copyright 1994-2000 Apple Computer, Inc. All Rights Reserved Welcome to Open Firmware. To continue booting, type "mac-boot" and press return. To shut down, type "shut-down" and press return. ok .No 0 \*[Gt] Ic "boot enet:,ofwboot.xcf netbsd-GENERIC_MD.gz" loading XCOFF tsize=C280 dsize=14AC bsize=2620 entry=600000 SECTIONS: .text 00600000 00600000 0000C280 000000E0 .data 0060D000 0060D000 000014AC 0000C360 .bss 0060E4B0 0060E4B0 00002620 00000000 loading .text, done.. loading .data, done.. clearing .bss, done.. \*[Gt]\*[Gt] NetBSD/macppc OpenFirmware Boot, Revision 1.3 \*[Gt]\*[Gt] (tsubai@mint.iri.co.jp, Sun Nov 26 01:41:27 JST 2000) 1701508+177748 [100+68176+55886]=0x1e9468 start=0x100000 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 1.5.1 (INSTALL) #0: Thu Mar 15 00:52:56 PST 2001 mw@al:/usr/src/sys/arch/macppc/compile/INSTALL total memory = 192 MB avail memory = 172 MB using 2483 buffers containing 9932 KB of memory [...] erase ^H, werase ^W, kill ^U, intr ^C, status ^T Terminal type? [vt100] Erase is backspace. (I)nstall, (S)hell or (H)alt ? .disp) . .Ss2 Common Problems and Error Messages . This is a brief list of some of the Open Firmware problems you may run into. See the .Nx*M FAQ for a thorough list. .Lk http://www.NetBSD.org/ports/macppc/faq.html#boot-trouble .(Note You may find it necessary to remove all non-Apple devices from your machine. Some users have found this necessary. .Note) .Pp .(bullet .To 2 "Black screen" Black screen .Pp If your system is a PowerBook, .Nx may have turned down the brightness of the backlight. Use the buttons to turn your brightness back up. .Pp Open Firmware 3.x and newer often won't setup the console if you don't drop to a prompt, and .Nx doesn't know how to setup the console itself. To get the system to boot when you have auto-boot? set to true, you can try this workaround. First, try one of the following commands: .sp .Dl setenv boot-command \*[q] screen\*[q] output boot .Dl setenv boot-command ." screen" output boot .Dl setenv boot-command ." Booting NetBSD..." cr \*[q] screen\*[q] output boot .sp You should follow the command with: .sp .Dl reset-all .sp This will cause Open Firmware to output some text to the screen prior to booting, thus forcing it to setup the console. .Pp Otherwise, you need a serial console. See the section entitled .Sx "Open Firmware 1 and 2 System Preparation" .It .To 2 "Grey screen with flashing question mark" Grey screen with flashing question mark .Pp This means that your system is trying to boot .Tn MacOS . You might get to this state if you didn't properly enter Open Firmware, or if your Open Firmware boot command has bad syntax. .Pp If you typed a bad boot command, Open Firmware tries to boot from the value stored in the .Li boot-device variable, whose default value is the MacOS ROM. .Pp The grey screen with the icon is generated by the MacOS ROM. A flashing question-mark or broken folder means that your machine is looking for a bootable MacOS file system, but can't find one. A globe icon means that your machine is looking for a netboot server. A happy face or spinning disc means it's starting to boot MacOS. .Pp The boot floppy does not have a bootable MacOS file system, it has a bootable NetBSD file system. .Pp Reboot, re-enter Open Firmware and check your syntax carefully. .Pp .(Note Don't forget to check your Open Firmware environment variables, as they may have been changed by your brief excursion into .Tn MacOS . .Note) .It .To 2 "Information on your screen seems garbled or out of sync" Information on your screen seems garbled or out of sync .Pp If you have a PowerMacintosh 7300 through 8600, then you need to read the section on System Disk and the patches it applies. See the section entitled .Sx "Open Firmware 1 and 2 System Preparation" .Pp If you have a Twentieth Anniversary Macintosh, Open Firmware does not work with the internal display, you will need to set up a serial console. .Pp .It .To 2 "DEFAULT CATCH!" .Dq Li "DEFAULT CATCH!" .Pp This is a general message from Open Firmware to the effect that it had trouble loading a file. .Pp If your machine is Open Firmware version 1.0.5, 2.0.x, or 2.4, this error does sometimes appear randomly. You might try the boot command a second time (this is known to work on some models). It's also an indication that either your floppy disk is bad, or the floppy drive is bad. Try doing a low-level format on the floppy, re-copy the files, and try again. .Pp There are several models that cannot be booted while using the on-board video and keyboard. Try using a serial console. .It .To 2 "CLAIM failed" .Dq Li "CLAIM failed" .Pp This is a general message from Open Firmware to the effect that it failed to allocate some memory or memory is messed up. .Pp First, make sure you have the Open Firmware variable .Li load-base set correctly. If your system is Open Firmware version 1.0.5, 1.1.22, 2.0.x, or 2.4, see the section above on .Sx "Setting up Open Firmware 1 and 2 to boot NetBSD" .Pp Do not change .Li load-base on an Open Firmware 3 system. .Pp Reset your system and try using a different boot command (this is the only way some people have gotten their Open Firmware 2.4 systems to work): .(disp .No 0 \*[Gt] Ic "0 bootr boot-device boot-file" .disp) .Pp If you tried one boot command and it failed, then you tried a second and got the .Li CLAIM failed message, then this is an indication that you should reboot between attempts. Use the Open Firmware .Ic reset-all command. .Pp Contradictorily, if your machine is Open Firmware version 1.0.5, 2.0.x or 2.4, this error does sometimes appear randomly. You might try the boot command a second time (this is known to work on some models). .Pp There are several models that cannot be booted while using the on-board video and keyboard. Try using a serial console. .It .To 2 "can't OPEN" .Dq Li "can't OPEN" .Pp Open Firmware either can't open the device you specified (because it is not present or the device path is mistyped) or the file you specified. Check your typing and check to make sure that the media has the files you think it has. .Pp Use the NetBSD .Ic pdisk command to list the partition map and the Open Firmware .Ic dir command to verify that the file(s) you tried accessing are really there. .It .To 2 "unrecognized Client Program formatstate not valid" .Dq Li "unrecognized Client Program formatstate not valid" .Pp This is a general Open Firmware error message indicating that the filename you tried to open either doesn't exist or is in the wrong format. For Open Firmware 1 and 2 machines, it must be an XCOFF file (such as .Pa ofwboot.xcf ) and for Open Firmware 3 machines, it must be either XCOFF or ELF (such as a kernel). Make sure that you have use binary mode to FTP the files, and that they are properly uncompressed. .It .To 2 "bad partition number, using 0no bootable HFS partition" .Dq Li "bad partition number, using 0no bootable HFS partition" .Pp If you're trying to boot an Open Firmware 1.0.5, 1.1.22, or 2.0.x system, this probably means that your media (i.e. hard drive or CD-ROM) has an HFS file system on it (such as a hybrid CD-R or a hard drive with MacOS partitions). .It .To 2 "READ TIMEOUT@" .Dq Li "READ TIMEOUT@" .Pp Open Firmware is having trouble reading your floppy disk. Things to try: .(bullet -compact Try booting from the floppy again .It Try a different floppy disk .It Try writing the floppy on the same machine you're trying to boot .It Clean the floppy drive .It Use another boot method .bullet) .Pp As disk drives get older, especially with portables, they can get a little bit out of alignment so that they do not consistently read disks written on other floppy drives. Strongly consider writing the floppies on the same machine that will be reading them. .It .To 2 "TFTP timeout" .Dq Li "TFTP timeout" .Pp Either the server's TFTP server isn't running, or you're using a model with Open Firmware 1.0.5 and not specifying the location of the bootloader. Unfortunately, on the early models, .Pa ofwboot.xcf gets confused and doesn't work right unless you load it explicitly from the .Li boot-device , even if the bootp or DHCP server provides the correct information. You need to boot with a command like: .(disp .No 0 \*[Gt] Ic "boot enet:,ofwboot.xcf" .disp) .It .To 2 "enet:,/netbsd.ram.gz: Inappropriate file type or format" .Dq Li "enet:,/netbsd.ram.gz: Inappropriate file type or format" .Pp Some systems booting over ethernet can't load compressed kernels. Use .Xr gunzip 1 to uncompress the kernel before attempting to netboot. .It .To 2 "Bootloader hangs before the copyright notice" Bootloader hangs before the copyright notice and the kernel configuration .Pp You forgot to set .Li real-base in Open Firmware or it got erased by your booting into .Tn MacOS . .Pp Make sure you have the Open Firmware variable .Li real-base set correctly. If your system is Open Firmware version 1.0.5, 1.1.22, 2.0.x, or 2.4, see the section above on .Sx "Setting up Open Firmware 1 and 2 to boot NetBSD" .Pp Do not set .Li real-base on an Open Firmware 3 system. .It .To 2 "Hang after configuring devices" Hang after configuring devices, but before doing anything else .Pp Actually, this can have many causes. The most likely is a keyboard problem. First, try plugging the USB keyboard directly into the computer (i.e. not through a hub) and unplugging the mouse. .Pp If you're trying a model that's not on the supported list (such as a new laptop model), they keyboard may not be supported yet. .bullet) . .Ss2 Milestone . If you've reached this point, then you must've gotten the .Nx installer to boot. Congratulations! That was the hard part. From now through the rest of this document, there should be no more Open Firmware specific problems, so read everything because it applies to all models. . .so ../common/sysinst . .Ss2 "Finalizing Open Firmware settings" . Now, you can reboot to get to the Open Firmware prompt. You still need to figure out how to get Open Firmware to boot the operating system(s) of your choice. First, try to get .Nx*M running. Using the methods described in the section .Sx "Examples of Open Firmware boot commands" figure out the boot command for your installation of .Nx . Try booting. Once you've got the syntax worked out, decide which operating systems you'll be using regularly. .(bullet .To 2 "Booting NetBSD exclusively" .Em "Booting NetBSD exclusively" .br If you'll only be using .Nx on your \*M system, then simply set the Open Firmware .Sq Li boot-device and .Sq Li boot-file variables to the values you just determined. Also, you might want to enable the system to always boot .Nx when powered on or reset. Once you set up auto-booting you can get to the Open Firmware prompt again by using the .Xr shutdown 8 command to halt the system. .Pp If you are not using a .Sq "partition zero" style boot scheme (e.g. Open Firmware 3 models), then you would type something like the following: .Pp .(disp .No 0 \*[Gt] Ic "setenv auto-boot? true" .No 0 \*[Gt] Ic "setenv boot-device ide0/disk@0:8,\eofwboot.xcf" .No 0 \*[Gt] Ic "setenv boot-file ide0/disk@0:13,/netbsd" .No 0 \*[Gt] Ic "reset-all" .disp) .Pp The last command resets the system so that these settings are stored. .Pp If you are using a .Sq "partition zero" style boot scheme, you would type something like the following: .Pp .(disp .No 0 \*[Gt] Ic "setenv auto-boot? true" .No 0 \*[Gt] Ic "setenv boot-device scsi/sd@0:0" .No 0 \*[Gt] Ic "setenv boot-file netbsd" .No 0 \*[Gt] Ic "reset-all" .disp) .Pp Replace .Ic scsi/sd@0:0 with the actual device you will be booting from. .It .To 2 "Additional Open Firmware tips" .Em "Additional Open Firmware tips" .br If you find that your system tries booting before your hard drive has spun up, try one of the two following .Sq Li boot-command settings: .Pp .(disp .No 0 \*[Gt] Ic "setenv boot-command catch 5000 ms boot" .No 0 \*[Gt] Ic "setenv boot-command begin ['] boot catch 1000 ms cr again" .disp) .Pp Also, you may be able to pause a system at the Open Firmware prompt if you have .Sq Li auto-boot? set to .Sq Li true by holding down any key while the system is resetting. Set the following .Sq Li boot-command (this may not work on system with Open Firmware 1.0.5) (this method should interrupt booting, even when holding down any key while using a serial console): .Pp .(disp .No 0 \*[Gt] Ic "setenv boot-command key? invert if boot then" .disp) .It .To 2 "Booting NetBSD and MacOS X or Darwin" .Em "Booting NetBSD and MacOS X or Darwin" .br Alas, this takes a little more work. Usually, when you select a system to boot in the .Dq "Startup Disk" panel of the .Dq "System Preferences" application, it stores the Open Firmware path to that device in the .Sq Li boot-device variable. So, instead of writing the .Nx device path to Open Firmware, you'll store the paths to your operating systems in NVRAM. Open Firmware cannot deal with nested .Ic devalias entries. You must, therefore, enter the .Em entire path to your device. See the .Nx*M .Ic nvedit HOW-TO for more help: .Lk http://www.NetBSD.org/ports/macppc/nvedit.html .Pp .(disp .No 0 \*[Gt] Ic "printenv boot-device" boot-device /pci@f2000000/mac-io@17/ata-4@1f000/@0:10,\e\e:tbxi ok .No 0 \*[Gt] Ic "nvalias osx /pci@f2000000/mac-io@17/ata-4@1f000/@0:10,\e\e:tbxi" .No 0 \*[Gt] Ic "nvalias bsd /pci@f2000000/mac-io@17/ata-4@1f000/@0:9,ofwboot.xcf" .No 0 \*[Gt] Ic "nvstore" .No 0 \*[Gt] Ic "setenv use-nvramrc? true" .No 0 \*[Gt] Ic "reset-all" .disp) .Pp Now, when the system is reset, it will stop at the Open Firmware prompt and you can type one of the following to boot an operating system: .(disp .No 0 \*[Gt] Ic "boot osx" .No 0 \*[Gt] Ic "boot bsd" .disp) .It .To 2 "Booting NetBSD and MacOS 9 or earlier" .Em "Booting NetBSD and MacOS 9 or earlier" .br For Open Firmware 3 systems, the procedure is identical to the section above on .Sx "Booting NetBSD and MacOS X or Darwin" .Pp For older systems, you're in for more hassle. Booting an Open Firmware 1.0.5, 2.0.x, or 2.4 system into .Tn MacOS 9 or earlier will erase some or all of your Open Firmware settings. Try it and see which Open Firmware variables survive. .Pp If only .Sq Li real-base is lost, you can compile a kernel that does not require changing the .Sq Li real-base . Just build a kernel that is less than 4 MB uncompressed. This is easy if you remove all of the USB devices from the config file. Once you've got a smaller kernel, just follow the procedure in the section above on .Sx "Booting NetBSD and MacOS X or Darwin" .Pp If everything is lost when you boot into .Tn MacOS 9 or earlier, you will need to make a custom BootVars configuration that you run before trying to boot .Nx*M since System Disk does not preserve enough information when it saves a configuration. .(enum If your system supports System Disk, run it and click .Dq Save to install the NVRAMRC patches. .It Run BootVars, click the .Dq "All Variables" button. .It Fill in .Sq Li real-base , .Sq Li boot-device , .Sq Li boot-file , .Sq Li input-device , and .Sq Li output-device . .It From the .Dq File menu, pick .Dq Save . When you run this file, it will load BootVars with all your settings. To boot .Nx click the .Dq "Write&reboot" button. .It Now your system will always boot .Nx . To boot .Tn MacOS , use the .Xr shutdown 8 command to halt the system at the Open Firmware prompt and use the Open Firmware .Dq Li bye or .Dq Li mac-boot command to boot .Tn MacOS . .enum) .It .To 2 "Other boot techniques" .Em "Other boot techniques" .br See the FAQ for some vague information on how to use the Linux .Ic yaboot system to boot .Nx . .Lk http://www.NetBSD.org/ports/macppc/faq.html#yaboot .bullet)