Jump to content

Chameleon v2.1 (Main Trunk)


ErmaC
 Share

595 posts in this topic

Recommended Posts

... that I used to get it working on a sandybridge build based on kabyl and AnVal's code.

 

Hi ^Andy^

you have a code for your sandy bridge working for both 10.6.x and 10.7.x ???

(I'm not a coder I repeat again) but we can try to put the things to include the needed code for this socket...

maybe it's only an idea... maybe not...

 

Fabio

Link to comment
Share on other sites

Hi ^Andy^

you have a code for your sandy bridge working for both 10.6.x and 10.7.x ???

(I'm not a coder I repeat again) but we can try to put the things to include the needed code for this socket...

maybe it's only an idea... maybe not...

 

Fabio

 

I do now yes along with the latest ATi support - source code available here http://www.mediafire.com/?y3roclftu494xwb if anybody would like to try it (the zip also contains the compiled code in the sym/i386 folder if you don't want to compile it yourself).

 

This build will happily dual boot both Lion and Snow Leopard.

 

Enjoy :)

 

EDIT - I should add that very little of this is my own work - like yourself I have taken all of the bits that work from other people's builds and put it together as best I can. The ATi code is courtesy of Kabyl's hard work, the Sandybridge code is courtesy of AnVal/Valv's hard work and the Lion booting is courtesy of mozodojo. My only contribution is drinking plenty of coffee and beer whilst putting it all together and adding some new device id's and framebuffers to the ati.c file.

Link to comment
Share on other sites

I do now yes along with the latest ATi support - source code available here http://www.mediafire.com/?y3roclftu494xwb if anybody would like to try it (the zip also contains the compiled code in the sym/i386 folder if you don't want to compile it yourself).

 

This build will happily dual boot both Lion and Snow Leopard.

 

Enjoy :(

 

EDIT - I should add that very little of this is my own work - like yourself I have taken all of the bits that work from other people's builds and put it together as best I can. The ATi code is courtesy of Kabyl's hard work, the Sandybridge code is courtesy of AnVal/Valv's hard work and the Lion booting is courtesy of mozodojo. My only contribution is drinking plenty of coffee and beer whilst putting it all together and adding some new device id's and framebuffers to the ati.c file.

 

my hard work is... (drink a lot :hysterical:) too..

 

I take a look at the source specially @ ati (kabyl code)...

 

I report later...

 

EDIT: I will post (later) a diff v7 with ^Andy^'s "cocktails" :P

 

Fabio

Link to comment
Share on other sites

...One reason I guess why your marvellous work goes unnoticed by the majority is because RevoBoot is not widely used. As to how to make it more mainstream?.. I'm not sure other than maybe host it at the voodoproject's forge[/url]? (which you probably don't want to do)...

Correct. I have chosen github because it is the default in xcode 4 and I will keep using Git.

 

And no. I do not care about the number of people using RevoBoot. I do care however about the quality and features of it for my own day-to-day use. Hey. People are free to use it, but it was written for me only - as you know :(

Link to comment
Share on other sites

People are free to use it, but it was written for me only

 

That's where most of our contributions start - we do it for our own needs initially and then share it when we are happy with our work and feel that it may be of benefit to others.

Link to comment
Share on other sites

I do now yes along with the latest ATi support - source code available here http://www.mediafire.com/?y3roclftu494xwb if anybody would like to try it (the zip also contains the compiled code in the sym/i386 folder if you don't want to compile it yourself).

 

This build will happily dual boot both Lion and Snow Leopard.

 

Enjoy :(

 

EDIT - I should add that very little of this is my own work - like yourself I have taken all of the bits that work from other people's builds and put it together as best I can. The ATi code is courtesy of Kabyl's hard work, the Sandybridge code is courtesy of AnVal/Valv's hard work and the Lion booting is courtesy of mozodojo. My only contribution is drinking plenty of coffee and beer whilst putting it all together and adding some new device id's and framebuffers to the ati.c file.

 

Hey Andy good work. I would like to report that for some reason the Autoresolution does not work properly on ATI card, I tested it on my Radeon HD4870. I can't get 16:10 resolutions. With the latest AnVal bootloader that is possible.

 

I hope that this will help.

Link to comment
Share on other sites

That's where most of our contributions start - we do it for our own needs initially and then share it when we are happy with our work and feel that it may be of benefit to others.

Yup. But there's one drawback to keeping it under wraps (until you as sole developer are happy with it) and that is that other people don't know about it. And as a result might go out their limb and try to solve the same puzzle. And to prevent this from happening... here's a new patch (i386/libsaio/asm.s):

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// disableIRQs()
//
// Port of original patch by: CPARM (who basically did this in boot.c) Thanks!
//
LABEL(_disableIRQs)
// The ACPI specification dictates that the 8259 (PC-AT compatible) vectors 
// must be disabled (that is, masked) when enabling the ACPI APIC operation 
// but this isn't done (apparently) on all mobo's and thus we do that here.

push	%eax			// Saving register data

movb	$0x80, %al		// Block NMI
outb	%al, $0x70

movb	$0xff, %al		// Load mask
outb	%al, $0x21		// Disable IRQ's 0-7 on Master PIC
outb	%al, $0xa1		// Disable IRQ's 8-15 on Slave PIC

popl	%eax			// Restore register data

ret

#ifndef BOOT1
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// startprog(phyaddr, bootargs)
// Start the program on protected mode where phyaddr is the entry point.
// Passes arg to the program in %eax.
//
LABEL(_startprog)
   call    _disableIRQs	// Taking care of a ACPI bug.

   push    %ebp
   mov     %esp, %ebp

   mov     0xc(%ebp), %eax  // bootargs to mach_kernel
   mov     0x8(%ebp), %ecx  // entry offset 
   mov     $0x28, %ebx      // segment
   push    %ebx
   push    %ecx

   // set up %ds and %es

   mov     $0x20, %ebx
   movw    %bx, %ds
   movw    %bx, %es

   lret
#endif

Then simply remove the two outb() calls in boot.c and have fun :(

Link to comment
Share on other sites

here's a new patch (i386/libsaio/asm.s):

Nice piece of assembler there DHP. Thanks.

I've just tested this on the source from diff V6 posted by Fabio and 10.6 and 10.7 boot just fine with it. So what's the benefit of doing it this way as opposed to having the code in boot.c ?

Link to comment
Share on other sites

for 32bits on chamaleon RC5 75X use i386 flag, NO arch=i386

 

Are you sure? Tried it, still the same result. [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] and XPC boot lion 32-bit or 64-bit according to the system identifier we set into them (smbios). For eg, if we set iMac5,1 Lion will boot 32-bit, whereas for iMac8,1 it will boot 64-bit. Actually that is handled by boot.efi and all the DP versions of Lion seems to follow this. But when Apple releases the final version they will likely boot 32-bit by default as SL.

Link to comment
Share on other sites

As surfcaster said, the ONLY flag working for me in c.a.B.p to boot in 32Bits (Both system, Lion and Snow) is:

Edited: Up. Flag posted by blackosx.

Note: Just for record, but is not a big problem :unsure: that Chameleon Preferences Panel not recognize these entry.

Link to comment
Share on other sites

Thanks blackosx, now Lion boots 32-bit.

 

For booting SL 32-bit and Lion 32-bit, I have the following in com.apple.Boot.plist

<key>arch</key>
<string>i386</string>
<key>Kernel Flags</key>
<string>arch=i386</string>

Link to comment
Share on other sites

TEST TEST TEST TEST TEST TEST

diff V7 PLS is a test!

 

mix the ^Andy^ "cocktails"

also add the assemble code by DutchHockeyPro

 

diff V7b1 file:

compiled binariesV7b1:

 

diff V7b2 file:

compiled binariesV7b2:

 

PLS report:

 

I see this 2 (MARKED IN RED) warning in compile log

[size=1]sh-3.2# make clean

Cleaning objects files and programs
Cleaning done.

sh-3.2# make

================= make all for i386 =================

/patch/trunk/obj/i386 /patch/trunk/sym/i386 /patch/trunk/dst

================= make all for util =================

Make folder... 	 /patch/trunk/obj/i386/util
Make folder... 	 /patch/trunk/sym/i386
Compiling .... 	 machOconv.c
Compiling .... 	 machOconv.c
Compiling .... 	 machOconv i386
Compiling .... 	 machOconv x86_64
- Build universal binaries for machOconv -
Compiling .... 	 bdmesg.c
Compiling .... 	 bdmesg.c
Compiling .... 	 bdmesg i386
Compiling .... 	 bdmesg x86_64
- Build universal binaries for bdmesg -

================= make all for libsa =================

Make folder... 	 /patch/trunk/obj/i386/libsa
Compiling .... 	 prf.c
Compiling .... 	 printf.c
Compiling .... 	 zalloc.c
Compiling .... 	 string.c
Compiling .... 	 strtol.c
Compiling .... 	 strtod.c
Compiling .... 	 error.c
Compiling .... 	 setjmp.s
Compiling .... 	 qsort.c
Compiling .... 	 efi_tables.c
Remove ....... 	 /patch/trunk/sym/i386/libsa.a
Archiving ....	 libsa.a
Converting ...	 libsa.a

================= make all for libsaio =================

Make folder... 	 /patch/trunk/obj/i386/libsaio
Compiling .... 	 console.c
Compiling .... 	 table.c
Compiling .... 	 asm.s
Compiling .... 	 bios.s
Compiling .... 	 biosfn.c
Compiling .... 	 disk.c
Compiling .... 	 sys.c
Compiling .... 	 cache.c
Compiling .... 	 bootstruct.c
Compiling .... 	 stringTable.c
Compiling .... 	 load.c
Compiling .... 	 pci.c
Compiling .... 	 allocate.c
Compiling .... 	 misc.c
Compiling .... 	 ufs.c
Compiling .... 	 ufs_byteorder.c
Compiling .... 	 befs.c
Compiling .... 	 freebsd.c
Compiling .... 	 openbsd.c
Compiling .... 	 vbe.c
Compiling .... 	 nbp.c
Compiling .... 	 hfs.c
Compiling .... 	 hfs_compare.c
Compiling .... 	 xml.c
Compiling .... 	 ntfs.c
Compiling .... 	 msdos.c
Compiling .... 	 md5c.c
Compiling .... 	 device_tree.c
Compiling .... 	 cpu.c
Compiling .... 	 platform.c
Compiling .... 	 acpi_patcher.c
Compiling .... 	 smbios_patcher.c
Compiling .... 	 fake_efi.c
Compiling .... 	 ext2fs.c
Compiling .... 	 hpet.c
Compiling .... 	 dram_controllers.c
Compiling .... 	 spd.c
Compiling .... 	 usb.c
Compiling .... 	 pci_setup.c
[color="#FF0000"]pci_setup.c: In function ‘setup_pci_devs’:
pci_setup.c:49: warning: implicit declaration of function ‘setup_ati_devprop’[/color]
Compiling .... 	 device_inject.c
Compiling .... 	 nvidia.c
Compiling .... 	 ati.c
Compiling .... 	 gma.c
Compiling .... 	 gma_resolution.c
Compiling .... 	 ati_resolution.c
Compiling .... 	 nvidia_resolution.c
Compiling .... 	 pci_root.c
Compiling .... 	 convert.c
Compiling .... 	 mem.c
Compiling .... 	 aml_generator.c
Compiling .... 	 autoresolution.c
Compiling .... 	 edid.c
[color="#FF0000"]edid.c: In function ‘readEDID’:
edid.c:77: warning: implicit declaration of function ‘getEDID’[/color]
Remove ....... 	 /patch/trunk/sym/i386/libsaio.a
Archiving ....	 libsaio.a
Converting ...	 libsaio.a

================= make all for boot2 =================

Make folder... 	 /patch/trunk/obj/i386/boot2
Linking ...... 	 boot2.s
Compiling .... 	 boot.c
Compiling .... 	 graphics.c
Compiling .... 	 drivers.c
Compiling .... 	 prompt.c
Compiling .... 	 options.c
Compiling .... 	 lzss.c
Compiling .... 	 mboot.c
Compiling .... 	 ramdisk.c
Compiling .... 	 kernel_patcher.c
Compiling .... 	 picopng.c
Compiling .... 	 resume.c
Compiling .... 	 bmdecompress.c
Compiling .... 	 graphic_utils.c
Compiling .... 	 gui.c
Building ..... 	 boot.sys
__TEXT	__DATA	__OBJC	others	dec	hex
196864	35360	0	864	233088	38e80
-rw-r--r--  1 root  staff  221056  2 Mag 17:49 /patch/trunk/sym/i386/boot

================= make all for boot1 =================

Make folder... 	 /patch/trunk/obj/i386/boot1
Assembling ... 	 boot1.s
Assembling ... 	 boot1hp.s
Assembling ... 	 boot1he.s
Assembling ... 	 boot1f32.s

================= make all for boot0 =================

Assembling ... 	 boot0
Assembling ... 	 boot0hfs
Assembling ... 	 chain0

================= make all for cdboot =================

Assembling ...	 cdboot.s
sh-3.2# 
[/size]

 

Any Idea or suggest?????

 

Fabio

Link to comment
Share on other sites

Yup. But there's one drawback to keeping it under wraps (until you as sole developer are happy with it) and that is that other people don't know about it.

 

Well unless they are psychic how would they? ;)

 

What would you have me do as a sole developer, publish everything I type or just join up with a band of merry men instead and call myself Robin Hood?

 

I post everything that I think will help others and if that isn't good enough or fast enough for you then thats basically tough luck.

 

I see plenty of criticism from you in your posts regarding other peoples code contributions and work but in return I see very little.

 

I have no problem with constructive criticism, it benefits us all but your form of criticism is of very little use to me or others - don't take that as a personal dig - just be a little more forthcoming with your solutions and hold back on the riddles!

 

EDIT - I have pm'd you to try and explain what I mean by the above.

Link to comment
Share on other sites

blackosx,

How do I change the background color of the boot screen. I want to make it lighter, as it is a little dark for me. Thanks

Are you wanting to change the background colour of a Chameleon theme's GUI?

If so then look for the following key/string in the theme's theme.plist

	<key>screen_bgcolor</key>
<string>#XXXXXX</string>

Change XXXXXX for a hex value to represent an RGB colour.

 

diff V7 PLS is a test!

Blimey Fabio, you're keeping busy!.. ;)

I'll try to grab some time to have a look a bit later.

Link to comment
Share on other sites

Well unless they are psychic how would they? ;)

Hi ^Andy^

 

I read DHP's comment as just a simple statement of fact so I am surprised to read your reaction to it.

 

That's exactly what we need to drive this forwards :P

Yep. Agreed :D

Link to comment
Share on other sites

Well unless they are psychic how would they? ;)

 

What would you have me do as a sole developer, publish everything I type or just join up with a band of merry men instead and call myself Robin Hood?

 

I post everything that I think will help others and if that isn't good enough or fast enough for you then thats basically tough luck.

 

I see plenty of criticism from you in your posts regarding other peoples code contributions and work but in return I see very little.

 

I have no problem with constructive criticism, it benefits us all but your form of criticism is of very little use to me or others - don't take that as a personal dig - just be a little more forthcoming with your solutions and hold back on the riddles!

Please. Don't take everything (from me, as you very well know!) so bloody personal. Not only was nothing I said addressed to you, as a person or as developer, but neither was it criticism. It's just a proven fact that sharing ideas and early code for brainstorming works. To get input. And very well indeed. Just look at some major OSS projects. It is called collaboration :P

 

@blackosx: About the assembler code. Thanks. Do you happen to have Revolution v0.6.24 handy? The one I released on 16 November 2010? The one with my lapic.c patch? There you will find the answer. It's LINT0 and LINT1 that need to be addressed. More intel can be found in the MP v1.4 specification (24201606.pdf) which is what I used back in the day :D

Link to comment
Share on other sites

Please. Don't take everything (from me, as you very well know!) so bloody personal. Not only was nothing I said addressed to you, as a person or as developer, but neither was it criticism. It's just a proven fact that sharing ideas and early code for brainstorming works. To get input. And very well indeed. Just look at some major OSS projects. It is called collaboration ;)

 

Read the PM I sent after I sent that message - hopefully it explains a little

 

Hi ^Andy^

 

I read DHP's comment as just a simple statement of fact so I am surprised to read your reaction to it.

 

You are probably correct and no disrespect was intended.

Link to comment
Share on other sites

I can use only boot fille from the binaries copied directly to my boot partition, right?

 

At this "stage" is better substitute all the 3 files

boot

boot0 or boot0hfs

boot1h

 

the source from a version to other change a loot in all of the 3 file...

how to install it manually... How install manually

 

BUT PLEASE be careful that is a TEST BOOTLOADER...

 

so use at your own risk!

 

Fabio

Link to comment
Share on other sites

It's probably best (pretty obvious for most here I know but I will say it anyway) to make sure you have a working boot disk or other hard disk that you can use to boot from just in case it does go pearshaped!

Link to comment
Share on other sites

 Share

×
×
  • Create New...