Jump to content
  • 0
Sign in to follow this  
AsereBLN

AsereBLN Booter - Based on Chameleon RC4 / PCEFI10.5

Question

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? 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:

<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

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0
Dear friends, despite the traffic generated over at InsanelyMac and AnVAL's bootloader, I see here that the project seems frozen or paused. Has anyone any news regarding the possibility of Asere working on newer builds? Just asking for information... Cheers.

I have gone dormant for a while simply because my system just works, and it seems like the same questions kept getting asked over and over... Is there any new development that would be worthwhile implementing into Asere's Chameleon?

Share this post


Link to post
Share on other sites
  • 0

was interesting, only changed the boot from Asere to AnVal, Geekbench decreased by 1000 points. Returned to Asere boot))

Share this post


Link to post
Share on other sites
  • 0
I have gone dormant for a while simply because my system just works, and it seems like the same questions kept getting asked over and over... Is there any new development that would be worthwhile implementing into Asere's Chameleon?

Good morning elmangomez, thank you for your reply. I (we) never claimed problems with AsereBLN latest build; the only thing I have asked and hoping to obtain a reply from the developers, is whether a video ROM (bin) is loaded before the bootloader GUI kicks in, in order to use a (pathed) new VESA resolution due to my monitor being 16:9 (1920x1080).

Things Asere could include, if necessary for newer motherboards/CPUs, are e.g. full ACPI tables override - ACPI V1 to V4 conversion - auto generate XSDT from RSDT, etc. I have an ICH7 mobo and build AsereBLN v119 works well.

One question, though: Is there a way to hide the log of the files loaded from the theme, before entering GUI? And also, when I select my (main) drive, there's briefly an error on the top of the screen saying "Failed to..." and then the boot screen appears (with or without -v option). How can I see this error?

I honestly never thought that the bootloader could affect geekbench, as lzd says! But if it serves any tribute, in my signature over at InsanelyMac I write that I am using AsereBLN :)

Share this post


Link to post
Share on other sites
  • 0
Good morning elmangomez, thank you for your reply. I (we) never claimed problems with AsereBLN latest build; the only thing I have asked and hoping to obtain a reply from the developers, is whether a video ROM (bin) is loaded before the bootloader GUI kicks in, in order to use a (pathed) new VESA resolution due to my monitor being 16:9 (1920x1080).

Things Asere could include, if necessary for newer motherboards/CPUs, are e.g. full ACPI tables override - ACPI V1 to V4 conversion - auto generate XSDT from RSDT, etc. I have an ICH7 mobo and build AsereBLN v119 works well.

One question, though: Is there a way to hide the log of the files loaded from the theme, before entering GUI? And also, when I select my (main) drive, there's briefly an error on the top of the screen saying "Failed to..." and then the boot screen appears (with or without -v option). How can I see this error?

I honestly never thought that the bootloader could affect geekbench, as lzd says! But if it serves any tribute, in my signature over at InsanelyMac I write that I am using AsereBLN :)

Hi Konsti,

I am not a super expert, I simply have managed to find solutions by reading everywhere. I have tried to help other newbies (ex-Efixers) so they do not have to go through the same research I went through. That being said, I have to confess that the things you mention are a little above my understanding. So, could I impose on you to explain these things in layman's terms...

Is the loading of the video ROM feature you request purely to get the right resolution on your bootloader theme or does it have any other advantages? I have a 30"monitor (2560x1920) and the bootloader looks really crunchy...

What is ACPI override... something dealing with with speedsteping?

Please do not misunderstand me, I want the latest and best that can be had, but as a layman, what are the advantages?

The thing to remember about this board is its initial mission statement. It was meant for that segment of population who wanted a no-pain hackintosh system. Initially the Efix device offered this but we all know the disaster that was... so we delved further into the hackintosh to get that solution. Asere and Mike are the best at all the support they have provided... So please have a little patience when a semi-newbie like me asks basic questions.

Thanks.

PS, my work system is now a 3.2 GHz i7 with a Gigabyte EX58-UD5, an nVidia 285 GTX, which is running fine. I do not have any speedstepping done and CPU runs at around 50 degrees celcius.

Share this post


Link to post
Share on other sites
  • 0

Dear elmangomez, all members, I am not an expert/guru either, just wondering if this project will keep moving forward. I am not saying that I found bugs in v119, or anything.

My initial reason for joining was to ask the programmer(s) what happens in the code if I specify a video ROM .bin file. Will it be used in the bootloader's GUI? Like yourself, I too have a 'crushed' GUI...

But no-one seems to know what happens when we specify in com.apple.Boot.plist a video ROM file. Is it just injected or also used by the bootloader?

Finally, ACPI override means that through com.apple.Boot.plist or other user-friendly means, we can skip parts of the machine's DSDT, so we can start-up the mobo without any kernel panics or even DSDT patching... I have read that ACPI override involves skipping (original) and defining (simpler method) things like SSDT, HPET, SLIC, SBST, ECDT, ASF, DMAR, APIC, MCFG which are to be found inside a disassembled DSDT code file. It's like forcing the computer/motherboard to ignore RTC which is the primary reason for kernel panics -- that byte size that kills the boot process :)

That's all. I don't want to bore the others, anyway. Let's see if Asere will come with any new needs or ideas :D

Share this post


Link to post
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
Answer this question...

×   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.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.