Jump to content

Chameleon 2.4svn Official PKG Installer


ErmaC
4,344 posts in this topic

Recommended Posts

That was before having the nvram support back. Now if does not work, the only reason should be a bad kexts permissions or cache not updated properly.

Or a bug, but to enure this I need a ioreg, otherwise che ne so :P ?

Link to comment
Share on other sites

@ErmaC: Here's a patch that resolves -Waddress-of-packed-member and also works with Xcode earlier than 8.3 that don't recognize this warning

diff a/i386/libsaio/smbios.c b/i386/libsaio/smbios.c
--- a/i386/libsaio/smbios.c
+++ b/i386/libsaio/smbios.c
@@ -925,7 +925,7 @@ void addSMBOemProcessorType(SMBStructPtrs *structPtr)
 	p->header.length	= sizeof(SMBOemProcessorType);
 	p->header.handle	= handle++;
 
-	setSMBValue(structPtr, numOfSetters - 2 , (returnType *)&(p->ProcessorType));
+	setSMBValue(structPtr, numOfSetters - 2 , (returnType *)(void*)&(p->ProcessorType));
 
 	structPtr->new = (SMBStructHeader *)((uint8_t *)structPtr->new + sizeof(SMBOemProcessorType) + 2);
 	tableLength += sizeof(SMBOemProcessorType) + 2;
@@ -974,7 +974,7 @@ void addSMBOemProcessorBusSpeed(SMBStructPtrs *structPtr)
 	p->header.length	= sizeof(SMBOemProcessorBusSpeed);
 	p->header.handle	= handle++;
 
-	setSMBValue(structPtr, numOfSetters -1, (returnType *)&(p->ProcessorBusSpeed));
+	setSMBValue(structPtr, numOfSetters -1, (returnType *)(void*)&(p->ProcessorBusSpeed));
 
 	structPtr->new = (SMBStructHeader *)((uint8_t *)structPtr->new + sizeof(SMBOemProcessorBusSpeed) + 2);
 	tableLength += sizeof(SMBOemProcessorBusSpeed) + 2;

Edit: There's a discussion here of this warning.

Edited by Zenith432
  • Like 2
Link to comment
Share on other sites

@ErmaC: Here's a patch that resolves -Waddress-of-packed-member and also works with Xcode earlier than 8.3 that don't recognize this warning

diff a/i386/libsaio/smbios.c b/i386/libsaio/smbios.c
--- a/i386/libsaio/smbios.c
+++ b/i386/libsaio/smbios.c
@@ -925,7 +925,7 @@ void addSMBOemProcessorType(SMBStructPtrs *structPtr)
 	p->header.length	= sizeof(SMBOemProcessorType);
 	p->header.handle	= handle++;
 
-	setSMBValue(structPtr, numOfSetters - 2 , (returnType *)&(p->ProcessorType));
+	setSMBValue(structPtr, numOfSetters - 2 , (returnType *)(void*)&(p->ProcessorType));
 
 	structPtr->new = (SMBStructHeader *)((uint8_t *)structPtr->new + sizeof(SMBOemProcessorType) + 2);
 	tableLength += sizeof(SMBOemProcessorType) + 2;
@@ -974,7 +974,7 @@ void addSMBOemProcessorBusSpeed(SMBStructPtrs *structPtr)
 	p->header.length	= sizeof(SMBOemProcessorBusSpeed);
 	p->header.handle	= handle++;
 
-	setSMBValue(structPtr, numOfSetters -1, (returnType *)&(p->ProcessorBusSpeed));
+	setSMBValue(structPtr, numOfSetters -1, (returnType *)(void*)&(p->ProcessorBusSpeed));
 
 	structPtr->new = (SMBStructHeader *)((uint8_t *)structPtr->new + sizeof(SMBOemProcessorBusSpeed) + 2);
 	tableLength += sizeof(SMBOemProcessorBusSpeed) + 2;

 

