Navigation » EFi-X™ Users Forums > Support Forums > Software (Mac OS X) » AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Reply
 
Thread Tools Display Modes
  #1  
Old January 6th, 2010, 06:32 PM
AsereBLN AsereBLN is offline
Senior Member
 
Join Date: Jun 2009
Location: Berlin
Posts: 441
Default AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Happy new year to everyone!

I have a little gift for you I was quite inactive here in the last weeks... but not dormant at all. I'm done the first major changes to Chameleon. I'm really disappointed regarding the code quality of Chameleon. It's full of possible buffer overflows, quick & dirty hacks... you can notice that there is no one behind, who is supervising the development, who has and keeps the whole picture in mind. The code quality is really bad One example is the use of the boolean datatype. You can find boolean_t, bool, BOOL, int, char... used with 0, 1, TRUE, FALSE, true, false, 0, 1, YES or NO, and this even mixed! So I started to cleanup this mess, fixed some bugs and also added new cool features.

Bugfixes:
  1. First of all I fixed the stupid bug with the fixed Platform UUID.
  2. Fixed a bug regarding PCI-Root-UID different than 0
  3. Fixed a bug regarding the detection of the CPU
  4. Fixed dozens of possible buffer overflows
  5. and all the bugs I forgot to mention

New Features:
  1. You can build Chameleon with GUI-support without the need of an embedded theme (Never understood why this should be necessary). The Booter is a lot smaller now. Only 160 kBytes.
  2. Platform UUID is taken from the BIOS (UUID from SMBIOS Table 1). You can remove PlatformUUID.kext, SMUUID from smbios.plist and also System-ID from com.apple.Boot.plist.
  3. Dynamic memory parameter detecting and injecting like Frequency, Type (DDR2, DDR3), Manufactor, Partnumber, Serialnumber. You can remove all memory related stuff from smbios.plist.
  4. Dynamic PCI-Root-UID detection from PCEFI 10.5
  5. Duvell300's FACP Restart Fix added (from here)

Changes:
  1. Filenames configured in com.apple.Boot.plist (DSDT=..., SMBIOS=...) must be given with the full path. The Booter does not check automatically the Extra Folder. So if you used DSDT=mydsdt.aml and the mydsdt.aml file is in the Extra folder, then you must use now DSDT=/Extra/mydsdt.aml.
  2. ATI and nVidia Video-ROM-Files must be renamed to <vendorid>_<deviceid>.rom and must be put into the Extra folder. vendorid and deviceid as 4-digit hex values without a leading 0x. For instance, a nVidia 9400 GT (55nm) has the vendorid "0x10DE" and the deviceid "0x0641", so the filename must be "10de_0641.rom". To enable nVidia VGA BIOS File Loading use: UseNvidiaROM=Yes in com.apple.Boot.plist. To enable ATI VGA BIOS File Loading use: UseAtiROM=Yes in com.apple.Boot.plist.

If you use the Booter without the embedded theme, then you must supply a Theme in Extra/Themes/ to have GUI support. The default theme name is "Default". You can configure the theme to be used with Theme="Name" in com.apple.Boot.plist.

Platform UUID is setup by injecting /efi/platform/system-id property. The UUID value from SMBIOS table 1 is used as system-id. If your BIOS does not provide an UUID, then you can configure the UUID with SMUUID in smbios.plist. If you set system-id=No in com.apple.Boot.plist, then the system-id is not injected into the IORegistry. Use this if you want/need to use PlatformUUID.kext or something similar.

The memory parameter detecting should work with P35/X38/X48/P45 memory controllers and the builtin memory controllers of the Core i5/i7 CPU's. Reading of memory SPD (Serial Presence Detect EEPROM) data should work on P55, ICH10(R) and ICH9. You must remove all memory related keys from smbios.plist (SMmemmanufacter_X, SMmempart_X, SMmemserial_X, SMmemspeed & SMmemtype).

