Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
What happens if you test both drives individually but simultaneously? No RAID; run two instances of the benchmark concurrently.
I'll give that a try at some point...

When the 240GB was Mixed with the 256GB in HW RAID 0 under linux I got about 470MB/s.

So Mixing these drives puts both into 3.0GB/s mode under Linux set with LSIUtil.

I've not tested them mixed with OS X DiskUtility SW RAID 0.

If you check the AppleLSIMPT driver( Kext ) it has support for three cards, one is this card 1000,50 one is a LSI Fiber Channel RAID card and the last is a LSI SCSI card.

I think I know what the Apple shipped card is, I think it is this card, it has a battery pack, but for $90 I'm not buying one to find out. It's the only LSI SAS card I can find from a G5.

NOTE TO MODS: Not my auction.


Anyway the Linux driver doesn't like Apple SW RAID and can't detect the Logical Volume, and the OS X Driver doesn't like the LSI HW RAID and can't mount or even do a /dev/entry for the LSILogical Volume.

I'm sure if @joevt is able to get the LSIUtil working on Mac OS PPC it will be able to detect the drives and change the properties.

This is all so damed cool, I wish I could help @joetv with the LSIUtil, but that's over my head, I can build and beta test tho..

The LSIMPT driver from Leopard will likely work on Tiger too, we know Tiger server has one, so if the one from Leopard doesn't work, that one likely will.
 
If you type:

Code:
megaraid

On the OS X command line you'll get some interesting results, but not for this card, Apple used a LSI MegaRAID in something, we just have to figure out which cards.......
 
What happens if you test both drives individually but simultaneously? No RAID; run two instances of the benchmark concurrently.
Running two benchmarks concurrently doesn't usually give consistent results because they are not synced together so it may be that one benchmark is idling which allows the other benchmark to report higher results making the total bandwidth greater than possible.

ATTODiskBenchmark.app is the only benchmark I know that does multiple disks simultaneously but I don't think there's a PPC version.
 
  • Like
