Troubleshooting

What is Open Firmware and how do I enter it?

To enter Open Firmware, hold down "cmd-opt-o-f" as the machine boots. You will find yourself at a white screen with black letters and a CLI prompt.

For general information about Open Firmware, see the following:

I've messed up my Open Firmware settings, how do I fix it?

Open Firmware variables are stored in non-volatile memory. To reset this memory, follow the directions in this Knowledgebase article.

How do I make Darwin display information while booting?

Normally Darwin just shows the Apple logo and a spinning progress indicator during the boot process. For troubleshooting and informational purposes, it can be useful to turn on verbose mode to show what's happening.

If you are on a Mac, you can hold down "cmd-v" to turn on verbose mode for a single boot. If you wish to set it permanently, you can do so by setting the boot-args Open Firmware variable to "-v", either with the nvram command or from the Open Firmware CLI (see What is Open Firmware and how do I enter it? above).

If you are on an x86 machine, enter -v at the boot loader prompt.

How do I boot into single user mode?

If you are on a Mac, you can hold down "cmd-s" to boot into single-user mode.

If you are on an x86 machine, enter -s at the boot loader prompt.

What is this "unable to bind to parent" error?

The error in your logs that looks like this:

Jul 27 12:14:32 blueberry netinfod local[140]: unable to bind to parent
- RPC: Timed out
      

Is from NetInfo trying to connect to a parent of "master" server. If you are not on a NetInfo network, you'll get this error message. If you're not on a NetInfo network and would like to see this message stop, you can issue the command:

niutil -destroyprop . /machines/broadcasthost serves
      

This will prevent NetInfo from looking for a master NetInfo server.

I get an 'AllocateKernelMemory' error and the system freezes. How do I fix this?

This error usually only occurs on darwin-x86 6.x. The boot process defaults to building its driver cache using both PPC and i386 object code. Unfortunately, it can run out of memory building this cache and fail. To fix it, reboot from CD, mount the drive and rebuild the cache manually. After booting from CD, choose 'shell' to get a command prompt. In the example, replace X with the drive number and Y with the slice number containing your boot partition.

# fsck -y /dev/rdiskXsY
# mount /dev/diskXsY /mnt
# kextcache -a i386 -m /mnt/System/Library/Extensions.mkext /mnt/System/Library/Extensions
# reboot
      

To prevent this error from occurring in the first place on darwin-x86, manually run the kextcache command before rebooting.

# kextcache -a i386 -e
      

When I try to manually mount a disk partition, why do I get an "operation not supported" error?

The superblock on the disk volume is in an inconsistent state and cannot mount. Repair it with the fsck tool. In the example below, replace X with the drive number and Y with the slice number.

# fsck -y /dev/rdiskXsY
      

After completing the repair, execute the appropriate mount command.

Why is it telling me the file already exists, when clearly it doesn't?

The HFS+ filesystem, which you are probably using if you have the standard Darwin install, is a case-insensitive filesystem. This means that files that have the same name, but different capitalization are treated as the same file under HFS+. This does not affect the storage of files, only file names.

If case sensitivity is important to you, you can use the HFS+ variant HFSX as of Darwin 7.x, which optionally supports case sensitivity. In order to create a case-sensitive HFS volume, you can use the newfs_hfs -s command. See its manpage for more information.

For more information on HFS+ and HFSX, see TN1150: HFS Plus Volume Format.

I can't get X working on my G3 Powerbook!

X has been reported to have difficulty on some G3 PowerBooks. You should take a look at xc/programs/XServer/hw/darwin/darwin.c and the #ifdefs there. You may need to recompile your Xdarwin server to get it working properly on one of these machines.

After installing and rebooting, all I get is a "Still waiting for root device" message over and over. How can I fix it?

On x86 systems, the boot loader won't automatically pick up the OpenDarwin disk as the root device. You have to pass the rd= parameter to the kernel at the boot loader prompt. On a lot of installs the parameter to be passed is rd=disk0s1, but it is dependent on your local setup.

Once booted you can hardwire this kernel argument in the file /Library/Preferences/SystemConfiguration/com.apple.Boot.plist.