:) thx Zenith432

I do some test on my actual version of xcode (8.2.1)...

 

I need time to update my version of xcode to 8.x

MacBook-Pro:trunk fabio$ xcodebuild -version && xcode-select --version
Xcode 8.2.1
Build version 8C1002
xcode-select version 2347.
MacBook-Pro:trunk fabio$ 
ErmaC
  • Like 2
Link to comment
Share on other sites

Pre-packed PKG are available in the download section.

 

Chameleon --> http://www.insanelymac.com/forum/files/file/59-chameleon-24-svn/

Enoch --> http://www.insanelymac.com/forum/files/file/71-enoch/

 

Note: those revision are exactly the same version that you can build by yourself, done by downloading and build it with the source code from official svn repository.

 

Note2: Chameleon support all OS X version from 10.4 to 10.12  (Yosemite, El Capitan and Sierra included!)..

(other functionality ...like patching on-fly are only available for Enoch)

 

Note3: Enoch support all the OS X version (until Sierra) and also can patch: kernel and kexts on-fly, also Enoch have an embedded FakeSMC.kext (in the case you missed it ;)) and iMessage FaceTime feature are available thanks to new module FileNVRAM (still under test)

all these changes and credits go to Micky1979.

 

 

 a tiny recap: from bootHelp.txt

 

 

The boot: prompt waits for you to type advanced startup options.
If you don't type anything, the computer continues starting up normally. It
uses the kernel and configuration files on the startup device, which it also
uses as the root device.
 
Advanced startup options use the following syntax:
 
    [device]<kernel> [arguments]
 
Example arguments include
 
 device: rd=<BSD device name>       (e.g. rd=disk0s2)
         rd=*<IODeviceTree path>    (e.g. rd=*/PCI0@0/CHN0@0/@0:1)
 
 kernel: kernel name                (e.g. "mach_kernel" - must be in "/" )
 
 flags: -v (verbose),                -s (single user mode),
        -x (safe mode),              -f (ignore caches),
        -F (ignore "Kernel Flags" specified in boot configuration file)
 
 "Graphics Mode"="WIDTHxHEIGHTxDEPTH" (e.g. "1024x768x32")
 
 kernel flags                       (e.g. debug=0x144)
 io=0xffffffff                      (defined in IOKit/IOKitDebug.h)
 
Example: mach_kernel rd=disk0s1 -v "Graphics Mode"="1920x1200x32"
 
If the computer won't start up properly, you may be able to start it up using
safe mode.  Type -x to start up in safe mode, which ignores all cached
driver files.
 
Special booter hotkeys:
-----------------------
  F5            Rescans optical drive.
  F10           Scans and displays all BIOS accessible drives.
 
Special booter commands:
------------------------
  ?memory       Displays information about the computer's memory.
  ?video        Displays VESA video modes supported by the computer's BIOS.
  ?norescan     Leaves optical drive rescan mode.
 
Additional useful command-line options:
---------------------------------------
  config=<file>             Use an alternate Boot.plist file.
 
