NetBSD/macppc Frequently Asked Questions

General problems and questions

Supported Hardware

Open Firmware

Booting

Booting problems

Misc


General problems and questions

Introduction

Here are some frequently asked questions (and answers) about NetBSD/macppc.

This FAQ is very much a work in progress. If you have additional information, questions, or answers, send mail to port-macppc@NetBSD.org.

See also the following related information:

Additional information is also available:

Help, I can't boot NetBSD!

Unfortunately, there are several causes of this problem. It's actually rather more common than we'd like, but is primarily due to the variety of machines that we support and all the undocumented changes Apple made along the line.

First, check to make sure your model is supported. Next, did you really read through the INSTALL notes and ignore the instructions for Open Firmware versions other than your model? Next, read through this FAQ entry, and if you still can't make your machine boot into NetBSD, post to port-macppc@NetBSD.org.

Look at the messages below to determine which problem you are encountering.

Open Firmware, 1.0.5
To continue booting the MacOS type:
BYE<return>
To continue booting from the default boot device type:
BOOT<return>
 ok
0 > 

If you don't see this message on screen (or serial console), then you haven't properly entered Open Firmware. If your machine starts to boot Mac OS (i.e., the screen turns grey and a happy mac, broken folder, or flashing question mark appears), then skip down to the section called “How do I get to the Open Firmware prompt?”. If your screen stays black and you have an older mac, see the section called “I tried to get into Open Firmware, but it just stopped booting, and my monitor isn't showing anything.”. If your screen is all weird, then see how to fix the the section called “My monitor doesn't always sync when I enter Open Firmware”. If you entered some bad Open Firmware settings and it doesn't enter Open Firmware or boot Mac OS anymore, you may need to read the section called “How do I clear a corrupt Open Firmware?”.

OK, now Open Firmware has started and is ready for user commands if you set it to stop at the Open Firmware prompt (the "0 >"). If you specified that it not stop, Open Firmware tries to boot using the settings you previously supplied (the Open Firmware variables boot-command, boot-device, and boot-file). See the section called “What can I do at the Open Firmware prompt?” for help using the Open Firmware command line interface.

The next step is usually the trickiest — getting Open Firmware to load the bootloader from the correct location. See what boot methods are supported (the section called “What are the supported ways of booting NetBSD/macppc?”), Open Firmware boot commands (the section called “How do I make a disk bootable, and what are the Open Firmware commands to boot from it?”), and some common Open Firmware booting problems (the section called “Common Open Firmware Booting Problems”). Questions related to netbooting are covered in the Diskless HOW-TO, particularly in the macppc-specific section, and the section called “Common netboot problems”.

0 > boot enet:,ofwboot.xcf file: 192.168.0.11,/ofwboot.xcfloading 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..

If there are memory addressing issues, it might stop and print CLAIM failed (see the section called “CLAIM failed).

>> NetBSD/macppc OpenFirmware Boot, Revision 1.3
>> (tsubai@mint.iri.co.jp, Sun Nov 26 01:41:27 JST 2000)
1701508+177748 [100+68176+55886]=0x1e9468

