Jump to content

I want to learn more about Chameleon


Urgu
 Share

6 posts in this topic

Recommended Posts

Hello,

I need to learn more about Chemeleon, and how it works.

I installed a lot of times Ideneb and Snowleo following tutorials, but I feel frustrated because at least I don't know what I'm really doing.

So I ask you if exist a detailed guide about it.

I know it's a bootloader manager, but I need to know things how it works, what "language" am I using when I write commands, how it works (in particoular the partition stuff and why I must use Gpart), and a guide about commands to use.

At least, I want to be aware about what Im doing

Please could someone help me?

Thanks :)

Link to comment
Share on other sites

Chameleon is much more than a bootloader. Start by reading the documentation:

http://forum.voodooprojects.org/index.php/board,1.0.html

For more information, download and browse the most recent Chameleon source code here:

http://forge.voodooprojects.org/p/chameleo...tree/HEAD/trunk

For a history lesson, follow the first link in my post below.

Link to comment
Share on other sites

To be honest I think a lot of people would appreciate a guide that walks them through a bit more.

 

 

As the linked to resources say, there are a 'bazillion' guides on how to install osx86, but very few that explain what is going on.

 

 

As someone who left the whole osx86 scene shortly after 10.5 was released (originally using the developer-pc disk image and then moving onto mbr hacked kernels and all of it) I don't really understand what is going on with the modern state of the project.

 

 

For example, while I get that kexts are the analogues of drivers, I don't understand how people using DSDTs seemingly don't need kexts, what the difference is between putting kexts in the OSX partition versus a folder on the EFI partition, and various other bits and pieces.

 

 

I do think that a from here-to-there summary of how the project has evolved and how it works, not how to get it working, would allow a lot of beginners to self-help and self-diagnose better. At the moment, I think it is very tempting for individuals like myself to follow step by step walkthrough without really understanding anything, and then just ask in the forums to be hand-held through any troubleshooting. Teaching myself seems particularly daunting as there is so much that has changed from when I left, and understanding any one development tends to involve understanding lots of others.

 

I'm certainly not demanding or expecting such a guide to be written, but it would really be helpful to people starting out.

Link to comment
Share on other sites

First please read all of this:

http://tgwbd.org/darwin/boot.html

I don't understand how people using DSDTs seemingly don't need kexts

No, that's a common misconception. You can only patch things that are working to some degree already, that's why it's called patching.

It's not possible to implement everything in the DSDT. AES decryption for example. (DSMOS.kext, AppleDecrypt.kext, fakesmc.kext). And device drivers.

 

Here's an example of how you can patch something in DSDT instead of directly modifying a kernel extension (or driver).

 

Having AppleLPC.kext loaded is a requirement for native CPU power management on compatible Intel hardware. But if the device ID of your motherboards LPC device doesn't match any of the IDs that are listed in AppleLPC.kext/Contents/Info.plist, then the kernel extension doesn't load. For example, AppleLPC.kext knows the device ID for the LPC device on the ICH10, but not for the LPC device on the ICH10R.

 

-You can add your device ID to the kernel extension by editing info.plist inside. This works, but only until AppleLPC.kext receives an update from Apple!

 

-You can make a so-called fake/plist-only/injector/legacy AppleLPC.kext with only a modified info.plist inside with your LPC device's device ID added. This will not get overwritten by a system update (if you want to see what that looks like, google LegacyAppleLPC.kext).

 

