2

Author Topic: Revisit Chameleon's package builder  (Read 77122 times)

0 Members and 1 Guest are viewing this topic.

zef

  • Administrator
  • Posts: 265
Revisit Chameleon's package builder
« on: July 26, 2010, 12:53:52 PM »
Hola People!

I started this topic to discuss the ongoing issues regarding the old-timer "make pkg" function. I saw iFabio sent updated language translations @IM, thanks Blackosx for commiting those changes to trunk. This part of the project is a grey area, but considering the amount of quality changes made for the booter recently, I think the pkg building also needs bandages, polishment and painkillers.

These are the four topics what i was thinking of (feel free to extend/modify):

- Revisit/update the tools what the resulting pkg contains, like fdisk440, etc (rals2007 noticed that).
- Revisit/update the bundled extensions. For example using the PIIXATA injector gives me a KP under vmware under Snow Leopard, but the VMware supplied LegacyPIIXATA injector doesn't. Then how about adding Mozo's FakeSMC.kext?
- Make the package 10.5/10.6 compatible. We could use Chameleon's ability to throw all kexts under /Extra/10.x/Extensions making the boot partition more universal.
- Review the inner workings and adjust/fix if needed - i have no doubt about that we need ;)

Thanks for reading!

Bye,
zef

PS: Waiting for reply :)
ASUS P8Z68-V PRO/GEN3 | i5-2500k | 16GB RAM | GTX560 | Keyboard | Mouse | Devilsound DAC

Blackosx

  • Forum Moderator
  • Posts: 1150
Re: Revisit Chameleon's package builder
« Reply #1 on: July 26, 2010, 01:27:00 PM »
Just some quick thoughts here, but yeah.. the fdisk440 needs adding.
I wonder if it should write boot0 or boot0hfs as standard?

For installing extensions... There are so many variations of who needs what that you can't possibly cover all the bases.. I would vote on maybe only adding the FakeSMC.kext. And many people still use 10.5 so that would need to be considered.

But a new package installer would definitely be a major plus for many out there.
10.10.5 / 10.11 GM1 | Asus Maximum IV Gene-Z | i7-2600 3.40GHz | 4GB | Radeon 5770 1GB

Terc

  • Forum Moderator
  • Posts: 129
Re: Revisit Chameleon's package builder
« Reply #2 on: July 26, 2010, 06:50:38 PM »
This sounds like a good thing to look at.  Maybe this is for another thread, but can anyone explain when graphicsenabler isn't enabled by default (requiring the user to add a string in the boot.plist to disable it instead? I think it makes sense to enable if possible, unless the user doesn't want to for some reason (multiple graphics cards?).

Anyway, I think that focusing on making things as simple as possible for end users is a good goal for the installer.

Oh, and one for idea.  What about adding the readme/documentation link in the Extra folder?  Also, possibly installing Lizard.app as an option might be nice.

Adding legacy kexts still makes sense, and fakesmc as well.  But I think for the remaining kexts, if we can get them booting, that's probably where things should stop.
« Last Edit: July 26, 2010, 06:52:31 PM by Terc »

Lord Anubis

  • Member
  • Posts: 74
Re: Revisit Chameleon's package builder
« Reply #3 on: July 27, 2010, 02:04:53 PM »
For installing extensions... There are so many variations of who needs what that you can't possibly cover all the bases.

But a new package installer would definitely be a major plus for many out there.

I hope the extensions will be well documented inside the installer when selected.
Also I hope that there will be a connection with the Cartri Bios for many GB mobo owners out there.
F.e when CartriBios selected it installs only the needed files etc.

And a kind of repair action when people damage their bootsectors etc
Quicksilver 2002 Case - GB EP45-DS3P - 8Gb Kingston mem. - Q6600 - Asus 7300GT Silent 512Mb - 6 SATA drives - 1 IDE drives ( using F12/Chameleon for booting, not visible in OSX ) - 1 external Sata Samsung DVD - OSX 10.6.8 server retail - Chameleon 2.0RC1 + Cartri Bios

Kabyl

  • VoodooLabs
  • Posts: 158
