Help - Search - Members - Calendar
Full Version: My Bootloader
Project OS X Forums > OS X 10.6 (Snow Leopard) > Bootloaders
Pages: 1, 2, 3
Slice
I am not a member of Chameleon team but work with a help of Applelife.ru community.
-------------------------
Now RC5 based look below
-------------------------
I want to propose you my revision of bootloader based on Chameleon-2RC4-684. I take into account opensource additions by Recursor, Duvel, AsereBLN to make something working. I eliminated warnings, code doubles, logics mismatches.
About warning: take care about conversion from 32bit to 64bit.
About doubles: smbios.plist loaded twice or more in previous sources.
About logics. It has to be the follow: system uses a value from smbios.plist else default value. User can override it by boot-flag.
Correct mkext location in the case of Snow or Leopard/Tiger there are different.
Correct hibernation. This is an error in RC4 while good in RC3.

And my five cents:
- modern CPU detection, including i5, i7
- system-type written into registry and into FACP: desktop, mobile, workstation, server.
- create ACPI20 structure for older computers having only ACPI10 pointer.
- OEMID = "Apple " for all ACPI tables rolleyes.gif As well as MacModel and revision.
- ability to load multiple SSDT table. Details:
This feature made by Mozodojo (other russian programmer).
You may place SSDT.aml, SSDT-1.aml,... SSDT-9.aml into /Extra and bootloader takes all of them.
If you set DropSSDT=YES then all previous SSDT tables will be dropped.
If you set oemSSDT=YES then your tables don't be applied.
Else your SSDT entries will be added to RSDT/XSDT tables.
We propose that no need to patch DSDT for new inserted devices. It is better for any new device just add its own SSDT table. Aka driver.
And I am thinking about to make universal SSDT for USB. It is more simple for novices to add this SSDT into /Extra then patch DSDT.

Here it is. Sources and binaries. (Ya, as I take open source I must publish my sources)
Click to view attachment - sources
I think I need no provide explanation about old smbios and boot keys as well as "How to install".

07.04.2010
It seems RestartFix can't be applied to ACPI_10 structure. Use RestartFix=NO if you have a problem.
-------------------------------------------------------------------------------
05.12.2010
As I see Chameleon team is not interesting in my corrections. RC5 is still without its.
So I have to propose my version based on RC5-rev650. My sources located at Assembla, same place as FakeSMC
https://www.assembla.com/code/fakesmc/subve...ameleon?rev=428
and I have new revision numeration. Now RC5s-428.
Change log:
- all corrections that I said above;
- new devIDs for NVidia and ATI for CraphicsEnabler feature;
- "display-cfg" property injecting as suggested by Jingu
- no more messages like "Read HFS+ file [xxx]xxx.kext....". It was too slow and no infos!
- correct PMProfile 1=Desktop, 2=Mobile.
- correct BusSpeed, CurrectCPUSpeed, MaxCPUSpeed
- correct NoCores, NoThreads
- correct UUID to String conversions (for a what? unsure.gif )
- correct SMBIOS reading and patching procedures, other cleanup.
The job is not finished. I know mistakes about boot-order, GUI quirks, UUID problems.
I have ideas about NVRAM, SMBIOS, BootOrder.
But I need feedback. Please inform me about bugs, your suggestions, ideas.
Attach
QUOTE
bdmesg >bdmesgUSER.txt
ioreg -pIODeviceTree -lxw0 >ioregUSER.txt

Use your Nick instead of USER
Here is my Extra folder with my sample smbios.plist, Boot.plist and themes. Inside you find a folder i386 where is my Bootloader and tools.
Look also fdisk, it is better then vanilla 10.6.5.
Click to view attachment

I think Meklort is creating the best bootloader ever been. So I decided to apply my patches to his branch.
And now I have my own branch at VoodooProjects
CODE
svn co -r HEAD http://forge.voodooprojects.org/svn/chameleon/branches/slice

Click to view attachment
It works also for Tiger.

31.01.2011
Now kernelchache is loaded. Also beta attempt for OHCI reset as proposed by THeKiNG. (USB.dylib)
New modules structure as Meklort did: now modules Symbols.dylib and ACPIPatcher.dykib are embedded and you can boot without any modules. Only boot file and themes, boot.plist and smbios.plist.

22.03.2011
There is a last version with GUI corrections.
Click to view attachment
Not for LION!

22.07.2011
Now the version for Lion as well as for Snow, Leo and even for Tiger. It is based on Chameleon 2 RC5-rev1200 with differencies explained in the thread
http://www.projectosx.com/forum/index.php?...ost&p=15446

06.08.2011
i hope it is my final version. After some testing I exclude instant reboot on some CPU. It was XCode bug.
Now I have working modules Resolution, NVRAM and KernelPatcher (by Meklort with cparm corrections).
The last one is not tested. It is intended for Atom CPU and lapic patches on the fly.
Package
Click to view attachment
Bootable CD/DVD
Click to view attachment
codex
Thank u for this Slice
btw: what about SBST, can u please do something about it (have no one, maybe we could get rid of voodoobattery with this). I know it's more complicated than that, but ! rolleyes.gif

// Staff: Do not quote a whole(long) post unless is relevant for you question.
yehia2amer
is there anyway to make this fix in the boot-loader, not editing the vanillia kernel
this will solve CPUS=1 in all i7,i5 insyde bios hp users
any help will be appreciated

that's the kernel fix

download the xnu source for 10.6.3 form opensource apple and unpack it
find the problematic file lapic.c in the path xnu-1504.3.12/osmfk/i386/lapic.c
use search to find : /* ExtINT */ and after the third instance [inside the lapic_configure() ] you add 2 lines of code :

/* NMI: ummasked, off course */
LAPIC_WRITE(LVT_LINT1, LAPIC_LVT_DM_NMI);

soo the code will look like this:
----------------------------------------------------------
/* ExtINT */
if (get_cpu_number() == master_cpu) {
value = LAPIC_READ(LVT_LINT0);
value &= ~LAPIC_LVT_MASKED;
value |= LAPIC_LVT_DM_EXTINT;
LAPIC_WRITE(LVT_LINT0, value);
}