Dynamic PCI-Root-UID should work if your DSDT defines the UID like this: Name (UID, <value>). Default PCI-Root-UID is 0. You can configure the PCI-Root-UID to be used with PCIRootUID=<value> in com.apple.Boot.plist (-pci0, -pci1, PciRoot... does not work anymore).

You should also update boot0 (with fdisk) and boot1h with (dd), because the Chameleon team fixed some bugs there.

The archive contains:
  1. boot - the Booter without debugs, without an embedded theme
  2. boot_with_embedded_theme - the Booter without debugs and with an embedded theme
  3. boot_with_debugs - the Booter with some debug messages
  4. boot0 - the fist stage bootloader (goes into the MBR)
  5. boot1h - the second stage bootloader (goes to the beginning of the Chameleon Booter partition)

I ask everyone to use at least one time the Booter with Debugs and to take photos at every "(Press a key to continue...)" stop (PCI-Bus, CPU, Memory-Controller, SPD) to help me to improve Chameleon further. If you have a running Windows on your Hackintosh, then a TXT-Report made with the CPU-Z programm would be very helpful too. If you encounter problems, then use the Booter with debugs. Do not forget to rename it to boot.

Patch against Chameleon-RC4 is included, but without the memory detection stuff. I'll release it after a grace period. You know... ASEM is also reading here

Any feedback is welcome!

Update Version 1.1.1:
  1. FACP RestartFix is enabled by default if you have an Intel CPU
  2. Memory Manufactor Code Lookup for some common Vendors (OCZ, G.Skill, GeIL, Crossair, Kingston)

Update Version 1.1.2:
  1. Fixed a bug with Memory Manufactor Code Lookup (DDR3: ManufactorID, Parity-Bit)

Update Version 1.1.3:
  1. Added Patriot, Crucial, A-DATA Memory Manufactor
  2. Support for 945 northbridge and ICH8, ICH7 southbridges
  3. SMBus Device Enable for systems there the controller is disabled (Tip from iNDi)
  4. printout a message if theme fails to load due to a missing file
  5. removed a print in non verbose mode to keep the Booter quiet

Update Version 1.1.4:
  1. You can supply a system-id with system-id=<value> in com.apple.Boot.plist
  2. You can prevent the system-id injection with system-id=No in com.apple.Boot.plist
  3. system-type is now supported. Default is 1 (Desktop). Use system-type=2 in com.apple.Boot.plist if you have laptop. (Link)
  4. Removed the setVideoMode(TEXT) in resume.c to make Hibernation work.
  5. Support for 946GZ/PZ, Q963/Q965a and P965 northbridge memory controllers.

Update Version 1.1.6:
  1. Improved system-type injection. ACPI V2 FACP PM_Profile is patched to match system-type.
  2. Fixed a bug with system-id injection (com.apple.Boot.plist).
  3. Supported memory manufactors: Micron, Samsung, Transcend, Apacer, Kingston, PNY, MDT, Corsair, GeIL, takeMS, Buffalo, Mushkin, OCZ, A-DATA, G.SKILL, TeamElite, Patriot and Crucial.
  4. Supported memory controllers: Core i5/i7 IMC, 945G/P, 955X, 945GM/PM, 945GME, 946GZ/PZ, Q963/Q965, P965, P35, X38/X48, 965GM, 965GME and P45.
  5. Supported SMBus controllers: P55, ICH10, ICH9, ICH8 and ICH7.

To set system-type put a system-type= into com.apple.Boot.plist (1=Desktop, 2=Laptop enables Battery, 3=Workstation). Default system-type is 1 (Desktop).

Update Version 1.1.7:
  1. Fixed the font swapping bug (small & console font).
  2. Fixed a problem with disabled MCH MMIO on some mainboards (needed to detect dram frequency).

