This might be useful for someone trying to load some piece of software packaged as a dd image, onto a pxe-capable machine with onboard flash. It's written to help someone load m0n0wall onto a Soekris net4526 but maybe relevant in other situations. The 4526 is a small (approx VHS sized) 486-class single-board computer with twin miniPCI, 1x PoE ethernet, serial console access, watchdog timer, GPIO, very low power consumption, and an onboard (i.e. not socketed) flash emulating a standard IDE hard drive (works like a plug-in CF card on an IDE adapter). Many guides exist dealing with other boards in the Soekris range using CF, but often describe programming the card on another machine before moving it to the Soekris, which is not applicable to the 4526 (and forthcoming 4826, a similar pentium-class machine). I'm using flashboot-bindist and the OpenBSD pxe bootloader from your local mirror in /pub/OpenBSD/3.5/i386/pxeboot. Place these in the tftp root and create /tftpboot/etc/boot.conf similar to: "stty com0 19200 set tty com0 boot tftp:/bsd.SOEKRIS4501" In dhcpd.conf, set "filename" to load the pxeboot you just downloaded, next-server if booting from other than the dhcp box, make sure tftp and dhcpd are both working and not firewalled from the machine you want to boot. Test on another machine if necessary, if you get stuck google it, there are plenty of guides to help. In this case, I've already downloaded the distributed m0n0wall file to a local machine with ssh access (alternatively it would be possible to use something like 'ftp -o - http://original/source' would). While you have it loaded, take a look at the flashboot setup, it's pretty nice and works nicely on this type of machine: thanks very much, Damien, I'm happily using flashboot-based systems on most of my Soekris boxes. comBIOS ver. 1.24 20040312 Copyright (C) 2000-2004 Soekris Engineering. net45xx 0032 Mbyte Memory CPU 80486 100 Mhz Pri Mas 016MB ATA Flash Disk LBA 489-2-32 15 Mbyte PXE-M00: BootManage UNDI, PXE-2.0 (build 082) Slot Vend Dev ClassRev Cmd Stat CL LT HT Base1 Base2 Int ------------------------------------------------------------------- 0:00:0 1022 3000 06000000 0006 2280 00 00 00 00000000 00000000 00 0:18:0 100B 0020 02000000 0107 0290 00 3F 00 0000E001 A0000000 10 ^P comBIOS Monitor. Press ? for help. > boot f0 BootManage UNDI, PXE-2.0 (build 082) BootManage PXE-2.0 PROM 1.0, NATSEC 1.0, SDK 3.0/082 (OEM52) Copyright (C) 1989,2000 bootix Technology GmbH, D-41466 Neuss. PXE Software Copyright (C) 1997, 1998, 1999, 2000 Intel Corporation. Licensed to National Semiconductor CLIENT MAC ADDR: 00 00 24 C2 35 54 CLIENT IP: 81.168.66.235 MASK: 255.255.255.224 DHCP IP: 81.168.66.254 GATEWAY IP: 81.168.66.225 probing: pc0 com0 com1 pci pxe![2.1] mem[639K 31M a20=on] disk: hd0+ net: mac 00:00:24:c2:35:54, ip 81.168.66.235, server 81.168.66.252 >> OpenBSD/i386 PXEBOOT 1.00 com0: 19200 baud switching console to com0 [ using 169760 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. Copyright (c) 1995-2004 OpenBSD. All rights reserved. http://www.OpenBSD.org OpenBSD 3.5-stable (kbuild) #0: Wed Aug 11 20:16:29 BST 2004 sthen@woodhenge.spacehopper.org:/home/sthen/flashboot-0.5/obj/kbuild cpu0: AMD Am486DX4 W/B or Am5x86 W/B 150 ("AuthenticAMD" 486-class) cpu0: FPU real mem = 33140736 (32364K) avail mem = 17506304 (17096K) using 430 buffers containing 1761280 bytes (1720K) of memory mainbus0 (root) bios0 at mainbus0: AT/286+(00) BIOS, date 20/40/12, BIOS32 rev. 0 @ 0xf7840 pcibios0 at bios0: rev. 2.0 @ 0xf0000/0x10000 pcibios0: pcibios_get_intr_routing - function not supported pcibios0: PCI IRQ Routing information unavailable. pcibios0: PCI bus #0 is the last bus bios0: ROM list: 0xc8000/0xa000 pci0 at mainbus0 bus 0: configuration mode 1 (bios) elansc0 at pci0 dev 0 function 0 "AMD ElanSC520 PCI" rev 0x00: product 0 steppin g 1.1, CPU clock 100MHz, reset 1 sis0 at pci0 dev 18 function 0 "NS DP83815 10/100" rev 0x00: DP83816A, irq 10, a ddress 00:00:24:c2:35:54 nsphyter0 at sis0 phy 0: DP83815 10/100 integrated, rev. 1 isa0 at mainbus0 isadma0 at isa0 kbc selftest: ffffffff wdc0 at isa0 port 0x1f0/8 irq 14 wd0 at wdc0 channel 0 drive 0: <016MB ATA Flash Disk> wd0: 1-sector PIO, LBA, 15MB, 31296 sectors wd0(wdc0:0:0): using BIOS timings npx0 at isa0 port 0xf0/16: using exception 16 pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo pccom0: console pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo biomask 4000 netmask 4400 ttymask 4400 rd0: fixed, 20480 blocks dkcsum: wd0 matched BIOS disk 80 root on rd0a rootdev=0x1100 rrootdev=0x2f00 rawdev=0x2f02 ********* flashboot 0.5 Copying additional configuration files from flash to ramdisk building ps databases: dev. net.inet.tcp.ecn: 0 -> 1 ddb.panic: 1 -> 0 ddb.console: 0 -> 1 kern.splassert: 0 -> 2 pf enabled starting network Daemons: syslogd identd inetd cron. ********* finished /etc/rc May 6 12:32:32 localhost init: kernel security level changed from 0 to 1 OpenBSD/i386 (localhost) (tty00) login: root Password: May 6 12:33:18 localhost login: ROOT LOGIN (root) ON tty00 May 6 12:33:18 localhost login: ROOT LOGIN (root) ON tty00 Terminal type? [unknown] vt100 [root@localhost root]# dhclient sis0 Internet Software Consortium DHCP Client 2.0pl5-OpenBSD Listening on BPF/sis0/00:00:24:c2:35:54 Sending on BPF/sis0/00:00:24:c2:35:54 Sending on Socket/fallback/fallback-net DHCPDISCOVER on sis0 to 255.255.255.255 port 67 interval 4 ip length 328 disagrees with bytes received 332. accepting packet with data after udp payload. DHCPOFFER from 81.168.66.254 DHCPREQUEST on sis0 to 255.255.255.255 port 67 ip length 328 disagrees with bytes received 332. accepting packet with data after udp payload. DHCPACK from 81.168.66.254 New Network Number: 81.168.66.224 New Broadcast Address: 81.168.66.255 bound to 81.168.66.235 -- renewal in 21600 seconds. [root@localhost root]# (pfctl -sr;echo pass out all keep state)|pfctl -f - [root@localhost root]# ssh sthen@yarrow cat net45xx-1.2b2.img | gunzip | dd of=/dev/rwd0c bs=64k The authenticity of host 'yarrow (81.168.66.252)' can't be established. RSA key fingerprint is c3:4e:83:72:f0:e7:1c:13:41:fa:cf:e3:5d:8a:5e:10. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'yarrow,81.168.66.252' (RSA) to the list of known hosts. sthen@yarrow's password: 0+384 records in 0+384 records out 6291456 bytes transferred in 35.729 secs (176084 bytes/sec) [root@localhost root]# reboot May 6 12:51:26 localhost reboot: rebooted by root Shutting down May 6 12:51:26 localhost syslogd: exiting on signal 15 syncing disks... done rebooting... POST: 0123456789bcefghipajklnoq,,,tvwxy comBIOS ver. 1.24 20040312 Copyright (C) 2000-2004 Soekris Engineering. net45xx 0032 Mbyte Memory CPU 80486 100 Mhz Pri Mas 016MB ATA Flash Disk LBA 489-2-32 15 Mbyte PXE-M00: BootManage UNDI, PXE-2.0 (build 082) Slot Vend Dev ClassRev Cmd Stat CL LT HT Base1 Base2 Int ------------------------------------------------------------------- 0:00:0 1022 3000 06000000 0006 2280 00 00 00 00000000 00000000 00 0:18:0 100B 0020 02000000 0107 0290 00 3F 00 0000E001 A0000000 10 3 Seconds to automatic boot. Press Ctrl-P for entering Monitor. Console: internal video/keyboard BIOS drive C: is disk0 BIOS 639kB/31744kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 (root@nb.neon1.net, Sat May 29 16:40:46 CEST 2004) /kernel text=0x189ec0 data=0x1e908+0x1ae5c syms=[0x4+0x299d0+0x4+0x31071] Copyright (c) 1992-2004 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.10-RELEASE #0: Sat Oct 23 13:41:13 CEST 2004 root@nb.neon1.net:/usr/src/sys/compile/M0N0WALL_NET45XX Timecounter "i8254" frequency 1189159 Hz CPU: AMD Enhanced Am486DX4/Am5x86 Write-Back (486-class CPU) Origin = "AuthenticAMD" Id = 0x494 Stepping = 4 Features=0x1 real memory = 33554432 (32768K bytes) avail memory = 18202624 (17776K bytes) Preloaded elf kernel "kernel" at 0xc0e21000. Preloaded mfs_root "/mfsroot" at 0xc0e210a8. md0: Preloaded image 11534336 bytes at 0xc031f070 md1: Malloc disk Timecounter "ELAN" frequency 8333333 Hz npx0: on motherboard npx0: INT 16 interface pcib0: on motherboard pci0: on pcib0 sis0: port 0xe000-0xe0ff mem 0xa0000000-0xa0000ff f irq 10 at device 18.0 on pci0 sis0: Ethernet address: 00:00:24:c2:35:54 miibus0: on sis0 ukphy0: on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto isa0: on motherboard orm0: