Chameleon

Chameleon Commit Details

Date:2010-09-01 03:04:13 (9 years 2 months ago)
Author:Azimutz
Commit:463
Parents: 462
Message:Doc edit/clean up.
Changes:
M/branches/azimutz/Chazi/doc-azi/CHANGES.txt
M/branches/azimutz/CleanCut/doc-azi/CHANGES.txt
M/branches/azimutz/Chazi/doc-azi/README.txt
M/branches/azimutz/CleanCut/doc-azi/README.txt
M/branches/azimutz/CleanCut/doc-azi/FileLoad.txt
M/branches/azimutz/CleanCut/doc-azi/FileLoad-trunk.txt

File differences

branches/azimutz/Chazi/doc-azi/CHANGES.txt
251251
252252
253253
254
254
255255
256256
257257
258258
259259
260
260
261261
262262
263263
......
272272
273273
274274
275
276
277
278
279
280
281
282
275283
276284
277285
- (rev 427)
Change: removed Chameleon.xcodeproj.
Motif: it's not up to date and i need time to update it properly, at least on Chazileon (Chazi).
Motif: it's not up to date and i need time to update it properly, at least on Chazi.
Will reintroduce it later in the process. It's also giving me problems with the svn client
when i update it; need to check what i'm doing wrong!?
---------------//---------------//---------------
- (rev )
- (rev 460)
Change: added a key to display some debug info, that can only be accessed via code edit.
Check http://forge.voodooprojects.org/p/chameleon/issues/12/ for history.
mm & attr, resolution specific info, are borrowed from AutoResolution branch.
---------------//---------------//---------------
---------------//---------------//---------------
- (rev 462)
Change:creation of this project, replacing Chazileon as my work folder.
Ence, Chazileon is now frozen until archival and deletion.
Motif: Chazileon has no svn history.
---------------//---------------//---------------
- (rev )
Change:template
branches/azimutz/Chazi/doc-azi/README.txt
2525
2626
2727
28
29
28
29
3030
3131
3232
Any other stuff can/should be reported to me directly, at the forum (*) by pm.
I might miss a topic so, if you create one, pm me anyway.
The layout of the branch can change, but at least 2 folders will alway be present (at least for now):
CleanCut (CC) and Chazileon (Ch), (soon to be just Chazi, to avoid confusion):
The layout of the branch can change, but at least 2 folders will always be present (at least for now):
CleanCut (CC) and Chazi (Ch):
- Ch is the main stuff; it's my work folder, test bed and personal booter. Comparing it to the trunk
will probably be a "pain in" for anyone in the future. That's were CC comes in.
branches/azimutz/CleanCut/doc-azi/CHANGES.txt
251251
252252
253253
254
254
255255
256256
257257
258258
259259
260
260
261261
262262
263263
......
272272
273273
274274
275
276
275
276
277
277278
278
279
280
279281
280282
281283
- (rev 427)
Change: removed Chameleon.xcodeproj.
Motif: it's not up to date and i need time to update it properly, at least on Chazileon (Chazi).
Motif: it's not up to date and i need time to update it properly, at least on Chazi.
Will reintroduce it later in the process. It's also giving me problems with the svn client
when i update it; need to check what i'm doing wrong!?
---------------//---------------//---------------
- (rev )
- (rev 460)
Change: added a key to display some debug info, that can only be accessed via code edit.
Check http://forge.voodooprojects.org/p/chameleon/issues/12/ for history.
mm & attr, resolution specific info, are borrowed from AutoResolution branch.
---------------//---------------//---------------
---------------//---------------//---------------
- (rev )
Change:template
- (rev 462)
Change: forked this project into a new Chazi project, that will replace Chazileon; the latest will be
removed soon... i hope :)
Motif:
Motif: this project (CleanCut), as the implies, it's meant to stay clean, as close as possible to the
trunk. More details on the README.txt , under Chazi project.
---------------//---------------//---------------
branches/azimutz/CleanCut/doc-azi/README.txt
1
1
22
3
4
5
6
7
8
9
3
4
105
11
12
6
137
14
158
16
17
18
19
20
21
22
23
24
25
26
279
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
6610
6711
6812
About me:
About the CleanCut:
Just the average curious guy, that likes to know a bit of this and that.
I'm not a skilled coder or even a developer, nor i pretend to be! Most of what i'm doing here
is simply tweaking code that already exists, though lack of knowledge is not the only reason
for this behavior.
Just trying to learn, share my opinion (as noob as it may be) and give back some help,
within my skills, knowledge and available time.
So bare with me :) i'll remember to do the same with you when the time comes.
This is a "clean" cut of the Chazi project. Check the README.txt there for more info.
CHANGES.txt will still be updated as needed.
Thanks.
Azi
Thanks.
About the branch:
First, the usual warning: use it at your own risk!
No, it's not going to set your machine on fire or something like that :)
Everything is tested on my machine first, but you never know. Be sure you understand
the changes before you use one of these booters and always keep a plan B!
Although i use this stuff on a daily basis, this is not meant to be an alternative to Chameleon!
Any use of this booter/s should be considered "testing". If you do find a certain patch or
functionality useful to your self and the "great" majority of Chameleon users, please make a request
to the Chameleon team, on the appropriate places(*).
Any other stuff can/should be reported to me directly, at the forum (*) by pm.
I might miss a topic so, if you create one, pm me anyway.
The layout of the branch can change, but at least 2 folders will alway be present (at least for now):
CleanCut (CC) and Chazileon (Ch), (soon to be just Chazi, to avoid confusion):
- Ch is the main stuff; it's my work folder, test bed and personal booter. Comparing it to the trunk
will probably be a "pain in" for anyone in the future. That's were CC comes in.
- CC will be as close to the trunk as possible and i won't commit there patches that don't work for
everyone, like the AutoResolution i use on Ch. It's mean to be compared easily and keep the stuff
i consider most useful to Chameleon "at hand". Stuff committed here will always come from Ch!
Guidelines:
- learn and spread the knowledge.
- simplify booter use as much as possible.
- make the code more understandable for Sorcerer's Apprentice like my self.
- all files loaded by the booter stay confined to Extra folder.
- fixes that are not absolutely needed by all users, should be disabled by default.
- help improving Chameleon documentation.
- help testing and integrating new useful code to Chameleon.
- help applying Coding Standards.
- no absolute priority to Selected volume.
- emulating a Mac it's not a priority!!!
---------------//---------------//---------------
Any feedback is highly appreciated. I mean ANY! Good, bad, suggestion, opinion, bug, issue, etc...
About requests, keep in mind that my knowledge is limited!
Think "baby steps" ;)
Read the rest of the docs for more info and keep an eye on the forge and forum (*) for news.
Stay safe and enjoy.
(*) http://forge.voodooprojects.org/
http://forum.voodooprojects.org/
Azimutz
branches/azimutz/CleanCut/doc-azi/FileLoad.txt
1
2
3
4
5
6
7
1
82
9
10
11
12
3
134
145
15
166
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
7
Well, the intention here is to give some insight on Chameleon file loading, as well as providing
detailed info about what files are (or can be) loaded, from what devices, used paths, differences
between paths, if there's user overriding available, etc...
For now, it will just focus on comparing what's available (on trunk) and one of the many "paths"
we can follow (my branch); also, only the most frequently used files are featured.
For the purpose of comparison, there's a FileLoad-trunk.txt similar to this one, that will
reflect the current Chameleon (trunk) status on the matter.
Check FileLoad.txt on Chazi project.
To be honest, the info on this file will depend greatly on "feedback"; writing down this stuff it's
not the most pleasing and fruitful task i have to do atm, time is never enough and i don't feel
particularly inspired for the job; so if i see no interest in this, i will ditch it as quickly
as i started it.
Thanks.
Note: unless other wise specified, first file found is the one used.
Before we go on:
- Selected volume = root volume (volume/partition were a system is installed)
- Booter volume = boot volume (volume/partition were the bootloader installed)
---------------//---------------//---------------
azimutz
---------------//---------------//---------------
- Extra extensions (kext)
Default name:Extensions (a directory with kext/s)
Name override:No
Default path/s: User override
rd(0,0)/Extensions- ramdisk
bt(0,0)/Extra/specificOSfolder/Extensions- booter volume or ramdisk aliased as bt(0,0) (1*)
bt(0,0)/Extra/Extensions- same as above
Helper partition/s:
- Apple_Boot (2*): checked only if exists
/com.apple.boot.P/System/Library/Extensions
/com.apple.boot.R/System/Library/Extensions
/com.apple.boot.S/System/Library/Extensions
Path override: Yes
User override: kext=path to folder with Extensions sub folder; e.g. /Extra/drivers/
Note: see CHANGES.txt, (revs 337 --> 360), second Change.
-------/-/------- - same search scheme as above.
- Extra extensions (mkext)
Default name: Extensions.mkext (kext cache)
Name override: No
Default path/s: User override
rd(0,0)/Extensions.mkext
bt(0,0)/Extra/specificOSfolder/Extensions.mkext
bt(0,0)/Extra/Extensions.mkext
Helper partition/s:
/com.apple.boot.P/System/Library/Extensions.mkext
/com.apple.boot.R/System/Library/Extensions.mkext
/com.apple.boot.S/System/Library/Extensions.mkext
Path override: Yes
User override: kext=path to folder with a Extensions.mkext; e.g. /Extra/drivers/
Note: see CHANGES.txt, (revs 337 --> 360), second Change.
---------------//---------------//---------------
- Default configuration file (plist)
Default name: com.apple.Boot.plist
Name override: No
Default path/s: (3*)
bt(0,0)/Extra/com.apple.Boot.plist
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Helper partition/s:
/com.apple.boot.P/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
/com.apple.boot.R/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
/com.apple.boot.S/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Path override: No
---------------//---------------//---------------
- Override configuration file (plist)
Default name: com.apple.Boot.plist
Name override: Yes
Default path/s: User override
rd(0,0)/com.apple.Boot.plist
bt(0,0)/Extra/specificOSfolder/com.apple.Boot.plist
(4*)
Path override: Yes
User override: config=path to file; e.g. /Extra/test/com.apple.Boot.plist or /Extra/b.plist
---------------//---------------//---------------
- ACPI table (aml)
Default name: dsdt.aml
Name override: Yes
Default path/s: User override
rd(0,0)/dsdt.aml
bt(0,0)/Extra/specificOSfolder/dsdt.aml
bt(0,0)/Extra/dsdt.aml
Path override: Yes
User override: DSDT=path to file; e.g. rd(0,0)/Extra/dsdt.aml or /Extra/test.aml
-------/-/-------
ssdt.aml (5*)
---------------//---------------//---------------
- SMBIOS (plist)
Default name: smbios.plist
Name override: Yes
Default path/s: User override
rd(0,0)/smbios.plist
bt(0,0)/Extra/specificOSfolder/smbios.plist
bt(0,0)/Extra/smbios.plist
Path override: Yes
User override: SMBIOS=path to file; e.g. bt(0,0)/Extra/smbios.plist or /Extra/MP21.plist
---------------//---------------//---------------
- ramdisk (dmg)
Default name: Preboot.dmg
Name override: Yes
Default path/s: User override
bt(0,0)/Extra/Preboot.dmg
Path override: Yes
User override: rd=path to file; e.g. /Extra/Preboot.dmg or /Leo.dmg
---------------//---------------//---------------
---------------//---------------//---------------
(1*)
Ramdisks (rd) are simple image files (dmg, etc...) most commonly associated with the pre-boot discs
used to boot retail Mac OS X Installer dvd's; in this case, they are used to load needed files into
memory, before discs can be swapped. But, pre-boot it's not their only use; they can be loaded from
any device the booter has access to and used to test/load, from kexts to complete boot configurations.
A rd aliased as bt(0,0), is a normal rd with a btalias activated pointing to it. The btalias is activated
via a configuration file placed on the root of the rd (RAMDisk.plist), using the pair BTAlias=y.
When this alias is activated on a rd, all paths started by bt(0,0) (pointing to the Booter volume)
will instead point to the rd. This makes rd's aliased as bt, ideal to load full sets of files,
like when using the mentioned pre-boot discs.
(2*)
Helper partitions - boot support partitions (Apple_Boot)
Need to gather more info on these, since i have no experience with them.
All i can say for now is that /com.apple.boot.P /com.apple.boot.R /com.apple.boot.S are directories on
Apple_boot partitions. So far, the only real case scenario i could find that uses these partitions is
software RAID, were the root partition can't be accessed before the "software RAID" is running.
In this situation, these partitions are used as Booter volume and hold the necessary files, that on a
normal setup are loaded directly from the root volume (were the system is installed).
Here is a link to the only decent explanation i ever found on the net:
http://lists.apple.com/archives/boot-dev/2009/May/msg00009.html
(RPS) Rock, Paper, Scissors (the next beats the previous)
(3*)
I'm not searching /Extra/com.apple.Boot.plist on Default paths (c.a.B.plist on selected volume).
The reason is pretty evident, if we don't forget that this booter only loads files from booter volume.
But that's not all; there's also a concept so, for now i'm going to focus only on it.
The concept is: Default configuration file should be loaded either from the Booter volume or from one
of the default system paths.
Why? Because it's the Default configuration file, with the Default configuration files, that the booter
is supposed to use by Default, on a hands-off situation. All these values can still be override by
the user in more ways than one, if the user wishes so! (read 4*)
Wish we could use just "One" default path!??
(4*)
Here i have my doubts if what i have is the ideal, if there's any ideal situation to follow?!
Anyway, explaining what i have now and why.
I'm not searching Default paths for now because:
- they are already checked when loading the Default configuration. In "many" situations
(not to say "most") this will just be reloading the already loaded values.
- on this booter, Selected volume is replaced by the use of a specific OS folder so, in some sense
the selected volume is still checked. And there's also a override key!
My doubts are related to the fact that, searching default paths here does make sense (in a way)
and i'm not entirely sure that's not needed in some configurations?! It's just that, the way
it's done now it gets confuse...
Does using a different name for the Override configuration file make any sense??
(5*)
ssdt: need to gather more info on these, since i have no experience with them.
As far as i understand, same paths as for dsdt.aml are used and if anything different from "dsdt.aml"
is found, it's loaded. 30 tables can be loaded and must be named as:
ssdt.aml, ssdt-1.aml, ssdt-2.aml,... ssdt-30.aml ??? bla bla bla... damn confusion :-/
reminder:
- no ambiguous paths
- what override paths can be used.
---------------//...still plenty to edit...//---------------
---------------//...still plenty brainstorm...//---------------
Azimutz
Azimutz
branches/azimutz/CleanCut/doc-azi/FileLoad-trunk.txt
1
1
22
3
34
4
55
6
7
8
96
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
7
Check FileLoad.txt for full comments.
Check FileLoad.txt on Chazi project.
Thanks.
Note: unless other wise specified, first file found is the one used.
---------------//---------------//---------------
trunk
---------------//---------------//---------------
- Extra extensions (kext)
Default name:Extensions (a directory with kext/s)
Name override:No
Default path/s: rd(0,0)/Extra/Extensions
- ramdisk: checked only if exists
/Extra/Extensions
- selected volume: always checked, even if theres a hit on rd(0,0)
bt(0,0)/Extra/specificOSfolder/Extensions
- booter volume or ramdisk aliased as bt(0,0) (1*): checked only if there's no hit on /Extra
bt(0,0)/Extra/Extensions
- same as previous
Helper partition/s:
- Apple_Boot: checked only if exists (2*)
/com.apple.boot.P/System/Library/Extensions
/com.apple.boot.R/System/Library/Extensions
/com.apple.boot.S/System/Library/Extensions
Path override: No
-------/-/------- - same search scheme as above.
- Extra extensions (mkext)
Default name: Extensions.mkext
Name override: No
Default path/s: rd(0,0)/Extensions.mkext
/Extra/Extensions.mkext
bt(0,0)/Extra/specificOSfolder/Extensions.mkext
bt(0,0)/Extra/Extensions.mkext
Helper partition/s:
/com.apple.boot.P/System/Library/Extensions.mkext
/com.apple.boot.R/System/Library/Extensions.mkext
/com.apple.boot.S/System/Library/Extensions.mkext
Path override: No
---------------//---------------//---------------
- Default configuration file (plist)
Default name: com.apple.Boot.plist
Name override: No
Default path/s: /Extra/com.apple.Boot.plist
bt(0,0)/Extra/com.apple.Boot.plist
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Helper partition/s:
/com.apple.boot.P/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
/com.apple.boot.R/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
/com.apple.boot.S/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Path override: No
---------------//---------------//---------------
- Override configuration file (plist)
Default name: com.apple.Boot.plist
Name override: No
Default path/s: rd(0,0)/Extra/com.apple.Boot.plist
/Extra/com.apple.Boot.plist
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Helper partition/s:
/com.apple.boot.P/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
/com.apple.boot.R/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
/com.apple.boot.S/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Path override: No
---------------//---------------//---------------
- ACPI table/s (aml)
Default name: dsdt.aml
Name override: Yes
Default path/s: User override
/Extra/dsdt.aml
bt(0,0)/Extra/dsdt.aml
dsdt.aml (current dir)
/dsdt.aml
Path override: Yes
User override: DSDT=path to file; e.g. rd(0,0)/Extra/dsdt.aml or /Extra/test.aml
-------/-/-------
ssdt.aml (5*)
---------------//---------------//---------------
- SMBIOS (plist)
Default name: smbios.plist
Name override: Yes
Default path/s: User override
/Extra/smbios.plist
Path override: Yes
User override: SMBIOS=path to file; e.g. bt(0,0)/Extra/smbios.plist or /Extra/MP21.plist
---------------//---------------//---------------
- ramdisk (dmg)
Default name: Preboot.dmg
Name override: Yes
Default path/s: User override
bt(0,0)/Extra/Preboot.dmg
Path override: Yes
User override: rd=path to file; e.g. /Extra/Preboot.dmg or /Leo.dmg
---------------//---------------//---------------
Note: (n*) comments are located on FileLoad.txt.
Azimutz
Azimutz

Archive Download the corresponding diff file

Revision: 463