The OpenDarwin FAQ

Rob Braun


Finlay Dobbie


Table of Contents

About This FAQ
1. Introduction
First things first
What is Darwin?
What license is Darwin under?
What is OpenDarwin?
Who would want to use OpenDarwin?
Can I run Mac OS X programs on Darwin?
Can I take components of Darwin, modify them and use them in Mac OS X?
What's with that cute little mascot guy?
Getting and Installing OpenDarwin
What is the latest version of OpenDarwin?
Where can I get the installer from?
The ISO image checksum doesn't match. Is my file corrupt?
Can I use boot floppies instead of a CD?
Compatibility issues
What hardware is supported?
Does Darwin support multiple processors?
Does Darwin support wireless networking?
Why does Darwin use Mach-O instead of ELF as its binary format?
2. Administration
How do I manage users and groups?
How do I configure networking?
How do I set the timezone?
How do I configure power management?
What is the hostconfig file?
What is NetInfo and how do I use it?
How do I change the order that lookupd resolves things?
How do I make DNS sortlist work?
How do i setup NFS configuration in NetInfo?
Where are all the startup scripts?
What is a Kernel Extension (KEXT)? How do I use it?
How do I control the mounting of filesystems? Where are they mounted?
How do I enable HFS+ journalling from the command line?
In MacOS X, how do I get something other than the loginwindow to start on boot?
Ports and packages
Are binary packages for OpenDarwin available?
How do I access the available packages?
Which packaging format does OpenDarwin use?
Where can I get third-party software for Darwin, and is there anything like the FreeBSD Ports Collection?
General usage
Where is ldd?
How do I see what devices are on my system?
What is synthfs?
How are drive numbers determined?
Can I mount my Darwin filesystems under Linux?
What is Open Firmware and how do I enter it?
I've messed up my Open Firmware settings, how do I fix it?
How do I make Darwin display information while booting?
How do I boot into single user mode?
What is this "unable to bind to parent" error?
I get an 'AllocateKernelMemory' error and the system freezes. How do I fix this?
When I try to manually mount a disk partition, why do I get an "operation not supported" error?
Why is it telling me the file already exists, when clearly it doesn't?
I can't get X working on my G3 Powerbook!
After installing and rebooting, all I get is a "Still waiting for root device" message over and over. How can I fix it?
3. General Unix
What is a shell?
What is an environment variable?
How do I set an environment variable?
What files does (t)csh read when it starts?
How do I set my path with (t)csh?
What is a cooler way to set my path with tcsh?
How do I add a directory to my path?
File Permissions
What are file permissions?
How do I change file permissions?
The X Window System
What is X?
How do I start X?
What files get read when I run startx?
4. Development
Why does lseek always fail?
What are "precomps"?
That's great, but how do I fix my precomps errors under Darwin?
How do I create a character device to Darwin?
Where are the major device numbers defined in Darwin?
How do I build fat (multiple architecture) binaries?
configure can't find my platform! How do I make it recognize Darwin?
How do I make lookupd invalidate its cache?
What is prebinding dynamic libraries?
From a network interface driver, how do I remove routes through that interface?
Does Darwin support AltiVec extensions?
What's the difference between all the kernel log functions?
What does the debug kernel argument do?
How can I determine how many processors are present?
How do I port shared libraries to Darwin?
How do I get a symbolic backtrace with my Kernel Module?
Why doesn't the link-editor find symbols in my static libraries?
How do I tell the difference between Darwin and OS X?
What is kld?
I'd like to become familiar with PowerPC assembly language. Any recommendations on good books for this topic?
Building the Kernel (xnu)
How do I build xnu, the Darwin kernel?
How do I build a "fat" kernel (i386 and ppc kernel)?
How do I install my new kernel?
My new kernel doesn't boot, what do I do now?
How do I configure my kernel?
After building xnu, is there anything else I should do?
Performance tuning
How can Shark be used to profile the code in a driver that exists solely in supervisor space?
When I run Shark on my code, it can't look up the symbols in my driver. Every line in the profile has the form "NO_SYMBOL_0xSOMEHEXADDR". How do I fix this?
Double-clicking on a trouble spot in Shark doesn't bring up the offending source code. How do I fix this