Re: Revisit Chameleon's package builder
« Reply #4 on: July 27, 2010, 02:42:43 PM »
Also I hope that there will be a connection with the Cartri Bios for many GB mobo owners out there.
F.e when CartriBios selected it installs only the needed files etc.
I'm not sure I understand what you mean (?)

Quote
And a kind of repair action when people damage their bootsectors etc
There is nothing to repair, but reinstall the bootsector.

scrax

  • Member
  • Posts: 61
Re: Revisit Chameleon's package builder
« Reply #5 on: July 27, 2010, 04:00:49 PM »
In my opinion it's important to install:
fdisk440
Chameleon
Doc folder
FakeSMC.kext
PreferencePanels
Utilities (Kext Utility & IaslMe if they are OpenSource why not keep them in the repo?)

For Legacy kext (maybe optional in the pkg) I know smith@@ have done a "universal" legacy kext with all the various kext he found that could be included.
I think that having the c.a.B.p options in the installer could be confusing for new users, instead of using the PreferencePanel that is more simple.

I have made, with the help of iFabio a incomplete pakagebuilder template, but we need some help in the scripts part because it's a new world for us :)
It need to be copied in the /trunk/package folder.
 
« Last Edit: July 27, 2010, 04:03:47 PM by scrax »

scrax

  • Member
  • Posts: 61
Re: Revisit Chameleon's package builder
« Reply #6 on: September 05, 2010, 05:12:35 PM »
I've edited the previously posted package builder project to have more boot options.
It's called ChameleoPlus because I've added more options for install like:
-Kext
Installs the kexts in the trunk

-Utility
PrefPanel
IaslMe
IORegistryExplorer
Kext Helper

-Auto bin patch for AppleHDA (from an idea by smith@@)
ALC662
ALC883
ALC888
ALC889
ALC AD2000B

-Motherboard specific files
Zotac GF9300 WiFI
Asus P5KR (P5K & P5KC if crossflashed to P5KR BIOS)
Asus P5K-E WiFi

All the project need to be in the package folder of the trunk.
All the localized file are now embedded ti avoid %CHAMELEONVERSION% (but it requires to manually update each revision)
File added to /package:
/chameleon/trunk/package/fdisk440

