Jump to content

Chameleon RC5 Meklort's Branch


aikidoka25
 Share

82 posts in this topic

Recommended Posts

hello meklort,

this is the first time i could try your loader 726 because i was unable to compile your source by myself to get it work.

 

so far it works fine for me but ivé got the same error as with the other ones:

 

nVidia GeForce GTS 450 1024MB NVc3 [10de:0dc4] :: PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)

bad display config block signature (0x55555155)

ERROR: nVidia ROM Patching Failed!

 

are you able to fix graphics enabler open issues 48 for the new geforce 4... cards.

 

it would be real great. so many people got probs to get these cards running.

 

would be great if slice could add suport for these cards in his nvclock too :)

 

thx for your nice work :)

726.txt

Link to comment
Share on other sites

Hi Meklort

 

Just tried rev728 and can boot just fine.

One question. What is uClibc++.dylib for? as without it I can boot just fine though I see a message reading unable to locate it?

post-331032-1296720692_thumb.jpg

 

If I don't need it then should I see a warning that it's missing?

Link to comment
Share on other sites

It's a c++ library.

 

There is some code in a makefile that basically was an ugly hack and removed that dependency if it wasn't required (the only one that uses it is HelloWorld in svn), however I removed that code. I'm planning on fixing that the correct way soon.

 

 

As for nvidia cards, I'll take a look at it sometime.

Link to comment
Share on other sites

hi meklort i have been trying to compile 731 but have the following errors after running make embedtheme.

 

 

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:705: error: ‘__theme_plist’ undeclared (first use in this function)

gui.c: In function ‘loadBootGraphics’:

gui.c:1847: error: ‘__boot_png’ undeclared (first use in this function)

gui.c:1847: 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

 

any idea how to compile without this error ?

Link to comment
Share on other sites

If there are any bugs that you notice before then, I'll be sure to fix them.

One thing I do see when booting is this message from the Resolution.dylib module. Screenshot attached..

 

post-331032-1297322180_thumb.jpg

 

If this is expected with my 8800GT then that's okay with me, but is there anyway to disable this message from showing?

Link to comment
Share on other sites

Great work, meklort! I like to follow you.

Look onto one problem:

I do with your branche

make

make image

Now I see

Screen_shot_2011_02_11_at_10.27.00.png

Zero ISO!

Now I can add /Extra into the "cache" folder with /themes and with /modules then type again

make image

Fine! Now I have bootable ISO image that can be written into CD.

Can you remake makefile to do this in one step?

 

Ya, I've never worked on the nvidia / ati code with 915resolution, so I don't know what the issue is. I'll disable the warning for now. In either case, it's not too important as I won't be merging the resolution module into trunk.

Look into in my edid.c and edid.h files. I made they more correct in some cases. More users got native resolution.

		char* edidInfo = readEDID();

	if(!edidInfo) return;
	edid_mode mode;
	// TODO: check *all* resolutions reported and either use the highest, or the native resolution (if there is a flag for that)
	//xResolution =  edidInfo[56] | ((edidInfo[58] & 0xF0) << 4);  
	//yResolution = edidInfo[59] | ((edidInfo[61] & 0xF0) << 4); 
	//Slice - done here

	if(fb_parse_edid((struct EDID *)edidInfo, &mode) == 0)
	{
		xResolution = DEFAULT_SCREEN_WIDTH;
		yResolution = DEFAULT_SCREEN_HEIGHT;
	}
	else {
		xResolution = mode.h_active;
		yResolution = mode.v_active;
	}

and so on.

Link to comment
Share on other sites

hi! there is something wrong with the memory routine in 744, first module detected speed at 533Mhz while second goes above 50000Mhz... I dont have the pictures since I had to test using slice's branch and that one also have issues relating to HPET... so I'm going to trunk 744 and see what happens, whatever results I get I'll try to go back to meklort's so I can post pics depicting the memory wrong speed detection on second module, btw... THANKS! HUGE THANKS TO EVERYONE.

Link to comment
Share on other sites

The probably is something wrong with the mem detection. My branch was based on an older version of trunk that may have had it broken. As I've said before, I'm not going to be keeping (many) of my modules and that's one of them, so I won't be fixing it. Any looking specifically for issues related to the module system at the moment. After I merge with trunk I'll recreate my branch with just the modules that won't go into trunk (patcher modules, nbi module).

 