If it hangs here, then you need to set the real-base (described in the section called “What's the deal with the "real-base" setting?”) of your Open Firmware 1.0.5 or 2.0.x machine. If you get several READ TIMEOUT@ messages (described in the section called “READ TIMEOUT@), then Open Firmware is having trouble reading your floppy disk. If you get past this point, then your kernel has started to load. Now, if you have problems, it is most likely no longer an Open Firmware problem, but a NetBSD problem.

If your screen turns black, and you have a laptop, the LCD brightness may have been turned down all the way. See the section called “Why did my screen turn black during boot?”.

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.5S (AL) #0: Thu Mar 15 00:52:56 PST 2001
    mw@al:/usr/src/sys/arch/macppc/compile/AL
total memory = 192 MB
avail memory = 172 MB
using 2483 buffers containing 9932 KB of memory
[...]
boot device: sd0
root on sd0a dumps on sd0b
root file system type: ffs

Sometimes the kernel can't figure out where it was booting from. You may need to build a kernel with the root device hard-coded; see the section called “Why does the kernel always prompt me for the root device?”.

If your system hangs here and you have a PowerBook, then read the section called “Are PowerPC-based PowerBooks supported?”.

swapctl: adding /dev/sd0b as swap device at priority 0
Automatic boot in progress: starting file system checks.
[...]

OK, now you've started in "multi-user mode" and the boot process is complete. If your keyboard doesn't work, see the section called “Are PowerPC-based PowerBooks supported?”.

If you're running sysinst and it says I can not find any hard disks for use by NetBSD then you should see the section called “Where's my disk? (a.k.a. sysinst says I can not find any hard disks for use by NetBSD)”.

Help, I don't know anything about Mac OS!

This may or may not be a problem depending on your model. Some older models require nvram patches before they can boot NetBSD/macppc. Often, the easiest way to add these patches is by using a Mac OS utility. If you don't know the basics (such as to use StuffIt Expander to extract a BinHex file, how to start a Mac OS app, or even how to copy files in the Mac OS Finder), you're probably better off trying to avoid using Mac OS (unless you want to learn!).

There are ways that unix-heads can set things up easily that would pain the most experienced Mac OS user. This FAQ entry is aimed at such unix-heads, since the INSTALL notes are aimed at people with Mac OS experience and minimal unix background.

If you have an Open Firmware 3 system

If you want NetBSD entirely contained on one hard drive, there are two approaches. By far the easiest is to briefly boot Mac OS, use a Mac OS utility or pdisk to repartition your disk, then copy the bootloader ofwboot.xcf to an HFS partition. See the Partitioning HOW-TO.

For those unable or unwilling to use Mac OS, you still must boot an operating system to partition your disk. There are at present three open source OSes you could use (NetBSD, Darwin, and Linux). Partition using the NetBSD pdisk, create the HFS filesystem, and copy ofwboot.xcf to the HFS partition.

  • Boot NetBSD, use pdisk to partition, and use hfstools to format the partition and copy the bootloader.

  • Boot Darwin (Apple's open source BSD), partition with the NetBSD pdisk (not the native Darwin pdisk), and run the following commands (using the correct disk and partition numbers, of course):

    # newfs_hfs /dev/disk0s3
    # mkdir -p /mnt
    # mount /dev/disk0s3 /mnt
    # cp ofwboot.xcf /mnt
  • Boot Linux and partition using the NetBSD pdisk (not the native Linux pdisk). Some distributions come with HFS filesystem capabilities built-in. Mail port-macppc@NetBSD.org if you can provide a little more detail here.

If you're willing to compromise a bit, you can permanently keep ofwboot.xcf on a netboot server, an ISO 9660 CD-R, or an MS-DOS disk (you'd set your boot-device to the bootloader location, and your boot-file to the path to your kernel). See info on the section called “The Open Firmware variables of interest”.

If you have an earlier, Open Firmware 1.0.5, 2.0.x, or 2.4 system

Things get a little more interesting here, since many of these models default to using a serial console (see the section called “How do I figure out my input-device and output-device?”). The quick easy way to determine your model's default console type is to power on the machine, and during the chime, hold down the four Command-Option-O-F keys until the screen turns black, grey, or white. Black means either bad hardware or a serial console. Grey means that you didn't successfully enter Open Firmware and it's trying to boot Mac OS. White (with text) means the default is a local console.

Once you've got the 0 > Open Firmware prompt on your screen or serial console, you can try installing NetBSD starting at the "Getting to the Open Firmware Prompt (Without using Mac OS)" section in the INSTALL notes. If your system can't boot NetBSD, then post to port-macppc@NetBSD.org asking someone to mail you the nvram patches for your model. You can use your serial console to paste the nvram patches into Open Firmware. See the NetBSD/macppc nvedit HOW-TO for help with this step. Once you do this, you should be golden.

Good luck!

How do I share files between the OSes on my machine?

See the Partitioning HOW-TO.

Explaining the partition naming schemes

See the Partitioning HOW-TO.

Why does the screen scroll text so slowly?

The text console code is not optimized in the GENERIC kernel. Accelerated text console code exists, but it is not enabled by default.

You will need to build a new kernel. Add the following line to your kernel configuration:

options OFB_ENABLE_CACHE

For information on X11 servers, see the NetBSD/macppc X11 FAQ.

My USB mouse is not recognized

Try plugging it into the back of the Mac instead of into the keyboard.

Ethernet isn't working

Aside from the usual sorts of problems (such as cables and configuration), NetBSD/macppc seems to have a problem using network interfaces if the date stored in the PRAM is too old (such as if your system has lost power or gotten reset in such a way that the date is set to 1904 or 1956). The symptom is that ifconfig doesn't complain, but no packets are sent or received.

% ping 10.0.1.1
PING 10.0.1.1 (10.0.1.1): 56 data bytes
^C
----10.0.1.2 PING Statistics----
0 packets transmitted, 0 packets received,
The solution is to use date(1) to set the time correctly.

My PowerBook or iBook won't power on, charge the battery, or recognize the charger

Your power manager memory might be corrupted.

See TIL 14449 for info on how to reset it.

My PowerComputing clone's clock drifts too much.

It appears that the timebase in Open Firmware doesn't match the hardware. You need to correct it.

See this post by Adam Lebsack.

Why does the kernel always prompt me for the root device?

Various people have reported that they can't get their NetBSD/macppc systems to boot unattended. What happens is that Open Firmware loads the kernel just fine, but the kernel can't seem to find the root device (i.e., where the / filesystem is located).

At the prompt, type in the device name for your root disk (usually something like sd0a or wd0a), swap (usually something like sd0b or wd0b), and filesystem type (usually ffs, nfs, or cd9660).

Until this situation is fixed, there is a workaround. You need to build a kernel with the following setting:

#config		netbsd	root on ? type ? #to automatically detect root device
config		netbsd	root on sd0a type ffs #for SCSI disk
#config		netbsd	root on wd0a type ffs #for IDE disk
#config		netbsd	root on ? type nfs #for netboot

where sd0a is the name of the partition with your root filesystem.


Supported Hardware

NetBSD/macppc supported models

See the NetBSD/macppc supported models list. Also, see the list of supported peripherals in the section called “What peripherals are supported?”.

Are NuBus-based Power Macs supported (7100, 8100, etc)?

No. NetBSD/macppc doesn't support NuBus. In addition,the NuBus-based Power Macs don't have Open Firmware, which NetBSD/macppc depends on heavily for bootstrapping and console operations.

There are four groups of NuBus based Power Macintosh machines:

  • Apple PDM: Any x1xx machine, e.g., 6100, 6150, 7100, 8100.

  • Apple PERFORMA class: 52xx, 53xx, 62xx, 63xx (except 6360).

  • Apple POWERBOOK (or 'M2') class: 1400, 2300, 5300.

  • Power Computing "Power" series, such as the "Power 100" and "Power 120".

These systems won't work even if you upgrade the processor to a G3, because the remaining hardware is still unsupported. (But if you get a complete logic board upgrade, they will work, because they then essentially become a new machine.)

At the current time, we don't know of anyone working on supporting these systems. If you are interested in trying to get one of them working, let us know!

We already have support for the 603 microprocessor. We have support for the motherboard chipsets in NetBSD/mac68k. It's just a matter of sharing these drivers and figuring out a bootloader that's compatible with the Open Firmware method of booting the currently supported macppc models. See David A Gatwood's post for suggestions on where to start and what needs to be done.

Are 68k-based Macs with PowerPC processor upgrades supported?

No, for the same reasons as above. (This applies only to processor upgrades. If you upgrade the whole motherboard, it essentially becomes a new machine, in which case it may be supported.)

Are the Power Macintosh 7200 or 7500 supported? (601 processor)

Yes, support was added in NetBSD 7.0. These machines have PCI and Open Firmware, but use the PowerPC 601 processor. The 7500's processor is upgradable, so if you buy a 603/604/G3/G4 upgrade for it, NetBSD will also work. See the section called “Are PowerPC CPU upgrades supported?”.

Are PowerPC-based PowerBooks supported?

Most of them are. See the NetBSD/macppc supported models list for details.

The PowerBook 1400, 2300, and 5300 are not supported because they do not have Open Firmware.

Note that power management is not yet supported, so it is not possible to suspend and resume a PowerBook while running NetBSD.

See also the section called “My PowerBook or iBook won't power on, charge the battery, or recognize the charger”.

Are PowerPC CPU upgrades supported?

Sure!

Many people upgrade their slow 601, 603, 604, or G3 CPUs with a faster 604, G3, or G4 CPU.

People have reported success with upgrading the CPU in original PCI PowerMacintosh systems (7300 - 9600), supported PowerBooks, and earlier G3 systems. The common manufacturers are Newer Technology, Powerlogix, Sonnet, and XLR8. If the CPU works in Mac OS, it should work in NetBSD.

Some users have reported that their system won't boot NetBSD if a new CPU is installed into the early PCI PowerMacintosh systems (7300 - 9600). If you find that this is the case (i.e., you downgrade to a 604 and NetBSD works), then you may need to boot Mac OS once to install the nvramrc patches for your CPU daughtercard. From this point on, you should not use System Disk, as it will install its own nvramrc, overwriting your CPU manufacturer's nvramrc. Use Boot Variables instead. This will mean that your monitor may not sync if you are using the built-in /chaos/control in PowerMacintosh 7300 - 8600 models; see the section called “My monitor doesn't always sync when I enter Open Firmware”.

Other models will not need the Mac OS "virtual firmware" type of patch — NetBSD initializes the CPU just fine.

Unfortunately, the Metabox Jocard G4 has some problems. See Thomas Michael Wanka's post on this topic.

For some combinations of CPU upgrade in a particular model, you may need to compile a special kernel to enable the L2 cache on G3 or G4 CPUs in older systems. Usually this is not necessary, and it "just works". When it doesn't, you'll see a message like the following:

cpu0 at
mainbus0: L2 cache not enabled

If, when you boot, there is a message like this, then you should follow the directions in this post and this post.

If your L3 cache is not enabled by default, then follow the directions in this post.

What peripherals are supported?

The NetBSD/macppc 9.3 Install Notes have a full list of supported hardware in the section "Supported devices". Unless otherwise specified, third-party devices (such as PCI and cardbus cards) cannot be used to boot NetBSD/macppc.

  • CPU

    • PowerPC 601, 603, 604, G3, and G4 (and variants of each): See the section called “Are PowerPC CPU upgrades supported?”.

    • Support for multiprocessor CPU cards is available. You will need to use a GENERIC.MP kernel or add "options MULTIPROCESSOR" to your kernel configuration. Without these options, NetBSD will only use one CPU.

  • Ethernet

    • On-board 79C950 (MACE) ethernet (mc)

    • On-board bmac ethernet, 10Base-T only (bm)

    • On-board gmac ethernet (gem)

    • On-board AirPort (a.k.a. AirMac) (wi): See the section called “How do I use my AirPort or AirMac network?”.

    • PCI, PCMCIA, CardBus, and USB ethernet devices (tlp, epic, ex, fxp, rtk, vr, ne, aue, cue, and kue): such as Asante, Farallon, SMC, 3Com, Intel, RealTek, D-Link, NE2000, and other compatible devices

  • SCSI

    • On-board 53c94 SCSI controller (esp).

    • On-board MESH SCSI controller (mesh).

    • Adaptec / Future Domain PCI SCSI (ahc): Many Adaptec cards have Macintosh firmware on them and can be used to boot NetBSD/macppc. See the section called “How do I boot from a device attached to a PCI card?”.

    • Advansys 1200[A,B] 9xx[U,UA] PCI SCSI (adv).

    • AMD 53c974 (pcscp).

    • Apple 53c875 Ultra Wide SCSI (in some Beige G3 models) (siop): May need firmware update to boot NetBSD. Use the Mac OS X SCSI Card Updater.

    • NCR/Symbios 53c8xx (siop)

  • IDE

    • On-board IDE controllers (wdc)

    • Promise Ultra66 (pciide)

    • Acard ATP-850/860 controllers (such as Sonnet Tempo ATA/66 and Acard AEC-6210/6260) (pciide)

  • Input devices

    • Most ADB keyboards, mice, trackballs, and trackpads.

    • Most USB keyboards, mice, trackballs, and trackpads.

    • Most PS/2 keyboards, mice, and trackballs (middle button on 3-button mice may not work).

  • Video (see the section called “How do I figure out my input-device and output-device?”)

    • On-board video on most models (ofb): Some models are not able to boot NetBSD/macppc when using their on-board video.

    • PCI video cards with Open Firmware support (ofb): ATI, IMS, Matrox, and NVIDIA have models that support Open Firmware.

  • Audio

    • On-board AWACS audio on most models (experimental — disabled by default due to interrupt conflicts with some G4 models) (awacs).

    • USB audio (uaudio).

    • PCI audio cards, although only the Ensoniq AudioPCI (eap) has been thoroughly tested.

  • Serial. NetBSD/macppc refers to the on-board serial ports as tty00 and tty01. Open Firmware uses the names listed below.

    • On-board RS-422 serial ports (modem port is ttya and printer port is ttyb): On-board Serial support is very poor and may cause your system to hang. See the section called “I'm having troubles using my serial port!”.

    • On-board RS-232 Xserve serial port: Can be used as a serial console

    • Gee Three Stealth Serial Port and Griffin Technology gPort: These replace the internal modem on desktop G3 and G4 models and can be used as serial consoles.

    • USB, PCI, and CardBus-based serial ports.

  • USB devices

  • PCMCIA and CardBus cards

  • PCI cards

NetBSD/macppc does not yet support:

  • Floppy drives (built-in or USB), other than for booting.

  • Power management.

  • Full wscons capabilities such as virtual terminals and color text.

  • Common FireWire (IEEE 1394) devices, such as disks, CD-RWs, and scanners.

  • On-board video capture.

  • AirPort Extreme.

I'm having troubles using my serial port!

That's because the built-in serial ports don't work very well. Actually, they're really only good enough for console use (and even then, they're sometimes flaky).