Options useful in the org.chameleon.Boot.plist file:
----------------------------------------------------
  Wait=Yes|No               Prompt for a key press before starting the kernel.
  "Quiet Boot"=Yes|No       Use quiet boot mode (no messages or prompt).
  Timeout=8                 Number of seconds to pause at the boot: prompt.
  "Instant Menu"=Yes        Force displaying the partition selection menu.
 
  "Default Partition"     Sets the default boot partition,
    =hd(x,y)|UUID|"Label"    Specified as a disk/partition pair, an UUID, or a
                             label enclosed in quotes.
 
  "Hide Partition"        Remove unwanted partition(s) from the boot menu.
    =partition               Specified, possibly multiple times, as hd(x,y), an
     [;partition2 ...]       UUID or label enclosed in quotes.
 
  "Rename Partition"      Rename partition(s) for the boot menu.
    =partition <alias>       Where partition is hd(x,y), UUID or label enclosed
     [;partition2 <alias2>   in quotes. The alias can optionally be quoted too.
     ...]
 
  GUI=No                  Disable the GUI (enabled by default).
  "Boot Banner"=Yes|No    Show boot banner in GUI mode (disabled by default).
  ShowInfo=No             Disables display of partition and resolution details.
                            "Boot Banner"=No will also disable this info.
  "Legacy Logo"=Yes|No    Use the legacy grey apple logo (enabled by default).
 
  RebootOnPanic=Yes|No    (disabled by default).
 
  EnableHiDPI=Yes|No      Enable High resolution display (disabled by default).
 
  BlackMode=Yes|No        The new BlackMode loads the white Apple logo,
                             instead of the gray Apple logo, on a black background (disabled by default).
 
  CsrActiveConfig=<value> Set CsrActiveConfig for OS 10.11.x, range 0..127 (default 0x67)
 
  PciRoot=<value>         Use an alternate value for PciRoot (default value 0).
 
  UseKernelCache=Yes|No   Yes will load pre-linked kernel and will ignore /E/E
   and /S/L/E/Extensions.mkext.