Slice, I never use make image, but I suppose I can look into it. See above about nvidia.

 

Anyway, I'll try to get the module system merged tonight (say, around 18 hrs from now).

Link to comment
Share on other sites

One thing I do see when booting is this message from the Resolution.dylib module. Screenshot attached..

 

 

If this is expected with my 8800GT then that's okay with me, but is there anyway to disable this message from showing?

Upload your BIOS obtained by this method.

I'll look into.

Link to comment
Share on other sites

Some numeric exersize

				while (i < 0x300)
			{ //We don't need to look for the table in the whole bios, the 768 first bytes only
				if ((	map->bios_ptr[i] == 0x44) 
					&& (map->bios_ptr[i+1] == 0x01) 
					&& (map->bios_ptr[i+2] == 0x04) 
					&& (map->bios_ptr[i+3] == 0x00))
				{
					nv_data_table_offset = (unsigned short) (map->bios_ptr[i+4] | (map->bios_ptr[i+5] << 8)); //0x02b6
					break;
				}
				i++;
			}

			nv_data_table = (unsigned short *) (map->bios_ptr + (nv_data_table_offset + OFFSET_TO_VESA_TABLE_INDEX)); 
			std_vesa = (NV_VESA_TABLE *) (map->bios_ptr + *nv_data_table); 

			map->nv_mode_table = (char *) std_vesa->sModelines;
			if (map->nv_mode_table == 0)
			{
				verbose("Unable to locate the mode table.\n");
				verbose("Please run the program 'dump_bios' as root and\n");
				verbose("email the file 'vbios.dmp' to stomljen@yahoo.com.\n");
				verbose("Chipset: %s\n", map->chipset);
				close_vbios(map);
				return 0;
			}
			map->mode_table_size = std_vesa->sHeader.usTable_Size;

I took 4 different nVidia BIOSes for 0x01D7, 0x06E9, 0x0611 and 0x0649.

nv_data_table is calculated successfully for all.

std_vesa pointer is calculated also and I see the same headers

0x01D7:
23c, 2ba, *2bc=aeb0->20 05 20 10 4B 64 19 00
0x06E9:
22a, 2c2, *2c4=805c->20 05 20 10 00 64 19 00
0x0611:
220, 2b6, *2b8=7bca->20 05 20 10 00 64 19 00
0x0649:
226, 2be, *2c0=7d4c->20 05 20 10 00 64 19 00

But 4B is the difference. Is this algo works for 0x01d* and do not work for 0x06xx?

I am not clear here but map->nv_mode_table = (char *) std_vesa->sModelines; is not zero in all these cases.

Link to comment
Share on other sites

hello happy good year

 

many times i asking you to take a look at some vaio info for the strange vaio problem

 

but now one user find something:

 

he find how to enable his internal screen but what works in his computer doesn t work perfect for all user now

i ask you because you are develloping chameleon and so you can add option or fix to your version

 

it seems the vaio problem was due to a non needed display driver and as i see in many osx installer : nvkush nv33 nv42 etc there no option to uninstall this part of device so could explain why display unload at graphics loaded

 

actually the user who had the display working use chameleon 700 because a certain kind of graphic enabler

 

so if you can investigate for help vaio user community

 

i give you the link where user"navid n"find issue

http://www.insanelymac.com/forum/index.php...8556&st=460

 

thanks for your help

Link to comment
Share on other sites

  • 2 weeks later...

Hi, meklort!

I am not sure I correctly apply your new module system but I have a new problem.

Loading Darwin 10.6
Loading kernel cache /System/Library/Caches/com.apple.kext.caches/Startup/kernelcache_i386.DE02E788
Invalid mach magic 0x706D6F63
Unable to locate _lapic_init
Wifi Controller [8086:4222] :: PciRoot(0x0)/Pci(0x1c,0x1)/Pci(0x0,0x0)

There are two problems:1. why invalid magic? I checked with hexedit and always it is feedface. 2. lapic_patch is not work with vanilla 10.6.6?

Nontheless all modules work :blink: except KernelPatcher.

 

And what do you think about a possibility to boot Lion?

Link to comment
Share on other sites

  • 2 months later...

Had someone tested KernelPatcher.dylib in the rv974 trunk?

I put KernelPatcher.dylib in modules folder and just reboot in loading bootloader.

Have I did something wrong with it?

Link to comment
Share on other sites

 Share

×
×
  • Create New...