Jump to content

Chameleon RC4 is out!


Poco
 Share

1,054 posts in this topic

Recommended Posts

Hi folks and hi rek.

 

I think I have solved the problem of "resource busy" of boot0. Trying to install from terminal this morning for the first time boot0 amended i stumbled in this error.

I realized after some evidence that the error is due to the mounted disk, trying to unmount the disk error disappears and the installation is successful.

Then I modified the script with the same commands used in the terminal, I've remove the preflight, I recreated the installer and the installation ends perfectly;)

 

diskutil unmountDisk "$disk"	//Added

echo "DDing...."
dd if="${resourcesPath}/boot/boot0" of="$disk" bs=440 count=1	// change from fdisk 
dd if="${resourcesPath}/boot/boot1h" of="$rdev" bs=512 count=2

diskutil mountDisk "$disk"	 // Added

 

In attached the package installer with last rc5pre8 and new boot0, it works amazing for me on usb stick. I need to test on the primary disk. Rek what do you think, could fit?

 

 

Chameleon_2_RC5pre8.pkg.zip

Link to comment
Share on other sites

Guys,

 

I would like to suggest to your attention the following (please see attachment) layout in the About panel of the Chameleon prefPane. If the text below the line "Version 2.0.0 RC4" is longer than now it could be auto scrollable after some time (5-10 secs.). What do you think?

 

 

Also, personally I prefer the UI without the drop shadow situated in the right side of the preferences (EFI Inject, Advanced, BIOS, etc.). I think this way the UI will be more visually appealing. Also I would add 6-7 pixels "air" at the top and at the left side of the preferences.

 

@smith@@: I'll test your RC5pre8 installer at home later.

Link to comment
Share on other sites

And here's the pre8 integrating latest bug fixes, code refactoring and new quick keys from 18seven (completed by prasys)

 

You should expect this to be updated soon. I created a macro that retains f8 functionality, quietboot escape, if quick keys are disabled (IMO very important). That work did not make it into the repo. Also, alt+x is redundant as any modifier key will safeboot. I passed this info to prasys directly yesterday.

 

>6) We only want one table per signature (what is the point of having 16 SSDT tables? Just because Apple uses it?).

Well, I think some bioses does have more than one SSDT, but if it is specified in the Drop clause, we don't really care IMHO as the original would be dropped and a new one would be loaded if it exists :(

 

The user should have the option to load multiple SSDT's if they desire, allowing granular management of CPU's.

Link to comment
Share on other sites

Now the good side, we have andy today in our always growing team, motivated by only one same goal: make the best chameleon ever released, all open source, all public :(

 

Sorry but what goals/ concepts are behind the "the best chameleon ever released" ?

I'm a bit lost about what chameleon is becoming, i mean it seem's after reading this topic and the repository that Chameleon is more and more like a collection of various patches and options than an unified and understandable sofware.

 

Is not something against contributors, but i can't figure out where Chameleon is going to...

 

btw, i'm glad to see that some people are motivated to do things on Cham.

Cheers.

Link to comment
Share on other sites

hey rek, i updated the prepane trunk with the new spanish loc. When testing rc5pre8 i got a graphic bug on the boot dropdown menu. Are font_console / font_small switched or are they wrong in my theme?

 

@rednous. i like the modified about view. Rek, do u think it would be easiest do use a WebView in which credits.html is displayed or is there a better way?

Link to comment
Share on other sites

Sorry but what goals/ concepts are behind the "the best chameleon ever released" ?

I'm a bit lost about what chameleon is becoming, i mean it seem's after reading this topic and the repository that Chameleon is more and more like a collection of various patches and options than an unified and understandable sofware.

 

Is not something against contributors, but i can't figure out where Chameleon is going to...

 

btw, i'm glad to see that some people are motivated to do things on Cham.

Cheers.

 

Was it ever anything other than a customized boot132?

 

I like the organic patchwork approach. Also, it seems to me that rekursor is really working hard to unify all of the new and old patchwork into some standard (read the standards after I submitted, sorry guys). I think that is where the real work is happening.

Link to comment
Share on other sites

Hi folks and hi rek.

 

I think I have solved the problem of "resource busy" of boot0. Trying to install from terminal this morning for the first time boot0 amended i stumbled in this error.

I realized after some evidence that the error is due to the mounted disk, trying to unmount the disk error disappears and the installation is successful.

Then I modified the script with the same commands used in the terminal, I've remove the preflight, I recreated the installer and the installation ends perfectly;)

 

diskutil unmountDisk "$disk"	//Added

echo "DDing...."
dd if="${resourcesPath}/boot/boot0" of="$disk" bs=440 count=1	// change from fdisk 
dd if="${resourcesPath}/boot/boot1h" of="$rdev" bs=512 count=2

diskutil mountDisk "$disk"	 // Added

 

In attached the package installer with last rc5pre8 and new boot0, it works amazing for me on usb stick. I need to test on the primary disk. Rek what do you think, could fit?

 

 

Chameleon_2_RC5pre8.pkg.zip

 

Working Great!

But looking at the installation log...

 

./postflight: One or more volume(s) failed to mount

 

 

Is this OK?

Link to comment
Share on other sites

Working Great!

But looking at the installation log...

 

./postflight: One or more volume(s) failed to mount

 

 

Is this OK?

 

You can see if your system boot ? I have test it on 2 usb stick formatted and the system boot well. I don't have test on primary system disk Try and let me know :)

Link to comment
Share on other sites

..

The user should have the option to load multiple SSDT's if they desire, allowing granular management of CPU's.

This "granular management of CPU's" should be taken with a grain of salt since most people here are still fighting to understand the nature of ACPI tables like DSDT – just have a look at the vanilla Intel Speed Step thread here – not to mention that it adds complexity and slows down the boot time considerable. If that is what you and other experts, because that what it is for, are looking for... so be it, but I call bloat. To me less is more. And about 80KB of it.

 

@Rekursor,

 

I don't have much time today, but here's a first review of your changes (good work BTW):

 

1) Why acpi.c and dsdt_patcher? A cow is a cow and not a horse.

 

2) Please don't use:

DBG("Table %s read and stored at: %x\n", dirspec, tableAddr);

but this instead:

#if DEBUG_ACPI
DBG("Table %s read and stored at: %x\n", dirspec, tableAddr);
#endif

To reduce the use of the rapidly growing TEXT segment.

 

3) The functions acpiGetAddressOfTable10() and acpiGetAddressOfTable20() can be grouped into one with something like:

{
   void *baseAddress = (void *)ACPI_RANGE_START;

   for (; baseAddress <= (void *)ACPI_RANGE_END; baseAddress += 16)
   {
       if (*(uint64_t *)baseAddress == ACPI_SIGNATURE_UINT64_LE)
       {
           uint8_t csum = checksum8 (baseAddress, 20);

           if (csum == 0)
           {
               uint8_t revision = ((struct acpi_2_rsdp*)baseAddress)->Revision;

                 if (revision == 0 || (revision > 0 && checksum8(baseAddress, sizeof(struct acpi_2_rsdp)) == 0))
                   return baseAddress;
           }
       }
   }

   return NULL;
}

 

4) Function acpiLoadTable() can be rewritten (made smaller) and has a flow error (last printf).

 

5) Function acpiFillGASStruct() is a getter (note the return) and should be renamed to get...

 

6) Not this way please (I know this isn't yours):

if (Address == 0)
{
TmpGAS.Register_Bit_Width = 0;
} else {
TmpGAS.Register_Bit_Width = Length * 8;
}

but this instead:

	TmpGAS.Register_Bit_Width = (Address) ? (Width) : 0;

And note the use of Width instead of Length here, because this argument represents the bit width. Oh and TmpGAS isn't really temporarily and thus.. rename it?

 

7) Have a look at function acpiLoadUserTables() again and add a printf() in function acpiGetFirstDropTable() What does that show you?

 

p.s. Do you have a code formatter script / tool?

 

Later folks. This dad is going to the hospital.

Link to comment
Share on other sites

Hi,

 

I can confirm that RC5pre8 works on my lap, but I'm under the impression that booting is little slower then previous releases. Boots without fixed dsdt.aml but then restart doesn't work (USB problem I think)

 

In IORegExp system-type is recognised correctly (=2) without SystemType=2 option in Boot.plist.

 

My system UUID from CPU-Z (Windows): 60E35E41-D21DB211-8000E1B4-19D75C8B and from SystemProfiler: FB73BBB8-180D-5633-BBCA-944795AA2A83. Is it ok?

 

USB fix cause my system unbootable, freeze after first EHCI, only hard restart helps.

 

I noticed that Chameleon PrefPane (v. 106) icon in System Preferences looks identically like StartUp Disk icon (no Chameleon logo) and there is incorrect tip under Advanced, SystemType (copied from cpus probably).

 

May be this is a stupid idea, but is possible to implement 2 virtual USB devices to handle/fake PS2 controllers (kbd&mouse/touchpad)? And may be FakeSMC also?

Link to comment
Share on other sites

You can see if your system boot ? I have test it on 2 usb stick formatted and the system boot well. I don't have test on primary system disk Try and let me know :)

 

Yeah, My system boot properly. tested it on primary single partitiion & my othe HD which have 3 partition. All booting with no issues. Its just the log im worried about.

Link to comment
Share on other sites

Yeah, My system boot properly. tested it on primary single partitiion & my othe HD which have 3 partition. All booting with no issues. Its just the log im worried about.

 

 

From the tests that I did, even with that log, the booter is written correctly :)

 

Enjoy for now;)

Link to comment
Share on other sites

