Chameleon

Chameleon Svn Source Tree

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

1The possible info at the moment:
2
3Installation:
4
5 - get the source, compile; find modules at /sym/i386, with .dylib file extension.
6
7 - create a /Extra/modules folder, copy Symbols.dylib (mandatory) to modules folder,
8plus any other module you wish to load.
9
10 - update boot file or reinstall the booter completely, as needed.
11
12
13How to use?
14
15 - Just check if a key is needed to activate the module you pretend to use. Otherwise
16modules are loaded at startup by the booter from default location. (check Issues below).
17
18---------------//---------------//---------------
19
20What are modules?
21
22 - good question! Well, can't add much on the "geek" side... need to study the stuff so
23i don't start dumping bs. The easy answer is they are like plugins, adding/replacing
24booter functionality. For instance: the Kernel Patcher (Kpatcher) is around for some time,
25integrated on boot file like any other Chameleon function; with Modules support Kpatcher
26can now live as a module, freeing the space it occupied on boot file
27(one of module's advantages).
28
29
30Featured modules:
31
32 - Symbols.dylib: always needed to load other modules! It's the first one to load and no
33other module will work if this one fails. The booter will still perform as usual,
34if it fails to load.
35
36 - KernelPatcher.dylib:
37
38- needs key to be enabled:
39
40PatchKernel=yat boot prompt or,
41
42<key>PatchKernel</key>on Boot.plist.
43<string>Yes</string>
44
45- featured patches: cpuid_set - 32/64 bit
46commpage_stuff - 32/64 bit
47lapic_init - 32 bit only.
48
49Note on functionality: as it is, Kpatcher allows my Pentium D 925 to load vanilla(*)
50kernel, with the help of -legacy flag; to enter x86_64 world i still need to patch
51the kernel sources, as the 925 has no Supplemental SSE3 instructions and there's
52no patch to fix this on Kpatcher atm (don't even know if is possible?!).
53I assume that, the great majority of the legacy/unsupported processors with at least
54SSE3 instructions, will benefit of the same treatment!
55Let's just say that the only patch needed by the 925 on Legacy Mode(**) is cpuid_set!
56
57Note: Kernel Patcher can stop working due to changes on the kernel code.
58
59 - HelloWorld.dylib: just a notifier (not mandatory).
60
61
62(*) In this context, "vanilla" means the use of a non pre-patched kernel; what we do here is
63patch the kernel on the fly, in memory.
64
65(**) For those who "missed" the lesson, Legacy Mode is the mode 32 bit only cpu's run on OS X.
66
67---------------//---------------//---------------
68
69Issues:
70
71 - the default path for loading modules (/Extra/modules/) is not being respected, the booter
72always checks bt(0,0)/Extra/modules/ instead.
73Anyway, i already intended to change the path due to the concept of this booter
74and so i did it. Of course the problem is still there and needs to be fixed, at least if
75one wants to be able to load modules from selected volume.
76
77 - compiling modules under Leo (XCode 3.1.4) is not possible at the moment.
78
79---------------//---------------//---------------
80
81
82Some talk here: http://forum.voodooprojects.org/index.php/topic,1556.0.html
83here: http://forum.voodooprojects.org/index.php/topic,1153.0.html
84and here: http://forum.voodooprojects.org/index.php/topic,1565.0.html
85
86
87---------------//---------------//---------------
88
89
90Smith@@'s news :D
91
92 « Sent to: Azimutz on: Fri 03/09/2010 at 05:55:08 »
93
94 "Hi azi, i've try last chazi with modules, it works like a charm ;)"
95
96-------/-/-------
97
98 Grazie Amico - Azi
99
100---------------//---------------//---------------
101
102 Huge thanks fly out to Meklort for this precious work!
103
104---------------//---------------//---------------
105
106
107
108Azimutz
109
110
111

Archive Download this file

Revision: 515