Chameleon

Chameleon Svn Source Tree

Root/branches/azimutz/Chazi/doc-azi/Modules.txt

1---------------// Modules Info //---------------
2
3Installation:
4
5 - get the source, compile; find modules at /sym/i386, with .dylib file extension.
6
7 - create an /Extra/modules folder on the volume from were the booter is going to load from,
8copy Symbols.dylib (mandatory) to modules folder, plus any other module you wish to load.
9
10 - update boot file or reinstall the booter completely, as needed.
11
12 Note: GraphicsEnabler, MemDetect & ForceHPET patches are now converted to modules.
13
14
15How to use?
16
17 - Just check if a key is needed to activate the functionality you pretend to use. Otherwise
18all modules are loaded at startup from the default location, before the boot prompt.
19
20---------------//---------------//---------------
21
22What are modules?
23
24 - Modules can be refered as "plugins", adding and/or replacing booter functionality, without
25touching the "core" of the booter. If you are familiar with e.g. browser plugins
26(like Firefox's Addons), you know what i'm talking about; they either add completely new
27functionality or replace/modify existing one; same thing with modules and Chameleon.
28
29More info can be found on Meklort's blog and links at the bottom of the page:
30http://www.meklort.com/
31
32---------------//---------------//---------------
33
34Featured modules:
35
36 - Symbols.dylib: first one to load, contains all the symbols found on the booter.
37All other modules depend on it to load.
38
39---------------//---------------
40
41 - KernelPatcher.dylib:
42
43- needs key to enable patching:
44
45PatchKernel=yat boot prompt or,
46
47<key>PatchKernel</key>on Boot.plist.
48<string>Yes</string>
49
50- featured patches: cpuid_set - 32/64 bit ??
51commpage_stuff - 32/64 bit
52lapic_init - 32 bit only.
53
54Note on functionality: as it is, Kpatcher allows my Pentium D 925 to load vanilla(*)
55kernel, with the help of -legacy flag; to enter x86_64 world i still need to patch
56the kernel sources, as the 925 has no Supplemental SSE3 instructions and there's
57no patch to fix this on Kpatcher atm.
58I assume that, the great majority of the legacy/unsupported processors with at least
59SSE3 instructions, will benefit of the same treatment!
60Let's just say that the only patch needed by the 925 on Legacy Mode(**) is cpuid_set!
61
62Note: Kernel Patcher can stop working due to changes on the kernel code.
63
64---------------//---------------
65
66 - GraphicsEnabler.dylib: GraphicsEnabler converted to module.
67
68---------------//---------------
69
70 - Memory.dylib: MemDetection converted to module.
71
72---------------//---------------
73
74 - HPET.dylib: ForceHPET converted to module.
75
76---------------//---------------
77
78 - HelloWorld.dylib: just a notifier (not mandatory).
79
80---------------//---------------//---------------
81
82
83(*) In this context, "vanilla" means the use of a non pre-patched kernel; what we do here is
84patch the kernel on the fly, in memory.
85
86(**) For those who "missed" the lesson, Legacy Mode is the one 32 bit only cpu's run on OS X.
87
88
89---------------//---------------//---------------
90
91Issues:
92
93 - compiling modules under Leo (Dev tools 3.1 (9M2809)) is not possible at the moment.
94
95---------------//---------------//---------------
96
97
98Some talk here: http://forum.voodooprojects.org/index.php/topic,1556.0.html
99here: http://forum.voodooprojects.org/index.php/topic,1153.0.html
100and here: http://forum.voodooprojects.org/index.php/topic,1565.0.html
101
102
103---------------//---------------//---------------
104
105
106Thanks fly out to Meklort for this precious and huge work!
107
108
109
110Azimutz
111
112
113

Archive Download this file

Revision: 815