/* NMI: ummasked, off course */
LAPIC_WRITE(LVT_LINT1, LAPIC_LVT_DM_NMI);

/* Timer: unmasked, one-shot */
LAPIC_WRITE(LVT_TIMER, LAPIC_VECTOR(TIMER));
-----------------------------------------------------------------
save the file and compile the kernel.
you should have xcode installed

N.B:

i have already tried a modded apic.aml file with Anv bootloader, as the original one from Pavilion was missing some parts at the end compared to the MacBook Pro apic.aml (related to NMI too !!!)

[0CCh 0204 1] Subtable Type : 04 <Local APIC NMI>
[0CDh 0205 1] Length : 06
[0CEh 0206 1] Processor ID : 00
[0CFh 0207 2] Flags (decoded below) : 0005
Polarity : 1
Trigger Mode : 1
[0D1h 0209 1] Interrupt Input LINT : 01

the modded file is loading fine but i still have the Panic with the vanilla kernel
Slice
I still don't know how to make this patch, but with new bootloader may be some other observations?

As I see Chameleon team (is it a team or just some people?) didn't here me about mistakes in RC4 and made RC5 with the same quirks. But my version is only working version for Tiger.
So I decided to make my bootloader again based on RC5-650 working for Tiger, Leo and Snow.
It topic I said about what news and uploaded working version.
I don't like to work lonely and I need discussions, bug reports, ideas.

TODO
1. AppleSMBIOS uses tables of types 0,1,2,3,4,6,7,9,16,17,128,130,131,132 but not all of them usually presents in PC BIOS, and often is not correctly filled. It is not a big problem to fill all of then automatically and by smbios.plist. Not done yet.
2. bless tool asked for properties FirmwareFeature, FirmwareFeatureMask, BootOrder, boot#, boot-args. I can implement it at boot stage but some discussion needed. Also StartupDisk.prefPane depends on its.
3. I encountered some graphics problem in gui.
4. I have not modern ATIRadeon so I can't check what is the influence of ATY,RefCLK and so on properties, but RC5 injected wrong values. And not all DeviceID is present in native ATI*.kexts so it will be good to inject fakeDeviceID for each Radeon family.
5. I can read previous values of NVRAM so it is possible to implement default boot order settings by StartupDiskPrefPane. It is also possible to make VoodooHDA settings saved during reboot. New version of VoodooHDA needed.
6. Include GMA into graphics enabler. Initial version present by Nawcom and found in Meklort branch is wrong.
CODE
uint8_t GMAX3100_vals[22][4] = {

Contains only 20x4 values.
And most of the values wrong or not needed.

Chameleon team is going ignore me again and release rc6? Lets go.
THe KiNG
Nobody is ignoring you...
But you should start a branch on official chameleon repo: http://forge.voodooprojects.org and summit bug reports like other does..
That way everybody can see them w/o jumping b/w forums and add them to trunk.
Slice
My sources downloaded 333 times. I don't think voodoo never saw it.
But bug report is a very long and questional story. One thinks a bug, other has own opinion. Ultimate result will be a full bug report.
THe KiNG
QUOTE (Slice @ Dec 5 2010, 09:27 PM) *
My sources downloaded 333 times. I don't think voodoo never saw it.
But bug report is a very long and questional story. One thinks a bug, other has own opinion. Ultimate result will be a full bug report.

I understand what you mean and also understand that you like to work alone, but you must understand how things goes with chameleon...
Join the happy crew, make your own branch like most did, and put your stuff there and I'm sure if you have something good to show it will be noticed and added to trunk.
You can also join on irc.voodooprojects.org #chameleon and talk there your opinions with faster response...

I really hate how things are NOT organized over the osx86 world, source all over, is damn hard to keep a track or to find a good source. :|
Slice
No I do not like to work alone. VoodooHDA with AutumnRain until he disappeared, FakeSMC with Mojodojo and Usr-sse2.
This project is also with Mojodojo who is a member of voodoo team. But when I was trying to speak with someone of the team I encounter a hard wall. cool.gif
And, as usual, I decided to make my own version. Thus it's here.
THe KiNG
I think you should try again...
aikidoka25
Slice,

How about kernel auto patching for Atom processor?
The reason I am using meklort's branch on HP Mini 311 because it has this feature.
We need it to boot with vanilla mach_kernel.

Meklort is using modules/dynamic library approach, the idea is good, means one can add feature to the booter without modifying boot.c.

Cheers
Slice
QUOTE (aikidoka25 @ Dec 8 2010, 07:27 PM) *
Slice,

How about kernel auto patching for Atom processor?
The reason I am using meklort's branch on HP Mini 311 because it has this feature.
We need it to boot with vanilla mach_kernel.

Meklort is using modules/dynamic library approach, the idea is good, means one can add feature to the booter without modifying boot.c.

Cheers

Not sure that one can create dyld but can't rebuild boot. The same procedure.
A sense may be with less memory. I don't know. May be later I accept the module idea but now I just want to have full working bootloader.
About Atom CPU yes, I can include it if Meklort has no objections. Or just include copyright?
aikidoka25
QUOTE (Slice @ Dec 8 2010, 03:01 PM) *
Not sure that one can create dyld but can't rebuild boot. The same procedure.
A sense may be with less memory. I don't know. May be later I accept the module idea but now I just want to have full working bootloader.
About Atom CPU yes, I can include it if Meklort has no objections. Or just include copyright?


Before using modules, the patch was done directly in boot.c, and i remember seeing teateam name in that particular function.

As for the new one, I am not sure anymore who the author is. But it is open source anyway and it should be no problem if you are incorporating it, like you said, just include copyright.

I am agree with the idea to create a branch at voodooprojects svn, if you guys could settle all the differences, i think you will get more exposure for your talent and the community will get benefits from it too.

I didn't aware you have another branch here until you replied my post on insanelymac! Only hardcore users visited projectosx! smile.gif
aprodigy
QUOTE (aikidoka25 @ Dec 8 2010, 09:49 PM) *
Only hardcore users visited projectosx! :)