Reactions: Amethyst1
Guys, do you know you can test at least 3 types of LSI SAS cards in PowerMacs? LSI3041E-R (PCI Ex), LSI3081E-R (PCI-Ex), LSI3080X-R (PCI-X, usually HP-branded with 2 SFF-8484 ports) and one, forgot how is it marked, with 4 SATA ports, which you are using, I suppose? :D
(8-devices cards can be installed too ' you can connect all 8 drives to it, which requires of using several enclosures, 1 with 4 ports replacing DVD drive, two more - in regular HDD drives, which can handle 2 2,5" each. Just google models.)
 
So I ordered another 256GB drive and I'm hitting peak speeds of over 500MB/s in Raid 0 with these two drives.

They each were doing 250+MB/s before I raided them.

The cheap 240GB drives keep coming unmarried between reboots and only operate at SATA I speeds, even tho they are SATA III drives and backward compatible with SATA II.

These drives will just power my older Mac's that can't use the RAID card, and they work fine with the SiL3112.

Tho I never tried to RAID them with SW RAID on the SiL3112, so that maybe worth looking at.

If I add 4 drives to my RAID array on the LSI card I should get pretty near the 1064MB/s that is the Maximum theoretical speed of PCI-X 133.

I'm thinking four high quality 1TB SATA III SSD in RAID 0 will be fine for this Old G5.

I'll update with some benchmarks when I get my 4TB setup.
 
  • Like
Reactions: Amethyst1
I've updated my DirectHW, pciutils, and LSIUtil forks but I have no LSI card to test them with.
You should be able to build them for any macOS version (I've tried 10.4, 10.6, 10.13, and 13), PPC or Intel (Arm probably needs more work if it can work at all).
You probably need to unload the LSI kext before using lsiutil
 
  • Like
Reactions: LightBulbFun
I've updated my DirectHW, pciutils, and LSIUtil forks but I have no LSI card to test them with.
You should be able to build them for any macOS version (I've tried 10.4, 10.6, 10.13, and 13), PPC or Intel (Arm probably needs more work if it can work at all).
You probably need to unload the LSI kext before using lsiutil
I can't seem to get the permissions correct for DHW.kext.

What has always worked for me is:

Code:
sudo chown -R 0:0 /path/to/the/.kext
sudo chmod 755 /path/to/the/.kext

Also, I'm I going to need the DHW framework installed?
 
I can't seem to get the permissions correct for DHW.kext.

What has always worked for me is:

Code:
sudo chown -R 0:0 /path/to/the/.kext
sudo chmod 755 /path/to/the/.kext

Also, I'm I going to need the DHW framework installed?
You need to add -R because kext is a folder that contains other files that need the correct permissions.
Or use the commands in my kextutil.sh (git gist) script
https://gist.github.com/joevt/a4ef4cd2e1485d0dd595893007bdfd6a
which I included in my flashrom for Mac OS X 10.3, 10.4, 10.5 archive posted elsewhere.
https://forums.macrumors.com/thread...the-fruit-colored-imacs.2428418/post-33206738

You need to install the framework if you are building the source code.

Code:
mkdir -p ~/joevtstuff
cd ~/joevtstuff
git clone https://github.com/joevt/directhw joevt-directhw
git clone https://github.com/joevt/pciutils joevt-pciutils
git clone https://github.com/joevt/LSIUtil joevt-LSIUtil
curl -s -L https://gist.github.com/joevt/a4ef4cd2e1485d0dd595893007bdfd6a/raw -o KextUtil.sh

cd ~/joevtstuff/joevt-directhw/DirectHW
make clean
make 2>&1
sudo make install 2>&1

cd ~/joevtstuff/joevt-pciutils
make clean
make
sudo make install
sudo make install-lib
# Test it
sudo setpci -G -s 00:00.0 0.l
sudo lspci -G -nnvvv

cd ~/joevtstuff/joevt-LSIUtil/Source/1.70
if [[ -e lsiutil ]] rm lsiutil
if [[ -e lsiutil.dSYM ]] rm lsiutil.dSYM
make -f Makefile_Mac
# Test it
./lsiutil -help
sudo ./lsiutil -o 
sudo ./lsiutil
 
You need to add -R because kext is a folder that contains other files that need the correct permissions.
Or use the commands in my kextutil.sh (git gist) script
https://gist.github.com/joevt/a4ef4cd2e1485d0dd595893007bdfd6a
which I included in my flashrom for Mac OS X 10.3, 10.4, 10.5 archive posted elsewhere.
https://forums.macrumors.com/thread...the-fruit-colored-imacs.2428418/post-33206738

You need to install the framework if you are building the source code.

Code:
mkdir -p ~/joevtstuff
cd ~/joevtstuff
git clone https://github.com/joevt/directhw joevt-directhw
git clone https://github.com/joevt/pciutils joevt-pciutils
git clone https://github.com/joevt/LSIUtil joevt-LSIUtil
curl -s -L https://gist.github.com/joevt/a4ef4cd2e1485d0dd595893007bdfd6a/raw -o KextUtil.sh

cd ~/joevtstuff/joevt-directhw/DirectHW
make clean
make 2>&1
sudo make install 2>&1

cd ~/joevtstuff/joevt-pciutils
make clean
make
sudo make install
sudo make install-lib
# Test it
sudo setpci -G -s 00:00.0 0.l
sudo lspci -G -nnvvv

cd ~/joevtstuff/joevt-LSIUtil/Source/1.70
if [[ -e lsiutil ]] rm lsiutil
if [[ -e lsiutil.dSYM ]] rm lsiutil.dSYM
make -f Makefile_Mac
# Test it
./lsiutil -help
sudo ./lsiutil -o
sudo ./lsiutil
LSIUtil complains it can't load the DHW dynamic library from the DHW framework.

make 2>&1 just dumps a list of make commands for DHW.

make directhw dumps an error that there is no SDK specified at the SDKROOT path.

On Leapard 10.5.8 with Xcode 3.0

Trying to build in Xcode with the project file for 10.5 yields the same result, no SDKROOT.

I have the 10.5 and 10.4 SDK's installed in the /Developer dir.
 
How do I use this, I mean where does it expect the .kext to be?
Read the comments at the linked GitHub gist webpage for usage info.
The kext can be anywhere. See sample usage in the flashrom archive I linked in one of the .command files which you can view in a text editor or with the cat command.

LSIUtil complains it can't load the DHW dynamic library from the DHW framework.
I meant for LSIUtil to work without the DHW dynamic library by linking in the static library but I forgot to remove the framework from the link command in the make file. It's updated now.

make 2>&1 just dumps a list of make commands for DHW.
I think its dumping a list of commands that it's executing. Perhaps next time you can attach a zipped copy of the terminal log.
Make sure the path is {repository}/DirectHW and not just the root of the {repository}

make directhw dumps an error that there is no SDK specified at the SDKROOT path.

On Leapard 10.5.8 with Xcode 3.0

Trying to build in Xcode with the project file for 10.5 yields the same result, no SDKROOT.

I have the 10.5 and 10.4 SDK's installed in the /Developer dir.
I had updated the 10.4 and 10.6 and latest Xcode projects but not the 10.5 project. The 10.5 project is updated now.
 
Getting nowhere..

Code:
cd ~/joevtstuff/joevt-directhw/DirectHW
james-lyonss-power-mac-g5:DirectHW jam$ make clean
rm -rf build/build10.5
james-lyonss-power-mac-g5:DirectHW jam$ make 2>&1
xcodebuild -alltargets -project DirectHW10.5.xcodeproj    SYMROOT=build/build10.5
(NOTE: project DirectHW10.5 was written by a newer Xcode version (45) -- temporarily downgrading it (without modifying project file))

=== BUILDING NATIVE TARGET KEXT WITH THE DEFAULT CONFIGURATION (Release) ===

Checking Dependencies...
error: There is no SDK at specified SDKROOT path '/Users/jam/joevtstuff/joevt-directhw/DirectHW/macosx10.4'
** BUILD FAILED **
make: *** [main] Error 1
james-lyonss-power-mac-g5:DirectHW jam$
 
Last edited:
Getting nowhere..
Should be using Xcode 3.1.4 for Leopard at /Developer/Applications/Xcode.app

/Developer/SDKs should have at least MacOSX10.4u.sdk and MacOSX10.5.sdk

Code:
$ make clean
rm -rf build/build10.5

$ make 2>&1
xcodebuild -alltargets -project DirectHW10.5.xcodeproj    SYMROOT=build/build10.5
=== BUILDING NATIVE TARGET KEXT OF PROJECT DirectHW10.5 WITH THE DEFAULT CONFIGURATION (Release) ===

Checking Dependencies...

...

=== BUILDING NATIVE TARGET DirectHW OF PROJECT DirectHW10.5 WITH THE DEFAULT CONFIGURATION (Release) ===

Checking Dependencies...

...

=== BUILDING NATIVE TARGET libDirectHW OF PROJECT DirectHW10.5 WITH THE DEFAULT CONFIGURATION (Release) ===

Checking Dependencies...

...

** BUILD SUCCEEDED **
cc DirectHW.c -dynamiclib -framework IOKit -o build/build10.5/Release/libDirectHW.dylib -g
In file included from DirectHW.c:19:
MacOSMacros.h:75:6: warning: #warning i386
MacOSMacros.h:89:6: warning: #warning SDK 10.5
DirectHW.c: In function 'MyIOConnectCallStructMethod':
DirectHW.c:115: warning: 'IOConnectMethodStructureIStructureO' is deprecated (declared at /System/Library/Frameworks/IOKit.framework/Headers/IOKitLib.h:1314)
#cc -static -c DirectHW.c -o build/build10.5/Release/libDirectHW.a

$ sudo make install 2>&1
sudo mkdir -p /usr/local/lib
[[ -e /System/Library/Extensions/DirectHW.kext ]] && sudo rm -R /System/Library/Extensions/DirectHW.kext || :
sudo cp -p -R build/build10.5/Release/DirectHW.kext /System/Library/Extensions/
[[ -e /Library/Frameworks/DirectHW.framework ]] && sudo rm -R /Library/Frameworks/DirectHW.framework || :
sudo cp -p -R build/build10.5/Release/DirectHW.framework /Library/Frameworks/
sudo cp -p build/build10.5/Release/libDirectHW.a /usr/local/lib/
sudo cp -p build/build10.5/Release/libDirectHW.dylib /usr/local/lib/
sudo chmod -R 755 /System/Library/Extensions/DirectHW.kext
sudo chmod -R 755 /Library/Frameworks/DirectHW.framework
sudo chmod 644 /usr/local/lib/libDirectHW.a
sudo chmod 644 /usr/local/lib/libDirectHW.dylib
sudo chown -R root:wheel /System/Library/Extensions/DirectHW.kext
sudo chown -R root:wheel /Library/Frameworks/DirectHW.framework
sudo kextunload -v /System/Library/Extensions/DirectHW.kext || :
kextunload: unload kext /System/Library/Extensions/DirectHW.kext succeeded
sudo kextload -v /System/Library/Extensions/DirectHW.kext
kextload: extension /System/Library/Extensions/DirectHW.kext appears to be loadable
kextload: loading extension /System/Library/Extensions/DirectHW.kext
kextload: /System/Library/Extensions/DirectHW.kext loaded successfully
kextload: sending personalities to kernel:
kextload:     from extension /System/Library/Extensions/DirectHW.kext:
kextload:         DirectHWUserClient
kextload: sending 4 personalities to the kernel
kextload: matching started for /System/Library/Extensions/DirectHW.kext
sudo touch /System/Library/Extensions || :
command -v kmutil > /dev/null && sudo kmutil install --volume-root / --check-rebuild || :
 
Should be using Xcode 3.1.4 for Leopard at /Developer/Applications/Xcode.app

/Developer/SDKs should have at least MacOSX10.4u.sdk and MacOSX10.5.sdk

Code:
$ make clean
rm -rf build/build10.5

$ make 2>&1
xcodebuild -alltargets -project DirectHW10.5.xcodeproj    SYMROOT=build/build10.5
=== BUILDING NATIVE TARGET KEXT OF PROJECT DirectHW10.5 WITH THE DEFAULT CONFIGURATION (Release) ===

Checking Dependencies...

...

=== BUILDING NATIVE TARGET DirectHW OF PROJECT DirectHW10.5 WITH THE DEFAULT CONFIGURATION (Release) ===

Checking Dependencies...

...

=== BUILDING NATIVE TARGET libDirectHW OF PROJECT DirectHW10.5 WITH THE DEFAULT CONFIGURATION (Release) ===

Checking Dependencies...

...

** BUILD SUCCEEDED **
cc DirectHW.c -dynamiclib -framework IOKit -o build/build10.5/Release/libDirectHW.dylib -g
In file included from DirectHW.c:19:
MacOSMacros.h:75:6: warning: #warning i386
MacOSMacros.h:89:6: warning: #warning SDK 10.5
DirectHW.c: In function 'MyIOConnectCallStructMethod':
DirectHW.c:115: warning: 'IOConnectMethodStructureIStructureO' is deprecated (declared at /System/Library/Frameworks/IOKit.framework/Headers/IOKitLib.h:1314)
#cc -static -c DirectHW.c -o build/build10.5/Release/libDirectHW.a

$ sudo make install 2>&1
sudo mkdir -p /usr/local/lib
[[ -e /System/Library/Extensions/DirectHW.kext ]] && sudo rm -R /System/Library/Extensions/DirectHW.kext || :
sudo cp -p -R build/build10.5/Release/DirectHW.kext /System/Library/Extensions/
[[ -e /Library/Frameworks/DirectHW.framework ]] && sudo rm -R /Library/Frameworks/DirectHW.framework || :
sudo cp -p -R build/build10.5/Release/DirectHW.framework /Library/Frameworks/
sudo cp -p build/build10.5/Release/libDirectHW.a /usr/local/lib/
sudo cp -p build/build10.5/Release/libDirectHW.dylib /usr/local/lib/
sudo chmod -R 755 /System/Library/Extensions/DirectHW.kext
sudo chmod -R 755 /Library/Frameworks/DirectHW.framework
sudo chmod 644 /usr/local/lib/libDirectHW.a
sudo chmod 644 /usr/local/lib/libDirectHW.dylib
sudo chown -R root:wheel /System/Library/Extensions/DirectHW.kext
sudo chown -R root:wheel /Library/Frameworks/DirectHW.framework
sudo kextunload -v /System/Library/Extensions/DirectHW.kext || :
kextunload: unload kext /System/Library/Extensions/DirectHW.kext succeeded
sudo kextload -v /System/Library/Extensions/DirectHW.kext
kextload: extension /System/Library/Extensions/DirectHW.kext appears to be loadable
kextload: loading extension /System/Library/Extensions/DirectHW.kext
kextload: /System/Library/Extensions/DirectHW.kext loaded successfully
kextload: sending personalities to kernel:
kextload:     from extension /System/Library/Extensions/DirectHW.kext:
kextload:         DirectHWUserClient
kextload: sending 4 personalities to the kernel
kextload: matching started for /System/Library/Extensions/DirectHW.kext
sudo touch /System/Library/Extensions || :
command -v kmutil > /dev/null && sudo kmutil install --volume-root / --check-rebuild || :
Ok let me update Xcode and I'll likely have more success, as this did build for me before.
 
Well updating Xcode did fix the build issues and I built all three and installed them as you outlined in post #33.

However anything that actually tries to use DirectHW just locks up my G5 and I have to do a hard reset is I run lspci -nnvvv or LSIUtil.

I did not unload the LSI cards .kext before trying to run LSIUtil so that could be the issue there, but same as the lspci I built before, it just locks up the Mac with no useful debug info, and upon reboot I do not get the message that comes with the error report to give us any idea why it's locking up.
 
Last edited:
Well updating Xcode did fix the build issues and I built all three and installed them as you outlined in post #33.

However anything that actually tries to use DirectHW just locks up my G5 and I have to do a hard reset is I run lspci -nnvvv or LSIUtil.

I did not unload the LSI cards .kext before trying to run LSIUtil so that could be the issue there, but same as the lspci I built before, it just locks up the Mac with no useful debug info, and upon reboot I do not get the message that comes with the error report to give us any idea why it's locking up.
Did you try the lsiutil -o command or the setpci command setpci?

Change the darwin3 pciutils code so it only scans bus 0? Do something...
 
With Power Macs, a hang can occur when probing a non-existent device or accessing certain bytes in config space of some devices.

For example, device 1191:0009 may hang if you try to read PCI config space register 0x54.

Probing non-existent devices connected to the built-in PCI-PCI bridge of a B&W G3 can cause a hang.

The 106b:0074 U4 HT Bridge of a Quad G5 requires offset adjustment for 1 and 2 byte accesses of all PCI config space registers.

DirectHW handles those three cases but it may need code to handle additional cases.

You can try lspci in Linux, or my lspci for Open Firmware script. #1 to see if either of those methods causes a hang.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.