Update Version 1.1.8:
  1. Fixed the font swapping bug (small & console font) for the Booter with an embedded theme.
  2. Fixed an issue with memory detection for some mainboard (2 slot only mainboards).
  3. Added support for PM45 northbridge memory controller.
  4. Added memory manufactor lookup for: Hynix, Nanya, KingMax, Qimonda and SuperTalent.
  5. Added nVidia GT240 device lookup.
  6. You can now hide HFS partitions too using “Hide Partition” in com.apple.Boot.plist.
  7. Made the verbose output the using nVidia/ATI ROM’s more useful.
  8. Fixed a bug with sprintf (rek).
  9. Merged hibernation fix from Chameleon repo (46).
  10. Made verbosity at early bootstage useable.
  11. Bugfixes.

Update Version 1.1.9:
  1. Added nVidia ION device lookup.
  2. Added a feature to set/override the nVidia NVCAP value using NVCAP_ key in com.apple.Boot.plist.

If you want to override the NVCAP value, you must determine the PCI DeviceID of your graphic card. For instance: my new GTX260 has the DeviceID 0×05e2. Knowing the DeviceID add this to your com.apple.Boot.plist:
Code:
<key>NVCAP_05e2</key>
<string>0000000000000000000000000000000000000000</string>
The NVCAP value is exactly 20 bytes long. You have to specify it using ASCII-HEX (0-9,a-f).
Sources under http://github.com/aserebln/Chameleon.

Asere
Attached Files
File Type: zip Booter_AsereBLN_v1.1.8.zip (381.0 KB, 706 views)
File Type: zip Booter_AsereBLN_v1.1.9.zip (374.9 KB, 3404 views)
__________________

HP: aserebln.blogspot.com
MoBo: Gigabyte EP45-DS3 (F10b)
Cpu: Intel Q9550 @ 2.83GHz
Gfx: Palit Geforce 9500 GT 1GB passiv
Mem: 4GB OCZ PC1066
Hdd: 1TB Samsung HD103SJ
Dvd: LG GH22NS30
MacOS: My Booter (Chameleon 2.0 RC4/PCEFI10.5 based) & OS X 10.6.2

EFI-X: TRASHED

Last edited by AsereBLN; February 11th, 2010 at 06:32 PM.
Reply With Quote
  #2  
Old January 6th, 2010, 07:51 PM
peto's Avatar
peto peto is offline
Member
 
Join Date: Jul 2009
Posts: 38
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

I like the fact that you are able to clean up the sloppy code.
Replaced boot, boot1 and boot1h with yours and I started in verbose and everything looked normal. But...My restart stopped working.
I have been using this version of chameleon:
http://www.insanelymac.com/forum/ind...&#entry1369210

and I have (RestartFix = Yes) in my com.apple.Boot.plist
Not sure what I need to do to make restart work with yours.

thanks
__________________
Chameleon 2 RC4 | Mac OS X 10.6.2
MB Gigabyte GA-EP45-UD3P (BIOS F7)
CPU Intel Core 2 Quad Q6600 2.4GHz
GPU nVidia GeForce 9800 GT (512 MB)
RAM CORSAIR DOMINATOR 4GB
HDD 500 GB HITACHI SATA
DVD Samsung Sata

Last edited by peto; January 6th, 2010 at 09:21 PM.
Reply With Quote
  #3  
Old January 6th, 2010, 07:51 PM
Aargh-a-Knot's Avatar
Aargh-a-Knot Aargh-a-Knot is offline
Senior Member
 
Join Date: Aug 2009
Posts: 379
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Hi Asere, welcome back and Happy New Year!

Have you, or have you considered, including the restart fix by Duvell300 (starting HERE)

It is nice to not need a restart kext.

Also, will this properly detect p55/i7 cpus with no "SMcputype" value in SMBios.plist?

Thanks once again for your hard work. Looking forward to giving it a whirl.
__________________
Old Rig: Mobo: Gigabyte EP45-UD3P CPU: Q6600 GPU: XFX 8800gt Memory: 8GB Kingston DDR2 800 Optical drive: Samsung 22x DVD PSU: Antec Basiq BP55Plus 550w Case: Lian Li PC-A16 Boot Method: Chameleon 2.0 RC4 w/ restart mod DSDT