OT: thank god! :)
scrax
Great project Slice, I like a lot your post in general but this is spectacular smile.gif I'll try it as soon as I learn how to download sources from assembla...
by the way, the RC5s-428 binaries are posted somewhere? In the download section of assembla I haven't seen them.
iFabio
Hi Slice.

I just downloaded and compiled the last revision (428),
And from (very) first look... appear all perfect! (more test needed)...

I have a question (relate to "cosmetics" inside the system profiler)
(I copy and paste one my old post from InsanelyMac)
QUOTE
I was convinced that the "Serial Number (system): xxxxxxxxxxx" & "SMC Version (processor tray): X.XXXX"
was only available on dual-processor motherboards, I was wrong.

CODE

Model Name: Mac Pro
Model Identifier: MacPro4,1
Processor Name: Quad-Core Intel Xeon
Processor Speed: 2.66 GHz
Number Of Processors: 1
Total Number Of Cores: 4
L2 Cache (per core): 256 KB
L3 Cache: 8 MB
Memory: 16 GB
Processor Interconnect Speed: 4.8 GT/s
Boot ROM Version: MP41.0081.B03
SMC Version (system): 1.39f5
SMC Version (processor tray): 1.39f5
Serial Number (system): xxxxxxxxxxx
Serial Number (processor tray): xxxxxxxxxxxxx
Hardware UUID: xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx


I saw that other bootloader, using the key SMproccessortray inside smbios.plist for add this value for the processor tray (Serial number).

We could also use it on Chameleon 2 RC5?
Other cosmetic gadgets... I know.


I know is pure cosmetics... but...
Is possible add this two "keys" into the smbios_patcher.c/.h ?
For a "similar" result? --> look the first post of this link or look the post #57 of this... other Example here...

Thanks.

Fabio
Slice
QUOTE (iFabio @ Dec 10 2010, 02:31 PM) *
Hi Slice.

I just downloaded and compiled the last revision (428),
And from (very) first look... appear all perfect! (more test needed)...

I have a question (relate to "cosmetics" inside the system profiler)
(I copy and paste one my old post from InsanelyMac)


I know is pure cosmetics... but...
Is possible add this two "keys" into the smbios_patcher.c/.h ?
For a "similar" result? --> look the first post of this link or look the post #57 of this... other Example here...

Thanks.

Fabio

Yes, it is possible, but... there is no such field in SMBIOS.
http://www.dmtf.org/standards/smbios
http://opensource.apple.com/source/AppleSM...AppleSMBIOS-41/
or it has another name?
CODE
struct SMBProcessorInformation {
    // 2.0+ spec (26 bytes)
    SMB_STRUCT_HEADER               // Type 4
    SMBString  socketDesignation;
    SMBByte    processorType;       // CPU = 3
    SMBByte    processorFamily;     // processor family enum
    SMBString  manufacturer;
    SMBQWord   processorID;         // based on CPUID
    SMBString  processorVersion;
    SMBByte    voltage;             // bit7 cleared indicate legacy mode
    SMBWord    externalClock;       // external clock in MHz
    SMBWord    maximumClock;        // max internal clock in MHz
    SMBWord    currentClock;        // current internal clock in MHz
    SMBByte    status;
    SMBByte    processorUpgrade;    // processor upgrade enum
    // 2.1+ spec (32 bytes)
    SMBWord    L1CacheHandle;
    SMBWord    L2CacheHandle;
    SMBWord    L3CacheHandle;
    // 2.3+ spec (35 bytes)
    SMBString  serialNumber;   // seems to be Serial Number (processor tray). In my case empty.
    SMBString  assetTag;
    SMBString  partNumber;
};


I think I need to remake my bootloader to Meklort structure. He made best bootloader so far.
3.14r
Tiger 10.4.11 test results.

Issues(IMHO):
Click to view attachment
Apple logo seems stretched
Hardware UUID is not show correctly or not shown at all
Retart/Shutdown doesn't work (no complete power-off)

OS info:
Vanilla OS X (MacBookPro2,2 Install DVD image used) restored to a separate partition then installed to a target partition using flash (USB) boot drive with the above boot loader.
Vanilla kernel.
Extra: PS2 driver, fakeSMC (tiger version from the link)
/S/L/E extra: AppleAzaliaAudio.kext, IONetworking with DEV/VEN ID added.

HW info:
HP Pavilion DV1660se
CPU: CoreDuo T2500 (not stock - upgraded)
RAM: 2Gb
Chipset: Intel 945GM (Calistoga-GM) + ICH7-M/U
Audio: Conexant CX20551 (Waikiki) (works with AZAL instead of HDEF in DSDT and Azal kext)
LAN: Intel PRO/100 VE (not working - driver fails to load properly)
WLAN: Atheros AR5001 (not working - driver fails to load properly)

Report info:
Includs: DSDT, IOreg Click to view attachment
bdmesg not included as bash says - "Bad CPU type in executable"
Slice
Thanks.
QUOTE (3.14r @ Dec 11 2010, 07:23 PM) *
Tiger 10.4.11 test results.

Issues(IMHO):
Click to view attachment
Apple logo seems stretched
Hardware UUID is not show correctly or not shown at all
Retart/Shutdown doesn't work (no complete power-off)
BootScreen needs to be adjusted by themes.plist. But I know, there are GUI mistakes.
About UUID the work in progress. There are many related things like "/options"
Retart/Shutdown never works in Tiger with vanilla kernel. Needs patched kernel or OpenHaltRestart_Tiger version.
QUOTE
Report info:
Includs: DSDT, IOreg Click to view attachment
bdmesg not included as bash says - "Bad CPU type in executable"

