Jump to content

PC EFI V10.3 Released by Netkas


  • Please log in to reply
52 replies to this topic

#1
Konami®

Konami®

    InsanelyMac Legend

  • Donators
  • 956 posts
  • Gender:Male
  • Location:Pennsylvania
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

#2
BladeRunner

BladeRunner

    InsanelyMac Legend

  • Donators
  • 688 posts
  • Gender:Male
  • Location:New York
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?

#3
mitch_de

mitch_de

    InsanelyMacaholic

  • Local Moderators
  • 2,884 posts
  • Gender:Male
  • Location:Stuttgart / Germany
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 :)

Attached Files



#4
STLVNUB

STLVNUB

    InsanelyMac Legend

  • Coders
  • 1,127 posts
  • Gender:Male

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.

#5
netkas

netkas

    InsanelyMac Legend

  • Developers
  • 616 posts
  • Gender:Male
>Anyone have any ideas why they would be different?

different logo.png

diff command skipped it as binary file

#6
mitch_de

mitch_de

    InsanelyMacaholic

  • Local Moderators
  • 2,884 posts
  • Gender:Male
  • Location:Stuttgart / Germany

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 )

#7
STLVNUB

STLVNUB

    InsanelyMac Legend

  • Coders
  • 1,127 posts
  • Gender:Male

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.

#8
BladeRunner

BladeRunner

    InsanelyMac Legend

  • Donators
  • 688 posts
  • Gender:Male
  • Location:New York

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.

#9
STLVNUB

STLVNUB

    InsanelyMac Legend

  • Coders
  • 1,127 posts
  • Gender:Male
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;
}
}

#10
mitch_de

mitch_de

    InsanelyMacaholic

  • Local Moderators
  • 2,884 posts
  • Gender:Male
  • Location:Stuttgart / Germany
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 ?

#11
cVaD

cVaD

    InsanelyMac Geek

  • Coders
  • 219 posts
  • Gender:Male

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$


#12
STLVNUB

STLVNUB

    InsanelyMac Legend

  • Coders
  • 1,127 posts
  • Gender:Male

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);
		}


#13
BladeRunner

BladeRunner

    InsanelyMac Legend

  • Donators
  • 688 posts
  • Gender:Male
  • Location:New York
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.


Attached File  stlvnub_preboot.diff.zip   2.37KB   30 downloads
Attached File  stlvnub_pci_default.diff.zip   593bytes   34 downloads

#14
mitch_de

mitch_de

    InsanelyMacaholic

  • Local Moderators
  • 2,884 posts
  • Gender:Male
  • Location:Stuttgart / Germany
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.

#15
morfy

morfy

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 890 posts
Work on my system. Flag on start -pci0.
Attached File  Schermata_2009_09_21_a_21.51.44.png   79.46KB   247 downloads

#16
scorcho

scorcho

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 110 posts
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?

#17
BladeRunner

BladeRunner

    InsanelyMac Legend

  • Donators
  • 688 posts
  • Gender:Male
  • Location:New York

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.

#18
mitch_de

mitch_de

    InsanelyMacaholic

  • Local Moderators
  • 2,884 posts
  • Gender:Male
  • Location:Stuttgart / Germany
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

#19
BladeRunner

BladeRunner

    InsanelyMac Legend

  • Donators
  • 688 posts
  • Gender:Male
  • Location:New York

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.

#20
mitch_de

mitch_de

    InsanelyMacaholic

  • Local Moderators
  • 2,884 posts
  • Gender:Male
  • Location:Stuttgart / Germany
I simple down know how to use diff :)





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy