NetBSD/macppc Frequently Asked Questions
General problems and questions
- Introduction
- Help, I can't boot NetBSD!
- Help, I don't know anything about Mac OS!
- How do I share files between the OSes on my machine?
- Explaining the partition naming schemes
- Why does the screen scroll text so slowly?
- My USB mouse is not recognized
- Ethernet isn't working
- My PowerBook or iBook won't power on, charge the battery, or recognize the charger
- My PowerComputing clone's clock drifts too much.
- Why does the kernel always prompt me for the root device?
Supported Hardware
- NetBSD/macppc supported models
- Are NuBus-based Power Macs supported (7100, 8100, etc)?
- Are 68k-based Macs with PowerPC processor upgrades supported?
- Are the Power Macintosh 7200 or 7500 supported? (601 processor)
- Are PowerPC-based PowerBooks supported?
- Are PowerPC CPU upgrades supported?
- What peripherals are supported?
- I'm having troubles using my serial port!
- How do I get ppp working?
- How do I use my AirPort or AirMac network?
Open Firmware
- What is Open Firmware, and why do I care?
- Which version of Open Firmware does my machine have?
- Are there bugs in my machine's Open Firmware implementation?
- How do I get to the Open Firmware prompt?
- I tried to get into Open Firmware, but it just stopped booting, and my monitor isn't showing anything.
- How do I use a PCI video card?
- My monitor doesn't always sync when I enter Open Firmware
- How do I clear a corrupt Open Firmware?
- Help, I can't type the backslash \ key in Open Firmware!
- What can I do at the Open Firmware prompt?
- The Open Firmware variables of interest
- What's the deal with the "load-base" setting?
- What's the deal with the "real-base" setting?
- How do I figure out my input-device and output-device?
- How do I get a listing (in Open Firmware) of the files on my disk?
Booting
- What are the supported ways of booting NetBSD/macppc?
- How do I make a disk bootable, and what are the Open Firmware commands to boot from it?
- How do I boot from a device attached to a PCI card?
- How do I set up netbooting?
- Where is the official NetBSD/macppc ISO image stored?
- Can I use the Linux BootX utility to boot NetBSD/macppc?
- Can I use the Linux yaboot bootloader to boot NetBSD/macppc?
- Can I use the Darwin/Mac OS X BootX bootloader to boot NetBSD/macppc?
- Are there any other magic keys to change the boot sequence?
Booting problems
- Common Open Firmware Booting Problems
- Common netboot problems
- CLAIM failed
- DEFAULT CATCH!
- can't OPEN
- unrecognized Client Program formatstate not valid
- bad partition number, using 0no bootable HFS partition
- READ TIMEOUT@
- My hard drive doesn't spin up before Open Firmware tried booting
- Why does the screen turn grey with an icon in the center?
- Why did my screen turn black during boot?
- Where's my disk? (a.k.a. sysinst says I can not find any hard disks for use by NetBSD)
Misc
- This FAQ entry has moved
- How do I use an alternate keyboard mapping?
- Can NetBSD/macppc run MkLinux or LinuxPPC binaries?
- Can NetBSD/macppc run Mac OS binaries?
- Can NetBSD/macppc run Darwin/Mac OS X binaries?
- Explanation of some keyboard icons
- Where's the "at" (@) key on a German ADB keyboard?
- How do I boot my system without an ADB keyboard?
- Why is there no wscons mapping "us.swapctrlcaps" for ADB keyboards?
- How do I enter DDB from the console?
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:
-
NetBSD/macppc nvedit HOW-TO, for info on how to edit the contents of the NVRAMRC.
-
wscons documentation, for NetBSD's platform-independent workstation console driver.
Additional information is also available:
-
NetBSD 10.0 install notes — supported hardware and how to install.
-
port-macppc mailing list — if you have any additional questions please subscribe.
-
General NetBSD Documentation — for questions not specific to NetBSD/macppc.
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 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”.
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.
The solution is to use date(1) to set the time correctly.%
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,
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.
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 10.0 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
andoutput-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
andtty01
. 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
-
Many add-on USB devices are supported. See the page on machine-independent USB drivers.
-
-
PCMCIA and CardBus cards
-
Many cards are supported, but untested with NetBSD/macppc. See the pages on machine-independent PCMCIA drivers and machine-independent CardBus drivers.
-
-
PCI cards
-
Many cards are supported but untested with NetBSD/macppc. See the pages on machine-independent PCI drivers.
-
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 10.0 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 10.0 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 10.0 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.
-
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.
-
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?”.
-
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 [...] okTypically, 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, andADPT
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 thebandit
device contains theATY
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. -
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. -
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 ok0 >
" 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-device
s. The symptom
of an incorrectly set load-base
is a CLAIM
failed
message (see the section called “CLAIM failed
”).
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.
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
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
.
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 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.
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 10.0 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 10.0 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.
-
Get to the Open Firmware prompt (the
0 >
prompt); see the section called “How do I get to the Open Firmware prompt?”. -
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?”.
-
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 okTypically, 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, andADPT
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 thepci
device contains thepci-bridge
device which contains theADPT,2930
device. -
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. -
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
(whereN
is the SCSI ID). -
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 loadofwboot.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. -
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 Firmwareboot-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 10.0 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:
-
Edit Yaboot's configuration file,
/etc/yaboot.conf
, from within your Linux system and add absd
line that points to your NetBSD partition. For example:bsd=/dev/hda4
. -
Run ybin to regenerate the Open Firmware boot script in Yaboot's partition.
-
Mount Yaboot's partition. E.g.:
#
mount -t hfs /dev/hda2 /mnt
-
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 ;
-
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: okThe 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 theboot-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 >
setenvboot-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 symbol shown on it is commonly referred to as the "Command" key. Some keyboards also have an "open apple" (as ) on the command key as well.
On non-US keyboards, the key with the 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.