Click to view attachment
Click to view attachment
3.14r
Welcom!
There is bdmesg. Click to view attachment
d00d
Were changes from forge.voodooprojects.org's RC5 build 643 made to other than the boot file code?
I compiled Slice's www.assembla.com RC5 build 438, then replaced just the boot file on my EVGA and got a KP with either 32 or 64bit boot;
AppleACPIPlatformExpert::start failed
"Unable to find driver for this platform: \"ACPI\".\n"
Slice
QUOTE (d00d @ Dec 12 2010, 08:00 PM) *
Were changes from forge.voodooprojects.org's RC5 build 643 made to other than the boot file code?
I compiled Slice's www.assembla.com RC5 build 438, then replaced just the boot file on my EVGA and got a KP with either 32 or 64bit boot;
AppleACPIPlatformExpert::start failed
"Unable to find driver for this platform: \"ACPI\".\n"

Looks like bad caches. Boot with -f key. Yes, my bootloader expected caches at system's location but not in Chameleon's location.
valv
QUOTE (Slice @ Dec 5 2010, 11:42 AM) *
but with new bootloadeChameleon team is going ignore me again and release rc6? Lets go.

QUOTE (Slice @ Dec 5 2010, 08:27 PM) *
My sources downloaded 333 times. I don't think voodoo never saw it.

QUOTE (Slice @ Dec 6 2010, 12:26 PM) *
But when I was trying to speak with someone of the team I encounter a hard wall. cool.gif
And, as usual, I decided to make my own version. Thus it's here.

Hey Slice,
Ignoring you: no, never.
Everybody's busy elsewhere: yeah rolleyes.gif
I personally (being a VoodooTeam member) was looking at your efforts from a long time ago. If you want I can create a branch for you.
btw, does anyone know how I can change the nickname am using ?
Slice
QUOTE (Slice @ Dec 10 2010, 05:33 PM) *
I think I need to remake my bootloader to Meklort structure. He made best bootloader so far.

Done. Download in topic.
QUOTE (microcode @ Dec 13 2010, 10:24 PM) *
If you want I can create a branch for you.

Yes, I think it will be appropriate place for the sources.

QUOTE
btw, does anyone know how I can change the nickname am using ?

Ask aprodigy
valv
QUOTE (Slice @ Dec 13 2010, 08:55 PM) *
Yes, I think it will be appropriate place for the sources.
I've just posted a request for you. I 'd suggest you register to the voodooprojects forum (if not already done) for the time being.
d00d
QUOTE (Slice @ Dec 13 2010, 10:51 AM) *
Looks like bad caches. Boot with -f key. Yes, my bootloader expected caches at system's location but not in Chameleon's location.
Same panic with -f and build 643, and build RC5m-659 with or without -f.
Currently fakesmc.kext is in SLE (and in /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext), and I don't use /Extra/Extensions.mkext.

I get verbose boot, a slowly scrolling white screen, then verbose ending with;
panic(cpu0 caller 0xffffff800054103e): AppleACPIPlatformExpert::start failed "Unable to find driver for this platform: \"ACPI\".\n"...
aikidoka25
slice,

i tried version 659 from post#1 and got message
CODE
...
Actual model name is 'HP Mini 311-1000'
SSDT with CPU C-States generated successfully
Unsupported CPU: P-States not generated !!!
FADT: Restart Fix applied!
Unsupported CPU: P-States not generated !!!
...


the boot continue and it is kind of working

however IORegistryExplorer shows less P-State Array compared
Click to view attachment
with meklort revision 653
Click to view attachment

looks like ACPI patcher module is different since 653
Slice
Unsupported CPU is Atom? Please, show me full bdmesg.
Yes, since 653 ACPIPatcher is changed and meklort already applies it to his branch. The change is for min divider for Nehalem CPU.
But I don't know about Atom. Intel's info needed.
Slice
QUOTE (d00d @ Dec 15 2010, 02:41 AM) *
Same panic with -f and build 643, and build RC5m-659 with or without -f.
Currently fakesmc.kext is in SLE (and in /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext), and I don't use /Extra/Extensions.mkext.

I get verbose boot, a slowly scrolling white screen, then verbose ending with;
panic(cpu0 caller 0xffffff800054103e): AppleACPIPlatformExpert::start failed "Unable to find driver for this platform: \"ACPI\".\n"...

What is the test configuration? OS version?
Do you know about modules structure of RC5m? Did you try to exclude NetbookInstaller, HPET, KernelPatcher? Or you didn't install its?
d00d
QUOTE (Slice @ Dec 15 2010, 08:20 AM) *
What is the test configuration? OS version?
Do you know about modules structure of RC5m? Did you try to exclude NetbookInstaller, HPET, KernelPatcher? Or you didn't install its?
My configuration and version (OS, smbios, com.apple.Boot, DSDT, etc.) is at the 270-WS-W555-A1 link in my signature.
I copied all the supplied modules to /Extra/modules.
Is there a comprehensive list of the keys needed to [en|dis]able each module, as meklort's Modules.txt is incomplete?
If a module is enabled by default, can it just be removed from the modules folder?
Thanks.
aikidoka25
QUOTE (d00d @ Dec 15 2010, 09:00 AM) *
My configuration and version (OS, smbios, com.apple.Boot, DSDT, etc.) is at the 270-WS-W555-A1 link in my signature.
I copied all the supplied modules to /Extra/modules.
Is there a comprehensive list of the keys needed to [en|dis]able each module, as meklort's Modules.txt is incomplete?
If a module is enabled by default, can it just be removed from the modules folder?
Thanks.


I think we can just remove the particular dylib file to disable a module.
However, some of them are required by the the booter, at least on my netbook, Symbols.dylib is one.
Slice
Yes, Symbols.dylib is only required module.
But I think ACPIPatcher is also needed as it performes DSDT replacement by your version.
HelloWorld is just a joke.
GUI.dylib is a graphical interface for the bootloader. At your will.
Memory.dylib is for reading DIMM info. It is better to have it. I don't think it can crashes.
GraphicsEnabler.dylib is for automatic enable ATI, NVidia and Intel videocards. Mostly it works. You can don't use it if you have other method for it (NVEnabler, DSDT patch, Natit or else).
HPET.dylib - for those who forget to switch on HPET in BIOS. smile.gif
KernelPatcher.dylib - seems for Atom CPU.
KextPatcher.dylib - AppleHDA binary patch?
klibc.dylib, uClibc++.dylib - for HelloWorld. Dunno if they needed for something else.
NetbookInstaller.dylib - Lapic patch for some netbooks.
Networking.dylib - some patches for Ethernet and Airport. In progress.
Resolution.dylib - get native resolution of internal screen for GUI and for GraphicsEnabler(?)
USBFix.dylib - I'll recommend to have this module.
Slice
QUOTE (d00d @ Dec 15 2010, 06:00 PM) *
My configuration and version (OS, smbios, com.apple.Boot, DSDT, etc.) is at the 270-WS-W555-A1 link in my signature.

QUOTE
Sorry, the link that brought you to this page seems to be out of date or broken.
iNDi
QUOTE (Slice @ Dec 15 2010, 03:50 PM) *
HPET.dylib - for those who forget to switch on HPET in BIOS. smile.gif


or for those who dont have such 'switches' in their bios tongue.gif

d00d
I updated the link, thanks.
rals2007
Slice

When compiling with "make embedtheme" I get error..

CODE
================= make embedtheme for GUI =================
    [CC] GUI_module.c
    [CC] gui.c
gui.c:28:17: error: art.h: No such file or directory
gui.c: In function ‘getEmbeddedImageIndexByName’:
gui.c:193: error: ‘embeddedImages’ undeclared (first use in this function)
gui.c:193: error: (Each undeclared identifier is reported only once
gui.c:193: error: for each function it appears in.)
gui.c: In function ‘loadThemeImage’:
gui.c:269: error: ‘embeddedImages’ undeclared (first use in this function)
gui.c: In function ‘initGUI’:
gui.c:704: error: ‘__theme_plist’ undeclared (first use in this function)
gui.c: In function ‘loadBootGraphics’:
gui.c:1852: error: ‘__boot_png’ undeclared (first use in this function)
gui.c:1852: error: ‘__boot_png_len’ undeclared (first use in this function)
make[3]: *** [gui.o] Error 1
make[2]: *** [embedtheme] Error 2
make[1]: *** [embedtheme] Error 2
make: *** [embedtheme] Error 2
bash-3.2#


Thanks smile.gif
Slice
QUOTE (rals2007 @ Dec 20 2010, 04:19 AM) *
When compiling with "make embedtheme" I get error..

unsure.gif
With new sources, meklort based, embedtheme is impossible till now.
Slice
Longer I study the sources more mistakes find.
I apply some knowledge about EFI, UUID, ACPI, SMBIOS, EDID and see how many codes need to be rewritten, corrected, added.
In my new version rev692 there are still many inaccuracies.
- not all CPUs are correctly detected
- NVRAM is still not interpretated
- graphicsEnabler is not for all
- some GUI problems
- and so on... needs reports.
Nontheless the version works.
Hibernation works on my Dell notebook as never before.

I added module ATI5000Enabler based on Kabyl's sources. Dunno if it works. Test, please.
The binaries and /Extra in the topic.
vincent99
Hi Slice, can you add the AutoResolution at your amazing boot? smile.gif
wojnar
Here are logs from yours last build, i've attached my Extra folder too.

busratio are wrong recognized should be 12 not 13, i've still cracky sound (overclocked FSB), like in AnVal bootloader, strange becouse that FSB is normal under windows???
And time is slower than normal, higest FSB time should be faster not slower, strange too.

Thanks for your work!

Click to view attachment
Click to view attachment
Click to view attachment
FormerlyKnownAs
QUOTE (Slice @ Dec 27 2010, 12:35 PM) *
I added module ATI5000Enabler based on Kabyl's sources. Dunno if it works. Test, please.
The binaries and /Extra in the topic.


Is there any extra boot flag required for this (ATI5000Enabler=Yes ??)or just place in Extra/modules along with GraphicsEnabler and GraphicsEnabler=Yes?

As you already have device id for my 5770 in ati.c with correct framebuffer associated it's works for me with only GraphicsEnabler module and It's hard for me to see a differance when ATI5000Enabler module is added.
Can ATI5000Enabler work alone without GraphicsEnabler module?

Also autoresolution isn't working properly (odd resolution selected!) for me but I come back to that as only tested briefly last night.

Cheers
D

EDIT - Very rude of me - Thank you for this branch! - apart from the above all seems very smooth so far smile.gif

P.S - woking ATM - will post bdmesg ioreg etc later,
FormerlyKnownAs
QUOTE (FormerlyKnownAs @ Dec 29 2010, 05:53 PM) *
EDIT - Very rude of me - Thank you for this branch! - apart from the above all seems very smooth so far smile.gif

P.S - woking ATM - will post bdmesg ioreg etc later,



ATI5000Enabler deffo not working "Unable to start ATI5000Enabler.dylib" - No Video posted without GraphicsEnabler.dylib
EDID is being read just fine and once 1920x1080 (the read value) is added to theme.plist the verbose text is now correct aspect/size etc but Chameleon GUI is still messed up.

My OC'd FSB is read but unclocked values are shown in system profiler.
Memory is also seen correctly but as 888MHz not 1067MHz (it is native 1067@ 1.8v.)

But all this is cosmetic.

Will carry on playing ... with my RAID setup did I read i can remove "rd=uuid boot-uuid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ? Will test now
EDIT - removed rd=uuid, cleared caches on EFI parts' and boots just fine
- Sleep working as before, must use RIP script for auto sleep


Click to view attachment
Click to view attachment
Click to view attachment

Thanks again
D

P.S - Safari working just fine
Click to view attachment
smile.gif
FormerlyKnownAs
QUOTE (FormerlyKnownAs @ Dec 29 2010, 11:28 PM) *
My OC'd FSB is read but unclocked values are shown in system profiler.
Memory is also seen correctly but as 888MHz not 1067MHz (it is native 1067@ 1.8v.)


It would appear this part isn't cosmetic!
According to voodoomonitor - and backed up by very low Xbench and Cinibench scores- My FSB is running at stock 333MHz under OS X as apposed to the 400MHz I've set in BIOS!
Multi and voltage is switching between each of my 3 p-states.

