Last weekend I continued my work on FreeBSD port. I am concentrating on the network speed improvement, and I made a good progress with it. The network speed is now about 2.1 Mbps (FTP upload from device), this is still slower than the Linux version but i think it already reach a usable state (I think I should be able to stream some DivX files through HTTP from it). I will ask around in the freebsd-arm/freebsd-net mailing list so I can do more improvement on the driver.
I am still a bit worried playing around with the Flash, since I don’t have anything to restore it back in case I made a mistake. So I think I will leave this part for a while.
For everyone who have NSD-100 with Serial Port attached to it, you can try a precompiled binary thah I have prepared, or you can compile from source. To use the binary version, you will need a USB disk (at least 2GB in size), and a TFTP server. Actually you only need about 256 megabyte if you prepare your own disk instead of using my image.
Here are the steps for the binary version:
- Download the disk image from here
- Decompress (bunzip) the disk image, use dd to write to your USB disk
- Since there is no boot menu, entering single or multi user mode is done by booting different kernel. Download the multi user kernel or single user kernel and put it in your tftpserver
- Boot the kernel
To boot the kernel, you need to access your device using serial port. I think You need to hold the reset button to enter the boot prompt (mine always goes to the boot prompt because Bruce did something with the configuration area). You should see
setenv serverip 192.168.1.1 (you can also 'saveenv' to save the TFTP server address permanently) tftpboot 0x1000000 name-of-kernel.bin go 0x1000000
To build your own disk image, make an empty disk.img with the size that you want. Goto /usr/src and then (modified from instruction to make i386 image by Warner Losh)
export TARGET_ARCH=arm make buildworld mdconfig -a -t vnode -f disk.img fdisk -I md0 fdisk -B md0 bsdlabel -w md0s1 auto bsdlabel -B md0s1 newfs /dev/md0s1a mount /dev/md0s1a /mnt/ make installworld DESTDIR=/mnt make distrib-dirs DESTDIR=/mnt make distribution DESTDIR=/mnt echo /dev/da0s1a / ufs rw 1 1 > /mnt/etc/fstab echo ifconfig_DEFAULT=DHCP > /mnt/etc/rc.conf echo hostname=demo >> /mnt/etc/rc.conf
For the latest kernel source, you can see the perforce depot at: