Chameleon Bug and myHack 2.0 RC4+

Note: As of myHack 2.1 this bug has been resolved and is no longer an issue – although if you do not have your VESA graphics mode defined on problem systems the apple logo will not be centered, but rather, it will be in the top left of the screen and you will not be able to see the spinner wheel – the system will boot though.

So I managed to reproduce and track down this bug that a few people reported to me in build 1332 of Chameleon that I used in myHack RC4+. The bug is as follows:

After boot menu, if booting without flags – instant reboot

After boot menu, if booting with -v boot flag it brings you to a black screen, with a white bar on top that flickers, but that is as far as it goes.

After boot menu, if booting with -f or -x boot flags it will boot.

While the exact cause of this isn’t yet clear to me I have narrowed it down considerably by downloading, compiling and testing many many revisions of the chameleon trunk starting with the one I knew worked that I used in myHack RC3-  (2.0 RC5 revision 1203) my results were as follows:

  • 1221 = broken (bug I mentioned above is reproduced, all future revisions including 2.0 final – r1394 – share this bug)
  • 1220 = can’t boot (other bug)
  • 1219 = can’t boot (other bug)
  • 1217 = can’t boot (other bug)
  • 1216 = build failed
  • 1214 = build failed
  • 1203 = works

 

So going through svn, so much has been changed between then and now it’s hard for me personally to figure out how to fix it, nothing obvious jumps out of me, but I only dabble a bit when it comes to Chameleon’s rather insane code structure.

I spent way more time on this than I should have (hours and hours), but I really wanted to drop the RC from myHack with a nice clean 2.0 Chameleon without the RC on it either, it doesn’t appear I will be able to do that until this bug is fixed – or at least I would prefer not to.

I did find a simple work around though – if you add a VESA graphics mode to your boot plist it will boot normally, in revision 1203 this isn’t needed, but everything after that (that works) apparently needs it on _some_ graphics cards – the card I was testing with is a 9800GTX+. It shouldn’t need it but I recalled from a similar issue I ran into a couple years ago that it might be the case, and indeed it was.

So if you are having this issue open up org.chameleon.Boot.plist and add:

    <key>Graphics Mode</key>
<string>1024x768x32</string>

for 4:3 displays – or for 16:9 something like:

    <key>Graphics Mode</key>
<string>1280x720x32</string>

etc…

NOTE: The VESA mode you define must be supported by your graphics card bios and your monitor, using ?video at the chameleon boot prompt will give you a list of the modes supported by your graphics card.

I’ve passed these findings along to cosmo1t and meklort and I’m sure they will look into the matter further, but the information I posted above will help in the meantime if you happen to run into this problem.

12 thoughts on “Chameleon Bug and myHack 2.0 RC4+

  1. Pingback: my hack loopt vast ??

  2. Pingback: Iemand ervaring met iBoot, nee? Wat dan wel? - Pagina 5

  3. … you can also use the boot query:

    ?video

    … to find out supported video modes and then the boot option:

    “Graphics Mode”=”1600x1200x32”

    … (quotes included) to boot-time fix the “white rectangle” problem.

    G.

  4. Pingback: OS X Lion install freezing after language selection Asus P5E-VM HDMI

  5. I’m glad this issue is getting attention. I’ve been facing it too.

    Where are the instructions for stuff like “open up org.chameleon.Boot.plist” and edit it… Does this need to be done pre-installation or post-installation?

    • Dayson: You can do it pre installation or post installation, you can get the system to boot by using the -f flag and you will find the org.chameleon.Boot.plist in /Extra/

  6. After installation is successfully install, I cannot boot into lion. I have Kernel panic. What should to boot into the install lion?

    • you should sign up for the forum and post more specifics along with your question.