I've extracted the generated SSDT tables and all looks OK:
CODE
DefinitionBlock ("./SSDT-1.aml", "SSDT", 1, "PmRefA", "CpuCst", 0x00001000)
{
External (\_PR_.P004, DeviceObj)
External (\_PR_.P003, DeviceObj)
External (\_PR_.P002, DeviceObj)
External (\_PR_.P001, DeviceObj)

Scope (\_PR)
{
Name (CST, Package (0x02)
{
One,
Package (0x04)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000000, // Address
0x01, // Access Size
)
},

One,
One,
0x03E8
}
})
}

Scope (\_PR.P001)
{
Alias (CST, _CST)
}

Scope (\_PR.P002)
{
Alias (CST, _CST)
}

Scope (\_PR.P003)
{
Alias (CST, _CST)
}

Scope (\_PR.P004)
{
Alias (CST, _CST)
}
}

CODE
DefinitionBlock ("./SSDT-2.aml", "SSDT", 1, "PmRef", "CpuPm", 0x00003000)
{
External (\_PR_.P004, DeviceObj)
External (\_PR_.P003, DeviceObj)
External (\_PR_.P002, DeviceObj)
External (\_PR_.P001, DeviceObj)

Scope (\_PR)
{
Name (PSS, Package (0x03)
{
Package (0x06)
{
0x00000A68,
0x00000000,
0x0000000A,
0x0000000A,
0x00000820,
0x00000001
},

Package (0x06)
{
0x0000091B,
0x00000000,
0x0000000A,
0x0000000A,
0x0000071D,
0x00000002
},

Package (0x06)
{
0x000007CE,
0x00000000,
0x0000000A,
0x0000000A,
0x00000618,
0x00000003
}
})
}

Scope (\_PR.P001)
{
Alias (PSS, _PSS)
}

Scope (\_PR.P002)
{
Alias (PSS, _PSS)
}

Scope (\_PR.P003)
{
Alias (PSS, _PSS)
}

Scope (\_PR.P004)
{
Alias (PSS, _PSS)
}
}


Any Ideas?
D
FormerlyKnownAs
don't know if i should but i see no change with rev697

Click to view attachment

What i have noticed, regarding the my low FSB, is the frequency value generated by chameleon in each set of _PSS data using your branch is calculated from stock FSB.
CODE
Scope (\_PR)
{
Name (PSS, Package (0x03)
{
Package (0x06)
{
0x00000A68, //<2664
0x00000000,
0x0000000A,
0x0000000A,
0x00000820,
0x00000001
},

Package (0x06)
{
0x0000091B,
0x00000000,
0x0000000A,
0x0000000A,
0x0000071D,
0x00000002
},

Package (0x06)
{
0x000007CE,
0x00000000,
0x0000000A,
0x0000000A,
0x00000618,
0x00000003
}
})
}


Should be (as generated by another branch (valv)
CODE
DefinitionBlock ("./SSDT-1.aml", "SSDT", 1, "PmRef", "CpuPm", 0x00003000)
{
External (\_PR_.P004, DeviceObj)
External (\_PR_.P003, DeviceObj)
External (\_PR_.P002, DeviceObj)
External (\_PR_.P001, DeviceObj)

Scope (\_PR)
{
Name (_PCT, Package (0x02)
{
ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
},

ResourceTemplate ()
{
Register (FFixedHW,
0x00, // Bit Width
0x00, // Bit Offset
0x0000000000000000, // Address
,)
}
})
Name (PSD, Package (0x01)
{
Package (0x05)
{
0x05,
Zero,
0x00000000,
0x000000FC,
0x00000004
}
})
Name (PSS, Package (0x03)
{
Package (0x06)
{
0x00000C78, //<3192
0x00000000,
0x0000000A,
0x0000000A,
0x00000820,
0x00000820
},

Package (0x06)
{
0x00000AE9,
0x00000000,
0x0000000A,
0x0000000A,
0x0000071D,
0x0000071D
},

Package (0x06)
{
0x0000095A,
0x00000000,
0x0000000A,
0x0000000A,
0x00000618,
0x00000618
}
})
Name (PPC, Zero)
}

Scope (\_PR.P001)
{
Alias (PCT, _PCT)
Alias (PSD, _PSD)
Alias (PSS, _PSS)
Alias (PPC, _PPC)
}

Scope (\_PR.P002)
{
Alias (PCT, _PCT)
Alias (PSD, _PSD)
Alias (PSS, _PSS)
Alias (PPC, _PPC)
}

Scope (\_PR.P003)
{
Alias (PCT, _PCT)
Alias (PSD, _PSD)
Alias (PSS, _PSS)
Alias (PPC, _PPC)
}

Scope (\_PR.P004)
{
Alias (PCT, _PCT)
Alias (PSD, _PSD)
Alias (PSS, _PSS)
Alias (PPC, _PPC)
}
}


Either way I remember back from my speedstep thread that value was always Zero. Maybe this was incorrect?

