I have been contracted to build a monitoring controller for a 100% solar heated house in upstate new york. The requirements are:
The result, after some deliberation, was a vortex486sx, or chip info based microclient_jrsx from norhtec.com. The aim is to run owfs for io (lots of temperature sensors, humidity, available sun power, damper controls) and control things using BASIC (yeah, I know. Nick likes BASIC, and it is tiny).
The parcel arrived a few days after ordering. Norhtec is offering a good product, though we had terrible trouble getting useful facts out of them. In particular, nick wanted tight specs on power consumption so he could do the power supply sizing (it is intended to run the whole thing off batteries and a solar panel). I wanted to know exactly what was supported out of the box and we had a veritable timezone merry-go-round trying to get answers as the messages were pinged around the company. But they did try, which makes me respect them and recommend others deal with them. Eventually I found documentation on the cpu manufacturer's site, and nick got some reasonable figures for power consumption.
My laptop runs ubuntu.
First, we need to get the machine booting. I tried using PXE and RPL, but PXE didn't seem to generate any packets, and RPL, well RPL is sucky. So I knocked on my neighbour's door and borrowed his 64MB CF.
I tried a bunch of recommended distros, but they wouldn't boot for whatever reason, so I figured I'd just bootstrap my own system. I like debian, and the machine seems good enough to run woody or even sarge.
The vortex website has a custom linux kernel and instructions on compiling. Most importantly, you need floating-point emulation turned on. To build it, download the 2.6.18 kernel from kernel.org and apply vortex's patch.
I used a Digital concepts 21-1 digital reader USB to everything device. It works perfectly with linux (hurrah!). The CF mounts at /dev/sdc, and ubuntu likes to be helpful and mount it for you...
apt-get install mbr extlinux chroot e2fsprogs # add a single primary partition (p\n 1\n \n \n w\n q\n) fdisk /dev/sdc # install a master boot record install-mbr -e 1 -p 1 /dev/sdc # make a file system mke2fs /dev/sdc1 # install extlinux http://syslinux.zytor.com/wiki/index.php/EXTLINUX extlinux /media/disk # copy on special kernel cp linux-2.6.18.8/arch/i386/boot/bzImage /media/disk/linux # create a bigger disk for temporary porpoises 128MB isn't enough dd if=/dev/zero of=dboot bs=1M count=256 mke2fs -v dboot mount dboot target -t ext2 -o loop=/dev/loop0 # install sarge onto it debootstrap sarge target/ http://ftp.debian.org/debian # delete lots of things (excess locales, apt, exim4-base, timezones, doco, man pages, whatever you can find) # copy < 50MB base system onto CF rsync -av target/ /media/disk/ #Also useful is some ttys and hdas cd target/dev for i in 0 1 2 3 4 5 6; do ./MAKEDEV tty$i; done ./MAKEDEV hda
I can not get dhcp working here. perhaps the network driver doesn't do promiscuous or something? So edit /etc/interfaces/networking for a static IP.
I find it helpful to chroot into my temporary image and then the disk to confirm everything is there. Ubuntu mounts removable media noexec, which had me and pjrm stumped for a bit.
helianthus:~# cat /proc/cpuinfo
processor : 0
vendor_id : unknown
cpu family : 4
model : 0
model name : 486
stepping : unknown
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : no
fpu_exception : no
cpuid level : -1
wp : yes
flags :
bogomips : 99.32
helianthus:~# free
total used free shared buffers cached
Mem: 127080 11984 115096 0 596 6588
-/+ buffers/cache: 4800 122280
Swap: 0 0 0
helianthus:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 60M 48M 8.3M 86% /
tmpfs 63M 4.0K 63M 1% /dev/shm