Default is No but Yes if you use Lion on a Raid partition.
 
  KeyLayout=keymap        Use to change the keyboard mapping of the bootloader
                            (e.g. KeyLayout=mac-fr)
 
  HDAEnabler=Yes|No         Automatic device-properties generation for audio controllers.
    HDEFLayoutID=<value>    Inject alternate value of layout-id for HDEF (HEX).
    HDAULayoutID=<value>    Inject alternate value of layout-id for HDAU (HEX).
 
  GraphicsEnabler=Yes|No    Automatic device-properties generation for graphics cards.
    SkipIntelGfx=Yes|No     Skip the Automatic device-properties generation for Intel cards.
    SkipNvidiaGfx=Yes|No    Skip the Automatic device-properties generation for Nvidia cards.
    SkipAtiGfx=Yes|No       Skip the Automatic device-properties generation for Ati cards.
 
    NvidiaGeneric =Yes|No   Use the classic Nvidia name for the SystemProfiler (disabled by default).
    NvidiaSingle =Yes|No    If you have two cards Nvidia and wants to inject only
                              first one then you can set this parameter (enbaled by default).
 
    AtiConfig=<cardcfg>   Use a different card config, e.g. AtiConfig=Megalodon.
    AtiPorts=<value>      Specify the number of ports, e.g. AtiPorts=2.
    UseAtiROM=Yes|No      Use an alternate Ati ROM image
                            (default path: /Extra/<vendorid>_<devid>_<subsysid>.rom)
    UseNvidiaROM=Yes|No   Use an alternate Nvidia ROM image
                            (default path:  /Extra/<vendorid>_<devid>.rom)
    VBIOS=Yes|No            Inject VBIOS to device-properties.
    display_0=<value>       Inject alternate value of display-cfg into NVDA,Display-A@0 (HEX).
    display_1=<value>       Inject alternate value of display-cfg into NVDA,Display-B@1 (HEX).
    IntelCapriFB=<value>    For Intel Ivy Bridge, range 0-11.
    IntelAzulFB=<value>     For Intel Haswell, range 0-16.
    IntelBdwFB=<value>      For Intel Broadwell, range 0-19.
    IntelSklFB=<value>      For Intel Skylake, range 0-12.
    InjectIntel-ig=<value>  Inject alternate value into AAPL,ig-platform-id (HEX).
 
    EnableBacklight=Yes   Enable Back light option for NVIDIA and ATI
    EnableDualLink=Yes   Enable DualLink option for NVIDIA and ATI
    EnableHDMIAudio=Yes   Inject HDMI audio for NVIDIA and ATI.
 
  EthernetBuiltIn=Yes|No  Automatic "built-in"=YES device-properties generation
                          for ethernet interfaces.
  ForceHPET=Yes|No        Force HPET on (disabled by default).
 
  USBBusFix=Yes             Enable the XHCI, EHCI and UHCI fixes (disabled by default).
  EHCIacquire=Yes           Enable the EHCI fix (disabled by default).
  UHCIreset=Yes             Enable the UHCI fix (disabled by default).
  USBLegacyOff=Yes          Force USB Legacy off for XHCI and EHCI (disabled by default).
  XHCILegacyOff=Yes         Force USB Legacy off for XHCI (disabled by default).
 
  Wake=No                   Disable wake up after hibernation (enbaled by default).
  ForceWake=Yes             Force using the sleepimage (disabled by default).
  WakeImage=<file>          Use an alternate sleepimage file 
                              (default path is /private/var/vm/sleepimage).
 
  DropSSDT=Yes              Skip the SSDT tables while relocating the ACPI tables.
  Drop<file>=Yes            Skip:[HPET, SLIC, SBST, ECDT, ASF! or DMAR]
 
  DSDT=<file>               Use an alternate DSDT.aml file 
                              (default path: /DSDT.aml
                               /Extra/DSDT.aml bt(0,0)/Extra/DSDT.aml).
  HPET=<file>               Use an alternate HPET.aml file 
                              (default path: /HPET.aml
                               /Extra/HPET.aml bt(0,0)/Extra/HPET.aml).
  SBST=<file>               Use an alternate SBST.aml file 
                              (default path: /SBST.aml
                               /Extra/SBST.aml bt(0,0)/Extra/SBST.aml).
  ECDT=<file>               Use an alternate ECDT.aml file 
                              (default path: /ECDT.aml
                               /Extra/ECDT.aml bt(0,0)/Extra/ECDT.aml).
  ASFT=<file>               Use an alternate ASFT.aml file 
                              (default path: /ASFT.aml
                               /Extra/ASFT.aml bt(0,0)/Extra/ASFT.aml).
  DMAR=<file>               Use an alternate DMAR.aml file 
                              (default path: /DMAR.aml
                               /Extra/DMAR.aml bt(0,0)/Extra/DMAR.aml).
  APIC=<file>               Use an alternate APIC.aml file 
                              (default path: /APIC.aml
                               /Extra/APIC.aml bt(0,0)/Extra/APIC.aml).
  MCFG=<file>               Use an alternate MCFG.aml file 
                              (default path: /MCFG.aml
                               /Extra/MCFG.aml bt(0,0)/Extra/MCFG.aml).
  FADT=<file>               Use an alternate FADT.aml file 
                              (default path: /FADT.aml
                               /Extra/FADT.aml bt(0,0)/Extra/FADT.aml).
 
  GenerateCStates=Yes     Enable auto generation of processor idle sleep states
                            (C-States).
  GeneratePStates=Yes     Enable auto generation of processor power performance
                            states (P-States).
  CSTUsingSystemIO=Yes    New C-State _CST generation method using SystemIO
                            registers instead of FixedHW.
 
  EnableC2State=Yes       Enable specific Processor power state, C2.
  EnableC3State=Yes       Enable specific Processor power state, C3.
  EnableC4State=Yes       Enable specific Processor power state, C4.
  EnableC6State=Yes       Enable specific Processor power state, C6.
  EnableC7State=Yes       Enable specific Processor power state, C7.
 
  PrivateData=No          Show masked data (serial number) in bdmesg log (enbaled by default).
 
  ForceFullMemInfo=Yes    Force SMBIOS Table 17 to be 27 bytes long (disabled by default).
 
  SMBIOS=<file>             Use an alternate SMBIOS.plist file
                              (default path: /smbios.plist /Extra/smbios.plist
                               bt(0,0)/Extra/smbios.plist).
 
  SMBIOSdefaults=No         Don't use the Default values for SMBIOS overriding
                              if smbios.plist doesn't exist, factory
                              values are kept.
 
 
  KERNELPlist=<file>        Use an alternate kernel.plist file
                              (default path: /Extra/Kernel.plist
                               bt(0,0)/Extra/kernel.plist).
 
  KEXTPlist=<file>          Use an alternate kext.plist file
                              (default path: /Extra/Kext.plist
                               bt(0,0)/Extra/kext.plist).
 
  "Scan Single Drive"       Scan the drive only where the booter got loaded from.
    =Yes|No                 Fix rescan issues when using a DVD reader in AHCI mode. 
  Rescan=Yes                Enable CD-ROM rescan mode.
  "Rescan Prompt"=Yes       Prompts for enable CD-ROM rescan mode.
  SystemId=<UUID>         Set the system id manually to UUID.
                              Deprecated - Now SMsystemuuid in smbios.plist
                          SMUUID in smbios config (reserved field) isn't used then.
  SystemType=<n>          Set the system type to n, where n is between 0..6
                          (default=1 Desktop)
  md0=<file>              Load raw img file into memory for use as XNU's md0
                          ramdisk. /Extra/Postboot.img is used otherwise.
 

 

 

 

ErmaC

  • Like 6
Link to comment
Share on other sites

...

 

Awesome :thumbsup_anim:  @Ermac && @Micky1979, Enoch r2877 just boot my 10.12.5 Beta (16F43c), but:

1. My patched DSDT.aml placed on /Extra won't loaded, but SSDT did (as we can see on my attached logs). Do I need to also install "ACPICodec" under Module section or something else?

2. I still have issue with NVIDIA WebDriver, though with nvda_drv=1 on Boot-args but my system still use Native Drivers. Do I need to write this on nvram.plist?

 

Also got some issue with my ELAN TrackPad (Emly Dinesh's ApplePS2SmartTouchpad, working KB) but it's not really important, since I'm using USB Mouse.

Thanks for advance, files attached below.  :)

Enoch-r2877-logs.txt

Badruzeus MacBook Pro.ioreg.zip

Extra.zip

post-826765-0-38226800-1490984087_thumb.png

  • Like 1
Link to comment
Share on other sites

... files attached below.  :)

 

Pls remove Resolution Module from Extra/module folder

and also remove DSDT key from o.c.B.p

 

<key>DSDT</key>
<string>/Extra/DSDT.aml</string>

 

no extras modules are needed for your config (I think...) more than FileNVRAM for NVRAM business...

 

post the new log.

 

ErmaC

  • Like 1
Link to comment
Share on other sites

 

2. I still have issue with NVIDIA WebDriver, though nvda_drv=1 are used on Boot-args but my system still use Native Drivers. Do I need to write this on nvram.plist?

nvda_drv=1 does nothing in Sierra if is a kernel flag. You need only to select web drivers using the official manager:

Senza_titolo.jpg

 

but also ensure that the Web drivers must be compatible with 10.12.5

 

EDIT

also remove the SMBIOS key since is already in /Extra/.

 

EDIT 2

may be you want to remove the 'Legacy Logo' and add "BlackMode = Yes" for a nicer black bacground/white apple? :yes: 

  • Like 2
Link to comment
Share on other sites

Micky, Am I right in saying that for Sierra the FileNVRAM module is required along with NVIDIAWebDrv=Yes/No or is just the module enough for the web driver app to select the required drivers.

Link to comment
Share on other sites

Pls remove Resolution Module from Extra/module folder

and also remove DSDT key from o.c.B.p

<key>DSDT</key>
<string>/Extra/DSDT.aml</string>

no extras modules are needed for your config (I think...) more than FileNVRAM for NVRAM business...

 

post the new log.

 

ErmaC

 

nvda_drv=1 does nothing in Sierra if is a kernel flag. You need only to select web drivers using the official manager:

Senza_titolo.jpg

 

but also ensure that the Web drivers must be compatible with 10.12.5

 

EDIT

also remove the SMBIOS key since is already in /Extra/.

 

EDIT 2

may be you want to remove the 'Legacy Logo' and add "BlackMode = Yes" for a nicer black bacground/white apple? :yes:

 

Done! as suggested  :) now my Sierra 10.12.5 Beta (16F43c) works as expected with patched DSDT loaded, and working NVIDIA Web Driver.

But the best of it, (I feel) my system just boot faster  :D than b4. Thanks again @ErmaC && @Micky1979 (especially OTF patching methods) for this updated bootloader.

 

FYi, my OS X El Capitan 10.11.6 Beta (15G1502) also works very well with same config.

 

#Edit: @Micky1979 >> I still luv gray Apple boot screen, cz it reminds me with my 1st hackintosh using 10.6.x & Chameleon (which rev. I don't remember) LoL  :D

post-826765-0-28092500-1490987532_thumb.png

Enoch-r2877-logs-new.txt

  • Like 2
Link to comment
Share on other sites

Pre-packed PKG are available in the download section.

 

Chameleon --> http://www.insanelymac.com/forum/files/file/59-chameleon-24-svn/

Enoch --> http://www.insanelymac.com/forum/files/file/71-enoch/

 

Note: those revision are exactly the same version that you can build by yourself, done by downloading and build it with the source code from official svn repository.

 

Note2: Chameleon support all OS X version from 10.5 to 10.12  (Yosemite, El Capitan and Sierra included!)..

(other functionality ...like patching on-fly are only available for Enoch)

 

Note3: Enoch support all the OS X version (until Sierra) and also can patch: kernel and kexts on-fly, also Enoch have an embedded FakeSMC.kext (in the case you missed it ;)) and iMessage FaceTime feature are available thanks to new module FileNVRAM (still under test)

all these changes and credits go to Micky1979.

 

ErmaC

 

(Just test & report):

Glad to know that Chameleon r2877 still supported the classic one (Mac OS X Snow Leopard 10.6.8) both with 32-bit & 64-bit arch on my mach.  :yes:

Thanks again.  :D

Chameleon-r2877-i386-10.6.8.txt

Chameleon-r2877-x86_64-10.6.8.txt

  • Like 1
Link to comment
Share on other sites

Your old FileNVRAM module comes from?

 

P.S. you can use those directories to store kexts for different OSes:

 

Extra/Extensions/Common

Extra/Extensions/10.12

Extra/Extensions/10.11

Extra/Extensions/10.10

Extra/Extensions/10.9

etc..

 

This using only one Extra folder on the boot partition (the one where the boot file is installed)

Link to comment
Share on other sites

Just updated to the latest enoch r2877 and for some reason my system wont boot anymore. Using this on my AMD machine. Im seeing it get stuck at "Kext Patcher Started" Yet i dont have any kext.plist setup? Im sure im doing something wrong. Could anymore lead me in the right direction??

Extra.zip

post-1420666-0-06422100-1491173711_thumb.jpg

Link to comment
Share on other sites

type SkipKextsPatcher=Yes

 

use this Extra folder, and ensure you are using Enoch (not Chameleon)

You the Man! Booted right up. But my nvidia web drivers dont seem to be loading? 

  • Like 1
Link to comment
Share on other sites

I'v updated my last post, look at the attached Extra folder. So if the problem is the kexts patcher (you have a modded kernel) also add SkipKextsPatcher=Yes to the org.chameleon.boot.plist

Tell me if the nvram show up

  • Like 1
Link to comment
Share on other sites

I'v updated my last post, look at the attached Extra folder. So if the problem is the kexts patcher (you have a modded kernel) also add SkipKextsPatcher=Yes to the org.chameleon.boot.plist

Tell me if the nvram show up

Tried the new Extra folder, cleared all caches, still a no go for the nvidia drivers

Link to comment
Share on other sites

×
×
  • Create New...