Jump to content

Mavericks kernel testing on AMD (formerly Mountain Lion kernel testing on AMD)


theconnactic
 Share

6,414 posts in this topic

Recommended Posts

Hi, Sinetek!

 

Trying to integrate your ssse3 emulator to my 10.7.5 generated a very annoying issue for me: it seems to compile fine until the end, but in the last moment i get this error:

 

Undefined symbols:

"_ssse3emu", referenced from:

_ssse3emu_populate in commpage.o

_ssse3emu_populate in commpage.o

(maybe you meant: _ssse3emu_populate)

"_ssse3emu_end", referenced from:

_ssse3emu_populate in commpage.o

 

Searching for where the problem may have appeared in the compilation process, i found these warnings:

- no previous prototype for 'ssse3emu_populate'

- pointer of type 'void *' used in subtraction

 

So i decided to take a look where the root of the issue seems to be, at commpage.c.

Here's the function ssse3emu_populate:

 

void ssse3emu_populate(void) {

int ssse3emu_size = (void*) ssse3emu_end - (void*) ssse3emu;

printf("Enabling ssse3 emulator. Size %d should be less than %d. \n", ssse3emu_size, PAGE_SIZE);

commpage_stuff2(_COMM_PAGE_SSSE3EMU, ssse3emu, ssse3emu_size, FALSE);

}

 

Notice, like i did, the two occurrences of "ssse3emu" just one "ssse3emu_end", just the way the missing symbols from the function appear to be flagged. They both are inside ssse3emu.c, so why they're report missing, Sinetek? How did you solve the issue for compiling your own kernel?

 

Thank you very much.

Link to comment
Share on other sites

I solved it myself: it was a matter of adding the ssse3emu.c to osfmk/config/filesi386 and filesx86_64 so the symbols are recognized.

 

And now, i gladly present you, my friends, the sinactic (yeah, without sinetek and his history-making ssse3 emulator, nothing of this would be possible) i386 10.7.5 kernel.

 

IMPORTANT: it's made for non-Bulldozer/Piledriver AMD CPUs, as well as legacy Intel CPUs (Pentium Ds, etc). Bulldozer and Piledriver CPUs already have ssse3, thus they can run 64-bit mode processes on the 32-bit kernel. The ssse3 emulator perhaps gives to old AMD and legacy Intel CPUs the same capability. They should be able to boot without the -legacy boot flag, if everything works like it should. If not, at least everything would be in place for the improved ssse3 emulator sinetek is working on, and it would just be a matter of swapping the emulator.

 

Test and report please, with pics and vids if possible:

sinactic.zip

Link to comment
Share on other sites

yeah connactic, you're getting the hang of this. however you have to compile "ssse3emu.c" with the flag "-fno-jump-tables" otherwise it will crash at runtime because this is not a normal mach object but a binary blob in the commpage. See Makefile.i386 in osfmk to see how it's done.

 

also, that emulation thingy will only work as long as no 64bit whatsoever is enabled. ie, no -force64 or anything, pure 32bits.