New Rig: Mobo: MSI P55M-GD45 CPU: Core i7-860 GPU: Asus 9600gt Silent Memory: 4GB Corsair Dominator DDR3 1600 Optical drive: LG Bluray PSU: Antec Basiq BP55Plus 550w Case: Lian Li v1000z Boot Method: Chameleon 2.0 AsereBLN mod
Reply With Quote
  #4  
Old January 6th, 2010, 08:03 PM
PoisonApple666's Avatar
PoisonApple666 PoisonApple666 is offline
Senior Member
 
Join Date: Jun 2009
Posts: 193
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

I know this is gonna be a stoooopid question...but here goes....I wouldn't be me without stupid questions.

When copying the boot files, you can't just grab them and plop them onto the hard drive can you? This is terminal stuff?

Thanks.

Rick
__________________
Whatever it is...I'm against it!!!


MB: EX58-UD5
CPU: i7 950
GPU: EVGA 285 GTX w/ 1 GB
HD1: 300 GB Raptor OS X SL
HD2: 1 TB Hitachi - OS X Data
HD3: 300 GB Raptor - W7
HD4: 1 TB Hitachi - W7 Data
HD5: 300 GB Raptor - Ubuntu
HD6: 1TB WD Black - FW - OS X Data II
HD7: 1 TB WD Black - FW - Time Machine
DVD: Optiarc
RAM: 12 GB Corsair
Case: Home Made - Dual Loop Liquid Cooled


Reply With Quote
  #5  
Old January 6th, 2010, 11:00 PM
afd_sg's Avatar
afd_sg afd_sg is offline
Senior Member
 
Join Date: Aug 2009
Location: N1.2 E103.8
Posts: 209
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Welcome back AsereBLN and a very Happy New Year - missed you but many thanks for this. It is certainly much leaner and I like the plain boot screen, your efforts are much appreciated. If we live in the NOW rather than the past then who needs reminding of that Efi-x thing!

We all are very grateful to the Community, from my perspective just too much defragmentation and it is always welcome when people like you describe in detail what you have changed. I Like it.

Everything is now working on my new P55 rig and with your boot file - it starts up very quickly with 14 spins of the wheel (20 plus previously), and appears stable with no errors.

Everything is working well apart from sleep as my rig will now auto and force sleep but reboots on wake up. All other functions appear to be as expected and I am happy not to have to put the UUID info in the plist files.

I have reduced my boot.plist and smbios files along with your suggestions they are now much leaner and I am running with only three kext files.

I am traveling for a couple of weeks after this evening so there will be a delay.
__________________
MB:Gigabyte GA-X58A-UD3R (rev. 2)
CPU:Intel i7-930 2.80 GHZ- QPI 4.8 GT/s
GPU:MSI R5770 Hawk
RAM:12 GB Geil (DDR3-1600)
Booter AnVAL4
HDD:2X1TB 1X640GB 1xSSD 32GB
OS- OSX10.6.4/ Windows 7/Ubuntu
Network: Gigabit Ethernet Cat 6 Cable with Netgear switch.

http://www.lightofthesoul.sg
Reply With Quote
  #6  
Old January 7th, 2010, 12:16 AM
afd_sg's Avatar
afd_sg afd_sg is offline
Senior Member
 
Join Date: Aug 2009
Location: N1.2 E103.8
Posts: 209
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Quote:
Originally Posted by Aargh-a-Knot View Post
Also, will this properly detect p55/i7 cpus with no "SMcputype" value in SMBios.plist?
Yes mine does but auto Chameleon shows the i7 CPU as Quad-Core Intel Xeon as expected.
__________________
MB:Gigabyte GA-X58A-UD3R (rev. 2)
CPU:Intel i7-930 2.80 GHZ- QPI 4.8 GT/s
GPU:MSI R5770 Hawk
RAM:12 GB Geil (DDR3-1600)
Booter AnVAL4
HDD:2X1TB 1X640GB 1xSSD 32GB
OS- OSX10.6.4/ Windows 7/Ubuntu
Network: Gigabit Ethernet Cat 6 Cable with Netgear switch.

