Yet more crappy but informative HTML! I will fix, some time before the heat death of the universe.. Last updated : 2010-06-07. PXE information changed, NetBSD 5.1 dmesg provided.
It's supposedly a bog standard PC. Unfortunately the BIOS is, to say the least Odd and interrupts are in very short supply
Significant oddities to watch out for are :
On the positive side, it will run NetBSD or OpenBSD without too many problems and the USB port will happily work - although obviously a USB NIC will be restricted to well under 10Mb in practice..
Yup, see Geode GX1 specification (PDF). It's also worth looking at the CS 5530 companion chipset reference (PDF).
Bear in mind that the specification appears to be inaccurate. It insists that it supports 3.3V PCI, whilst the slot in the Neostation 3000 is most definitely 5V.
A CPUID from within NetBSD Returns : Cyrix MediaGXtm MMXtm EnhancedTLB: 32 entries 4-way associative 4KB pages. L1 Cache: 16KB 4-way associative 16 bytes/line
Processor features are : RDMSR/WRMSR (Model Specific Registers), COMPXCHG8B, CMOV, MMX/Extended MMX, Family: 5 Model: 4 [6x86/GXm], FPU, Time stamp counter, Cyrix MSR, FPU CMOV
So far, I haven't tried real hard drives on the system, although there's no reason why they shouldn't work - probably. As regards to compact flash things are a little more awkward. It could be due to the BIOS (probable), the compact flash card (also possible) or the compact flash to IDE adapter I used (unlikely) but the number of supported CF cards is not unlimited
I've had good results with both 1GB and 8GB Dane Elec compact flash cards. 4GB Lexar CF cards do not work - the disk geometry reported by the Neostation and the USB media reader on my main system is completely different. I'll have a go at fixing this, but so far I have had no success. If you want to be safe, grab some Dane Elec. Please also let me know if you find more cards that work!
The main problem here is the almost complete inability of the system to run more than one IDE device at the same time, and the very flaky nature of the PXE support, even if you try using Etherboot
If there's no IDE drives on the connector, the PC will boot off the Disk On Chip (DOC). If there is a drive, but there is nothing on it, the system will not fall back to the DOC.
OpenBSD works fine on the Neostation 3000 subject to only recognising a maximum of 64MB RAM. I used Flashdist to write an image to a 1GB compact flash for operation as an embedded firewall.
I believe it should be possible to install OpenBSD directly onto compact flash using a CDROM drive on the built in IDE and an IDE card in the PCI slot. OpenBSD will step down from UDMA to PIO 4 or worse and carry on working
See the dmesg.
I have not tried X on OpenBSD
NetBSD works fine and sees all installed memory, but suffers from a number of installation caveats. Earlier releases did not cope well with stepping down from UDMA to PIO4, although later releases seem to have improved this.
Basically the three options are 1) hack NetBSD or a miniroot onto a compact flash/disk from another machine. Boot from that. 2) Brave unreliable PXE or 3) install an additional IDE card, boot a CDROM off the inbuilt IDE and CF on the additional IDE
If you take the additional IDE option it may be a very bad idea to use the CDROM for installing the operating system sets (i.e. only use it for the initial boot). If you do try it, it might cause a kernel panic - the code might have fixed this now, but I haven't tried by anything other than a bsd.rd update via FTP, since the initial install.
I have also now managed to install via PXE. This requires another Unix box with ISC DHCPD, a TFTP server and a PXE server, plus the following bits in dhcpd.conf
host myhostname { hardware ethernet 00:01:02:03:04:05; option domain-name-servers 1.2.3.4; fixed-address 192.168.x.x; option routers 192.168.x.x; option domain-name "mydomain.com"; option subnet-mask 255.255.255.0; if substring(option vendor-class-identifier,0,20)="PXEClient:Arch:00000" { if option dhcp-max-message-size="\x04\xEC" { filename "/gpxe.bin"; } else { filename "/pxeboot_ia32.bin"; } } elsif substring (option vendor-class-identifier,0,17)="NetBSD:i386:libsa" { filename "tftp:/netbsd"; } else { filename "tftp:/netbsd"; } next-server 192.168.x.x; option root-path "/tftpboot";
In the above, the next-server is the IP of the TFTP server and gPXE.bin is a gPXE image for the realtek 8139. The maximum DHCP message size differs between the inbuilt crappy PXE ROM, and the gPXE supplied ROM. Using this method NetBSD will install, but is very very slow to do so. You will wonder if it has hung.
X server does not work - the screen goes black. Raster console (VGA_RASTERCONSOLE in kernel config) also does not work - don't use it.
I/O seems a bit slow, owing to the IDE controller. Then again, I am also using a compact flash card.
Interrupt sharing is crap. To get USB working edit usr/src/sys/dev/pci/geodeide.c
and set sc->sc_wdcdev.sc_atac.atac_nchannels = 1
. This will only enable one interrupt on the IDE controller, leaving a spare one for USB.
See NetBSD 5.1 RC2 dmesg (prior to hacking to restrict to one IDE channel).
Not tried yet. I suspect XP or Windows 2000 will work fine. This Youtube link seems to indicate XP works. Will try Linux at some point and possibly Plan9. Any other suggestions (QNX?) welcome.
Other than its primary purpose as a thin client - a task it achieves well, I am currently using my two neostations as a firewall and a low power Unix shell box. Any other ideas are welcome. It has not escaped my notice that it's potentially viable as a media server of some type.
It's worth bearing in mind, of course, that as the number of neostations increase it may be easier to get a cheap Core2Duo system and run lots of servers or virtualisation on it. It would also be considerably faster.
Initially I was running a Sparcstation 10. Unfortunately whilst this has a vastly superior BIOS to the neostation and *proper* serial console support, it suffers from being old, slow, noisy, uses narrow SCSI disks, consumes about four times as much power and only supports quad 10Mb Ethernet cheaply (quad fast Ethernet is silly money). In these days of 24Mb (if lucky) ADSL2, a lot of older kit simply isn't viable any more.
There are Winterms, which I was considering trying to hack OpenBSD onto - check here for Linux on Winterm hacking. However, they're mostly also less expandable and much harder to hack, with the exception of some of the Compaq T30s which I believe are literally also a BIOS and IDE type system. I gave up on this as they're usually PC Card based, and 10/100 PC Card devices tend not to be that fast
There are VIA Eden or similar systems. These are usually vastly more expensive than a Neostation
An old 486 might do in same cases, but is still unlikely to be that low power, will mostly be ISA based with possible forays into early PCI (nasty) or even worse, Vesa Local Bus (cards now rare). They're also mostly horribly slow with hideously out of date BIOSes you have to fight. Remember 8GB was a huge disk at the time. Network cards that reliably deliver over 10Mb are also uncommon, making it tricky to cope with fast ADSL or LAN connections.
Any more advice, comments, please address to peter of the domain of syllopsium in the land of com