Cheers
D
Slice
All my drivers successfully returned after hibernate
CODE
Jan 13 10:50:42 sergey kernel[0]: hibernate image path: /var/vm/sleepimage
Jan 13 10:50:42 sergey kernel[0]: sizeof(IOHibernateImageHeader) == 512
Jan 13 10:50:42 sergey kernel[0]: Opened file /var/vm/sleepimage, size 2147483648, partition base 0x140e8b6000, maxio 400000 ssd 0
Jan 13 10:50:42 sergey kernel[0]: hibernate image major 14, minor 3, blocksize 512, pollers 5
Jan 13 10:50:42 sergey kernel[0]: hibernate_alloc_pages flags 00000000, gobbling 0 pages
Jan 13 10:50:42 sergey kernel[0]: hibernate_setup(0) took 0 ms
Jan 13 10:50:42 sergey kernel[0]: VoodooSDHC: sleep requested with state 0
Jan 13 10:50:42 sergey kernel[0]: System SafeSleep
Jan 13 10:51:31 sergey kernel[0]: hibernate_page_list_setall start 0x23bca000, 0x23bf5000
Jan 13 10:51:32 sergey kernel[0]: hibernate_page_list_setall time: 133 ms
Jan 13 10:51:32 sergey kernel[0]: pages 396566, wire 69188, act 70163, inact 748, spec 125, zf 109, throt 0, could discard act 39937 inact 44688 purgeable 12806 spec 158802
Jan 13 10:51:32 sergey kernel[0]: hibernate_page_list_setall found pageCount 140333
Jan 13 10:51:32 sergey kernel[0]: IOHibernatePollerOpen, ml_get_interrupts_enabled 0
Jan 13 10:51:32 sergey kernel[0]: IOHibernatePollerOpen(0)
Jan 13 10:51:32 sergey kernel[0]: writing 139167 pages
Jan 13 10:51:32 sergey kernel[0]: encryptEnd 5554fd0
Jan 13 10:51:32 sergey kernel[0]: hibernate_machine_init: state 2, image pages 137122, sum was 6f3bc700, image1Size a652e00, conflictCount 0, nextFree 1df
Jan 13 10:51:32 sergey kernel[0]: hibernate_page_list_discard time: 134 ms, discarded act 39937 inact 44688 purgeable 12806 spec 158802
Jan 13 10:51:32 sergey kernel[0]: IOHibernatePollerOpen(), ml_get_interrupts_enabled 0
Jan 13 10:51:32 sergey kernel[0]: IOHibernatePollerOpen(0)
Jan 13 10:51:32 sergey kernel[0]: hibernate_machine_init reading
Jan 13 10:51:32 sergey kernel[0]: PMStats: Hibernate read took 3218 ms
Jan 13 10:51:32 sergey kernel[0]: hibernate_machine_init pagesDone 208267 sum2 6d6e48a7, time: 3218 ms
Jan 13 10:51:32 sergey kernel[0]: Wake reason =
Jan 13 10:51:32 sergey kernel[0]: System SafeSleep Wake
Jan 13 10:51:32 sergey kernel[0]: Previous Shutdown Cause: 3
Jan 13 10:51:32 sergey kernel[0]: VoodooSDHC: wakeup requested with state 2
Jan 13 10:51:32 sergey kernel[0]: Ethernet [AppleYukon2]: Link up on en0, 100-Megabit, Full-duplex, Symmetric flow-control, Debug [78ed,6c00,0de1,0000,45e1,0000]
Jan 13 10:53:07 sergey kernel[0]: hibernate image path: /var/vm/sleepimage
Jan 13 10:53:08 sergey kernel[0]: sizeof(IOHibernateImageHeader) == 512
Jan 13 10:53:08 sergey kernel[0]: Opened file /var/vm/sleepimage, size 2147483648, partition base 0x140e8b6000, maxio 400000 ssd 0
Jan 13 10:53:08 sergey kernel[0]: hibernate image major 14, minor 3, blocksize 512, pollers 5
Jan 13 10:53:08 sergey kernel[0]: hibernate_alloc_pages flags 00000000, gobbling 0 pages
Jan 13 10:53:08 sergey kernel[0]: hibernate_setup(0) took 0 ms
Jan 13 10:53:08 sergey kernel[0]: VoodooSDHC: sleep requested with state 0
Jan 13 10:52:04 sergey kernel[0]: System SafeSleep
Jan 13 10:53:08 sergey kernel[0]: hibernate_page_list_setall start 0x23bb7000, 0x23bca000
Jan 13 10:53:08 sergey kernel[0]: hibernate_page_list_setall time: 60 ms
Jan 13 10:53:08 sergey kernel[0]: pages 180680, wire 69737, act 71556, inact 746, spec 123, zf 109, throt 0, could discard act 9526 inact 4532 purgeable 28 spec 24323
Jan 13 10:53:08 sergey kernel[0]: hibernate_page_list_setall found pageCount 142271
Jan 13 10:53:08 sergey kernel[0]: IOHibernatePollerOpen, ml_get_interrupts_enabled 0
Jan 13 10:53:08 sergey kernel[0]: IOHibernatePollerOpen(0)
Jan 13 10:53:08 sergey kernel[0]: writing 141105 pages
Jan 13 10:53:08 sergey kernel[0]: encryptEnd 5384420
Jan 13 10:53:08 sergey kernel[0]: hibernate_machine_init: state 2, image pages 138220, sum was ceea268b, image1Size a2b1600, conflictCount 0, nextFree 1df
Jan 13 10:53:08 sergey kernel[0]: hibernate_page_list_discard time: 33 ms, discarded act 9526 inact 4532 purgeable 28 spec 24323
Jan 13 10:53:08 sergey kernel[0]: IOHibernatePollerOpen(), ml_get_interrupts_enabled 0
Jan 13 10:53:08 sergey kernel[0]: IOHibernatePollerOpen(0)
Jan 13 10:53:08 sergey kernel[0]: hibernate_machine_init reading
Jan 13 10:53:08 sergey kernel[0]: PMStats: Hibernate read took 3242 ms
Jan 13 10:53:08 sergey kernel[0]: hibernate_machine_init pagesDone 210754 sum2 32603b9f, time: 3242 ms
Jan 13 10:53:08 sergey kernel[0]: Wake reason =
Jan 13 10:53:08 sergey kernel[0]: System SafeSleep Wake
Jan 13 10:53:08 sergey kernel[0]: Previous Shutdown Cause: 3
Jan 13 10:53:08 sergey kernel[0]: VoodooSDHC: wakeup requested with state 2
Jan 13 10:53:08 sergey kernel[0]: Ethernet [AppleYukon2]: Link up on en0, 100-Megabit, Full-duplex, Symmetric flow-control, Debug [78ed,6c40,0de1,0000,45e1,0000]