/chameleon/trunk/package/MoBo (Extra folder and S/L/E needed kext for the board I've install file)

/chameleon/trunk/package/Other
/chameleon/trunk/package/Other/AppleHDA     (AppleHDA binpatch scripts)
/chameleon/trunk/package/Other/Chameleon.prefPane
/chameleon/trunk/package/Other/iASLMe.app
/chameleon/trunk/package/Other/IORegistryExplorer.app
/chameleon/trunk/package/Other/Kext Utility.app

Scripts used by installer:
/chameleon/trunk/package/Scripts/PackageScripts
/chameleon/trunk/package/Scripts/PackageScripts/boot0_install
/chameleon/trunk/package/Scripts/PackageScripts/boot0hfs_install
/chameleon/trunk/package/Scripts/PackageScripts/boot1h_install
/chameleon/trunk/package/Scripts/PackageScripts/delete_temp
/chameleon/trunk/package/Scripts/PackageScripts/postinstall

DONE:

- Revisit/update the tools what the resulting pkg contains, like fdisk440, etc (rals2007 noticed that).

TO DO:
- Revisit/update the bundled extensions. For example using the PIIXATA injector gives me a KP under vmware under Snow Leopard, but the VMware supplied LegacyPIIXATA injector doesn't. Then how about adding Mozo's FakeSMC.kext?

- Make the package 10.5/10.6 compatible.  (not already tested on 10.5, need feedback)
- Review the inner workings and adjust/fix if needed (make choice for boot0 AppleHDA and MoBo not multiple and add a way to automatically update welcome and conclusion file with v%CHAMELEONVERSION% r%CHAMELEONREVISION% %CHAMELEONSTAGE% )
« Last Edit: September 05, 2010, 05:44:31 PM by scrax »

Blackosx

  • Forum Moderator
  • Posts: 1150
Re: Revisit Chameleon's package builder
« Reply #7 on: September 05, 2010, 11:43:35 PM »
Hi scrax

Thanks for posting everything here and it gives an interesting combination of files and a great platform to build upon and I guess we'll have to see which direction the Chameleon team want to take it. I think inclusion of the docs in beneficial though I think it's time we updated them.

I love the auto bin patch for AppleHDA, the utilities are useful for those who don't have them, but whether or not it should include motherboard specific files is another question.

Great job  ;D
« Last Edit: September 05, 2010, 11:49:51 PM by Blackosx »
10.10.5 / 10.11 GM1 | Asus Maximum IV Gene-Z | i7-2600 3.40GHz | 4GB | Radeon 5770 1GB

scrax

  • Member
  • Posts: 61
Re: Revisit Chameleon's package builder
« Reply #8 on: September 06, 2010, 12:39:08 AM »
Yes, mobo it's really not indicated for the official chameleon installer.
I've posted what I have made just to show my idea.
I'm learning how to use the command line with packagemaker to make a script that downloads latest build from svn and builds the relative installer...
here the console command:
Code: [Select]
svn co -r HEAD http://forge.voodooprojects.org/svn/chameleon ; cd  ~/chameleon/trunk; make clean ; make ;
/Developer/usr/bin/packagemaker -d ~/chameleon/trunk/package/ChameleonPlus.pmdoc
For the official installer I suggest it need to do:

Install Chameleon on selected volume (no RAID for now)
/boot
boot0hfs (boot0 optional)
boot1

Example file (with all the options set as the defaults ones Chameleon use)
/Extra/smbios.plist
/Extra/com.apple.Boot.plist

Documentation
/Extra/Doc

PrefPanel
/Library/PreferencePanels/Chameleon.PrefPanel

Kext (All In /Extra/Extensions/10.x):
 10.5
FakeSMC (2.5 without verbose)
LegacyXXXX (I have no idea here)
 10.6
FakeSMC (Mozodojo without Plugins)
LegacyXXXX (I have no idea here)

Utility (optional)
bdmesg    (where? bin folder?)
fdisk440   (where? bin folder?)
lspci         (bin folder)
/Extra/Utility/KextUtility
/Extra/Utility/Lizard
/Extra/Utility/IaslMe
/Extra/Utility/AppleHDApatcher2

The kexts needs to be generic, so maybe:
EvOReboot.kext
LegacyATA.kext
...no more ideas for now :)
...maybe a Graphics Enabler Options

Attached Updated to r496

EDIT: Attached also an example not yet tested

the flowers are for single choices options
« Last Edit: September 06, 2010, 06:42:52 AM by scrax »

smith@@

  • Member
  • Posts: 49
Re: Revisit Chameleon's package builder
« Reply #9 on: September 06, 2010, 07:34:32 AM »
No good for simple chameleon install, not should be these the guidelines ;)


btw the alcpatch was my idea here: http://www.insanelymac.com/forum/index.php?showtopic=231104

not only for binary..

and here my definitely legacy:

Kabyl

  • VoodooLabs
  • Posts: 158
Re: Revisit Chameleon's package builder
« Reply #10 on: September 06, 2010, 09:21:48 AM »
Yes, mobo it's really not indicated for the official chameleon installer.
I've posted what I have made just to show my idea.
I'm learning how to use the command line with packagemaker to make a script that downloads latest build from svn and builds the relative installer...
here the console command:
Code: [Select]
svn co -r HEAD http://forge.voodooprojects.org/svn/chameleon ; cd  ~/chameleon/trunk; make clean ; make ;
/Developer/usr/bin/packagemaker -d ~/chameleon/trunk/package/ChameleonPlus.pmdoc
Get only what you need, "trunk".
Code: [Select]
svn co http://forge.voodooprojects.org/svn/chameleon/trunk
Quote
For the official installer I suggest it need to do:

Install Chameleon on selected volume (no RAID for now)
/boot
boot0hfs (boot0 optional)
boot1

Example file (with all the options set as the defaults ones Chameleon use)
/Extra/smbios.plist
/Extra/com.apple.Boot.plist

Documentation
/Extra/Doc
I don't think docs. should go in there, maybe in the User's "Documents" folder?

Quote
PrefPanel
/Library/PreferencePanels/Chameleon.PrefPanel

Kext (All In /Extra/Extensions/10.x):
 10.5
FakeSMC (2.5 without verbose)
LegacyXXXX (I have no idea here)
 10.6