http://www.lightofthesoul.sg
Reply With Quote
  #7  
Old January 7th, 2010, 03:36 AM
rals2007 rals2007 is offline
Junior Member
 
Join Date: Jan 2010
Posts: 8
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Any chance for the source?
Reply With Quote
  #8  
Old January 7th, 2010, 06:14 AM
AsereBLN AsereBLN is offline
Senior Member
 
Join Date: Jun 2009
Location: Berlin
Posts: 441
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Looked into the FACP Restart Fix. The RST_CNT—Reset Control Register (LPC I/F—D31:F0) with I/O Address 0xCF9h is present in the ICH9, ICH10(R) and P55 chipset, so I think it's OK to implement the fix in general. Made a new version of my booter with the mentioned FACP RestartFix included. Please look at the first post.

Asere
__________________

HP: aserebln.blogspot.com
MoBo: Gigabyte EP45-DS3 (F10b)
Cpu: Intel Q9550 @ 2.83GHz
Gfx: Palit Geforce 9500 GT 1GB passiv
Mem: 4GB OCZ PC1066
Hdd: 1TB Samsung HD103SJ
Dvd: LG GH22NS30
MacOS: My Booter (Chameleon 2.0 RC4/PCEFI10.5 based) & OS X 10.6.2

EFI-X: TRASHED
Reply With Quote
  #9  
Old January 7th, 2010, 06:30 AM
AsereBLN AsereBLN is offline
Senior Member
 
Join Date: Jun 2009
Location: Berlin
Posts: 441
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Quote:
Originally Posted by Aargh-a-Knot View Post
Hi Asere, welcome back and Happy New Year!

Also, will this properly detect p55/i7 cpus with no "SMcputype" value in SMBios.plist?

Thanks once again for your hard work. Looking forward to giving it a whirl.
I know that the new i7 iMac (iMac11,1) uses a new cputype 0x0601 for the i7. But the iMac11,1 has a different 10.6.2 version. The normal 10.6.2 (10C540) does not know the new 0x0601 cputype and therefore I still use the Xeon one. I guess 10.6.3 will fix this and then I will update Chameleon to automatically use 0x0601 if a i7 is present.
__________________

HP: aserebln.blogspot.com
MoBo: Gigabyte EP45-DS3 (F10b)
Cpu: Intel Q9550 @ 2.83GHz
Gfx: Palit Geforce 9500 GT 1GB passiv
Mem: 4GB OCZ PC1066
Hdd: 1TB Samsung HD103SJ
Dvd: LG GH22NS30
MacOS: My Booter (Chameleon 2.0 RC4/PCEFI10.5 based) & OS X 10.6.2

EFI-X: TRASHED
Reply With Quote
  #10  
Old January 7th, 2010, 06:35 AM
AsereBLN AsereBLN is offline
Senior Member
 
Join Date: Jun 2009
Location: Berlin
Posts: 441
Default Re: AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Quote:
Originally Posted by PoisonApple666 View Post
I know this is gonna be a stoooopid question...but here goes....I wouldn't be me without stupid questions.

When copying the boot files, you can't just grab them and plop them onto the hard drive can you? This is terminal stuff?

Thanks.

Rick
boot0 and boot1h must be installed from the Terminal. I have explained the procedure in my Blog (here). boot could be installed by drag-and-drop.
__________________

HP: aserebln.blogspot.com
MoBo: Gigabyte EP45-DS3 (F10b)
Cpu: Intel Q9550 @ 2.83GHz
Gfx: Palit Geforce 9500 GT 1GB passiv
Mem: 4GB OCZ PC1066
Hdd: 1TB Samsung HD103SJ
Dvd: LG GH22NS30
MacOS: My Booter (Chameleon 2.0 RC4/PCEFI10.5 based) & OS X 10.6.2

EFI-X: TRASHED
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 09:45 AM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
EFi-X™ is a registered trademark of Art Studios Entertainment Media. EFi-X™ Users is not affiliated with nor endorsed by Art Studios Entertainment Media.