A look back at the Netgear ND520 NAS

  As I was updating my media page, I decided to re-visit the Netgear ND520 (for the first time in over 15 years). I have repeatedly described it as "... a real turkey (slow, buggy, etc.) and was withdrawn from marketing by NETGEAR within a year or two of its introduction." I decided to give it another look (yes, it is true - I never throw anything out) and see if I was mistaken all those years ago. Here is what I found. But first, a little history:

  Netgear introduced the ND508 and ND520 in (approximately) June 1999. I say "approximately" because almost all information relating to these units has been removed from the Netgear web site. Here is a datasheet (PDF) for the ND508 and ND520 with the date "June 1999" in the document. The PDF metadata says it was created on June 17th, 1999. The ND520 does not appear in an Internet Archive capture on May 8th, 1999, so the June date is probably pretty accurate. The product was removed from the list of active products on Netgear's web site sometime in November or December of 2001 (it appears on the Internet Archive's capture on November 16th, but is missing from the capture on December 11th. It is likely that the first units shipped after June, 1999 and the last units shipped before December, 2001. The ND5xx V1.2 update has files from October, 1999 and the V1.3 update (the last version that I know of) has files from March, 2000. So the unit seems to have had software updates for less than a year after announcement.

  Netgear apparently did not offer another NAS device until the SC101 in September of 2005. The original SC101 datasheet is still available on Netgear's web site. I guess they aren't as embarrassed about it as they were about the ND520.

Hardware

ND520 unit

  The ND520 is packaged in Netgear's original style blue metal case. It has a good solid feel to it and ships with rack-mount ears standard. Also to its credit, it has a full internal power supply with an IEC 320 connector, not a "wall wart" style power supply. Let's look at it in more detail...


ND520 in operation

  As the unit had not been powered on in well over 15 years, I removed the cover before connecting it to power and the network, in case it wanted to let its supply of "magic smoke" out. Surprisingly, it powered on without anything obviously bad happening. It cycled through a number of LED patterns on the front panel and spent about 15 minutes blinking the "ready" LED before the LED went solid. Presumably this was a filesystem check due to the unit being shut down improperly in the early 2000's. The front panel reports that the disk is at approximately 60% capacity. I'll go into more detail on what I found in the "Software" section below.


ND520 internals

  I shut the unit down and took a closer look at the internals. I've definitely mellowed with age, but this hardware doesn't look at all bad to me.   First up, we have a reasonable switching power supply - or perhaps more than reasonable, given that this unit was built during the beginning of the "capacitor plague" and not only have the capacitors not leaked, but they all seem to be operating within specs as the unit booted without difficulty.

  Moving to the right, we see an IBM DJNA-352030 Deskstar 25GP disk drive. This is well before the "Deathstar" fiasco that saw drives in the 75GXP family failing in large numbers. The earlier models seem to be well-regarded and I never had a problem with any of them. This particular drive spun up and didn't show any errors even after sitting unused for over 15 years.


ND520 logic board

  After removing the hard drive, we can get a better view of the ND520's logic board. The CPU is a Cyrix 6x86 P200+ CPU (pin-compatible with Intel Pentium P54C processors). The main chipset is the VIA VT82C580VPX "Apollo VPX" chipset with a VIA VT82C586B "PIPC" (PCI Integrated Peripheral Controller). Networking is handled by a Realtek RTL8139A 10/100 chip with integrated PHY. A Winbond W83781D provides voltage, temperature, and fan speed monitoring along with a watchdog timer and other functions. Rounding out the hardware is an Atmel 93C46 serial EEPROM and the ubiquitous Award BIOS. The RAM is a 16MB DIMM.

  That all seems like quite reasonable hardware, with the exception of the RTL8139A Ethernet controller. Early Realtek chips were somewhat slow and unpleasant to use and more unpleasant to program, at least according to driver comments like this.

  My main objection to this system is the complete lack of any sort of "last-resort" console access. Most systems of this type at least bring out some data lines to a empty socket header, so that adventurous people could hook up an RS-232 or USB console cable to see what is going on "under the hood" (more on this in the software section below).

  The sort of PCI-like connector at the front of the chassis tempts one to try to order abominations like a F/F PCI ribbon extension and just see what happens if you plug a video card in... I did some other experiments with various old computers here and will go over them in the Software section below. The small ribbon cable at the lower left edge of the logic board connects to the front panel LED display.