FakeSMC (Mozodojo without Plugins)
LegacyXXXX (I have no idea here)
Why do you people still call them "legacy" kexts? the original kext that used that name was to add support for old ICH chips.

Quote
Utility (optional)
bdmesg    (where? bin folder?)
fdisk440   (where? bin folder?)
lspci         (bin folder)
/Extra/Utility/KextUtility
/Extra/Utility/Lizard
/Extra/Utility/IaslMe
/Extra/Utility/AppleHDApatcher2

Same here, I don't think these should go under /Extra/Utility, actually I don't think an Utility folder should exist under /Extra at all, make it easier for users to access these tools/apps, there are better locations for them.

Another thing, I don't think these should be included in the installer :), you'll have to keep track of third party projects, I would, instead, suggest an Utilities package that's not part of Chameleon, the current installer needs to be reworked, and don't think it's a good idea to add even more stuff.

« Last Edit: September 06, 2010, 09:24:39 AM by Kabyl »

Blackosx

  • Forum Moderator
  • Posts: 1150
Re: Revisit Chameleon's package builder
« Reply #11 on: September 06, 2010, 11:37:28 AM »
Well done with your continued development scrax, you seem to have a good understanding of PackageMaker. And thanks for the feedback Kabyl.
Scrax, would you be happy to make some changes to your installer package based on Kabyl's comments? 

I can't really contribute to anything now as I am going away tonight for a break, but I would be happy to look in to re-purposing the docs in to new PDF's when I get back.
10.10.5 / 10.11 GM1 | Asus Maximum IV Gene-Z | i7-2600 3.40GHz | 4GB | Radeon 5770 1GB

scrax

  • Member
  • Posts: 61
Re: Revisit Chameleon's package builder
« Reply #12 on: September 06, 2010, 02:58:01 PM »
No problem in adding the changes, Utility and Motherboard will stay for now only in ChameleonPlus. I'll make a ChameleonBase for the official installer and post it there.

Also AppleHDA (smith@@ I gave you credits for that on topic 6 ;) ) could be removed from the base installer.

Chameleon
 --boot0
 --boot0hfs
bdmesg (usr/sbin) HIDDEN
fdisk440 (actually deleted after install, we can put it in usr/sbin instead)

Documentation
(~/Documents/Chameleon) relocable by user

Configurations (not yet added)
--com.apple.Boot.plist
--smbios.plist

Utility
--Preferences Panel  (maybe we can put this in Configurations and remove Utility at all)
« Last Edit: September 06, 2010, 03:36:12 PM by scrax »

Blackosx

  • Forum Moderator
  • Posts: 1150
Re: Revisit Chameleon's package builder
« Reply #13 on: September 06, 2010, 07:01:19 PM »
Hi scrax

I have just done a couple of quicks tests using the ChameleonBase installer on my GPT HDD and MBR USB and it installs the base files just fine which I guess is the most important part of the installer. Could/should it have options for installing to the EFI partition? a FAT partition? and RAID?

Also, as I am running this installer to a blank non-system disk, the Docs folder currently gets added to the root of the target. Can this be a user selectable location so I could point it to my ~/user/documents on a different drive?

Keep up the good work :)
10.10.5 / 10.11 GM1 | Asus Maximum IV Gene-Z | i7-2600 3.40GHz | 4GB | Radeon 5770 1GB

scrax

  • Member
  • Posts: 61
Re: Revisit Chameleon's package builder
« Reply #14 on: September 06, 2010, 07:23:26 PM »
(I had problem editing previous post so here it is)

I'e made some little correction to the installer, here the structure (modded/removed file in the script folder)

Chameleon
 --boot0
 --boot0hfs
bdmesg (usr/sbin) HIDDEN
fdisk440 (usr/sbin) HIDDEN

Documentation
HELP, README, USER GUIDE (Library/Documentation/Chameleon)

AppleHDA (for now still there)

Configurations
--com.apple.Boot.plist (not yet added)
--smbios.plist (not yet added)
--Preferences Panel



--------------------

For installing in EFI and RAID is easy to add the options, but i need to figure out the script needed.
« Last Edit: September 06, 2010, 09:39:46 PM by scrax »