smith@@,
diskutil mountDisk "$disk"

will fail if it is an hidden EFI partition, u'll have to use

sudo mount_hfs /dev/$ /Volumes/$

 

I thought about it but I am not convinced, always the disk have been mounted, i don'understand

 

Wait, You say about the installation in efi?

 

From test that i did the boot is written the same..

 

What do you think? Sorry for my english

Link to comment
Share on other sites

This "granular management of CPU's" should be taken with a grain of salt since most people here are still fighting to understand the nature of ACPI tables like DSDT – just have a look at the vanilla Intel Speed Step thread here – not to mention that it adds complexity and slows down the boot time considerable. If that is what you and other experts, because that what it is for, are looking for... so be it, but I call bloat. To me less is more. And about 80KB of it.

 

I agree with you, however, imposing that limitation may also complicate things for a new user. The user should have the flexibility to simply add/edit tables as they are rather than being forced to combine the tables together.

Link to comment
Share on other sites

I thought about it but I am not convinced, always the disk have been mounted, i don'understand

 

Wait, You say about the installation in efi?

 

From test that i did the boot is written the same..

 

What do you think? Sorry for my english

Set the case that we're installing to EFI partition:

1:Postflight unmounts EFI

2. Postflight dd's

3. Tries to diskutil mountDisk. THIS WILL FAIL when Target Partition is hidden EFI-Partition!

4. Tries to copy boot to not mounted drive-> Fails as well

Link to comment
Share on other sites

I know Smith@@ has been working on a Chameleon installer package which looks great, but I have been trying to put a shell script together for only adding a modified boot0 the MBR without destroying any code that Windows might have. This is with the hope of not needing to unmount the drive.

 

Working from my thoughts here I have put a my first attempt, a simple version 0.1 in the original thread for this on voodooprojects. It needs testing it anybody wants to try it out, but please make sure you know what it's trying to do before running it blindy. Or if anybody can give any feedback about the idea then great.

 

Thanks

Link to comment
Share on other sites

I know Smith@@ has been working on a Chameleon installer package which looks great, but I have been trying to put a shell script together for only adding a modified boot0 the MBR without destroying any code that Windows might have. This is with the hope of not needing to unmount the drive.

 

Working from my thoughts here I have put a my first attempt, a simple version 0.1 in the original thread for this on voodooprojects. It needs testing it anybody wants to try it out, but please make sure you know what it's trying to do before running it blindy. Or if anybody can give any feedback about the idea then great.

 

Thanks

Folks, Zef just told me they managed to change the installer code to take care of installing boot0 in the source scripts within the 440 first bytes, There are source available on the public repository, I never worked with installers until today, so I feel I'm not the best person for it in the short term,

I would badly need DrHurt expertise on it.

 

Also, because indeed we don't only integrate patches (thanks for all that noticed the real new improvements and bug fixes and also features that were genuine work in the booter) , especially during mast last week end marathon,

We need help, I started a good job on Andy's wonderful features integrations, but honestly it still needs lot of factorization.

 

Still, I worked on it yesterday until 1AM to creates a new acpi.c file containing a collection of smart algos that will permit to get the best of Andy's work while keeping in mind that the booter should have less options in favor of smarter autodectection algorithms.

 

The code is in construction and far from been finished, but I have the feeling that Andy's work should be completed as top priority, because what he did really adds value to the booter (not only his acpi user loading features but all other enhancements).

 

Andy if you read these lines, please go to irc on the chameleon channel and lets discuss together,

I would like to finish integrate a first increment of your work, and I need your help.

Link to comment
Share on other sites

Why need ACPI V1 to V4 conversion patch?

 

Because if you look in your DSDT table extract you'll see for example following at line 11:

Revision 0x01 **** ACPI 1.0, no 64-bit math support

 

It's coded for ACPI v1 compliance or compatibility, pretty old naming style and algos. We need ACPI v4 to get perfectly closer and flawlessly woking retail OS X.

 

@Rek:

 

2.0RC5pre8 bug description: after the grey spinning wheel i get a little bit longer (4-5 sec.) blue screen then the desktop appears after then the blue screen appears again (!) for 3-4 sec. and after all this the desktop is ON eventually.

 

2.0RC5pre7 is my favourite for now :)

 

@smith@@:

 

The installer is great, worked oob :) Needs some graphical cosmetics according to me - the leading (distance between lines) is too small thus harder to read.

 

Congratulations and good luck to the new cool members @ the Chameleon team :dance_24::happymac:

Link to comment
Share on other sites

blackosx,

could u attach the file here? I can't register at voodooprojects (Error with Anti SPAM DB. Connection Failed. Please try again later, or Contact with the WebMaster)

Hi DieBuche

 

For reference, here it was. But I understand from Rekursor's last post that this is no longer necessary. Until that is released though, if anybody wants to try this out, it does work. :dance_24:

InjectMBR_v0.2.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...