HP Dual PIII-500 Motherboard
I had a good to-and-fro with the Seller on this item. He initially wanted ~AUD500 for it, so I low-balled just under 200. He didn't accept, but then proceeded to get zero bids. It was then re-listed at an auction price of AUD99 and didn't go for much more. If you look on eBay US, seems they're still fetching quite a few dollars! Anyway, it's a dual P3-500 board with on-board SCSI! Nice. The only thing I didn't know was what server it had been ripped out of.
Looking at the photos now, I see that there's a glaringly-obvious Hewlett Packard logo hidden below the AGP slot... something I totally missed when the board arrived. So instead, after a little googlin', I had determined that it was the motherboard from a HP Compaq Netserver E60. This was thanks to the "exchange" code/part-number of "D7140-63000" labelled on one of the ICs.
Front Panel Connector Pinout
Found that someone else had restored such a unit, but not so recently. A private message to the author saw no response. What did help though, were the pictures in that post. IT shows that there's no reset button? Just Power LED, Power Switch and HDD LED.
So, what to do? Grab a screwdriver and poke the pins! Actually, first I worked out which pin was ground via a multimeter. Turns out it's second-from-the-left, but there's only one ground, so that meant getting the LEDs lit will be tricky. After a bit more poking, the left-most pin was determined to be the power switch and, before I knew it, the motherboard speaker was beeping awfully as it had no Video or RAM.
HDD activity wasn't on the header, so I just used the connection directly on the SCSI drive.
A Suitable Video Card
I've had this crazy ATI Rage 128 All-In-Wonder in as box for ages and have never had a good reason to test it. Thankfully, this motherboard has AGP, so let's do it!
With this card in place, most of the operating systems I tried had issues. Drivers, resolutions, framebuffers... this card seems to be a bit of a Unicorn and really only good for Windows. Fortunately, a little bit of effort paid off and it ended up working on all systems. For future reference, here's a possible pinout for the video out breakout cable.
So, What RAM?
The manual indicates that the motherboard supports up to four SDRAM DIMMS, for a maximum total of 1GB. These are expected to be full server-grade and I had quite a few lying aorund. The actual specifications are: 64MB, 128MB, or 256MB unbuffered, 72 bits wide, ECC single-bit correcting, multi-bit detecting. So, those huge DIMMs in the box, with huge stickers and terms like 'sync':
Finally, I get to use the ECC SDRAM modules that seem to be very popular (i.e. in everyone's junk box gathering dust) and never usable in standard desktop motherboards! And, summing up what worked, I could only get to 384mb RAM. I tried mixing ECC and Non-ECC, but this threw a really ugly error. Interestingly it can obviously tell if the RAM DIMM is Non-ECC. Also mixing ECC 133mhz with 100mhz would throw shitty beeping. Finishing the RAM combination testing, I then just put in normal PC100 SDRAM and the bloody thing just booted straight up! No errors, no warning that this was pleb-RAM and not servah-RAM? This was a better option as I had enough laying around to get up to 512mb.
Microcode Update Block Missing
This error appears on HP NetServers when third-party CPUs are used which didn't come with a microcode block flashed onto them.
Could it be that these CPUs have just lost the block that had been previously flashed? Regardless, someone else has already solved this issue, but the link to HP for the new BIOS to flash is well gone! A quick google turned up this BIOS update, but it wants Windows and the filename ends in FR?... I'll get to that after I've mucked around with other OSsss.
Redhat Linux 7.2
And then for some Redhat! I already had the CDs burnt thanks to installing it on the Sony Vaio Z505. The installation was a breeze, but the installer did try to trick me into selecting the wrong video card.
Instead, choose the All-In-Wonder 20-ish lines above. Don't forget to test the mode!
Interestingly, as above, the mode worked fine during setup! Not so well once it then tried to boot... I'd selected the graphical login during install, so on first reboot, the machine produced a blank screen when it tried to load up XDM. It was still the correct resolution, but the whole machine had actually frozen up! No keyboard, no mouse, nothing... SSH wasn't running, so I couldn't connect underneath either! What to do? I could single-user and work out how to switch to text login, or re-install. I chose the latter to save time and effort.
Second time around, a login! startx still produced a blank screen though... at the correct resolution! I rebooted once more, but this time I logged in via SSH and ran startx remotely and...
Last login: Wed Feb 24 03:38:38 2021 [root@localhost root]# startx XFree86 Version 4.1.0 (Red Hat Linux release: 4.1.0-3) / X Window System (protocol Version 11, revision 0, vendor release 6510) Release Date: 2 June 2001 If the server is older than 6-12 months, or if your card is newer than the above date, look for a newer version before reporting problems. (See http://www.XFree86.Org/FAQ) Build Operating System: Linux 2.4.9-31smp i686 [ELF] Build Host: stripples.devel.redhat.com Module Loader present (==) Log file: "/var/log/XFree86.0.log", Time: Wed Feb 24 03:43:04 2021 (==) Using config file: "/etc/X11/XF86Config-4" Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) ServerLayout "Anaconda Configured" (**) |-->Screen "Screen0" (0) (**) | |-->Monitor "Monitor0" (**) | |-->Device "ATI All-in-Wonder 128 Pro AGP" (**) |-->Input Device "Mouse0" (**) |-->Input Device "Keyboard0" (**) XKB: rules: "xfree86" (**) XKB: model: "pc105" (**) XKB: layout: "us" (**) FontPath set to "unix/:7100" (**) RgbPath set to "/usr/X11R6/lib/X11/rgb" (==) ModulePath set to "/usr/X11R6/lib/modules" (--) using VT number 7 (II) Loading /usr/X11R6/lib/modules/fonts/libbitmap.a (II) Module bitmap: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/libpcidata.a (II) Module pcidata: vendor="The XFree86 Project" compiled for 4.1.0, module version = 0.1.0 (II) Loading /usr/X11R6/lib/modules/libscanpci.a (II) Module scanpci: vendor="The XFree86 Project" compiled for 4.1.0, module version = 0.1.0 (II) Unloading /usr/X11R6/lib/modules/libscanpci.a (--) PCI:*(1:0:0) ATI Rage 128 RF rev 0, Mem @ 0xf8000000/26, 0xf4200000/14, I/O @ 0x9000/8 (II) Loading /usr/X11R6/lib/modules/extensions/libGLcore.a (II) Module GLcore: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/extensions/libdbe.a (II) Module dbe: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/extensions/libextmod.a (II) Module extmod: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/linux/libfbdevhw.a (II) Module fbdevhw: vendor="The XFree86 Project" compiled for 4.1.0, module version = 0.0.2 (II) Loading /usr/X11R6/lib/modules/extensions/libpex5.a (II) Module pex5: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/extensions/libdri.a (II) Module dri: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/linux/libdrm.a (II) Module drm: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/extensions/libglx.a (II) Module glx: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/extensions/librecord.a (II) Module record: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.13.0 (II) Loading /usr/X11R6/lib/modules/extensions/libxie.a (II) Module xie: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/drivers/r128_drv.o (II) Module r128: vendor="The XFree86 Project" compiled for 4.1.0, module version = 4.0.1 (II) Loading /usr/X11R6/lib/modules/drivers/ati_drv.o (II) Module ati: vendor="The XFree86 Project" compiled for 4.1.0, module version = 6.3.6 (II) Loading /usr/X11R6/lib/modules/input/mouse_drv.o (II) Module mouse: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) ATI: ATI driver (version 6.3.6) for chipsets: ati, ativga (II) R128: Driver for ATI Rage 128 chipsets: ATI Rage 128 RE (PCI), ATI Rage 128 RF (AGP), ATI Rage 128 RG (AGP), ATI Rage 128 RK (PCI), ATI Rage 128 RL (AGP), ATI Rage 128 SM (AGP), ATI Rage 128 Pro PD (PCI), ATI Rage 128 Pro PF (AGP), ATI Rage 128 Pro ULTRA TF (AGP), ATI Rage 128 Pro ULTRA TL (AGP), ATI Rage 128 Pro ULTRA TR (AGP), ATI Rage 128 Mobility LE (PCI), ATI Rage 128 Mobility LF (AGP), ATI Rage 128 Mobility MF (AGP), ATI Rage 128 Mobility ML (AGP) (II) RADEON: Driver for ATI Radeon chipsets: ATI Radeon QD (AGP), ATI Radeon QE (AGP), ATI Radeon QF (AGP), ATI Radeon QG (AGP), ATI Radeon VE QY (AGP), ATI Radeon VE QZ (AGP), ATI Radeon Mobility LW (AGP), ATI Radeon Mobility LY (AGP), ATI Radeon Mobility LZ (AGP) (--) Assigning device section with no busID to primary device (--) Chipset ATI Rage 128 RF (AGP) found (II) Loading /usr/X11R6/lib/modules/libvgahw.a (II) Module vgahw: vendor="The XFree86 Project" compiled for 4.1.0, module version = 0.1.0 (II) R128(0): PCI bus 1 card 0 func 0 (**) R128(0): Depth 16, (--) framebuffer bpp 16 (II) R128(0): Pixel depth = 16 bits stored in 2 bytes (16 bpp pixmaps) (==) R128(0): Default visual is TrueColor (==) R128(0): RGB weight 565 (II) R128(0): Using 6 bits per RGB (8 bit DAC) (II) Loading /usr/X11R6/lib/modules/linux/libint10.a (II) Module int10: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) R128(0): initializing int10 (II) R128(0): Primary V_BIOS segment is: 0xc000 (--) R128(0): Chipset: "ATI Rage 128 RF (AGP)" (ChipID = 0x5246) (--) R128(0): Linear framebuffer at 0xf8000000 (--) R128(0): MMIO registers at 0xf4200000 (--) R128(0): VideoRAM: 16384 kByte (128-bit SDR SGRAM 1:1) (II) R128(0): PLL parameters: rf=2864 rd=63 min=12500 max=25000; xclk=9000 (II) Loading /usr/X11R6/lib/modules/libddc.a (II) Module ddc: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/libvbe.a (II) Module vbe: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) R128(0): VESA BIOS detected (II) R128(0): VESA VBE DDC supported (II) R128(0): Manufacturer: PTS Model: 30d Serial#: 214342 (II) R128(0): Year: 2005 Week: 22 (II) R128(0): EDID Version: 1.3 (II) R128(0): Analog Display Input, Input Voltage Level: 0.700/0.700 V (II) R128(0): Sync: Separate (II) R128(0): Max H-Image Size [cm]: horiz.: 34 vert.: 27 (II) R128(0): Gamma: 2.50 (II) R128(0): DPMS capabilities: Off; RGB/Color Display (II) R128(0): First detailed timing is preferred mode (II) R128(0): redX: 0.630 redY: 0.330 greenX: 0.300 greenY: 0.600 (II) R128(0): blueX: 0.148 blueY: 0.098 whiteX: 0.310 whiteY: 0.330 (II) R128(0): Supported VESA Video Modes: (II) R128(0): 720x400@70Hz (II) R128(0): 640x480@60Hz (II) R128(0): 640x480@67Hz (II) R128(0): 640x480@72Hz (II) R128(0): 640x480@75Hz (II) R128(0): 800x600@56Hz (II) R128(0): 800x600@60Hz (II) R128(0): 800x600@72Hz (II) R128(0): 800x600@75Hz (II) R128(0): 832x624@75Hz (II) R128(0): 1024x768@60Hz (II) R128(0): 1024x768@70Hz (II) R128(0): 1024x768@75Hz (II) R128(0): 1280x1024@75Hz (II) R128(0): Manufacturer's mask: 0 (II) R128(0): Supported Future Video Modes: (II) R128(0): #0: hsize: 1280 vsize 1024 refresh: 60 vid: 32897 (II) R128(0): Supported additional Video Mode: (II) R128(0): clock: 108.0 MHz Image Size: 337 x 270 mm (II) R128(0): h_active: 1280 h_sync: 1328 h_sync_end 1440 h_blank_end 1688 h_border: 0 (II) R128(0): v_active: 1024 v_sync: 1025 v_sync_end 1028 v_blanking: 1066 v_border: 0 (II) R128(0): Ranges: V min: 60 V max: 75 Hz, H min: 30 H max: 80 kHz, PixClock max 140 MHz (II) R128(0): Monitor name: 17JAGBLK-AV (II) R128(0): Serial No: P2U052214342 (==) R128(0): Using gamma correction (1.0, 1.0, 1.0) (II) R128(0): Monitor0: Using hsync range of 30.00-80.00 kHz (II) R128(0): Monitor0: Using vrefresh range of 60.00-75.00 Hz (II) R128(0): Clock range: 12.50 to 250.00 MHz (II) R128(0): Not using mode "1400x1050" (hsync out of range) (II) R128(0): Not using mode "1400x1050" (hsync out of range) (II) R128(0): Not using default mode "640x350" (vrefresh out of range) (II) R128(0): Not using default mode "640x400" (vrefresh out of range) (II) R128(0): Not using default mode "720x400" (vrefresh out of range) (II) R128(0): Not using default mode "640x480" (vrefresh out of range) (II) R128(0): Not using default mode "800x600" (vrefresh out of range) (II) R128(0): Not using default mode "800x600" (vrefresh out of range) (II) R128(0): Not using default mode "1024x768" (vrefresh out of range) (II) R128(0): Not using default mode "1024x768" (vrefresh out of range) (II) R128(0): Not using default mode "1280x960" (hsync out of range) (II) R128(0): Not using default mode "1280x1024" (hsync out of range) (II) R128(0): Not using default mode "1600x1200" (hsync out of range) (II) R128(0): Not using default mode "1600x1200" (hsync out of range) (II) R128(0): Not using default mode "1600x1200" (hsync out of range) (II) R128(0): Not using default mode "1600x1200" (hsync out of range) (II) R128(0): Not using default mode "1792x1344" (hsync out of range) (II) R128(0): Not using default mode "1792x1344" (bad mode clock/interlace/doublescan) (II) R128(0): Not using default mode "1856x1392" (hsync out of range) (II) R128(0): Not using default mode "1856x1392" (bad mode clock/interlace/doublescan) (II) R128(0): Not using default mode "1920x1440" (hsync out of range) (II) R128(0): Not using default mode "1920x1440" (bad mode clock/interlace/doublescan) (--) R128(0): Virtual size is 1280x1024 (pitch 1280) (**) R128(0): Default mode "1280x1024": 135.0 MHz, 80.0 kHz, 75.0 Hz (--) R128(0): Display dimensions: (34, 27) cm (--) R128(0): DPI set to (95, 96) (II) Loading /usr/X11R6/lib/modules/libfb.a (II) Module fb: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (II) Loading /usr/X11R6/lib/modules/libramdac.a (II) Module ramdac: vendor="The XFree86 Project" compiled for 4.1.0, module version = 0.1.0 (II) Loading /usr/X11R6/lib/modules/libxaa.a (II) Module xaa: vendor="The XFree86 Project" compiled for 4.1.0, module version = 1.0.0 (==) R128(0): Write-combining range (0xf8000000,0x1000000)
And then the SSH session timed out. Seems that the card driver has tried to instantiate the DRM driver and frozen. A lot of mucking around then ensued, but the answer is simple: The r128 X11 driver didn't load the r128 DRM kernel module, so when it tries to call it, it just locks up. The answer is to run insmod r128 prior to starting X. Of course, this wont work if you've chosen to go for the graphical login. To get it to start on boot, edit /etc/rc.d/rc.local and slap the insmod line in there.
If you've already installed a distro and can't do anything as it boots to a black screen each time, then you need to edit your bootloader config to get linux to boot into single-user mode. For grub, hit E when the boot menu appears, select the second line and hit E again. Navigate to the end of the line and add the word single.
Hit enter and then press B. Linux will then boot, mounting disks, and provide a shell prompt with you already logged in as root. Just edit rc.local from here, inserting the insmod r128 command, and reboot. From here, all was working perfectly. I hadn't tested the All-In-Wonder features though... Looks like I'd need Gatos. The instructions don't look that hard.
Back to that BIOS update, can I use Wine?
Wine was installed by default, and so I wondered if I could run the BIOS updater from Linux? I wasn't ready to install XP/98SE/ME just yet. I downloaded the file and gave it a go:
[root@localhost root]# wine wineserver: chdir /root/.wine : No such file or directory [root@localhost root]# mkdir .wine [root@localhost root]# wine Wine release 20010731 Usage: wine [options] [--] program_name [arguments] The -- has to be used if you specify arguments (of the program) Options: --debugmsg name Turn debugging-messages on or off --dll name Enable or disable built-in DLLs --dosver x.xx DOS version to imitate (e.g. 6.22) Only valid with --winver win31 --help,-h Show this help message --managed Allow the window manager to manage created windows --version,-v Display the Wine version --winver Version to imitate (win95,nt40,win31,nt2k,win98,nt351,win30,win20) [root@localhost root]# wine e60bios_fr.exe x11drv: Can't open display:
Ok ok, let's start X...
Ok sure, it's just a WinZip Self-Extractor that makes a floppy image... can we extract the image?
[root@localhost root]# unzip e60bios_fr.exe Archive: e60bios_fr.exe inflating: makeunix.bat inflating: disk1.img inflating: rawrite2.exe inflating: disks.ico extracting: about.txt
Yes, yes we can. We don't have to use rawrite as Linux has dd, but we'll just check what's in that batch file:
[root@localhost root]# cat makeunix.bat @echo off echo Hewlett Packard Company Self extracting diskette Set echo. echo You will need 1 formatted diskette(s) to continue echo. echo Press Enter to Continue or Cntrl-C to end the job pause ^>nul: echo. echo Diskette Creation disk1 echo NetServer E60 BIOS Update Diskette echo Press Enter to Continue or Cntrl-C to end the job pause ^>nul: echo. rawrite2.exe -f disk1.img
Nothing special... just a dump straight to floppy. Let's do that, Linux-style! Before I format this floppy... what's on it?
Oh, just a WAD for DOOM II of our high school. Excuse the crappy image... I was a little excited to find a floppy from a drawer with ~20 year old data on it?! I'll write another post on that. Where as I?
[root@localhost root]# dd if=disk1.img of=/dev/fd0 bs=1024 conv=sync ; sync 1440+0 records in 1440+0 records out [root@localhost root]# cd /mnt [root@localhost mnt]# mount floppy/ [root@localhost mnt]# ls floppy/ config.sys contents.abf e60bios.fr io.sys language.dat msdos.sys phlash.exe phlshwrp.exe phlshwrp.hds phlshwrp.ini platform.bin [root@localhost mnt]# ls -l floppy/ total 688 -r-xr-xr-x 1 root root 29 Aug 18 1998 config.sys -r-xr-xr-x 1 root root 305 Oct 27 2000 contents.abf -r-xr-xr-x 1 root root 524288 Oct 27 2000 e60bios.fr -r-xr-xr-x 1 root root 40992 May 31 1994 io.sys -r-xr-xr-x 1 root root 2 Dec 10 1998 language.dat -r-xr-xr-x 1 root root 38166 May 31 1994 msdos.sys -r-xr-xr-x 1 root root 65605 Feb 9 1999 phlash.exe -r-xr-xr-x 1 root root 21179 Jan 13 1999 phlshwrp.exe -r-xr-xr-x 1 root root 6791 Dec 31 1997 phlshwrp.hds -r-xr-xr-x 1 root root 1739 Oct 27 2000 phlshwrp.ini -r-xr-xr-x 1 root root 1207 Jan 22 1999 platform.bin
Nice, there's our boot disk. Time to shutdown and boot the machine with the floppy inserted.
Make sure your flexible disk is set to a higher priority than your solid disk. And then learn french! Or.... cheat...
Note that it did mistranslate one 0 for an 8, but whatever, just do the next-next-finish:
And then it'll reboot by itself:
Yey! Microcode 0000000E installed!
Dodgy LAN Port
For the life of me, I couldn't work out why I had intermittent LAN connectivity whilst using the machine. It wasn't until I checked the LEDs at the back on the port to see that sometimes none were lit, other times just link and then finally activity also. On my LAN, there's always activity thanks to streaming South Yarra Railcam, so it was very strange to see only link lit up.
A quick jiggle of the cable saw that all change though. If I forced the cable away from the board, the lights would go out. On the contrary, pulling the cable down towards the motherboard saw the LAN port function 100% correctly. It seems that the contacts inside the socket were not making a good enough connection with the end of the cable and needed adjusting. Fortunately, the tweezers from the iFixit kit worked perfectly for grabbing each of the 8 contacts and bending them up. At the very back of the plug is a guide for each contact to slide down when the LAN cable is inserted, so I just made sure not to lift the contact wires past/out-of these.
BeOS R5 Professional
This took a little bit of re-learning. After acquiring the ISO, everything just installed perfectly. Google even, sorta, showed in NetPositive. I then tried to set up World O' Networking and, after it restarted the network server, nothing worked anymore. Even a ping from Terminal just threw: ping socket: name not found. A google for this error brought up an Arstechnica forum post from 1999 where a user had the same error! I re-installed BeOS and the network worked again... I re-installed WON and it died again. Reading the doco, it said that if I wanted to uninstall WON thoroughly, I had to go to /beos/system/boot and edit Netscript. Turns out this file didn't even exist! The WON setup had failed to copy in its substitute and had just renamed the old file. I grabbed it manually from the desktop and then everything booted up! But there were no computers to be found in the WON folder on the desktop.
Windows XP
As you'd pretty much eXPect, it all just worked perfectly. All CPUs online and all hardware flying along.
I installed the ATI drivers and even managed to half-capture my shitty megadrive clone. The picture wasn't healthy, but I don't know if I was expecting it to even work, let along show a picture!