-Or, in this case (it doesn't work for all devices!) you can leave AppleLPC.kext as it is, and override the device ID of your LPC device in DSDT, so that there's a match with the list in AppleLPC.kext/Contents/info.plist. This is a much more elegant and permanent solution.

Device ID override via DSDT is described in detail in the following thread, along with several uses for it:

http://www.insanelym...howtopic=168014

what the difference is between putting kexts in the OSX partition versus a folder on the EFI partition

Anything that resides on the EFI partition won't get overwritten by a system update. Furthermore, if you keep all your modifications there, that means you can use the same EFI partition to boot the retail DVD, other OS X partitions etc. Or you can do a full retail OS X reinstall anytime you like and boot right into it.

Link to comment
Share on other sites

BOOT HELP RC5

 

The boot: prompt waits for you to type advanced startup options.

If you don't type anything, the computer continues starting up normally. It

uses the kernel and configuration files on the startup device, which it also

uses as the root device.

 

Advanced startup options use the following syntax:

 

[device] [arguments]

 

Example arguments include

 

 device: rd=<BSD device name>       (e.g. rd=disk0s2)
        rd=*<IODeviceTree path>    (e.g. rd=*/PCI0@0/CHN0@0/@0:1)

kernel: kernel name                (e.g. "mach_kernel" - must be in "/" )

flags: -v (verbose)    -s (single user mode), 
       -x (safe mode)  -F (ignore boot configuration file)

"Graphics Mode"="WIDTHxHEIGHTxDEPTH" (e.g. "1024x768x32")

kernel flags                       (e.g. debug=0x144)
io=0xffffffff                      (defined in IOKit/IOKitDebug.h)

Example: mach_kernel rd=disk0s1 -v "Graphics Mode"="1920x1200x32"

If the computer won't start up properly, you may be able to start it up 
using safe mode.  Type -x to start up in safe mode, which ignores all 
cached driver files.

Special booter hotkeys:
 F5            Rescans optical drive.
 F10           Scans and displays all BIOS accessible drives.

Special booter commands:
 ?memory       Displays information about the computer's memory.
 ?video        Displays VESA video modes supported by the computer's BIOS.
 ?norescan     Leaves optical drive rescan mode.

Additional useful command-line options:
 config=<file>             Use an alternate Boot.plist file.

Options useful in the com.apple.Boot.plist file:
 Wait=Yes|No             Prompt for a key press before starting the kernel.
 "Quiet Boot"=Yes|No     Use quiet boot mode (no messages or prompt).
 Timeout=8               Number of seconds to pause at the boot: prompt.
 "Instant Menu"=Yes      Force displaying the partition selection menu. 

 "Default Partition"     Sets the default boot partition,
   =hd(x,y)|             where 'x' & 'y' are the disk and partition numbers
   =<UUID>                 or specify the selected volume UUID string.
 "Hide Partition"        Remove unwanted partition(s) from the boot menu.
   =hd(x,y) [hd(m,n)]      only non mac osx boot partitions can be hidden.

 "Rename Partition"        Rename partition(s) for the boot menu.
   =hd(x,y) <alias> [;hd(m,n) <alias2> ...]

 GUI=No                  Disable the GUI (enabled by default).
 "Boot Banner"=Yes|No    Show boot banner in GUI mode (enabled by default).
 "Legacy Logo"=Yes|No    Use the legacy grey apple logo (disabled by default).

 PciRoot=<value>         Use an alternate value for PciRoot (default value 0).

 GraphicsEnabler=Yes|No  Automatic device-properties generation for gfx cards.
 UseAtiROM=Yes|No        Use an alternate Ati ROM image 
                           (path: /Extra/<vendorid>_<devid>.rom)
 UseNvidiaROM=Yes|No     Use an alternate Nvidia ROM image 
                           (path:  /Extra/<vendorid>_<devid>.rom)
 VBIOS=Yes|No            Inject VBIOS to device-properties.

 EthernetBuiltIn=Yes|No  Automatic "built-in"=yes device-properties generation
                         for ethernet interfaces.

 USBBusFix=Yes           Enable all USB fixes below:
 EHCIacquire=Yes         Enable the EHCI fix (disabled by default).
 UHCIreset=Yes           Enable the UHCI fix (disabled by default).
 USBLegacyOff=Yes        Enable the USB Legacy fix (disabled by default).

 ForceHPET=Yes|No        Force Enable HPET.

 Wake=No                 Disable wake up after hibernation (default: enabled).
 ForceWake=Yes           Force using the sleepimage (disabled by default).
 WakeImage=<file>        Use an alternate sleepimage file. 
                           (default path is /private/var/vm/sleepimage).

 DropSSDT=Yes            Skip the SSDT tables while relocating the ACPI tables.
 DSDT=<file>             Use an alternate DSDT.aml file 
                           (default path: /DSDT.aml /Extra/DSDT.aml).

 SMBIOS=<file>           Use an alternate smbios.plist file 
                           (default path: /smbios.plist /Extra/smbios.plist
                            bt(0,0)/Extra/smbios.plist).

 SMBIOSdefaults=No       Don't use the Default values for SMBIOS overriding
                           if smbios.plist doesn't exist, factory
                           values are kept.

 "Scan Single Drive"     Scan the drive only where the booter got loaded from.
   =Yes|No               Fix rescan pbs when using a DVD reader in AHCI mode. 
 Rescan=Yes              Enable CD-ROM rescan mode.
 "Rescan Prompt"=Yes     Prompts for enable CD-ROM rescan mode.
 SystemId=<UUID>         Set manually the system id UUID,
                         SMUUID in smbios config (reserved field) isn't used.
 SystemType=<n>          Set the system type where n is between 0..6
                         (default =1 (Desktop)

Link to comment
Share on other sites

Chameleon is much more than a bootloader. Start by reading the documentation:

http://forum.voodooprojects.org/index.php/board,1.0.html

For more information, download and browse the most recent Chameleon source code here:

http://forge.voodooprojects.org/p/chameleo...tree/HEAD/trunk

 

Thank you very much, it's what I needed! :D

Finally I'll start to understand something about Chameleon

 

To be honest I think a lot of people would appreciate a guide that walks them through a bit more.

 

 

As the linked to resources say, there are a 'bazillion' guides on how to install osx86, but very few that explain what is going on.

 

exactely.

It's simple to found step by step tutorials about installing MacOsX on pc but it's difficult to found an explanation of what are you doing, expecially for newbies. In my opinion the blind "do this, write that" approach of tutorials is good for who needs only MacosX on pc, but is bad when something go wrong, because you don't have idea about what you have done and what you can do.

Thanks a lot, I hope to be prepared to help someone with Chameleon in the future! ;)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...