ND520 RAM detail

  Here we can see things that were left out of the finished product, presumably for cost reasons or perhaps a change of plans for the product. At the top of the picture you can see the pads for another DIMM socket. This board will apparently support up to 512MB (two 256MB DIMMs) if the other socket is installed.

  Below the DIMM sockets are a pair of VIA VT82C587VP chips. These are not cache memory; they are described as "data buffers". However, the board has provision for real cache - just below the 587 chips you can see empty spaces labeled "32K x 8" for cache tag RAM and "SRAM 64K x 64" for the main cache RAM. Apparently the performance improvement from cache was not deemed critical to the product and that feature, along with larger expansion memory, never made it into a shipping unit. Another "could have been" can be seen in front of the fan on the back wall of the chassis in the prior photo. We see a 40-pin IDE connector (and indeed, the drive in this unit does connect there). But in front of the populated connector you can see a matched pattern of holes for a second 40-pin IDE connector. At a minimum, we'd be looking at a system that supported two drives, or perhaps 4 as the VIA PIPC datasheet says that it supports four drives. Obviously this would not have fit in this particular packaging, but a version with 32 times the memory in the base system, along with cache memory to speed the system up even further, "could have been a contender". The hardware certainly seems up to the task (at least back in 1999). Let's see if the software is what lets this NAS down...

Software

  The ND520 runs Linux kernel 2.0.36 and Samba 2.0.3. The software environment for the ND520 was apparently (based on embedded text strings) created by "REALM Information Technologies" at http://realminfo.com. This domain seems to always have been "parked" at HugeDomains, based on research on the Internet Archive site.

  Subsequent searching led to a company called ApplianceWare. According to Bloomberg, "ApplianceWare Inc. develops and delivers server appliance software solutions for the OEM market. The company offers ApplianceWare technology that is a proprietary appliance management layer that runs on top of the open Linux operating system. The company was formerly known as REALM Information Technologies, LLC and changed its name to ApplianceWare Inc. in January 2000. ApplianceWare Inc. was founded in 1996 and is based in Fremont, California."

  Intenet Archive captures of the ApplianceWare web site show the last use of the ApplianceWare name on August 6th, 2002. The following several captures are broken, and then the January 22nd, 2003 shows a web page for "OptiFacio Software Services, Inc." at that URL, and an "OptiNAS" software product for network attached storage. The January 7th, 2011 capture shows the page switching back to "ApplianceWare, Inc," with a copyright date of 2005 and an apparent focus on outsourcing: "ApplianceWare Inc, was originally founded as REALM Information Technologies in Atlanta by its Chairman and CEO, Stacy Kenworthy. REALM emerged as a founding board member of Linux International and a sponsor of several Linux development efforts. REALM quickly emerged as a leader of Linux development and pioneered the appliance server market with the release of affordable Network Attached Storage (NAS) systems. This line of of NAS systems were later branded as "ApplianceWare," and the company provided NAS systems so that small to medium sized companies could enjoy reliable network backup systems. Today, ApplianceWare is a growing IT outsource company that provides U.S. based companies with a cost-effective solution for outsourcing their software development."

  The next Internet Archive capture is on February 10th, 2011 and has a simple "This Domain is Inactive" graphic. Subsequent captures show a variety of "Coming Soon", "Under Construction" and similar messages.

Broken web interface

  Once the ND520 finished its filesystem checks, it was visible on my LAN at the same IP address it was using in 2000. As you can see, the web interface seems to be somewhat broken (not that it was particularly useful back in the day, either). This may be related to some problem within the unit, or simily that web browsers have changed enough in the intervening years that the page simply no longer renders correctly.

  The ND520 was also "visible" as a shared drive on my Windows 7 (Ultimate x64) system. I put "visible" in quotes as it showed up as a network share, but it was not possible to map it, giving a "the resource cannot be found" error. This could be due to the ND520 only using the long-deprecated SMB1 protocol, or perhaps just implementation errors which did not break interoperability with older versions of Windows. As you can see, the last feature in the latest patch was "Adds support for Windows 2000 clients":

1. Corrects handling of default gateway and routing when the TCP/IP Configuration Utility is used to configure the ND508/ND520.

2. Enhances the TCP/IP Configuration Utility to enable configuring the ND508/ND520 as a DHCP client after it has previously been configured with a 
   specified IP address.

3. Updates the system kernel to allow more open file requests, enabling additional client access.

4. Enhances the reset.cgi program to clear DHCP leases when the ND508/ND520 is reset to factory defaults.

5. Changes DHCP service by the ND508/ND520 to improve compatibility with NETGEAR routers. The ND508/ND520 now scans for an available IP address 
   starting at 192.168.0.100 rather than 192.168.0.1 when it provides DHCP service.

6. Improves DHCP client support to improve compatibility with some routers.

7. Enhances DHCP service to remove an old WINS address if a DHCP server stops broadcasting a WINS server in the DHCP lease.

8. Corrects a problem with the ND508/ND520 delivering mail to non-accessible administrator e-mail accounts.

9. Displays the software version number on the Main Menu of the Web-based Administration Tools.

10. Corrects a problem with deletion of files larger than 1 G.

11. Adds support for changing time zones.