Until someone fixes this, don't assume you can run a modem, ppp, sync your palm, or whatever. If you have any experience with serial drivers and a willingness to help, please contact port-macppc@NetBSD.org.

How do I get ppp working?

Ouch. Unfortunately, since the built-in serial ports don't work, there are a few bugs in the ppp drivers that haven't been quashed.

See Donald Lee's post on how he got his Cyclades PCI card to run ppp.

How do I use my AirPort or AirMac network?

AirPort Extreme is not currently supported.

Briefly, what you need to do is set up your wireless card to use DHCP to find its IP address, and set up the correct media type (typically DS11), and the correct network (with the nwid parameter). For example, to connect to my closed AirPort Base Station, I have the following in /etc/rc.conf:

ifconfig_wi0="nwid Gizmonet media DS11"
dhclient=YES
dhclient_flags="wi0"

Each time I reboot, the AirPort card looks for a base station serving the Gizmonet and asks it for an IP address.

You can find more information in ifconfig(8), wiconfig(8), wi(4) and ifmedia(4). Additionally, see the Using WaveLAN IEEE under NetBSD page.

If your AirPort base station was set up under Mac OS and you use encryption, you may need to run the AirPort Admin Utility, configure your base station, and find the equivalent network password. Please see www.info.apple.com for details on how to use Apple's AirPort Admin Utility.


Open Firmware

What is Open Firmware, and why do I care?

Briefly, it is a command environment using the FORTH language which the NetBSD kernel uses to gether information about your system, and to control some of your devices. It is part of the boot ROMs in most PowerPC-based Macintosh systems, and we use it to load the kernel from disk or network.

Open Firmware, as specified by "IEEE Std 1275-1994: IEEE Standard for Boot Firmware (Initialization Configuration) Firmware: Core Requirements and Practices" and its supplements, is a platform-independent boot firmware. It is based on Sun's OpenBoot firmware, and uses ANS Forth as a processor-independent interface language.

You can find more about Open Firmware at the Open Firmware Working Group home page or at the Apple Computer Open Firmware Home Page. Also, Apple has some nice Technical Notes available, such as 1061.

Which version of Open Firmware does my machine have?

Look at the Model Support page. If your machine isn't listed, you can find out from within Open Firmware. From the Open Firmware prompt (see the section called “How do I get to the Open Firmware prompt?” and the section called “What can I do at the Open Firmware prompt?”), type:

0 > dev /openprom
0 > .properties
name                    openprom
device_type             BootROM
model                   OpenFirmware 3
relative-addressing
supports-bootinfo

 ok

Alternatively, any machine which did not ship with a G3 or G4 processor is either Open Firmware 1.0.5 or 2.0.x. All desktop models without an internal floppy drive have Open Firmware 3. All laptop models without built-in SCSI have Open Firmware 3.

Note

Open Firmware 3 systems have a rewritable "firmware", also called the BootROM. It's easy to get the BootROM version confused with the Open Firmware version. When you use an Apple firmware updater, it updates the BootROM. This will not change the version of Open Firmware in your machine — it will still be Open Firmware 3. The BootROM is what is first executed when you power on or reset your system. The BootROM then loads Open Firmware, which boots your operating system.

This BootROM version can be found using Apple System Profiler in Mac OS. Often, it is listed on the first line of your screen when you first boot into Open Firmware. For example, my PowerBook (FireWire) prints:

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.
[...]

indicating that the BootROM version is 2.1f1.

Are there bugs in my machine's Open Firmware implementation?

Probably. The NetBSD/macppc 9.3 Install Notes describe how to patch or upgrade your Open Firmware to work around these bugs. See the section on "Updating your BootROM" for Open Firmware 3 systems, and the section "Older Open Firmware System Preparation" for systems with Open Firmware 1.0.5, 2.0.x, and 2.4.

How do I get to the Open Firmware prompt?

Read the NetBSD 9.3 install notes. In particular, scroll down to the section on "Getting to Open Firmware" for your particular version of Open Firmware.

