Jump to content
Welcome to InsanelyMac Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
Konami®

PC EFI V10.3 Released by Netkas

53 posts in this topic

Recommended Posts

New release 10.3 is now based on Chameleon2 RC3

it includes all features of 10/10.1 (like 64-bit efi pages and etc), also introduces new features, like support for injecting ati radeon 48×0 cards in bootloader, like chameleon2 rc3 does for nvidia, more ati support will come later.

Video and ethernet devices now listed in PCI Cards section of system profiler.(if graphicsenabler/ethernetbuiltin used)

Fixed few bugs in rc3 code.

Now about inbooter injector.

Chameleon2 RC3 supported only pciroot = 0, many new motherboards have pciroot=1.

Now pciroot=1 used by default, if you want pciroot to be 0 – use -pci0 boot option.

To find you pciroot value, use this osx terminal command:

ioreg -l | grep -15 “AppleACPIPCI\ ” | grep UID

To activate video/ethernet injector just use same options in boot.plist that used in Chameleon RC2+ and remove device properties key, options is :

<key>EthernetBuiltIn</key>

<string>y</string>

<key>GraphicsEnabler</key>

<string>y</string>

ATI injecctor designed for snow leopard, dont use it in leopard(binimage isn’t injected) with 4830/4850(you will get screen flickerings)

Installation – if you dont have chameleon2 installed yet – get rc1/rc2 install pkg and use leopard to install bootloader, then replace boot file in root of boot partition with this one – booter

 

Thanks a lot Netkas, you rock!

 

PC EFI 10.3 Netkas site

Share this post


Link to post
Share on other sites

I tried the new loader from netkas on my system and, after resolving a problem unrelated to the new loader, it works quite well. I need to use the "-pci0" flag on my system but that's no real problem. One benefit of the new loader is that my graphics and ethernet cards now show in the system profile PCI cards section. They did not do that before.

 

I also wanted to compile the Chameleon source. I unpacked a fresh copy of the Chameleon2-rc3 source and placed the diff file in the main source folder. I applied the patch with this command:

patch -p 1 -i pcefiv3.diff

The patch applied with no errors or warnings. I ran the following make commands:

make clean
make embedtheme

 

The new boot module in sym/i386 works to boot my system just the same as the one provided by netkas. The only worry I have is that the boot file compiled locally is a different size than the one supplied by netkas.

 

My main system is using the netkas file and my test system is using the one I compiled.

lrh ~ $ ls -al /Boot
-rw-r--r--  1 root  admin  307968 Sep 20 15:58 /Boot
lrh ~ $ ls -al /Volumes/SnowLeopard/Boot
-rw-r--r--  1 root  admin  314528 Sep 20 18:46 /Volumes/SnowLeopard/Boot
lrh ~ $

 

Anyone have any ideas why they would be different?

Share this post


Link to post
Share on other sites

The ioreg -l | grep -15 “AppleACPIPCI\ ” | grep UID gives no results (nothing) on my GA-EP35-DS3.

Can i check that PCI 1 , PCI 0 with IOREGISTRY EXPLORER insted ? Where must i look ?

 

EDIT: I found the needed information - My EP35 has PCI 0 - not the PC EFI 10.3 default :)

Bild_341.jpg

Share this post


Link to post
Share on other sites
I tried the new loader from netkas on my system and, after resolving a problem unrelated to the new loader, it works quite well. I need to use the "-pci0" flag on my system but that's no real problem. One benefit of the new loader is that my graphics and ethernet cards now show in the system profile PCI cards section. They did not do that before.

 

I also wanted to compile the Chameleon source. I unpacked a fresh copy of the Chameleon2-rc3 source and placed

 

No need to specify -pci0

You have the source, just change it and recompile like so. Edit i386/libsaio/pci.c

 

if (getValueForKey("-pci1", &val, &len, &bootInfo->bootConfig))