12. Adds support for Windows 2000 clients.


  I decided to do a little research to see if I could boot the disk on more modern hardware, and / or read the contents of the shared directory on the drive. This was partially successful.

  First, I connected the drive via a Promise Ultra 100 IDE add-n PCI card on a Dell Optiplex 7010 (no particular reason for using the 7010 other than it was nearby). The system panic'd on boot, apparenly due to hardware that was too new to be understood.

  Next, I burned a random moden Linux distro to DVD and booted from it, with the ND520 drive still connected to the 7010. That was successful and I could mount the ND520 drive. There wasn't anything interesting on there - mostly a bunch of files related to MAME 0.36 (released in early 2000). No great loss. I also examined the system partition and discovered it had 0 bytes of free space, with most of it apparently being used by a multi-megabyte wtmp file. I don't know if this was due to a software problem on my specific unit or if the designers never expected the units to run for several years. I truncated it to zero bytes.

  In search of a system that could actually boot the old Linux on this disk, I tried a Dell PowerEdge 750. This was the oldest server hardware I could easily get running. With the ND520 drive attached to the Promise add-in controller, the system booted far enough to complain that it couldn't find the root device. This was probably due to the Promise controller being either too new or just being different enough from a motherboard controller to not work.

  I ended up attaching the ND520 drive to the IDE CD-ROM connector on the 750's motherboard. The 750 dates from that in-between time where disk drives were connected with SATA ports but optical drives still used classic IDE ports. The system apparently booted successfully, but there was a long period (over 10 minutes) where there was no console output. Presumably it was doing filesystem checks with the output redirected somewhere. Just when I was about to give up and pull the plug, I got a login prompt on the console. I was unable to guess the password, but since there were no obvious error messages on the console, and given the lack of newer SMB support on the ND520, I shut it down and put the drive back in the ND520 chassis. Maybe I'll revisit it again in another 15 years.


  This is the "dmesg" or Linux kernel output during the boot process. It lists (from a low-level viewpoint) what hardware was detected in the system. The console output stops before all services have been started - apparently the startup script redirects it to somewhere I haven't found (or perhaps /dev/null). After an extended period of no console output, a login prompt appears (if there is a console).

Linux version 2.3.40-11ledmodbeep (root@mike61devel.realminfo.com) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #1 Sun Feb 27 20:36:05 EST 2000
e820: 0009fc00 @ 00000000 (usable)
e820: 00000400 @ 0009fc00 (usable)
e820: 00010000 @ 000f0000 (reserved)
e820: 00010000 @ ffff0000 (reserved)
e820: 00f00000 @ 00100000 (usable)
Scan SMP from c0000000 for 1024 bytes.
Scan SMP from c009fc00 for 1024 bytes.
Scan SMP from c00f0000 for 65536 bytes.
Scan SMP from c0000000 for 4096 bytes.
mapped APIC to ffffe000 (00008000)
On node 0 totalpages: 00001000
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Initializing CPU#0
Detected 200460633 Hz processor.
Calibrating delay loop... 199.88 BogoMIPS
Memory: 13884k/16384k available (1133k kernel code, 2112k reserved, 102k data, 172k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
CPU: Cyrix M II 3x Core/Bus Clock stepping 08
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xfb3d0
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Interrupt Routing Table found at 0xc00fd850 [router type 1106/0586]
Activating ISA DMA hang workarounds.
Linux NET4.0 for Linux 2.3
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.11)
Starting kswapd v1.6
i2c-core.o: i2c core module
i2c-dev.o: i2c /dev entries driver module
i2c-core.o: driver i2c-dev dummy driver registered.
i2c-isa.o version 2.4.5 (20000117)
i2c-dev.o: Registered 'ISA main adapter' as minor 0
i2c-core.o: adapter ISA main adapter registered as adapter 0.
i2c-isa.o: ISA bus access for i2c modules initialized.
Detected PS/2 Mouse Port.
Serial driver version 4.91 (1999-11-17) with MANY_PORTS SHARE_IRQ SERIAL_PCI PCI_IOMEM enabled
pty: 256 Unix98 ptys configured
sensors.o version 2.4.5 (20000117)
w83781d.o version 2.4.5 (20000117)
i2c-core.o: driver W83781D sensor driver registered.
i2c-core.o: client [W83781D chip] registered to adapter [ISA main adapter](pos. 0).
Keyboard timeout[2]
Keyboard timeout[2]
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: registered device at major 7
loop: enabling 8 loop devices
Uniform Multi-Platform E-IDE driver Revision: 6.30
VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: not 100% native mode: will probe irqs later
hda: IBM-DJNA-352030, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: IBM-DJNA-352030, 19470MB w/1966kB Cache, CHS=2482/255/63
Partition check:
 hda: hda1 hda2 < hda5 hda6 >
floppy0: no floppy controllers found
scsi : 0 hosts.
scsi : detected total.
Real Time Clock Driver v1.09b
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 172k freed
ledmod: Using major 127
Got major 127, initialized the port to ff
ledmod: I was opened by "ledtest" (pid 10)
ledmod: I was released by "ledtest" (pid 10)
ledmod: I was opened by "ledtest" (pid 11)
Adding Swap: 32092k swap-space (priority -1)
ledmod: I was opened by "hwmon" (pid 48)
ledmod: I was released by "hwmon" (pid 48)