For the lazy, you can use Apple's System Disk to set your machine to always boot into Open Firmware. See the brief tutorial on how to do this.

I tried to get into Open Firmware, but it just stopped booting, and my monitor isn't showing anything.

You didn't read the NetBSD 9.3 install notes. In particular, scroll down to the section on "Getting to the Open Firmware Prompt on Older Models". It's a bit lengthy, but very clear in describing the proper steps to set up Open Firmware.

Briefly, all Open Firmware 1.0.5 and most Open Firmware 2.0.x systems will default to using the `Modem' serial port for the console instead of the ADB keyboard and the monitor attached to the on-board video. Unless you use a Mac OS-based utility to set these variables correctly, you will need to hook up a serial console temporarily to set them before you can use your keyboard and screen.

Open Firmware seems to ignore the settings on most DB15 to VGA adapters. Depending on your model, it will default to either 640 x 480 at 60 Hz or to the resolution previously selected in Mac OS. Make sure that your monitor can handle these resolutions.

If you think you have set your system up correctly using System Disk and you're using a PowerMacintosh 7300 - 8600 model, then you may need to apply the additional patches for your /chaos/control on-board video to sync properly (see the section called “My monitor doesn't always sync when I enter Open Firmware”).

If you're using a Performa 5500 or 6500, you may need to apply some NVRAMRC patches to use your on-board video. See the footnote on that model.

See also the section called “How do I figure out my input-device and output-device?”.

How do I use a PCI video card?

This section describes how to tell Open Firmware to use your PCI-based video card, whether you purchased it separately from your computer, or it came with it. Some models of Macintosh and some clones shipped without an on-board video interface (see the NetBSD/macppc Model Support page for more info). These models shipped with a video card in one of the PCI slots.

In all cases, your video card must have Open Firmware support on it.

Open Firmware uses a different device path depending on the model of the card and the PCI slot it is located in. You will need to figure out what the path is to your video card, and how to tell Open Firmware to use it.

  1. Get to the Open Firmware prompt (the 0 > prompt); see the section called “How do I get to the Open Firmware prompt?”.

    Older models may need to use a serial console initially.

  2. If this is your first experience with Open Firmware, you might want to read the section called “What can I do at the Open Firmware prompt?”.

  3. 0 > dev / ls

    This will list all of the devices present in your system. Look for something matching your video card. For example, part of the listing from a PowerMacintosh 9500/150 is:

    0 > dev /
    0 > ls
      [...]
    FF8313F0: /bandit@F4000000
      [...]
    FF83F8A0:   /ATY,mach64@D
      [...]
     ok

    Typically, if a card has Open Firmware support, it will list a four character vendor ID similar to the vendor's name (such as ATY for ATI, IMS for IMS, and ADPT for Adaptec), and a string describing the model of the card. The "@" sign separates the card name from its address in the computer.

    Now, note that the /ATY,mach64@D entry is indented below the /bandit@F4000000 entry. This means that the bandit device contains the ATY device. In this case, /bandit@F4000000 is Open Firmware's name for the PCI bus, and the ATI card is located on the PCI bus.

  4. Therefore, /bandit@F4000000/ATY,mach64@D is this card's path in the Open Firmware device tree. Now, to confirm if it really supports Open Firmware, type the following:

    0 > dev /bandit@F4000000/ATY,mach64@D
    0 > words

    If the word open is among those listed, then chances are very high that your card should work.

  5. Now, you'd want to type the following to set up a Mach64 card to be the Open Firmware output device in your system:

    0 > setenv output-device /bandit@F4000000/ATY,mach64@D
    0 > reset-all

If the monitor attached to your video card stays black after the computer resets, then there was a problem (possibly you mistyped the path to the card or the card doesn't really support Open Firmware).

My monitor doesn't always sync when I enter Open Firmware

This is a problem with the PowerMacintosh 7300 - 8600 machines, wherein the video signals do not settle quickly enough. You should apply the patches for Open Firmware 1.0.5.

If you have a Twentieth Anniversary Macintosh, there is no known solution. See this post describing the issues. At this time, no one has reported a successful install onto a TAM, although this should be possible by setting the input and output devices to ttya with System Disk and connecting a serial cable to another machine running a terminal emulator.

How do I clear a corrupt Open Firmware?

If you have an Open Firmware 3 model and you've changed settings such that you can't even get to the Open Firmware prompt or boot Mac OS, then you may have corrupted the BootROM (such as with a bad load-base or real-base; see the section called “What's the deal with the "load-base" setting?” and the section called “What's the deal with the "real-base" setting?”). You may need to get Apple to re-flash your BootROM firmware.

If you have an earlier model (Open Firmware 1.0.5, 1.1.22, 2.0.x, 2.4), then you will need to unplug your machine from the AC mains (110 or 220 V) and remove the battery from the motherboard. It may take some time (hours) for the charge stored in the power supply to drain and the NVRAM to clear. To speed up the process you might try pressing the power button. More riskily (i.e., do at your own risk) you can try connecting the battery backwards in the socket or shorting the terminals with a resistor.

Don't forget to set the date!

Help, I can't type the backslash \ key in Open Firmware!

Unfortunately, even if Mac OS and NetBSD understand your non-US keyboard, Open Firmware typically doesn't. That means that some non alphanumeric keys may not correspond to what character is printed on the keys.

A simple, but awkward solution is to use the hexadecimal representation of the character you want to use. Enclose the entire command in double-quotes and replace the character with its hex code preceeded by a double-quote and enclosed in parenthesis. For example backslash is replaced by "(5C). After the command in quotes you need to have the FORTH commands to either display your converted string, or to execute it. To display, use cr type cr. To execute, use evaluate And make sure you include the single space between the enclosing double-quote and the start of the command.

0 > " setenv boot-device hd:,"(5C)ofwboot.xcf" cr type cr
setenv boot-device hd:,\ofwboot.xcf
 ok
0 > " setenv boot-device hd:,"(5C)ofwboot.xcf" evaluate
0 > 

More permanently, you can reprogram Open Firmware (using nvedit) using the instructions at the PLForth page.

What can I do at the Open Firmware prompt?

You can configure various properties of your system related to booting. This table merely describes some common commands.

Table 1. Common commands

Command name Comment
dev device changes to current device in Open Firmware device tree (similar to cd in a filesystem)
unselect-dev returns to original state of having no device selected (usually not necessary)
ls lists the devices below the current node in the device tree (similar to ls in a filesystem)
pwd lists the location of the current node in the device tree (similar to pwd in a filesystem)
words lists the FORTH commands available at the current node in the device tree. To boot, a device must have at least the word "open"
.properties lists the properties of the current node in the device tree
printenv prints the current and default values of the settings in the Open Firmware environment
setenv variable value sets a new value for a particular Open Firmware variable. See the section called “The Open Firmware variables of interest”.
set-default variable sets variable to its default value. See the section called “The Open Firmware variables of interest”.
boot boot-device boot-file loads and runs a program boot-file on boot-device; we use it to load ofwboot (the "partition zero" bootloader) or ofwboot.xcf and then the NetBSD kernel
dir device print a listing of the files on a particular device (the same as ls in unix); see the section called “How do I get a listing (in Open Firmware) of the files on my disk?”
eject fd eject a floppy disk
reset-all permanently store the Open Firmware environment variables and reboot the computer
shut-down permanently store the Open Firmware environment variables and power down the computer
bye Boot Mac OS on an Open Firmware 1.0.5, 2.0.x, or 2.4 system
mac-boot Boot Mac OS on an Open Firmware 3 system
devalias alias device modify or create an alias to a device (similar to alias in csh and its variants). With no options, it lists all current device aliases
nvalias alias device permanently modify or create an alias to a device (similar to alias in csh and its variants). With no options, it lists all stored device aliases

Additionally, here are a few handy keystrokes for effective Open Firmware use:

Table 2. Open Firmware keystrokes

Keystroke Function
Backspace delete back one character
Delete delete back one character
^h delete back one character
^d delete forward one character
Enter send line to FORTH parser
^b move back one character (same as left arrow key)
^f move forward one character (same as right arrow key)
ESC b move back one word
ESC f move forward one word
^a move back to beginning of line
^e move forward to end of line
ESC h delete and save back to beginning of word
^w delete and save back to beginning of word
ESC d delete and save forward to end of word
^k delete and save forward to end of line
^u delete and save entire line
^r retype line
^q quote next character
^y insert saved characters before cursor
^p previous line in history (same as up arrow key)
^n next line in history (same as down arrow key)
^l display history
^space if word so far has a unique completion, complete it. if word so far has several completions, fill in as many characters as possible. if word so far has no completions, erase characters until there is at least one completion
^/ show completions (maybe none) for word so far
^? show completions (maybe none) for word so far
^@ same as ^space (Apple-specific)
^o same as ^/ (Apple-specific)
^\ same as ^b (Apple-specific)
^] same as ^f (Apple-specific)
^^ same as ^p (Apple-specific)
^_ same as ^n (Apple-specific)

Also see the NetBSD/macppc nvedit HOW-TO, the Apple Network Server 500,700: Open Firmware Read Me technote, the Apple Computer Open Firmware Home Page "Technote 2001 - Running files from a hard drive in Open Firmware, and the Open Firmware Working Group home page.

The Open Firmware variables of interest

These are variables that are used by and stored in Open Firmware that affect booting. Use the printenv, setenv, and set-default commands to modify these variables (see the section called “What can I do at the Open Firmware prompt?”), or use the Mac OS SystemDisk utility (see the tutorial). Use the commands in the NetBSD/macppc nvedit HOW-TO to modify the information in the nvramrc variable. Alternatively, you can hack System Disk with ResEdit. Look in the OFtc resource to determine which ID System Disk uses for your model. Then edit the appropriate OFpt resource.

Make sure that you permanently store your settings after you are done modifying them, by typing:

0 > reset-all

Table 3. Common variables

Variable name Typical value Function
auto-boot? false If false, stops at Open Firmware prompt when computer is reset. If true, executes boot-command boot-device boot-file
use-nvramrc? true If true runs commands in variable nvramrc
real-base depends on Open Firmware version Kernel memory location. See the section called “What's the deal with the "real-base" setting?”.
load-base depends on Open Firmware version bootloader memory location. See the section called “What's the deal with the "load-base" setting?”
boot-device depends on configuration. See ofwboot(8) for suggestions Device from which to load primary bootloader
boot-file depends on configuration. See ofwboot(8) for suggestions kernel location
input-device depends on hardware. See the section called “How do I figure out my input-device and output-device?” for suggestions ADB keyboard, USB keyboard, or serial console
output-device depends on hardware. See the section called “How do I figure out my input-device and output-device?” for suggestions On-board video, PCI video, or serial console
nvramrc entered by System Disk If use-nvramrc? is set to true, these FORTH commands will be run when the computer is reset
boot-command boot If auto-boot? is true, this command will be executed when the computer is reset

Note

Zapping your PRAM with Command-Option-P-R will erase any settings you have made to these Open Firmware variables.

Booting your Open Firmware 1.0.5 system into Mac OS will erase any settings you have made to these Open Firmware variables.

In some extreme cases, you may have messed up your Open Firmware settings such that your system won't boot anymore. Zapping the PRAM doesn't fix it. In this case, you will need to unplug your system and remove the battery from your motherboard for about 10 minutes. On a PowerBook, resetting your power manager is equivalent.

What's the deal with the "load-base" setting?

The Open Firmware environment variable load-base is the address at which Open Firmware loads the bootloader from your boot-device. The behavior is different for the various versions of Open Firmware and boot-devices. The symptom of an incorrectly set load-base is a CLAIM failed message (see the section called “CLAIM failed).

Open Firmware 3

Do not change load-base. Open Firmware 3 machines have re-writable firmware, and users have found that changing the load-base has overwritten their flash BootROM, rendering their machines dead (requiring an expensive trip back to Apple). Do not change load-base on an Open Firmware 3 machine. Apple has fixed Open Firmware 3 such that you needn't change load-base to boot.

Open Firmware 1.0.5, 1.1.22, 2.0.x, and 2.4

The default value of load-base on these systems is 4000, which isn't very good for our purposes. System Disk sets load-base to 600000, which is what we use. mkLinux uses a different value, which may prevent you from booting NetBSD/macppc. If you're using NetBSD 1.5.2 or earlier, read the old FAQ entry on load-base.

Once you are entirely positive that your machine has Open Firmware 1.0.5, 1.1.22, 2.0.x, or 2.4 (see the section called “Which version of Open Firmware does my machine have?”), run the following commands to set your load-base properly:

0 > setenv load-base 600000
0 > reset-all

You should double-check that this value has been set using the printenv command.

What's the deal with the "real-base" setting?

The Open Firmware environment variable real-base is the address OpenFirmware uses for itself. The default value of real-base might be -1 (0xffffffff), but it will cause problems because OF 1.0.5 and 2.x machines use 0x400000 if real-base is the default value. The kernel is loaded to the address 0x100000 by default, so the problem occurs when you try to load a kernel larger than about 3 MB.

Open Firmware 3 machines have re-writable firmware, and users have found that changing real-base will overwrite their firmware, rendering their machines dead (requiring an expensive trip back to Apple). Do not change real-base on an Open Firmware 3 machine. Open Firmware 3 does a much better job of dealing with large kernels, so this is not really an issue.

Once you are entirely positive that your machine has Open Firmware 1.0.5, 2.0.x, or 2.4 (see the section called “Which version of Open Firmware does my machine have?”), run the following commands to set your real-base properly (note, System Disk will not set this variable properly — you will need to re-set your real-base after each use of System Disk):

0 > setenv real-base F00000
0 > reset-all

You should double-check that this value has been set using the printenv command. If you set wrong value here, it might make your machine no longer boot (see the section called “How do I clear a corrupt Open Firmware?” to recover from it).

A workaround for this problem is to build a kernel that is less than 3 MB in size. Since none of the Open Firmware 1.0.5, 2.0.x, or 2.4 models have built-in USB, you can build a kernel without any USB drivers (unless you have a PCI USB card).

How do I figure out my input-device and output-device?

This depends entirely on what devices you want use to interact with Open Firmware (and thus NetBSD/macppc), as well as the version of Open Firmware you are using and the hardware you are using.

Once you figure this out, you will need to set these values and store them. See the section called “How do I get to the Open Firmware prompt?” and the section called “What can I do at the Open Firmware prompt?” for help getting started in Open Firmware. Briefly, you'll want to run the following three commands (where in-device and out-device are what you chose to use):

0 > setenv input-device in-device
0 > setenv output-device out-device
0 > reset-all

Alternately, to immediately change your input and output devices without permanently storing the changes, run the following two commands (make sure to put the space after the first quotation mark):

0 > " out-device" output
0 > " in-device" input
Open Firmware 1.0.5, 2.0.x, or 2.4 using a keyboard and monitor (or built-in LCD)

By default, most of these models default to a serial console (which is why many novice users find that when they boot into Open Firmware, their monitor stays black). Additionally, some of these models have troubles using the on-board video device in Open Firmware (and in NetBSD/macppc). For these troublesome systems, your only options are a PCI video card or a serial console.

Go to the NetBSD/macppc Model Support Page and look up your model. It should list an output-device for your system. If there is no output-device listed, then you should use screen.

See also the section called “How do I use a PCI video card?” for suggestions on figuring out your output-device.

For all these systems, the input-device for an ADB or built-in keyboard is kbd.

Open Firmware 3 using a keyboard and monitor (or built-in LCD)

By default, all of these systems default to using the USB or built-in keyboard and the on-board video or built-in LCD. You shouldn't have to do anything.

See also the section called “How do I use a PCI video card?” for suggestions on figuring out your output-device.

The default values are input-device is keyboard (using the built-in or USB keyboard), and output-device is screen (using the built-in LCD, screen, or on-board video interface).

Open Firmware 1.0.5, 2.0.x, or 2.4 using a serial console

Open Firmware calls your computer's "modem" serial port ttya, and its "printer" serial port ttyb. Some systems have an internal modem (such as the Performa 54xx, 6360, 6400, and 6500) that blocks off the built-in serial port. You will need to set and use your printer port ttyb for serial console on these models.

On almost all of these machines, the default values for both input-device and output-device is ttya, which is why many novice users find that when they boot into Open Firmware, their monitor stays black.

Your serial console settings should be 38400 bps, 8 bits, no parity, 1 stop bit, no flow control, and you can typically use a standard Mac "printer" cable to connect two Macs (even m68k-based Macs). See the NetBSD Serial Port Primer for additional help.

Open Firmware 3 using a serial console

None of the Open Firmware 3 models ship with serial ports. Most do, however have internal modems. You can purchase a third party device which replaces the internal modem on most desktop systems with a serial port (such as the Gee Three Stealth Serial Port and Griffin Technology gPort). If you purchase one of these, you can set it up to be a serial console. Set scca for both your input-device and output-device.

Your serial console settings should be 57600 bps, 8 bits, no parity, 1 stop bit, no flow control, and you can typically use a standard Mac "printer" cable to connect two Macs (even m68k-based Macs). See the NetBSD Serial Port Primer for additional help.

How do I get a listing (in Open Firmware) of the files on my disk?

With the dir command, of course!

The syntax is simply dir device:[partition],\ where device is the devalias or full path to the device you're trying to get a listing of and [partition] is the partition number to get the listing of. If you do not specify the partition number, Open Firmware will try to find the first partition it understands. The comma separates the device and partition from the directory or files.

Unfortunately, there's no method of listing the partition map from within Open Firmware. You can, however, use the NetBSD pdisk on any OS to list your partitions.

Open Firmware uses backslash characters to separate directories, and you must specify the top level of a device with an "\". You can also get directory listings of individual files or files in folders using backslash characters to separate directories.

Keep in mind that the Open Firmware dir command can only list the contents of file systems that Open Firmware understands. For Open Firmware 1.0.5, 1.1.22, and 2.0.x, you can list ISO 9660 (not hybrid) and MS-DOS. For Open Firmware 2.4, you can list ISO 9660, HFS, HFS+, and MS-DOS. For Open Firmware 3, you can list hybrid ISO 9660/HFS (not pure ISO 9660), HFS, HFS+, and MS-DOS.

The official NetBSD install CD-R image and floppy images are a bit funky (i.e., they have a "partition zero" bootloader). You won't be able to get a listing of the files from within Open Firmware.

For example, to get a listing of the files on a floppy, type:

0 > dir fd:,\

To get a listing of the files on a CD-ROM, type (for example):

0 > dir scsi-int/sd@3:,\

To get a listing of the files in the macppc folder on an HFS partition, type:

0 > dir hd:9,\macppc\

To get your client's dhcp or bootp information from ethernet, type:

0 > dir enet:

Booting

What are the supported ways of booting NetBSD/macppc?

See the NetBSD/macppc 9.3 Install Notes and read the section entitled "Available Boot Media".

How do I make a disk bootable, and what are the Open Firmware commands to boot from it?

This depends entirely on what version of Open Firmware your machine has, and what you're trying to boot from. Read the "Preparing the Bootable Media" and "Open Firmware boot syntax" sections of the NetBSD/macppc 9.3 Install Notes.

See also the section called “Which version of Open Firmware does my machine have?”, the ofwboot(8) man page, and the installboot(8) man page.

How do I boot from a device attached to a PCI card?

Your PCI card must have Open Firmware drivers. Very few do. Many Adaptec SCSI cards and some IDE/ATA cards have Open Firmware drivers. Asante made some ethernet cards with Open Firmware drivers (though no one has tested them). Cards manufactured for UltraSPARC systems often have Open Firmware drivers. Not much else does.

Just because a card works in Open Firmware does not mean it's supported by NetBSD (and vice versa). This is the case with some of the Mac OS IDE/ATA cards.

The first step is to figure out what the PCI card is called in terms of Open Firmware names. Apple created devalias shortcuts for the on-board devices (such as scsi, hd, and enet). PCI card manufacturers cannot do this. Open Firmware uses a different device path depending on the model of the card and the PCI slot it is located in. You will need to figure out what the path is to your PCI card, and how to tell Open Firmware to use it.

  1. Get to the Open Firmware prompt (the 0 > prompt); see the section called “How do I get to the Open Firmware prompt?”.

  2. If this is your first experience with Open Firmware, you might want to read the section called “What can I do at the Open Firmware prompt?”.

  3. 0 > dev / ls

    This will list all of the devices present in your system. Look for something that might match your PCI card. For example, part of the listing from a PowerMacintosh G3 (Blue and White) with an Adaptec 2930 SCSI interface is:

    0 > dev /
    0 > ls
      [...]
    FF8313F0: /pci@F2000000
      [...]
    FF83F8A0:   /pci-bridge@D
      [...]
    FF83F90D:     /ADPT,2930@3
     ok

    Typically, if a card has Open Firmware support, it will list a four character vendor ID similar to the vendor's name (such as ATY for ATI, IMS for IMS, and ADPT for Adaptec), and a string describing the model of the card. The "@" sign separates the card name from its address in the computer.

    Now, note that the /ADPT,2930@3 entry is indented below the /pci-bridge@D entry, which is indented below the /pci@F2000000 entry. This means that the pci device contains the pci-bridge device which contains the ADPT,2930 device.

  4. Therefore, /pci/pci-bridge@D/ADPT,2930@3 is this card's path in the Open Firmware device tree. Now, to confirm if it really supports Open Firmware, type the following:

    0 > dev /pci/pci-bridge@D/ADPT,2930@3
    0 > words

    If the word "open" is among those listed, then chances are very high that your card should work.

  5. If you're extra lucky, the show-children word is listed. Otherwise, you'll need to know the SCSI ID of the drive you are trying to boot from. The SCSI ID gets appended to the path of your device with an /@N (where N is the SCSI ID).

  6. Next you need to figure out what boot method you're using so you can specify the partition number and the bootloader filename. Typically, Open Firmware 1.0.5, 2.0.x, and 2.4 systems use a "partition zero" bootloader, and thus :0 is appended to the path. Open Firmware 3 systems load ofwboot.xcf from an HFS partition (usually 9 or higher), so you'd append something like :9,\ofwboot.xcf to the path. Use the NetBSD pdisk to list the partition map.

  7. Now, you'd want to type the following to set up a hard drive with ofwboot.xcf on the 9th partition of a SCSI ID 5 drive attached to an Adaptec 2930 card to be the Open Firmware boot-device in your PowerMacintosh G3 (Blue and White):

    0 > setenv boot-device /pci/pci-bridge@D/ADPT,2930@3/@5:9,\ofwboot.xcf
    0 > reset-all

    Some Beige G3 models shipped with an Apple 53c875 Ultra Wide SCSI host adapter. To boot from the drive at SCSI ID 0, you would set your boot-device to:

    0 > setenv boot-device /pci/Apple53C875Card/sd@0:0
    0 > reset-all

Note about the Adaptec 2940 series of SCSI cards

There are three versions of the Firmware for this series of SCSI cards. If you are using this card on a PowerMacintosh 7300 thru 9600, then you cannot use the card to boot from Open Firmware. See this post which has more information.

How do I set up netbooting?

See the Diskless NetBSD HOW-TO.

Mitchell Spector has also created a page containing a concise iMac-specific netbooting information.

Where is the official NetBSD/macppc ISO image stored?

Look for the NetBSD Download Site closest to you, download the image, and burn it to a CD-R.

See the section titled "Creating the NetBSD/macppc CD-R" in the NetBSD/macppc 9.3 Install Notes.

Can I use the Linux BootX utility to boot NetBSD/macppc?

No, although the BootX maintainer has said he will accept patches for NetBSD support if someone else writes them. (See the port-macppc mail archives.)

Note that this is entirely different than the Darwin BootX bootloader.

Can I use the Linux yaboot bootloader to boot NetBSD/macppc?

Yes, although it is a bit tricky. Yaboot itself provides a mechanism to boot BSD systems, but unfortunately it does not work correctly (at least, with NetBSD). However, you can benefit from this feature, because with a little manual intervention, it works. Follow these steps:

  1. Edit Yaboot's configuration file, /etc/yaboot.conf, from within your Linux system and add a bsd line that points to your NetBSD partition. For example: bsd=/dev/hda4.

  2. Run ybin to regenerate the Open Firmware boot script in Yaboot's partition.

  3. Mount Yaboot's partition. E.g.:

    # mount -t hfs /dev/hda2 /mnt
  4. Edit the ofboot.b script within the partition you have just mounted (e.g., /mnt/ofboot.b). Locate the line that starts with :bootybsd. It holds the command required to launch our NetBSD installation, which we must correct to make work. Edit the line and place the command you typically use from within Open Firmware to boot NetBSD. Here is an example:

    :bootybsd " Booting BSD..." .printf 100 ms load-base release-load-area " hd:2,ofwboot hd:5/netbsd" $boot ;
  5. Unmount the Yaboot partition and you are done!

Be careful, though, to not rerun ybin again or you will lose your changes. If this happens, you will have to reconfigure the script. (Of course, a much better solution could be to teach Yaboot how to run NetBSD properly...)

Can I use the Darwin/Mac OS X BootX bootloader to boot NetBSD/macppc?

No, although it should be easier to port to NetBSD/macppc than the linuxppc BootX, since the Darwin BootX uses Open Firmware.

See this post for instructions on getting the BootX source code if you're interested in working on this.

This repository also contains nvram patches for machines with Open Firmware 2.4 and earlier, based on the patches in System Disk.

Are there any other magic keys to change the boot sequence?

Besides the familiar Command-Option-P-R to reset the PRAM (which will erase your Open Firmware settings), and the slightly-less-familiar Command-Option-Shift-Delete to boot from the first bootable device other than the normal boot device, on some machines you can also hold down "C" to boot off the internal CD-ROM drive, "N" to net boot, "Z" to boot from an internal Zip drive, or "D" for force booting from the internal disk if the default boot device has been set to something else. (These are referred to as "snag keys" in Apple's literature.)

These actually use the "cd", "enet", "zip", and "hd" devaliases in Open Firmware, respectively, so changing the aliases will change the effects of these keys. Some models do not support all of the keys.


Booting problems

Common Open Firmware Booting Problems

See info on getting to the Open Firmware prompt (the section called “How do I get to the Open Firmware prompt?”), CLAIM failed (the section called “CLAIM failed), DEFAULT CATCH! (the section called “DEFAULT CATCH!), can't OPEN (the section called “can't OPEN), unrecognized Client Program (the section called “unrecognized Client Program formatstate not valid), bad partition number (the section called “bad partition number, using 0no bootable HFS partition), hard drive doesn't spin up quickly enough (the section called “My hard drive doesn't spin up before Open Firmware tried booting”) and real-base (the section called “What's the deal with the "real-base" setting?”).

Common netboot problems

  • 0 > boot enet:,ofwboot.xcf BOOTP failed
     can't OPEN enet:
     ok

    The BOOTP or DHCP server isn't responding to client's request. Check that the server is running, that it's on the same ethernet subnet, and that it has the correct ethernet hardware (MAC) address for the client. Look for local-mac-address in the output of:

    0 > dev enet
    0 > .properties
  • TFTP timeout

    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, ofwboot.xcf gets confused and doesn't work right unless you load it explicitly from the boot-device, even if the bootp or DHCP server provides the correct information. You need to boot with a command like:

    0 > boot enet:,ofwboot.xcf
  • enet:,/netbsd.ram.gz: Inappropriate file type or format

    Some systems booting over ethernet can't load compressed kernels. Use gunzip(1) to uncompress the kernel before attempting to netboot.

CLAIM failed

This is a general message from Open Firmware to the effect that it failed to allocate some memory or memory is messed up.

First, make sure you have load-base set correctly; see the section called “What's the deal with the "load-base" setting?”.

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):

0 > 0 bootr boot-device boot-file

If you tried one boot command and it failed, then you tried a second and got the CLAIM failed message, then this is an indication that you should reboot between attempts (the Open Firmware command is "reset-all").

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).

There are several models that cannot be booted while using the on-board video and keyboard. Try using a serial console (see the section called “Open Firmware 1.0.5, 2.0.x, or 2.4 using a serial console”).

DEFAULT CATCH!

This is a general message from Open Firmware to the effect that it had trouble loading a file.

If your machine is Open Firmware version 1.0.5 or 2.X, 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.

There are several models that cannot be booted while using the on-board video and keyboard. Try using a serial console (see the section called “Open Firmware 1.0.5, 2.0.x, or 2.4 using a serial console”).

can't OPEN

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.

Use the NetBSD pdisk to get a listing of the partition map and the Open Firmware dir command (see the section called “How do I get a listing (in Open Firmware) of the files on my disk?”) to get a listing of the files on that partition.

unrecognized Client Program formatstate not valid

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 ofwboot.xcf) and for Open Firmware 3 machines, it must be either XCOFF or ELF (such as a kernel).

NB this error will occur with pre-release ISO installer images, because they are automatically generated, and it is not presently possible to create the necessary hybrid ISO9660/HFS image format without manual steps. Only formal release ISO installer images are bootable. If you wish to test a pre- release, you must start with an ofwboot.xcf or ofwboot.elf installed from a formal release (or place a newer version of such in a location that is bootable from), and then use that to boot the newer kernel found on the installer.

bad partition number, using 0no bootable HFS partition

You tried booting an Open Firmware 1.x or 2.0.x machine from a device which has an HFS filesystem on it (such as a hybrid CD-R or a hard drive with Mac OS partitions).

READ TIMEOUT@

Open Firmware is having trouble reading your floppy disk. Things to try:

  • Try booting from the floppy again.

  • Try a different floppy disk.

  • Try writing the floppy on the same machine you're trying to boot.

  • Clean the floppy drive.

  • Use another boot method.

My hard drive doesn't spin up before Open Firmware tried booting

To add a delay before trying to boot (to allow a hard drive to spin up), set the following Open Firmware variable:

0 > setenv boot-command catch 5000 ms boot
0 > reset-all

If the drive does not spin up until right before it tries booting, you may need to change a jumper on your hard drive which specifies whether the drive automatically spins up. Most drive manufacturers have online manuals listing jumper locations.

Two alternate methods are another boot-command variation and an nvramrc patch.

0 > setenv boot-command begin ['] boot catch 999 ms cr again
0 > reset-all

There are reports that this single-line alternative doesn't work on some early Open Firmware 1.0.5 models.

You can also try the following patch in your nvramrc:

: wBoot
begin
 boot-device ['] $boot catch drop
 ." -Waiting for boot-device" cr
 d# 500 ms
key? until
;

Then you need to run nvstore. See the NetBSD/macppc nvedit HOW-TO for more help patching your nvramrc. Now, you need to specify that your boot command is different, so at the Open Firmware prompt, type:

0 > setenv boot-command wBoot
0 > reset-all

Why does the screen turn grey with an icon in the center?

This means that your system is trying to boot Mac OS. You might get to this state if you didn't properly enter Open Firmware (see the section called “How do I get to the Open Firmware prompt?”), or if your Open Firmware boot command is misformed.

If you typed a bad boot command, Open Firmware tries to boot from the boot-device variable, whose default value is the Mac OS ROM. See info on the section called “The Open Firmware variables of interest” for help here.

The grey screen with the icon is generated by the Mac OS ROM. A flashing question-mark or broken folder means that your machine is looking for a bootable Mac OS filesystem, but can't find one. A globe icon means that your machine is looking for a netboot server. A happy face means it's trying to boot Mac OS.

The boot floppy does not have a bootable Mac OS filesystem, it has a bootable NetBSD filesystem.

Reboot, re-enter Open Firmware and check your syntax carefully.

Why did my screen turn black during boot?

This is a bug. The NetBSD kernel has turned off your backlight. Turn up the brightness on your PowerBook screen to fix this.

If you don't have a PowerBook, then see the section called “I tried to get into Open Firmware, but it just stopped booting, and my monitor isn't showing anything.”.

Where's my disk? (a.k.a. sysinst says I can not find any hard disks for use by NetBSD)

Well, that's a good question!

The root cause is that NetBSD didn't find your hard drive (or, more insidiously, didn't find your drive controller). There a variety of reasons why this happens. First determine whether it found your IDE controller (in the boot messages that scroll by, you should see a line with wdc0 (for IDE) or scsibus0 (for SCSI)). If not, then you'll just have to use a different kernel that supports your drive bus. Post to port-macppc@NetBSD.org for help.

Now, eliminate the easy problems (drive plugged in, powered on, and has jumpers set correctly). Check that the drive works under Mac OS.

If NetBSD still can't find the disk, then for SCSI disks, check the termination. Even though Mac OS can use it, NetBSD may be pickier about the timings on the SCSI bus.

If you've got an IDE drive, then you may have a PowerMacintosh G3 (Blue and White) or an earlier system. It wasn't until after the B&W system that Apple fully worked out all the kinks with IDE devices. Many people report that they have to put their NetBSD drive on the alternate IDE bus, and/or make it master (setting the CD-ROM to be slave).

Unfortunately, you may need to play around a bit to find the right combination that works for all the OSes you use on your system. Keep in mind that any system that does not have Open Firmware 3 cannot boot from slave devices (an Open Firmware limitation).

Chris Tribo has posted a good breakdown of the early G3 models and their limitations/identification. See his post. Also see the Apple Power Macintosh G3 and G4: IDE Master and Slave Support and Configuration article on this topic.

Additionally, there were a few disk-related problems with earlier releases of NetBSD. See the old FAQ.


Misc

This FAQ entry has moved

FAQ entries about problems with NetBSD versions prior to the 1.6 release have been moved to the Old FAQ.

How do I use an alternate keyboard mapping?

See the WSCONS documentation for a description of how to set up keyboards in non-US languages or alternate layouts (such as Dvorak). For X, read Hauke Fath's post. See also the section called “Why is there no wscons mapping "us.swapctrlcaps" for ADB keyboards?”.

Can NetBSD/macppc run MkLinux or LinuxPPC binaries?

Yes. Linux binary compatibility for PowerPC ports is supported, but is not enabled by default. You will need to build a kernel with options COMPAT_LINUX uncommented. Applications that are reported to work include Netscape Communicator, Blackdown's JDK-1.3.0, and Blender. All theses programs are included in the NetBSD package collection

Binaries that have known problem are: Opera, which will crash on first startup. On the second startup, if you go to the advanced settings dialog and uncheck "asynchronous DNS", it should work without trouble.

It is probably worth mentioning that the JDK works quite well. Java applications such as Cocoon have been reported to work without any problem.

Can NetBSD/macppc run Mac OS binaries?

Well, some day someone might get Mac-on-linux (for LinuxPPC) to work. Meanwhile, try emulators/BasiliskII or VMac, both of which emulate a 68k Mac.

Can NetBSD/macppc run Darwin/Mac OS X binaries?

There was some work being done on this, but the project has been abandoned for now. See the Mach and Darwin binary compatibility page for details.

Explanation of some keyboard icons

Apple has some unusual keys on its keyboards that may confuse some people (particularly with non-US keyboards).

The key with the [Mac Command] symbol shown on it is commonly referred to as the "Command" key. Some keyboards also have an "open apple" (as [Mac Open Apple]) on the command key as well.

On non-US keyboards, the key with the [Mac Option] symbol on it is labeled as the "option" key on US keyboards.

Often, when you read Mac documentation, you'll see the instruction to hold down "C-O-p-r" or some other variation. This means you should hold down the command and option keys in addition to the letters "p" and "r".

Where's the "at" (@) key on a German ADB keyboard?

Under Mac OS, it is Shift-Alt-1, and in Open Firmware, it is Shift-Alt-2.

How do I boot my system without an ADB keyboard?

If you're using a serial console, don't have an ADB keyboard, and don't want to reach behind (or wherever) your real power switch is located, you can create a hardware hack that appears to the computer to be the "power" key on an ADB keyboard. All Macs have a real power switch (be it soft or hard power), it may just be a bit hidden. This will void your warranty, so don't hold us liable, etc. See Chris Tribo's post to the mailing list on this topic.

Why is there no wscons mapping "us.swapctrlcaps" for ADB keyboards?

ADB keyboards emulate a mechanically-locked key, which makes things difficult for wscons. To treat the caps lock key as a control key, build a kernel with options CAPS_IS_CONTROL in it.

How do I enter DDB from the console?

command-option-power on ADB keyboards.