{

sprintf(tmp, "%s/Pci(0x%x,0x%x)",

(current->parent == root_pci_dev) ? "PciRoot(0x1)" : "",

current->dev.bits.dev, current->dev.bits.func);

strcat(dev_path, tmp);

} else {

sprintf(tmp, "%s/Pci(0x%x,0x%x)",

(current->parent == root_pci_dev) ? "PciRoot(0x0)" : "",

current->dev.bits.dev, current->dev.bits.func);

strcat(dev_path, tmp);

}

 

 

edit: have also a change where you can specify the name/location of the Preboot.dmg

e.g /P35c/P35c.dmg

it works with a Preboot flag in the com.apple.Boot.plist.

Let me know if anyone wants this code.

Share this post


Link to post
Share on other sites
No need to specify -pci0

You have the source, just change it and recompile like so. Edit i386/libsaio/pci.c

 

Let me know if anyone wants this code.

 

Nice, can you share it (PCI default=0. already compiled) somewhere. Because i dont want to change my .plist for -pci.

Q: ICan i use also arch=i386 for my 32 Bit SL boot i believe and not -x32, or i am wrong ?

Q: For what is that preboot.dmg for ? I never heared about that /never used it (i have MBR, non RAID )

Share this post


Link to post
Share on other sites
Nice, can you share it (PCI default=0. already compiled) somewhere. Because i dont want to change my .plist for -pci.

Q: ICan i use also arch=i386 for my 32 Bit SL boot i believe and not -x32, or i am wrong ?

Q: For what is that preboot.dmg for ? I never heared about that /never used it (i have MBR, non RAID )

A1.Just compile it.

A2.Probably can fix it to look for arch=i386 as well.EDIT: By the looks of it you can use both.

A3.The NEW SL boot 132 uses a Preboot.dmg. I thought it may be neat to actually specify a different name for it.

The ultimate goal i to implement a menuing system so you can have multiple dmg and select which one to use at boot time and NOT worry about editing plists.

Share this post


Link to post
Share on other sites
No need to specify -pci0

You have the source, just change it and recompile like so. Edit i386/libsaio/pci.c

 

if (getValueForKey("-pci1", &val, &len, &bootInfo->bootConfig))

{

sprintf(tmp, "%s/Pci(0x%x,0x%x)",

(current->parent == root_pci_dev) ? "PciRoot(0x1)" : "",

current->dev.bits.dev, current->dev.bits.func);

strcat(dev_path, tmp);

} else {

sprintf(tmp, "%s/Pci(0x%x,0x%x)",

(current->parent == root_pci_dev) ? "PciRoot(0x0)" : "",

current->dev.bits.dev, current->dev.bits.func);

strcat(dev_path, tmp);

}

 

 

edit: have also a change where you can specify the name/location of the Preboot.dmg

e.g /P35c/P35c.dmg

it works with a Preboot flag in the com.apple.Boot.plist.

Let me know if anyone wants this code.

 

Thanks for the pointer on where to edit. Saved me much looking. Edited, compiled and running. Thanks again.

 

>Anyone have any ideas why they would be different?

 

different logo.png

 

diff command skipped it as binary file

 

OK! I would never have thought of that. I really appreciate the answer. Now I can stop worrying that I messed it up somehow.

 

Thanks to both for all the hard work.

Share this post


Link to post
Share on other sites

Here the 'Other' bit of code I mentioned, may come of use to some.

it goes into i386/boot2/ramdisk.c

 

int loadPrebootRAMDisk()

{

int fd;

const char *Preboot_filename;

char dirspec[512];

int len;

if (getValueForKey("Preboot", &Preboot_filename, &len, &bootInfo->bootConfig))

 

{ // Check for "Preboot" filename on booting partition

sprintf(dirspec,"/%s",Preboot_filename);

fd=open (dirspec,0);

if (fd<0)

{ // Fall back to booter partition

sprintf(dirspec,"bt(0,0)/%s",Preboot_filename);

fd=open (dirspec,0);

}

if (fd<0)

{ // Check Extra for "Preboot" filename on booting partition

Preboot_filename="Preboot.dmg";

sprintf(dirspec,"/Extra/%s",Preboot_filename);

fd=open (dirspec,0);

}

if (fd<0)

{ // Fall back to booter partition

sprintf(dirspec,"bt(0,0)/Extra/%s",Preboot_filename);

fd=open (dirspec,0);

}

close (fd);

}

mountRAMDisk(dirspec);

if (gRAMDiskMI != NULL)

{

printf("\n");

return 0;

}

else

{

return -1;

}

}

Share this post


Link to post
Share on other sites

Thanks.

I will try to compile it with your changes.

 

EDIT:

 

Edit i386/libsaio/pci.c

 

if (getValueForKey("-pci1", &val, &len, &bootInfo->bootConfig))

{

 

I cant find that part you want to edit in CH RC3 658: i386/libsaio/pci.c, which lines shoud they are and are you sure its pci.c to edit ?

Share this post


Link to post
Share on other sites
The ioreg -l | grep -15 “AppleACPIPCI\ ” | grep UID gives no results (nothing) on my GA-EP35-DS3.

Can i check that PCI 1 , PCI 0 with IOREGISTRY EXPLORER insted ? Where must i look ?...

iMacDeck:~ cvad$ ioreg -l | grep -15 AppleACPIPCI | grep UID
| | |   "_UID" = "0"
iMacDeck:~ cvad$

Share this post


Link to post
Share on other sites
Thanks.

I will try to compile it with your changes.

 

EDIT:

 

Edit i386/libsaio/pci.c

 

if (getValueForKey("-pci1", &val, &len, &bootInfo->bootConfig))

{

 

I cant find that part you want to edit in CH RC3 658: i386/libsaio/pci.c, which lines shoud they are and are you sure its pci.c to edit ?

line 147

it is

 

if (getValueForKey("-pci0", &val, &len, &bootInfo->bootConfig)) 
	{
		sprintf(tmp, "%s/Pci(0x%x,0x%x)", 
			(current->parent == root_pci_dev) ? "PciRoot(0x0)" : "",
			current->dev.bits.dev, current->dev.bits.func);
		strcat(dev_path, tmp);
	} else {
		sprintf(tmp, "%s/Pci(0x%x,0x%x)", 
			(current->parent == root_pci_dev) ? "PciRoot(0x1)" : "",
			current->dev.bits.dev, current->dev.bits.func);
		strcat(dev_path, tmp);
	}

 

Change to this

 

if (getValueForKey("-pci1", &val, &len, &bootInfo->bootConfig)) 
	{
		sprintf(tmp, "%s/Pci(0x%x,0x%x)", 
			(current->parent == root_pci_dev) ? "PciRoot(0x1)" : "",
			current->dev.bits.dev, current->dev.bits.func);
		strcat(dev_path, tmp);
	} else {
		sprintf(tmp, "%s/Pci(0x%x,0x%x)", 
			(current->parent == root_pci_dev) ? "PciRoot(0x0)" : "",
			current->dev.bits.dev, current->dev.bits.func);
		strcat(dev_path, tmp);
	}

Share this post


Link to post
Share on other sites

I added the two changes that STLVNUB supplied and compiled Chameleon. I saw no errors. Well, didn't expect any either :)

 

I am currently booted using the boot module with the pci0/1 swap.

 

I have created diff files for each individual modification which might make it easier for others who wish to make the mods. the two diff files are attached.

 

 

stlvnub_preboot.diff.zip

stlvnub_pci_default.diff.zip

Share this post


Link to post
Share on other sites

line 147 it is : if (getValueForKey("-pci0", &val, &len, &bootInfo->bootConfig))

Ok i see the problem. I used CH RC3 not PC EFI 10.3 as source ;

 

I cant find an Full PC EFI 10.3 source only an diff, i dont like .

Thanks

Would be easier to ALL if someone upload here that very small COMPLIED PC EFI 10.3MOD boot file.

Share this post


Link to post
Share on other sites

very confused on how to use this. let's say you have an ATI 4850 - would you simply enable the graphic enabler from the boot.plist and edit the 4800Controller.kext to get the card working in SL?

 

is there any advantage to this over using an EFI string in boot.plist?

Share this post


Link to post
Share on other sites
very confused on how to use this. let's say you have an ATI 4850 - would you simply enable the graphic enabler from the boot.plist and edit the 4800Controller.kext to get the card working in SL?

 

is there any advantage to this over using an EFI string in boot.plist?

 

There is at least this one advantage. If you change graphics cards to another supported ATI or Nvidia card you should not need to modify your Boot.plist to get it working.

 

I am sure there are more, but that one is the most obvious.

Share this post


Link to post
Share on other sites

Pleaseo upload the modded PC EFI 10.3 or upload the complete modded source (after diff PCIEFI3.diff (netcas ) + modd to RC3 658 Chameleon).

I cant do anything with diff, but i know to do make on READY to compile sources.

At least tell me how to use the diff with my PCIEFI3.diff and the folder Chameleon-2.0-RC3-r658-src

 

Thanks

Share this post


Link to post
Share on other sites
line 147 it is : if (getValueForKey("-pci0", &val, &len, &bootInfo->bootConfig))

Ok i see the problem. I used CH RC3 not PC EFI 10.3 as source ;

 

I cant find an Full PC EFI 10.3 source only an diff, i dont like .

Thanks

Would be easier to ALL if someone upload here that very small COMPLIED PC EFI 10.3MOD boot file.

 

Is there something wrong with the diff netkas provided? I found it worked just fine when I updated the Chameleon2-rc3 source. If you would compile a full PC EFI10.3 source, the patch only adds one easy step prior to the compile.

Share this post


Link to post
Share on other sites
Pleaseo upload the modded PC EFI 10.3 or upload the complete modded source (after diff PCIEFI3.diff (netcas ) + modd to RC3 658 Chameleon).

I cant do anything with diff, but i know to do make on READY to compile sources.

At least tell me how to use the diff with my PCIEFI3.diff and the folder Chameleon-2.0-RC3-r658-src

 

Thanks

 

OK! I understand the problem. Get the Chameleon2-rc3 source and unpack it. You will have a folder named Chameleon-2.0-RC3-r658-src. Copy the diff file into that folder. Then, open a terminal session. Then run these commands.

 

cd Chameleon-2.0-RC3-r658-src
patch -p 1 -i pcefiv3.diff
make clean
make embedtheme

 

On the patch command the "-p 1" tells patch to skip the first level of path name in the file name found inside the diff file. the "-i" identifies the patch input file - the diff file. Piece of cake - easy as pie

 

Open the diff file with text edit and look at the first two lines to see what the file/path names look like.

 

Hope this helps some :wacko:

Share this post


Link to post
Share on other sites
Yep perfect . Diff command line syntax was the problem. THANKS

 

Uploaded compiled (orig. Cham RC3 658 > PC EFI 10.3 > PCI0 is default now)

 

 

Hi there...

 

What is the advantage of using this rather than netkas 10.3 ?

Share this post


Link to post
Share on other sites
Yep perfect . Diff command line syntax was the problem. THANKS

 

Uploaded compiled (orig. Cham RC3 658 > PC EFI 10.3 > PCI0 is default now)

 

This worked great for me - EFI now reporting as 64-bit on a Gigabyte GA-EP35-DS3L. Replaced the "boot" file on top of an existing Chameleon RC3 install.

 

Thanks!

Share this post


Link to post
Share on other sites
Hi there...

 

What is the advantage of using this rather than netkas 10.3 ?

 

It's just so those people who have systems where the PCI root is at 0x0 they don't need the kernel flag -PCI0. The netkas 10.3 defaulted to a PCI root of 0x1. This one defaults to 0x0.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×