I am getting sick and tired of seeing incomplete lists of kernel flags. censored2.gif I always find a new one's and then I wonder what other ones are out there. So here is a list of all the ones I have come across because I cant find an extensive list like this anywhere else. I also would like to see others help add to this list. Mods do you think this can be a sticky? thumbsup_anim.gif
Will start with the common ones that everyone knows. All of these listed below should be for both vanilla & hacked kernels. There is now a special list just for use with hacked kernels.
-v = verbose mode. Basically tells you wants happening during boot up.
-x = Safe mode. Basically boots your system with the bare minimum kexts.
-s = Single user mode. Command line only mode. Allows you to run commands as root to fix system.
-f = Tells the machine to reload all kext and dump the boot configuration cache, (kext cache found in: /System/Library/Extensions.mkext, you can delete it manually and the system will recreate it).
-l = The flag attempts to enable the L2 cache if not already enabled. Not sure if this works on hacks. If your having an L2 cache issue try this flag.
cpus= Tells the kernel how many cores or physical CPU's there are in place. Ex: cpus=1
"Graphics Mode"= Tells the system what resolution width, height, color depth & refresh rate to boot the OS with.
Ex: "Graphics Mode"="1024x768x32" WIDTHxHEIGHTxDEPTH
For VESA 3.0 graphics, you may append a refresh rate after an "@" character
Ex: "Graphics Mode"="640x480x32@60" WIDTHxHEIGHTxDEPTH@REFRESHRATE
rd= This parameter state what is the boot disk to use (instead of using the boot menu appearing before the prompt) you state the drive and partition in here: diskXsY where X stands for the disk number (first disk, usually primary master in IDE or SATA) 0 second disk is 1 etc.) and Y stands for the partition on that disk starting with 1 as the first partition.
Ex: rd=disk0s1 If you have one disk and one partition the parameter will look like this.
You can also use rd=*<IODeviceTree path> for booting from a PCI RAID card for example. Ex: of this would be rd=*/PCI0@0/CHN0@0/@0:1
config= this parameter tells the system to load using different copy of the boot config file, the default copy used is kept in:
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist. So you could have multiple configs with different flags set for testing.
EX: config=com.apple.boot1.plist
Platform= this parameter sets the platform to use at this boot time.
Examples of this flag are:
platform=ACPI (ACPI support)
platform=X86PC (non ACPI support)
platform=ACPI|86PC (try to support ACPI if fails do not support it)
idlehalt= Lets you set two values ether 1 or 0 stating true or false, if set to true then at idle time the cpu will halt causing power saving and cooling of CPU, if set to 0 then the cpu will allways run even in idle time.
idlehalt=0
idlehalt=1
cpuidle= Lets you set two values ether 1 or 0 stating true or false. This flag is exactly the same as the one above I believe. Please correct me if I'm wrong.
cpuidle=0
cpuidle=1
-legacy = causes the system to load in 32 bit mode while running on 64 bit version of OS X
fn=x This flag can increase performance and forces OSX to use the users input for CPU/Fan/Idle control. "fn" stands for "forcenap" and provides different implementions for handling CPU idle time with the goal of CPU heat/fan control.
There are five values:
fn=0 : Sets this to off I believe
fn=1 : Not sure what this one does?
fn=2 : Uses CPU instructions "monitor/mwait" (will crash on SSE2 CPUs)
fn=3 : Original implemention of the previous Mac OS X x86 builds. This option sets your energy level to high and causes the fans to run full. This is helpful to keep your processor running fast, but chews up your battery life. Some users find this option gives the fastest system performance on desktops.
fn=4 : Uses CPU instructions "monitor/mwait" (will crash on SSE2 CPUs)
maxmem=xxxx = This allows you to specify maximum memory used by the system. Not sure if the rest of the memory is used for apps or not. Many people have to use this if they have 4GB of memory in a 32bit OS. Ex: maxmem=2048
?memory = this info screen display information about the memory on the machine
?video = this info screen display information about the video card supported graphic modes
debug=0x100 = To show information about kernel panics & other useful info from system at startup. If you are getting a auto rebooting from bad kernel or kext being loaded use this flag to see what it is. Will help when posting information on this forum for diagnoses.
For use with hacked kernels ONLY
kernel name "mach_kernel" This flag simply tells the system to boot from another kernel available in / (aka root).
fsb=<mhz> = Most of the hacked kernels include the possibility at boot to chosen FSB frequency. These flags DO NOT work with any known vanilla kernel. Do testing with the below values to see what works for you. The default value is 200Mhz. If you want different value, you have a few possibilities.
Ex: kernel name "netkasSS_kernel"
Ex: fsb=800 or use one of these flags below:
-g = For frequency's multiplied by 100 Mhz
-y = For frequency's multiplied by 133 Mhz
-z = For frequency's multiplied by 166 Mhz
* You can easily add either the -y, -g, or -z options to your boot.plist file or use the fsb=<mhz> flag to give it an exact figure. I have not tested the fsb=<mhz> flag but the -y gave me the correct 800fsb (100mhz x

and boosted my performance to where it should be in OSX. This may not change the FSB in about this mac on a hack, it did not for me. You would need to test with a benchmark app to see the gain. Hopefully hardcoded front side bus speeds can be added to SMBIOS files at some point in the future by netkas or Mac.Nub.
-vmware = Force vmware support, with hacked kernels. Needs testing.
-force64 = Force 64bit mode for AMD 64 bit cpu's. Needs testing.
cpu=x = Number of physical cpu's installed NOT CORES. Also needs testing.
Other flags you can add to com.apple.Boot.plist file:
"Boot Graphics"=Yes = Yes or No. Use graphics mode or text mode when starting. Turns off vesa mode graphics at boot.
"Quiet Boot"=Yes = Yes or No. Use quiet boot mode (no messages or prompt). Same as adding -v option.
Timeout=3 = Any number 1-100. Number of seconds to pause at the boot prompt.
debug=0x144 When added as a boot flag to your com.apple.Boot.plist will give you details about a kernel panic you have at any time when running OSX. I believe it is the same as debug=0x100, not sure.
PLEASE feel free to post additional flags you know. I bet there are even more out there that I have not come across.
Also you can add all of these to a text file and place it in /usr/standalone/i386/BootHelp.txt. Then when you type ? in darwin all of these flags will be displayed on screen. Cool Uh.