• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Apple Network Server RAID w/NetBSD & in other Macs


With the help of @aplmak, I was able to find a raid card for my Apple Network Server and get it working, but it wasn't without challenges. Here's what I learned. Some of this is already known, but some might be new to you...

Firstly, for the card to work in a Macintosh, it will need Apple's version of the card's firmware. It's attached to this thread. You'll need to flash the removable Intel N28F001 chip.

2 - You need the correct version of the raid card. At this time, it's not clear how "new" of a card will work with Apple's firmware. The cards that shipped with the ANS were early rev cards. I can say that, if the IC arrangement is moved about compared to the attached photo, then it won't work and will cause your system to hang. Please note the green bodge wire that my card shipped with...early rev. It's not clear if you can use the 3 channel cards. The config utility appears to imply support. It would be nice to know at some point...There's someone selling 3 channel cards for dirt cheap on eBay. They have dozens in-stock.

3 - You can use this card and boot* an OS off this card on non-ANS systems. To save wear and possible damage to my ANS, I started testing the raid cards in an Power Mac 7500 and a Power Computing Power Center Pro 180. Both run Open Firmware 1.0.5. If you spent time in Open Firmware 1.1.22, but not 1.0.5 - Get ready for a glitchy, bug filled time that doesn't exist in 1.1.22.
*Booting off this card on non-ANS systems assumes a non-MacOS operating system. I haven't tested it, but once /APPL is booted in OF, I suspect it won't see anything on the card, nor do I believe you could install MacOS on to a drive hosted by the card.
In OF 1.0.5, you can't simply issue, for example "boot pci1/dac960/sd@8:0 netbsd". This is one of the many bugs of 1.0.5. You must setenv your boot-device and boot-file and then issue a clean command of "boot". I recall OF alias (pci1 is an alias), might have also been buggy in some situations, and I had to use full paths to the boot device. When booting on non-ANS systems, you might have to give it a large amount of time to "ready" itself. When installed in the ANS, the system does a long self-test before starting OF. The card appears to need this time and sometimes you'll get an error when it tries to boot off the raid hosted drive. Such as:
0 > boot

DAC960P Bios version 1.00 October 17, 95
Mylex Corporation
can't OPEN: /bandit/dac960/sd@8:0

4 - The raid utility programs will boot on OF 1.0.5 systems. In my testing, they won't boot on a Gossamer G3 tower. I don't recall if the one I tested on was OF 2.0f1, or 2.4. I will follow up on that. Just to be clear, the drives (specifically including RAID 7 configs), have to be configured and formatted by the raid utility before use. You can't just pull a RAID 7 drive out of the raid system and plug the drive into another computer to copy files onto the drive. Once it's formatted by the raid util, all interaction with that drive must be through the raid card. For the raid config utility, there are some non-documented command that you can add at the end of "boot fd:dacconf.ns".
They are:
-o => override configuration exceptions.

-1 => override block_factor (16K).=100EA0

-2 => override block_factor (1M).0BD4C

-s => Scan for DAC960S on COM1.000BD4C

-edfc => Enable disconnect on first command.

-ddfc => Disable disconnect on first command.

-eifm => Enable intelligent fault management.

-difm => Disable intelligent fault management.

-edwt => Enable disk write through.

-ddwt => Disable disk write through.

-ean => Enable Active Negation.

-dan => Disable Active Negation.

-ecod => Enable COD.

-dcod => Disable COD.

-pcod # => Startup option # for COD.

0 for No Change.

1 for No LUN Change.

2 for No LUN Offline.

3 for LUN0 Not Changed.

4 for LUN0 Not Offline.

-b <value> => set device block size.

-i <string> => inquiry string for DAC960S

5 - Listing the card in OF will not show what's attached to it. It will show a default st@0 and sd@0. All raid "system drives" start a sd@8.
System Drive 1 = sd@8, System Drive 2 = sd@9, etc. Non-hard drives attached to the raid card will be their SCSI ID. For example, my CD-ROM drive in my ANS would be located at pci1/dac960/sd@0. My tape drive is st@1.

You can use this raid card with NetBSD for both the ANS and non-ANS systems, but there's a catch.
The driver for the card in NetBSD doesn't know how to see "pass through" devices such as a CD-ROM or tape drive. Because of the way the Apple Network Server is physically configured, having a NetBSD system running on a HD hosted by the raid card, you loose access to any CD-ROM/tape drive attached to the raid card. The mlx driver in NetBSD was ported from FreeBSD. At the time of the porting, support for "pass through" devices did not exist. I believe a year or so after (based on notes in the source code) it appears that "pass through" support was added to FreeBSD's version of the mlx driver. On the NetBSD side, it wasn't ever updated and I don't think it ever will. Just keeping support for the macppc branch is going to be hard enough as it is. If someone is interested in updating that driver, please let me know.
To install NetBSD on an ANS with raid, you need to build a modified kernel to enable both the mlx* and ld* drivers. Specifically for the ANS, you must disable the siop and esiop drivers. Why, would you need to do that? Oh, because Apple chose to do a really odd thing. When you install the raid card into and ANS, you're adding a second SCSI controller to the SCSI buses. Too many cooks in the SCSI kitchen. If the normal SCSI drivers are left enabled, both will try to talk on the buses. The raid card will freak out and mark every drive on the bus as dead. You won't be able to access any of them until you boot into the raid utility and manually mark them as online.
Because you need a custom kernel, I found the quickest way to install was to make a bootable external drive with both a standard and modified kernel. Install and configure that OS on a different machine and connect it to the ANS to have a platform where you can format the file system on your raid connected drive(s) and perform a manually install.

You can make a modified installer kernel to have the cleaner CD based install. The only catch is installing the bootstrap. The instructions for installing the installer CD bootstrap is not correct. It involves a hack that I learned hadn't been used for over 17 years...but no one would give me clear instructions on the correct steps. I asked if the installboot utility could add the bootstrap for custom install CD images, but I never got a reply, and I had other ways around the bootstrap challenge. If you go with the custom kernel install CD, don't worry about the bootstrap. Instead, boot off of the OEM NetBSD CD, but tell it the wrong kernel name (ie, something other then "NETBSD.MACPPC"). The OEM CD bootstrap will load and stop once it can't find whatever you told it. Then remove the OEM CD and put in your own. At the prompt, type your kernel name.

When installing NetBSD on an ANS, it's best to configure Open Firmware for input-device and output-device as ttya (serial console). For the use of a screen, you'll need another kernel modification. You can do this change at the same time as the raid related changes. You need to disable genfb* and enable ofb*.

Also, for Open Firmware 1.0.5 machines, there is a patch to modify System Disk 2.3.1 with updated OF bug fixes (See: Open Firmware 1.0.5 Patch) . 2.3.1 is hard to come by, but I've attached the patched version. The newer version requires Mac OS 9x, and that can be a road block for some systems.

I hope this helps someone...


  • Mylex DAC960 v2.44 Apple Firmware.bin
    128 KB · Views: 0
  • IMG_2461.jpg
    626.6 KB · Views: 4
  • IMG_2462.jpg
    565.5 KB · Views: 4
  • IMG_2468.jpg
    788.8 KB · Views: 3
  • IMG_2469.jpg
    810 KB · Views: 3
  • SystemDisk2.3.1-Patched.sit.hqx
    80.8 KB · Views: 0