the reason is that the kernel is still 32 bits EXCEPT a VERY small portion of the kernel which i depend on, is indeed 64 bits as soon as you -force64 it. (confusing isn't it?) this limitation is going away once i get more time.

 

-- Sinetek

  • Like 1
Link to comment
Share on other sites

P.S.: I'll post later both diffs, for the connactic 10.7.5 and the sinactic 10.7.5. And, of course, i want to give credit for the minds who made these kernels possible (they did the real hard work: i just collected and assembled the parts): for the connactic kernel, RAWx86, Bronzovka, AnV and the Voodoo team. For the synaptic kernel, all those people plus sinetek a.k.a. slackware, who wrote the ssse3 emulator. Thank you all, guys.

Link to comment
Share on other sites

yeah connactic, you're getting the hang of this. however you have to compile "ssse3emu.c" with the flag "-fno-jump-tables" otherwise it will crash at runtime because this is not a normal mach object but a binary blob in the commpage. See Makefile.i386 in osfmk to see how it's done.

 

also, that emulation thingy will only work as long as no 64bit whatsoever is enabled. ie, no -force64 or anything, pure 32bits.

the reason is that the kernel is still 32 bits EXCEPT a VERY small portion of the kernel which i depend on, is indeed 64 bits as soon as you -force64 it. (confusing isn't it?) this limitation is going away once i get more time.

 

-- Sinetek

 

Thank you, Sinetek: i'll follow your suggestion.

 

I noticed indeed that the kernel rufuses to compile at 64-bit because of the ssse3emu. The compiler complains about not being able to compile pusha and popa in 64-bit mode.

 

Gilles, kernel 11.5: that's for Lion 10.7.5, and won't do well on your FX computer. Only for Phenoms and older CPUs.

Link to comment
Share on other sites

I solved it myself: it was a matter of adding the ssse3emu.c to osfmk/config/filesi386 and filesx86_64 so the symbols are recognized.

 

And now, i gladly present you, my friends, the sinactic (yeah, without sinetek and his history-making ssse3 emulator, nothing of this would be possible) i386 10.7.5 kernel.

 

IMPORTANT: it's made for non-Bulldozer/Piledriver AMD CPUs, as well as legacy Intel CPUs (Pentium Ds, etc). Bulldozer and Piledriver CPUs already have ssse3, thus they can run 64-bit mode processes on the 32-bit kernel. The ssse3 emulator perhaps gives to old AMD and legacy Intel CPUs the same capability. They should be able to boot without the -legacy boot flag, if everything works like it should. If not, at least everything would be in place for the improved ssse3 emulator sinetek is working on, and it would just be a matter of swapping the emulator.

 

Test and report please, with pics and vids if possible:

sinactic.zip

 

 

 

Tested your 11.4.2 kernel with LION 10.7.5 on AMD P-II x4 965

 

 

1. WITH: -legacy

 

lion_01.gif

 

 

 

 

2. WITHOUT -legacy

 

lion_02.gif

Link to comment
Share on other sites

I solved it myself: it was a matter of adding the ssse3emu.c to osfmk/config/filesi386 and filesx86_64 so the symbols are recognized.

 

And now, i gladly present you, my friends, the sinactic (yeah, without sinetek and his history-making ssse3 emulator, nothing of this would be possible) i386 10.7.5 kernel.

 

IMPORTANT: it's made for non-Bulldozer/Piledriver AMD CPUs, as well as legacy Intel CPUs (Pentium Ds, etc). Bulldozer and Piledriver CPUs already have ssse3, thus they can run 64-bit mode processes on the 32-bit kernel. The ssse3 emulator perhaps gives to old AMD and legacy Intel CPUs the same capability. They should be able to boot without the -legacy boot flag, if everything works like it should. If not, at least everything would be in place for the improved ssse3 emulator sinetek is working on, and it would just be a matter of swapping the emulator.

 

Test and report please, with pics and vids if possible:

sinactic.zip

 

I get the exact same as mac_carol above with Athlon II X2 215

Link to comment
Share on other sites

Hi, Gilles!

 

The connactic 10.7.5 is for Bulldozer/Piledriver only. All other old AMD/legacy Intel CPUs must boot with -legacy. On your FX 6100, it will work under Lion 10.7.5 better than RAW's 10.7.4 kernel. On the 4800+, it should work with -legacy, and in fact it is working: the waiting for DSMOS is a decryption-related issue, caused by something else than the kernel.

 

The sinactic 10.7.5 kernel is for old AMD/legacy Intel CPUs only, because of the ssse3 emulator. But it's not working, because it must be compiled in a different way. I'll try to recompile it the right way later tonight. I'm taking a look at the source of the ssse3 emulator, to see what help can i offer on its improvement.

 

Thank you for the extensive tests.

Link to comment
Share on other sites

Hi theconnactic,

I 've downloaded and using your kernel on my and fx 6100 system.Running now 10.7.5

Runs smooth ( ) but can't run google chrome or other 32bit apps .

I appreciate your effort many thx to you and sinetek !

 

mainbord asus m4a89gtd

hd 6850

4gb mem

Link to comment
Share on other sites

tu as installé le patch AnV ?

 

you installed the patch AnV?

 

 

no i dont have the amd AnV patch

where can I find it?

 

I want to use it the most for my logic programs and plug-in

Link to comment
Share on other sites

 

thanks for the link.

I found it a couple of days ago,but you can only download it when you're invited !

 

 

merci pour le lien.

Je l'ai trouvé un il ya quelques jours, mais vous ne pouvez le télécharger quand vous êtes invités!

 

je suis Hollandais

Link to comment
Share on other sites

disk repair gave me this

 

Password:

bash-3.2# sudo diskutil repairpermissions /

Started verify/repair permissions on disk2s2 Mac AMD FX6100

Group differs on "Library/Java"; should be 0; group is 80

Permissions differ on "Library/Java"; should be drwxr-xr-x ; they are drwxrwxr-x

Repaired "Library/Java"

User differs on "mach_kernel"; should be 0; user is 501

Group differs on "mach_kernel"; should be 0; group is 20

Permissions differ on "mach_kernel"; should be -rw-r--r-- ; they are -rwxr-xr-x

Repaired "mach_kernel"

User differs on "usr/share/collabd/webauthd"; should be 94; user is 221

Group differs on "usr/share/collabd/webauthd"; should be 94; group is 221

Repaired "usr/share/collabd/webauthd"

User differs on "usr/share/collabd/webauthd/locales"; should be 94; user is 221

Group differs on "usr/share/collabd/webauthd/locales"; should be 94; group is 221

Repaired "usr/share/collabd/webauthd/locales"

Permissions differ on "System/Library/CoreServices/Menu Extras/Displays.menu"; should be drwxr-xr-x ; they are lrwxr-xr-x

Repaired "System/Library/CoreServices/Menu Extras/Displays.menu"

Permissions differ on "System/Library/MonitorPanels/Arrange.monitorPanel"; should be drwxr-xr-x ; they are lrwxr-xr-x

Repaired "System/Library/MonitorPanels/Arrange.monitorPanel"

Permissions differ on "System/Library/MonitorPanels/Display.monitorPanel"; should be drwxr-xr-x ; they are lrwxr-xr-x

Repaired "System/Library/MonitorPanels/Display.monitorPanel"

Permissions differ on "System/Library/MonitorPanels/Profile.monitorPanel"; should be drwxr-xr-x ; they are lrwxr-xr-x

Repaired "System/Library/MonitorPanels/Profile.monitorPanel"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane"; should be drwxr-xr-x ; they are lrwxr-xr-x

Repaired "System/Library/PreferencePanes/Displays.prefPane"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/hr.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/hr.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/sk.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/sk.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/Dutch.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/Dutch.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/English.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/English.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/French.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/French.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/German.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/German.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/Italian.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/Italian.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/Japanese.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/Japanese.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/da.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/da.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/fi.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/fi.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/ko.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/ko.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/no.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/no.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/pl.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/pl.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/pt.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/pt.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/pt_PT.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/pt_PT.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/ru.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/ru.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/sv.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/sv.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/zh_CN.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/zh_CN.lproj/DisplaysPref.nib"

Permissions differ on "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/zh_TW.lproj/DisplaysPref.nib"; should be drwxr-xr-x ; they are -rw-r--r--

Repaired "System/Library/PreferencePanes/Displays.prefPane/Contents/Resources/zh_TW.lproj/DisplaysPref.nib"

Permissions differ on "private/var/run/com.apple.WindowServer.didRunThisBoot"; should be -rwx------ ; they are ---x------

Repaired "private/var/run/com.apple.WindowServer.didRunThisBoot"

Finished verify/repair permissions on disk2s2 Mac AMD FX6100

bash-3.2#

Link to comment
Share on other sites

hi, i got an idea, but I need the source to that instruction patcher, for 10.7

 

thanks

 

 

 

 

little poll: Should we split this thread?

 

If so, how?

 

here is the patcher

amd_insn_patcher_src and IOHIDFamily_nointervalcheck.kext

 

Edit new file !!!!!

 

>>>

Link to comment
Share on other sites

I see. This is a fun piece of code, but the only bit that *may* be needed right now is CPUID patching. I don't know if the OS will load without patching cpuid, my guess is yes.

 

This also does sysenter patching, but i've discovered and just confirmed now that this part I could relocate to the kernel, it'll be simpler and no patching/modifying signatures this way.

TLDR; adding sysenter emulation would be cool.

Link to comment
Share on other sites

I have a question to you. as the first time I've installed Lion 10.7.4 on my AMD Phenom II X6 1100T, I was able to boot with help of cparm bootloader under the application modules stable my system. cparm and AndyVandijck have developed this boot loader for AMD CPUs. Please take a look at the site if that's helpful.

 

>>>>http://osx86.co/f36/...-made-by-t7178/

 

The download link from cparm is dead, here are the standard modules and various other modules from my collection

>>>>

Link to comment
Share on other sites

Hi, folks!

 

As i promised, i recompiled the sinactic 10.7.5 Lion kernel with the ssse3 emulator using the flags recommended by Sinetek. I added them at osmkf/conf/Makefilei386.

 

Let's see if the ssse3 emulator starts without any runtime errors! Remember, this is for non-Bulldozer/Piledriver only. If possible, put vids or pics of your verbose boots. Good luck!

 

sinactic.zip

Link to comment
Share on other sites

oh wow, i found some amazingly great technical information somewhere.

 

it is possible to spoof the CPUID instruction on AMD using the virtualization extensions.

 

the problem is that cpuid isn't a priviledged instruction, but this would solve it. that would be the pinacle of all mach_kernels

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...