Links:
http://osx86./
http://osx86./forum/
http://www./osx86/
http://www.research./
|
Code: |
dd if=/dev/zero of=devkit-on-pearpc.img bs=516096 seek=12482 count=0 |
2. Create proper vmdk file for
Code: |
|
3. Install
4. Convert devkit dmg to iso - I used a real mac to do this.
5. Get the prasys linux build of pearpc
http://prasys./downloads.htm
6. Partition and format the the pearpc image with
http://pearpc./installdarwin.html
Code: |
newfs_hfs /dev/disk0s2 |
7. Install devkit on pearpc image - I had to deselect xcode and printer drivers to have enough room. To skip the registration hit Alt-Q.
8. Backup the
Here is my pearpc config
Code: |
ppc_start_resolution = "800x600x32" |
9. Copy the devkit over top of
Code: |
ditto / /Volumes/your_volume |
If you run into bad file descriptor errors in /dev/fd directory, then copy individual directories skipping /dev and /Volumes.
Code: |
ditto /Applications /Volumes/your_volume/Applications |
Repeat that has many times has needed replacing Applications with all the other directories.
10. Copy the patched files to the proper locations.
http://www./osx86/viewtopic.php?t=79&lighter=patch
11. Remove the devkit IOATAFamily.kext from the
12. Edit the TPM kext Info.plist and the /etc/rc.
http://www./osx86/viewtopic.php?t=80&lighter=plist
13. Shutdown the pearpc devkit.
14. Make sure your vm is configured to have a fake floppy. Boot the
15. You should now have Mac OS X for Intel running in VMWare.
16. Post screenshots, please. They are easy to grab with VMWare.
How-To-Bootable-
1. Convert .dmg to .iso http://www./osx86/viewtopic.php?t=78
2. Patch the ISO with this: http://www./osx86/viewtopic.php?t=11
3. Download Darwin Install iso http://www./downloads/8.0.1/darwinx86-801.iso.gz
4. Open the file through WinRAR
5. Browse to System/Library/ in the iso.
6. Drag the extensions folder out into a temporary folder in Windows. Remember where you placed this for later.
7. Now open up the Mac OS x86 install dvd iso in TransMac (http://www./sharetm.htm).
8. Browse to System/Library/Extensions in Transmac.
9. Delete IOATAFamily.kext from the Tiger ISO in Transmac.
10. Find the temporary folder with the extensions folder from earlier (from
11. Drag all the folders (first entry should be called ACard62xxM.kext) from the top section ("PC drive") of TransMac into the bottem section ("Mac drive"). Most of these folders are probably not neccessary, until we have narrowed them down all of them will be copied.
12. REMEMBER TO SELECT NO when it asks to replace a file.
13. Now add the folowing files to the ISO: http://www./osx86/viewtopic.php?t=79
CoreGraphics
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/
oah750d
/usr/libexec/oah/
DS.Bundle
/System/Library/PrivateFrameworks/NetInfo.framework/Resources/lookupd/Agents
IOHDIXController.kext
/system/library/extensions
14 Close Transmac and burn!
This should do it for some people untill they get more things working. It didn‘t work for me, but I let a few people try it and it worked.
This how-to is a moddified version from: http://www.research./wiki/index.php?title=Errors I just added the patches to it. Enjoy!!!
How-To-Step by Step using
1. Install Darwin 8.0.1 onto the PC I wont bother going into detail here because its very straight forward, you just answer the questions as they come up. One thing I did you was create a root user with the password of password and not add any other users.
2. Download the
3. I put the Darwin hard drive in my G5 un-packed the tar file with stuffit deluxe and then copied it onto the Darwin hard drive and put it in a folder called rtemp in the root directory of the disk.
4. I then plugged the
Code: |
|
5. After the script has finished running you need to reboot the pc and log in again, you can verify it worked by typing uname –a at the command prompt.
6. I then used Pacifist again and searched in the dev dvd packages for the kernel extension AppleTPMACPI.kext. I then did a show package contents and browsed to the Contents directory where the info.plist file resides. You need to open that file in a text editor (I used Smultron) and find the srting called
7. Next I patched the CoreGraphics by extracting it from the dev dvd image with pacifist and running the following script:-
(Note you only need to do this if your cpu doesn’t support sse3)
Code: |
|
I used Smultron and made a text file called cgp.sh and copied the above text into it, I then had to change 1 part of it as described below by lanny
When you use lorem‘s CG SSE3 patch your load adress could be different form his. In the script the address 0x902ff000 is hardcoded. In my case (i tried it on the CoreGraphics of the Install
Here‘s the way you can find yours:
console# otool -l CoreGraphics
CoreGraphics:
Load command 0
cmd LC_SEGMENT
cmdsize 668
segname __TEXT
vmaddr 0x92e9d000
vmsize 0x0039a000
fileoff 0
filesize 3776512
maxprot 0x00000007
initprot 0x00000005
nsects 9
flags 0x0
I ran otool -l CoreGraphics at the command prompt and found the vmaddr was the same as above so I guess it would be for everyone else to. So in the script below you need to change 0x902ff000 to 0x92e9d000
Code: |
|
Once the Script has been updated save it and do a chmod +x to make it executable, you can also use an ftp client to do this. You can then go to a command line and type
Code: |
|
This will patch CoreGrahics to not use sse3.
8. I then downloaded the patched rosetta file from here http://www./osx86/viewtopic.php?t=45 you will also need to do a chmod +x on it to make it executable... you can do that with your ftp client or from the unix command prompt.
9. Next I put the
10. I then copied the 3 files in the locations listed below
oah750d goes in /usr/libexec/oah
AppleTPMACPI.kext goes in /System/Library/Extensions/
CoreGrpahics goes in
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/
12. The last step was to put the
Other approach of installing x86
1. open
2. open the pearpc image using transmac and replace IOATAFamily from System/Library/Extensions with the
3. In the pearpc image replace oah... and CoreG... with the patched ones using transmac.
4. Copy ditto to the root dir of the image using transmac.
5. Copy the entire darwin_extensions directory from step 1 into the pearpc image using transmac.
6. Rename the pearpc img as iso and burn a
7. Now we have a
8. Install
9. Once
10. From
11. disktool -m disk... mounts the
12. We run ditto from the
13. Again from the root directory we do: ditto -rsrc /Volumes/dvd_name .
14. We wait for a long time until ditto finishes
15. Now we are in a similar situation as with vmware.
16. We reboot and use -v to see how far we get.
17. As we have a darwin_extensions directory now at
18. We can copy
19. reboot and keep trying
Other information:
Booting
The line "waiting for boot volume with UUID 74820F9D-4EF8-3B58-ABA1-19D13CCA2251" that you get in -v mode is probably referring to a UUID like the ones described here:
http://www./uuid.html
http://en./wiki/UUID
Update by siwu: Actually you can modify what uuid is expected using the boot-uuid kernel argument. However, the uuid you say is the one from the vmware cdrom. It identifies what device to get the data from. And it seems to locate it good because if you try some dummy uuid, you get the "still waiting for root device".
Update by pr0phr3ak: All and All it doesnt matter, the UUID in question is of the disk itself, not the drive. if you do diskutil info disk1s2 you‘ll see that the uuid is bound to the partition.
Enabling the
<blex0r> u can do it manually if u want
<blex0r> open the iso
<blex0r> offset 0x7D64CF
<blex0r> overwrite with 0x0b0d01000000
On the filesystem, this is in /usr/standalone/i386/boot, at offset 0x4ccf.
Q: If SSE3 is required to run the GUI, what is the point here? Is it just to allow people to work on booting with a machine lacking SSE3?
Q: After using the SSE3 patcher and patching the iso, I‘ve extracted the /usr/standalone/i386/boot file and the offset 0x4ccf does not show the sequence 0x0b0d01000000, but something else. As a consequence if I burn this .iso onto a
I think i may have found a solution to bypass the dvd entirely, this is what i was referring to in irc., a method to bypass the disk.
basically. what you can do is boot a pc. install
OPTION 1. Use pacifist in a similar way to how people installed tiger without a dvd drive url=http://www./. you may need to read up on this technique a little.
OPTION 2. Install it directly from installer.app using(double click) the package at the following location "(Install dvd)/System/Installation/Packages/OSInstall.mpkg".
Then the most important part. Put the hd back in the intel machine. See how far it gets. Believe it or not. the install scripts are the same!!! It won‘t know the difference. The binaries are almost all universal.
It seems that it is imperative to have both your
I have not tested this with directly booting on the hardware, because even with the SSE3 patched boot, I still get the "Not supported platform..." message after burning the .iso onto a
It has been suggested to use daemon-tools to mount the ISO as a hard drive for use in VMware for Windows instead of burning the .iso or using the .iso directly from VMWare.
Daemon-tools does not work in linux, so not sure of a solution for doing this in Linux. When I burn a patched (using the above
Enabling the
<blex0r> u can do it manually if u want
<blex0r> open the iso
<blex0r> offset 0x7D64CF
<blex0r> overwrite with 0x0b0d01000000
Q: If SSE3 is required to run the GUI, what is the point here? Is it just to allow people to work on booting with a machine lacking SSE3?
If this error comes up it is because Mac OS x86 cannot recognise your hard drive. Remember to back up your Tiger ISO first. This is how to fix this error:
1. Open the
2. Browse to System/Library/ in the iso.
3. Drag the extensions folder out into a temporary folder in Windows. Remember where you placed this for later.
4. Now open up the Mac OS x86 install dvd iso in TransMac (http://www./sharetm.htm).
5. Browse to System/Library/Extensions in Transmac.
6. Delete IOATAFamily.kext from the Tiger ISO in Transmac.
7. Find the temporary folder with the extensions folder from earlier (from
8. Drag all the folders (first entry should be called ACard62xxM.kext) from the top section ("PC drive") of TransMac into the bottem section ("Mac drive"). Most of these folders are probably not neccessary, until we have narrowed them down all of them will be copied.
9. REMEMBER TO SELECT NO when it asks to replace a file.
10. Finished! Now exit Transmac and check if it works! At the very least it should come up a different error..
After fixing the above (adding all Darwin .kext), the system will go a bit further but stop at the
The culprit here is in the /private/etc/rc.cdrom: echo "Creating
dev=`hdik -drivekey system-image=yes -nomount ram://1024` # 512k
if [ $? -eq 0 ] ; then
newfs $dev
mount -o union -o nobrowse $dev /Volumes
fi
The rc.cdrom is different on the Dev.
To create a
(although, shouldn‘t this be originally present on the Dev.
just copy the DS.Bundle from your Mactelbase.tar to the file on the
A full list of the necessary kexts was created. See them on the Necessary Kexts page.
The following website should be a good start for creating a dummy TPM kernel extension (it contains many good links that are more in-depth): Kernel Extension Concepts (http://developer.apple.com/documentation/Darwin/Conceptual/KEXTConcept/index.html)
Apple Kernel Library (http://developer.apple.com/documentation/Darwin/Kernel-date.html#//apple_ref/doc/uid/TP30000422-TP30000532) Note: Finlay Dobbie may be of use if specific
In case anyone is interested in seeing the disassembly of a Mach-O executable (along with dereferenced symbols):
otool -tvV oah750d
Right now, our main course of action is either (a) intercepting the functions called to the TPM module or (b) modifying the code in Rosetta itself to eliminate TPM checking.
A ktrace of running oah750d is available here: TODO
Here is a complete list of all functions that AppleTPMACPI.kext provides. Also, we have a list of function calls from the Rosetta daemon executable. As you can see, none of these function calls match.
See adilson‘s Progress for a listing of function calls within oah750d which call IOKit, presumably the way that Rosetta communicates with the TPM module.
DeathChill Wait..Why would I copy the IOATAFAmily and ApplePS2Support from Darwin
DeathChill and why would I remove it
blex0r that‘s what i did
blex0r mactel‘s ioatafamily didn‘t work for me
blex0r it didn‘t boot
blex0r and appleps2support is needed for getting the kb and mouse to work
blex0r they didn‘t work for me before getting them from darwin
blex0r maybe u have overwritten darwin‘s extensions with mactel‘s
blex0r and that‘s why it‘s working for u
jtle is missing 1 the preview package?
blex0r but i wanted to ensure that i was using as much pure mactel extensions as possible
blex0r no, it isn‘t
jtle damn, I don‘t have any of the missings then
blex0r it contains files from a devkit
jtle ah ok
blex0r it should be able to be replaced with a pearpc install
The following is a script that will automatically patch the "fat" SSE3 version of CoreGraphics. You will need otool either from the Developer Kit or Xcode 2.1 (but not the one from
#!/bin/sh
if [ ! -f CoreGraphics ]; then
echo "Cannot find CoreGraphics."
exit
elif [ -z "`file CoreGraphics | grep ‘Mach-O fat‘`" ]; then
echo "Not a Mach-O fat executable."
exit
fi
ditto --arch i386 CoreGraphics CoreGraphics.i386
adds=`otool -tV CoreGraphics.i386 | grep fisttpl | awk ‘{ print $1 }‘ | perl -e ‘while ($line = <STDIN>) { print hex($line) - 0x902ff000 . "\n"; }‘`
if [ -z "$adds" ]; then
echo "Nothing to patch."
rm CoreGraphics.i386
exit
fi
for add in $adds; do
skip=`expr $add + 1`
byte=`dd if=CoreGraphics.i386 count=1 bs=1 skip=$skip 2>/dev/null`
data=`perl -e "printf ‘%c%c‘, 0xdf, unpack(C, ‘$byte‘)|0x30"`
echo "Patching at offset $add."
echo -n $data | dd of=CoreGraphics.i386 count=2 bs=1 seek=$add conv=notrunc 2>/dev/null
done
mv CoreGraphics CoreGraphics.bak
mv CoreGraphics.i386 CoreGraphics
If you are running only
adds="30268 35611 69586 70828 70840 80376 80392 141387 141462 141540 141618 148995 154057 154112 158865 158896 158927 158983 159014 159045 159092 159120 159148 159370 168888 170870 170880 195168 195269 213892 213916 397423 547303 547327 547761 547777 582951 582989 584483 584524 584626 584661 647287 647297 647516 647526 695241 728085 728101 756878 756946 757048 757104 757134 757147 816728 911787 913559 913849 1052834 1174372 1174382 1199185 1199321 1199434 1199447 1232032 1232137 1232147 1247523 1247554 1247585 1247641 1247672 1247703 1247798 1290336 1302728 1302807 1303133 1303168 1372373 1372415 1372612 1372654 1381477 1381512 1381539 1382024 1382069 1382177 1382214 1391843 1394529 1394589 1395030 1395051 1429904 1429916 1437710 1452246 1470284 1472280 1472296 1473200 1473219 1494053 1494087 2156318 2156346 2156374 2156405 2156476 2156496 2156546 2156651 2156675 2156702 2156729 2156752 2168011 2168039 2168067 2168098 2168169 2168189 2168239 2168344 2168368 2168395 2168422 2168445 2876640 3089697 3089810 3099427 3099535 3099590 3112849 3138303 3138321 3354581 3354865 3402122 3402146 3407721 3407962 3408714 3470186 3470202 3475047 3507514 3508674 3520754 3520871"
blex0r: DeathChill, open your /etc/rc file
blex0r: locate "Configuring kernel extensions"
blex0r: echo "..."
DeathChill: private/etc/rc?
blex0r: yeah
blex0r: /etc is a symlink
blex0r: echo "Configuring kernel extensions"
blex0r: kextd
blex0r: fi
blex0r: ...
blex0r: if [ "${SafeBoot}" = "-x" ]; then
blex0r: echo "Configuring kernel extensions for safe boot"
blex0r: touch /private/tmp/.SafeBoot
blex0r: kextd -x
blex0r: else
blex0r: echo "Configuring kernel extensions"
blex0r: kextd
blex0r: fi
blex0r: after the fi
blex0r: ...
blex0r: else
blex0r: echo "Configuring kernel extensions"
blex0r: kextd
blex0r: fi
blex0r: kextload /System/Library/Extensions/AppleTPMACPI.kext/
blex0r: add the kextload line just after the fi
DeathChill: change kextd to kextload /System/Library/Extensions/AppleTPMACPI.kext
blex0r: no !
blex0r: add the kextloadline just after the if..fi block
blex0r: that will make the kext to be loaded on time
blex0r: have u modified the Info.plist file ?
blex0r: in the kext
DeathChill: Yes
DeathChill: And done
DeathChill: So save and reboot?
blex0r: /System/Library/Extensions/AppleTPMACPI.kext/Contents/Info.plist
blex0r: have u modified that file ?
blex0r: <key>IONameMatch</key>
blex0r: <string>
blex0r: do u have a floppy device in vmware ?
blex0r: then
blex0r: open /etc/ttys
blex0r: #console "/usr/libexec/getty std.57600" vt100 on secure
blex0r: that line should be commented
blex0r: then remove the # from the loginwindow line
DeathChill: Do I want to remove the # from both consoles
DeathChill: OR just the loginwindow one
blex0r: loginwindow uncommented, getty commented
DeathChill: Ah, well, how do I edit in VI? It seems to be EXTREMELY odd as it doesn‘t seem to keep anything normal xD
blex0r: DeathChill, use pico if u want
blex0r: pico -w /etc/ttys
lorem’s CoreGraphics Script
The following is a script that will automatically patch the "fat" SSE3 version of CoreGraphics. You will need otool from the Developer Kit (not the one from
#!/bin/sh
if [ ! -f CoreGraphics ]; then
echo "Cannot find CoreGraphics."
exit
elif [ -z "`file CoreGraphics | grep ‘Mach-O fat‘`" ]; then
echo "Not a Mach-O fat executable."
exit
fi
ditto --arch i386 CoreGraphics CoreGraphics.i386
adds=`otool -tV CoreGraphics.i386 | grep fisttpl | awk ‘{ print $1 }‘ | perl -e ‘while ($line = <STDIN>) { print hex($line) - 0x902ff000 . "\n"; }‘`
if [ -z "$adds" ]; then
echo "Nothing to patch."
rm CoreGraphics.i386
exit
fi
for add in $adds; do
skip=`expr $add + 1`
byte=`dd if=CoreGraphics.i386 count=1 bs=1 skip=$skip 2>/dev/null`
data=`perl -e "printf ‘%c%c‘, 0xdf, unpack(C, ‘$byte‘)|0x30"`
echo "Patching at offset $add."
echo -n $data | dd of=CoreGraphics.i386 count=2 bs=1 seek=$add conv=notrunc 2>/dev/null
done
mv CoreGraphics CoreGraphics.bak
mv CoreGraphics.i386 CoreGraphics
If you are running only darwin, make sure that you are operating on the correct version of CoreGraphics (d3a7777bd4b71fbdc508aa0d2fb397c2), and change the line beginning with adds to read like the following:
adds="30268 35611 69586 70828 70840 80376 80392 141387 141462 141540 141618 148995 154057 154112 158865 158896 158927 158983 159014 159045 159092 159120 159148 159370 168888 170870 170880 195168 195269 213892 213916 397423 547303 547327 547761 547777 582951 582989 584483 584524 584626 584661 647287 647297 647516 647526 695241 728085 728101 756878 756946 757048 757104 757134 757147 816728 911787 913559 913849 1052834 1174372 1174382 1199185 1199321 1199434 1199447 1232032 1232137 1232147 1247523 1247554 1247585 1247641 1247672 1247703 1247798 1290336 1302728 1302807 1303133 1303168 1372373 1372415 1372612 1372654 1381477 1381512 1381539 1382024 1382069 1382177 1382214 1391843 1394529 1394589 1395030 1395051 1429904 1429916 1437710 1452246 1470284 1472280 1472296 1473200 1473219 1494053 1494087 2156318 2156346 2156374 2156405 2156476 2156496 2156546 2156651 2156675 2156702 2156729 2156752 2168011 2168039 2168067 2168098 2168169 2168189 2168239 2168344 2168368 2168395 2168422 2168445 2876640 3089697 3089810 3099427 3099535 3099590 3112849 3138303 3138321 3354581 3354865 3402122 3402146 3407721 3407962 3408714 3470186 3470202 3475047 3507514 3508674 3520754 3520871"
Installing VMware Tools and the Network Driver in a Linux Guest
1. Choose Settings > VMware Tools Install.
This step connects the virtual machine‘s CD-ROM drive to an ISO image file on the
2. In your Linux guest, become root, mount the VMware Tools virtual CD-ROM, copy the installer file from the virtual CD-ROM to /tmp, then unmount the CD-ROM.
su
cd /
mount -t iso9660 /dev/cdrom /mnt
cp /mnt/vmware-linux-tools.tar.gz /tmp
umount /dev/cdrom
3. Untar the VMware Tools tar file in /tmp and install it.
cd /tmp
tar zxf vmware-linux-tools.tar.gz
cd vmware-linux-tools
./install.pl
Note: When installing VMware Tools in some versions of Linux, the installer will need to recompile VMware Tools. For this to work, you will need to have a C compiler installed in the guest. In some cases you may get compiler warning messages during the VMware Tools installation. However, the control panel and drivers will still work correctly.
4. Do one of the following.
* If you configured this virtual machine to use the vlance network driver, go to step 6.
* If you configured this virtual machine to use the vmxnet network driver, test to be sure that the vmxnet driver is installed correctly.
insmod vmxnet
5. If the driver is installed correctly, you see some informative output but no error messages. In addition, you should now have an entry such as
alias eth0 vmxnet in the file /etc/modules.conf (or
/etc/conf.modules in Red Hat Linux 6.2).
6. When installation is complete, choose Settings > Cancel Tools Install to disconnect the ISO image file and return the virtual machine‘s CD-ROM drive to its original configuration.
7. If you wish, start X and your graphical environment and launch the VMware Tools background application.
vmware-toolbox &
Note: If you created this virtual machine using only the vmxnet driver, you now need to run netconfig or another network configuration utility in the virtual machine to set up the virtual network adapter.
Starting VMware Tools Automatically
You may find it helpful to configure your guest operating system so VMware Tools starts when you start X. The steps for doing so will vary, depending on your Linux distribution and the desktop environment you are running. Check your operating system documentation for the appropriate steps to take.
For example, in a Red Hat Linux 7.1 guest using GNOME, follow these steps.
1. Open the Startup Programs panel in the
Main Menu (the foot in the lower left corner of the screen) > Programs > Settings > Session > Startup Programs
2. Click Add....
3. In the Startup Command field, enter vmware-toolbox.
4. Click OK, click OK again, then close the
The next time you start X, VMware Tools will be started automatically.
Installing VMware Tools in a FreeBSD Guest
1. Choose Settings > VMware Tools Install.
This step connects the virtual machine‘s CD-ROM drive to an ISO image file on the
2. In your Linux guest, become root, mount the VMware Tools floppy, copy the contents of the virtual floppy disk to /tmp, then unmount the floppy.
su
cd /
mount -t iso9660 /dev/cdrom /mnt
cp /mnt/vmware-freebsd-tools.tar.gz /tmp
umount /dev/fd0
3. Untar the VMware Tools tar file in /tmp and install it.
su
cd /tmp
tar zxf vmware-freebsd-tools.tar.gz
cd vmware-freebsd-tools
./install.pl
4. When installation is complete, choose Settings > Cancel Tools Install to disconnect the ISO image file and return the virtual machine‘s CD-ROM drive to its original configuration.
5. Start X and your graphical environment if they are not started yet.
6. In an X terminal, launch the VMware Tools background application.
vmware-toolbox &
|