If you use a CF card instead of a hard drive, read this: Make NetBSD read-mostly
List of materials
- Soekris net4801
- Toshiba 40GB/16M Cache ATA6 2.5" HDD
- Apple 1GHz Powerbook with OS X 10.4
- IOGear USB to 9-pin serial adapter GUC232A
- Belkin 9-pin female-to-female null modem cable
- Netgear 8-port 10/100 switch
- Two network cables
List of software
- OS X 10.4 or 10.5
- xinetd/inetd ( for tftp - included in 10.4 Tiger || Replaced in 10.5 Leopard )
- NFS (included in 10.4)
- minicom
- ISC DHCPD
- NetBSD
Prework
- Install the hard drive into soekris
- Connect to soekris with usb-serial dongle + belkin cable using minicom
- Use ^P to get to the Monitor <-- This is the BIOS
- The soekris is originally set to 19.2K 8N1. Set it to 9600 and configure minicom to use 9600 8N1. You may have to restart minicom and reboot the soekris. This step will save you from having your BIOS run at a different speed than your OS.
- You may also set the time and date here
- Verify that you see your disk during POST
- Plug in network cables from the powerbook and soekris into your switch
Configuring the powerbook
- Assign an IP to your mac's internal network. I used 192.168.2.201.
- (TIGER ONLY) enable tftp in inetd.conf with the following line (uncomment it):
tftp dgram udp wait nobody /usr/libexec/tcpd tftpd -l /private/tftpboot
And then restart with:kill -HUP `ps -aux|grep [x]inet|awk '{ print $2 }'`Or start it with:xinetd -inetd_compat
- (LEOPARD ONLY) launchctl load -w /System/Library/LaunchDaemons/tftp.plist
- compile and install dhcpd (This just works as ISC has been nice enough to include build scripts)
- configure dhcpd and start it as a backgrounded process My config file:
authoritative;
ddns-update-style none;
lease-file-name "/usr/local/etc/dhcpd.leases";
local-address 192.168.2.201;
pid-file-name "/usr/local/etc/dhcpd.pid";
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.201 192.168.2.205;
}
host soekris {
hardware ethernet 00:00:2D:C7:3D:11 ;
filename "/private/tftpboot/pxeboot_ia32_com0.bin";
next-server 192.168.2.201;
option root-path "/usr/local/soekris/";
fixed-address 192.168.2.202;
}
NetBSD-4 and newer has switched from including pxeboot with com0 to requiring use of installboot to change the pxeboot settings. 'installboot' comes from NetBSD's toolchain. To get the hardware baud using com0:
My dhcpd startup command:
installboot -e -o console=com0 -o speed=0 -m i386 ./pxeboot_ia32.binOr you can download it here thanks to Erik Berls
dhcpd -f -d -cf /usr/local/etc/dhcpd.conf >> /usr/local/etc/dhcpd.out &
- Here (/private/tftpboot) you will have to extract base.tgz to get pxeboot_ia32_com0.bin
- There (/usr/local/soekris), you will need to gunzip the install kernel (netbsd-INSTALL.gz) and rename it to netbsd
- These are the only two files you need to get the system booting into the installer
- Following instructions here: OS X as an NFS server I ended up with this:
Matthews-Computer:/usr/local/etc root# nidump -r /exports /
{
"name" = ( "exports" );
CHILDREN = (
{
"clients" = ( "" );
"name" = ( "/usr/local/soekris" );
"opts" = ( "ro" );
}
)
}
kill -HUP `ps -aux|grep [m]ountd|awk '{ print $2 }'`
- I had to restart for nfs to work, but it should start automatically if exports is found.
- You may also want to add client fields for security reasons
Booting the Soekris
- boot or reboot from the Monitor will cycle to the network card
- This also exposes your mac address
- If your hdd is not blank, try boot F0 to boot using the network
- If your powerbook is configured correctly, you should download the pxeboot file and start installation automagically
NetBSD install tips
- For NetBSD 3.0, everything is available on ftp
- For NetBSD-current, read this how-to track NetBSD -current on OS X
Screenshots!
comBIOS ver. 1.28 20050529 Copyright (C) 2000-2005 Soekris Engineering.
net4801
0128 Mbyte Memory CPU Geode 266 Mhz
Pri Mas SanDisk SDCFB-512 LBA 993-16-63 500 Mbyte
Slot Vend Dev ClassRev Cmd Stat CL LT HT Base1 Base2 Int
-------------------------------------------------------------------
0:00:0 1078 0001 06000000 0107 0280 00 00 00 00000000 00000000
0:06:0 100B 0020 02000000 0107 0290 00 3F 00 0000E101 A0000000 10
0:07:0 100B 0020 02000000 0107 0290 00 3F 00 0000E201 A0001000 10
0:08:0 100B 0020 02000000 0107 0290 00 3F 00 0000E301 A0002000 10
0:18:2 100B 0502 01018001 0005 0280 00 00 00 00000000 00000000
0:19:0 0E11 A0F8 0C031008 0117 0280 08 38 00 A0003000 00000000 11
4 Seconds to automatic boot. Press Ctrl-P for entering Monitor.
comBIOS Monitor. Press ? for help.
> boot f0
NSC DP83815/DP83816 Fast Ethernet UNDI, v1.03
Copyright (C) 2002, 2003 National Semiconductor Corporation
All rights reserved.
Pre-boot eXecution Environment PXE-2.0 (build 082)
Copyright (C) 1997-2000 Intel Corporation
CLIENT MAC ADDR: 00 00 2D C7 3D 11
CLIENT IP: 192.168.2.202 MASK: 255.255.255.0 DHCP IP: 192.168.2.201
>> NetBSD/i386 PXE Boot, Revision 1.1
>> (msporleder@Matthews-Apple.local, Sun Jan 29 13:15:28 EST 2006)
>> Memory: 582/130048 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:c5:3d:10
net_open: client addr: 192.168.2.202
net_open: subnet mask: 255.255.255.0
net_open: server addr: 192.168.2.201
net_open: server path: /usr/local/soekris/
net_open: file name: /private/tftpboot/pxeboot_ia32.bin
3891064/
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 3.99.21 (INSTALL) #0: Sun Jul 9 09:48:48 UTC 2006
builds@b3.netbsd.org:/home/builds/ab/HEAD/i386/200606220000Z-obj/home/builds/ab/HEAD/src/sys/arch/i386/compile/INSTALL
total memory = 127 MB
avail memory = 116 MB
Reference Links
OS X as an NFS serverhttp://www.netbsd.org/Documentation/network/netboot/local.install.html
http://www.netbsd.org/Documentation/network/netboot/intro.i386.html
http://www.soekris.com/Manuals/net4801_manual.pdf