And second check
sudo pmset -a hibernatemode 0
CODE
Jan 13 11:21:07 sergey kernel[0]: VoodooSDHC: sleep requested with state 0
Jan 13 11:21:07 sergey kernel[0]: System Sleep
Jan 13 11:21:17 sergey kernel[0]: Wake reason = PWRB LID
Jan 13 11:21:17 sergey kernel[0]: System Wake
Jan 13 11:21:17 sergey kernel[0]: USB (EHCI):Port 1 on bus 0xfa connected or disconnected: portSC(0x301002)
Jan 13 11:21:17 sergey kernel[0]: The USB device Laptop Integrated Webcam (Port 1 of Hub at 0xfa000000) may have caused a wake by being disconnected
Jan 13 11:21:17 sergey kernel[0]: VoodooSDHC: wakeup requested with state 2
Jan 13 11:21:19 sergey kernel[0]: Ethernet [AppleYukon2]: Link up on en0, 100-Megabit, Full-duplex, Symmetric flow-control, Debug [78ed,6c40,0de1,0000,45e1,0000]

More faster and again all drivers wake up successfully.
CODE
bash-3.2# kextstat | grep -v apple
Index Refs Address    Size       Wired      Name (Version) <Linked Against>
   27    0 0x34305000 0x6000     0x5000     org.voodoo.driver.PS2Controller (1.1.0) <13 7 5 4 3 1>
   44    0 0x342e3000 0x4000     0x3000     org.voodoo.VoodooSDHC (1.1.2b1) <17 14 5 4 3 1>
   46    5 0x34518000 0x5000     0x4000     org.netkas.FakeSMC (3.1.0) <13 7 5 4 3>
   48    0 0x3451d000 0x3000     0x2000     org.voodoo.driver.PS2Keyboard (1.1.1) <29 5 4 3>
   76    0 0x34970000 0x3000     0x2000     org.slice.ACPIMonitor (1) <46 13 7 5 4 3>
   81    0 0x34cd7000 0x1f000    0x1e000    org.voodoo.driver.VoodooHDA (2.7.2) <80 14 7 5 4 3>
   83    0 0x34a9d000 0x9000     0x8000     org.voodoo.driver.PS2Trackpad (1.1.1) <29 5 4 3>
   87    0 0x34a85000 0x2000     0x1000     org.ivik.driver.GenericBrightness (1) <66 13 4 3>
  102    0 0x34fc1000 0x4000     0x3000     org.mozodojo.IntelCPUMonitor (1.0) <46 7 5 4 3>
  106    1 0x34ff0000 0x3000     0x2000     org.mozodojo.SuperIOFamily (1.0.0d1) <46 7 5 4 3>
  107    0 0x35013000 0x3000     0x2000     org.slice.PC8739x (1) <106 46 7 5 4 3>
  108    0 0x352cd000 0x3000     0x2000     org.slice.sensor.X3100 (1.0) <46 14 4 3>
bash-3.2#

Also not native
AppleACPIBatteryManager.kext v1.1
IOPlatformPluginFamily.kext - corrected MacBook41.plist
AppleYukon2.kext - binary patched for Mac-address.

PS: Forgot to mention IOPCIFamily - my version 2.6.3
vincent99
_Hi slice, please can you upload the AppleACPIBatteryManager.kext v1.1? I found only 1.0.15 version. Thanks wink.gif
Slice
QUOTE (vincent99 @ Jan 13 2011, 03:39 PM) *
_Hi slice, please can you upload the AppleACPIBatteryManager.kext v1.1? I found only 1.0.15 version. Thanks wink.gif

Here?
FormerlyKnownAs
HI Slice

I complied from your branch last night with latest changes. I'm using the same set of modules previously posted.
I'm still getting some wacky results as far a acpipatcher goes. System still running at stock fsb despite my overclock and GUI is still "zoomed" with only part of the active screen visible.

Click to view attachment

D
Slice
QUOTE (FormerlyKnownAs @ Jan 19 2011, 07:33 PM) *
HI Slice

I complied from your branch last night with latest changes. I'm using the same set of modules previously posted.
I'm still getting some wacky results as far a acpipatcher goes. System still running at stock fsb despite my overclock and GUI is still "zoomed" with only part of the active screen visible.

Click to view attachment

D

Thank you for the report.
Now I see about what to think
QUOTE
Unable to start ATI5000Enabler.dylib

And I see this info correspond to your overclocked speed.
CODE
Patched SMBIOS CPU Info:
FSB=400
MaxSpeed=3800
CurrentSpeed=3200
Family=c2 Socket=1
Cores=4 Enabled=4 Threads=4
FormerlyKnownAs
QUOTE (Slice @ Jan 19 2011, 06:04 PM) *
And I see this info correspond to your overclocked speed.
CODE
Patched SMBIOS CPU Info:
FSB=400
MaxSpeed=3800
CurrentSpeed=3200
Family=c2 Socket=1
Cores=4 Enabled=4 Threads=4


Yes this is reporting the correct OC speed.

Is this also odd?
CODE
Found SMBIOS System Information Table 1
Customizing SystemID with : xxxxxxxxxxxxxxxxxxxxxxxx

NVRAM get a name

Darwin/x86 boot v5.0.132 - Chameleon v2.5-RC5m 708
Build date: 2011-01-19 01:45:26
4095MB memory
// info removed
Overclocked CPU from 3800MHz to 3200MHz
Found SMBIOS System Information Table 1
Customizing SystemID with : xxxxxxxxxxxxxxxxxxxxxx


sorry have removed/ lost original value so an't remember if the same!
I see this entry only once with other booters?
Slice
QUOTE (FormerlyKnownAs @ Jan 19 2011, 11:52 PM) *
Yes this is reporting the correct OC speed.

Is this also odd?
CODE
Found SMBIOS System Information Table 1
Customizing SystemID with : xxxxxxxxxxxxxxxxxxxxxxxx

NVRAM get a name

Darwin/x86 boot v5.0.132 - Chameleon v2.5-RC5m 708
Build date: 2011-01-19 01:45:26
4095MB memory
// info removed
Overclocked CPU from 3800MHz to 3200MHz
Found SMBIOS System Information Table 1
Customizing SystemID with : xxxxxxxxxxxxxxxxxxxxxx


sorry have removed/ lost original value so an't remember if the same!
I see this entry only once with other booters?

There are dust remaining after my attemps to understand what is the best UUID, how to get it, and how to use it.
But in any case System Profiler how me other Hardware UUID. No matter what I did during boot.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.