This how-to document is designed to walk people through the process of installing the software on a Soekris 4526 board using a PXE boot on a FreeBSD operating system. This is the kind of board you might buy from Metrix.net.
Three different command line prompts will be used:
<key> [e.g. <Shift>, <Ctrl>, etc.].
For text editing, we use VI, but feel free to use whatever text editor you like. Some useful vi commands:
$ mkdir /tftpboot$ cd /tftpboot$ wget http://cuwireless.net/files/netbsd.gz$ wget http://cuwireless.net/files/pxeboot_ia32_com0_19200.bin$ chmod -R 744 /tftpboot # pkg_add -r ics-dhcp3-server# vi /usr/local/etc/dhcpd.confddns-update-style ad-hoc;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.101;
option subnet-mask 255.255.255.0;
range 192.168.1.1 192.168.1.100;
}class "pxe-clients-ia32" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.1.101;
filename "pxeboot_ia32_com0_19200.bin";
}class "netbsd-pxe-clients-ia32" {
match if substring(option vendor-class-identifier, 0, 17) =
"NetBSD:i386:libsa";
next-server 192.168.1.101;
filename "tftp:netbsd.gz";
}
# dhcpd &# pgrep dhcpd# vi /etc/inetd.conftftp dgram udp wait root /usr/libexec/tftpd tftpd -l -U 777 -s /tftpboot
# vi /etc/remote#cuwin node stuff
cuw0:dv=/dev/cuad0:br#19200:pa-none:dc:
$ shutdown -r now# dhcpd &# pgrep inetd# pgrep dhcpd# tip cuw0Pre-boot eXecution Environment PXE-2.0 (build 082) Copyright (C) 1997-2000 Intel Corporation CLIENT MAC ADDR: 00 00 24 C3 A8 40 CLIENT IP: 192.168.1.9 MASK: 255.255.255.0 DHCP IP: 192.168.1.101 GATEWAY IP: 192.168.1.101 >> NetBSD/i386 PXE Boot, Revision 1.1 >> (rgmussel@cuw.ojctech.com, Sun Apr 23 07:50:45 CDT 2006) >> Memory: 582/64512 k Press return to boot now, any other key for boot menu Starting in 0 PXE BIOS Version 2.1 Using PCI device at bus 0 device 6 function 0 Ethernet address 00:00:24:c3:a8:40 net_open: client addr: 192.168.1.9 net_open: subnet mask: 255.255.255.0 net_open: net gateway: 192.168.1.101 net_open: server addr: 192.168.1.101 net_open: file name: tftp:netbsd.gz 2159776+33612688-
> stty <space> erase Control-v <Backspace>> ifconfig sip0inet 10.168.64.254 netmask 0xffffff00> ifconfig sip0 inet 10.168.64.254 netmask 0xffffff00 -alias> ifconfig sip0inet 192.168.1.7 netmask 0xffffff00 broadcast 192.168.1.255.> ping 192.168.1.101 -c 564 bytes from 192.168.1.101: icmp_seq=0 ttl=64 time=0.656 m> upgrade -f -C blah@192.168.1.101:/tftpboot/upgrade.tgz
fdisk: DIOCGDEFLABEL: Invalid argument
fdisk: DIOCGDINFO: Invalid argument
Disk: /dev/rwd0d
NetBSD disklabel disk geometry:
cylinders: 977, heads: 4, sectors/track: 32 (128 sectors/cylinder)
total sectors: 125056
BIOS disk geometry:
cylinders: 977, heads: 4, sectors/track: 32 (128 sectors/cylinder)
total sectors: 210453442400
Partition 0:
NetBSD (sysid 169)
start 32, size 62512 (31 MB, Cyls 0-488/2/17)
Making partition 0 active.
Preparing for upgrade on /dev/wd0e.
/dev/rwd0e: 30.5MB (62512 sectors) block size 8192, fragment size 1024
using 4 cylinder groups of 7.63MB, 977 blks, 1920 inodes.
super-block backups (for fsck_ffs -b #) at:
32, 15664, 31296, 46928,
Installing the upgrade.
The authenticity of host '192.168.1.101 (192.168.1.101)' can't be established. DSA key fingerprint is a8:75:fe:7d:46:b7:a8:05:65:77:43:7a:67:e7:a4:fc. Are you sure you want to continue connecting (yes/no)?yes
Warning: Permanently added '192.168.1.101' (DSA) to the list of known hosts.
Password:
100% |*************************************| 4041 KB 237.68 KB/s --:-- ETA
Updating etc/fstab
Updating primary bootstrap
Updating active partition
Disk: /dev/rwd0d
NetBSD disklabel disk geometry:
cylinders: 977, heads: 4, sectors/track: 32 (128 sectors/cylinder)
total sectors: 125056
BIOS disk geometry:
cylinders: 977, heads: 4, sectors/track: 32 (128 sectors/cylinder)
total sectors: 210453442400
Partition 1:
NetBSD (sysid 169)
start 62544, size 62512 (31 MB, Cyls 488/2/17-977)
Making partition 1 active.
Copying existing /etc/cuw_config.
Upgrade complete (/dev/wd0e).
#
$ reboot<Ctrl>~D [i.e. <Ctrl>-<Shift>-~, release the keys, and then <Ctrl>-<Shift>-d].Congratulations! If you made it this far, you are ready to put the node on the roof and get to work!