OpenBSD 4.0 out

, posted: 1-Nov-2006 21:16


Nov 1, 2006.

We are pleased to announce the official release of OpenBSD 4.0. This is our 20th release on CD-ROM (and 21st via FTP). We remain proud of OpenBSD's record of ten years with only a single remote hole in the default install. As in our previous releases, 4.0 provides significant improvements, including new features, in nearly all areas of the system:

- New/extended platforms:
o OpenBSD/armish.
Various ARM-based appliances, using the Redboot boot loader, currently only supporting the Thecus N2100 and IOData HDL-G.
o OpenBSD/sparc64. UltraSPARC III based machines are now supported!
o OpenBSD/zaurus. Support for the Zaurus SL-C3200.

- Improved hardware support, including:
o New msk(4) driver for Marvell/SysKonnect Yukon-2 Gigabit Ethernet.
o New bnx(4) driver for Broadcom NetXtreme II Gigabit Ethernet.
o New xge(4) driver for Neterion Xframe/Xframe II 10Gb Ethernet.
o New rum(4) driver for Ralink Technology 2nd gen USB IEEE 802.11a/b/g wireless.
o New acx(4) driver for Texas Instruments ACX100/ACX111 IEEE 802.11a/b/g wireless.
o New pgt(4) driver for Connexant/Intersil Prism GT Full-MAC IEEE 802.11a/b/g wireless.
o New uath(4) driver for Atheros USB IEEE 802.11a/b/g wireless.
o New binary blob free wpi(4) driver for Intel PRO/Wireless 3945ABG IEEE 802.11a/b/g wireless.
o New arc(4) driver for Areca Technology Corporation SATA RAID; including RAID management via bio(4).
o New mfi(4) driver for LSI Logic & Dell MegaRAID SAS RAID; including RAID management via bio(4).
o New azalia(4) driver for generic High Definition Audio.
o New SD/MMC/SDIO drivers (sdhc(4), sdmmc(4)), currently supporting SD memory cards as fake SCSI sd(4) drives.
o New udcf(4) driver for Gude ADS Expert mouseCLOCK DCF77/HBG time signal station receivers.
o New uslcom(4) driver for Silicon Laboratories CP2101/CP2102 based USB serial adapters.
o New ucycom(4) driver for Cypress microcontroller based USB serial adapters.
o New uark(4) driver for Arkmicro Technologies ARK3116 based USB serial adapters.
o New umsm(4) driver for Qualcomm MSM EVDO based modems.
o New Dallas/Maxim 1-Wire bus support, including:
o New gpioow(4) driver for 1-Wire bus bit-banging through GPIO pin
o New onewire(4) 1-Wire bus driver
o New owid(4) 1-Wire ID family driver
o New owtemp(4) 1-Wire temperature family driver
o New isagpio(4) driver for ISA I/O mapped as GPIO.
o New nmea(4) line discipline for NMEA 0183 (GPS) devices. The new nmeaattach(8) utility can be used to receive NMEA 0183 data and provide the time received as a timedelta sensor to be used by, for
example, ntpd(8).
o New VAX framebuffer drivers:
o New lcg(4) driver for VAXstation 4000/60 and VLC color frame buffers
o New lcspx(4) driver for Low-Cost SPX color frame buffers
o New gpx(4) driver for GPX color frame buffers
o smg(4) driver for Small Monochrome Graphics frame buffers heavily updated to be a modern wscons(4) driver
o Support for VAX-based Digital VXT2000 and VXT2000+ terminals.
o The bge(4) driver supporting newer chipsets, such as the Broadcom BCM5754, BCM5755, BCM5786, and BCM5787.
o The em(4) driver supporting newer chipsets, such as the Intel ESB2 and ICH8.
o The nfe(4) driver supporting newer chipsets, such as the NVIDIA MCP61 and MCP65.
o The re(4) driver supporting newer chipsets, such as the Realtek RT8101E, RT8168, and RT8169SC.
o The dc(4) driver supporting newer chipsets, such as the ADMtek ADM9511 and ADM9513.
o The pciide(4) driver supporting newer chipsets, such as:
o Intel 6321ESB IDE/SATA, 82801G SATA, and 82801H SATA
o IT Express IT8211F IDE
o Promise PDC205xx SATA
o ServerWorks SATA
o The mpt(4) driver has been replaced with mpi(4), a more stable driver that supports more hardware.
o The com(4) driver now supports pcmcia and cardbus cards on macppc.
o Working interrupt routing on Sun Netra t1 105, Ultra 60 and possibly other sparc64 systems.
o Work around broken VIA and NVIDIA MPBIOSes, fixes interrupt routing with GENERIC.MP on several systems.
o Initial bio(4) support for Compaq/HP ciss(4) Smart ARRAY 5/6 SAS/SCSI RAID controllers.
o Improved speed control on some systems:
o New SpeedStep detection code, also adds support for VIA C7-M and several newer Pentium M's.
o Support SpeedStep in rudimentary fashion on most unknown CPUs that advertise the feature.
o Zaurus can be moved into slower speeds now too.
o The Pentium 4 Thermal Clock Control driver now supports more CPUs including the Intel Pentium M and Xeon, and provides an estimated performance impact.
o Numerous improvements to PowerNow K7 and K8 support on i386, and support for K8 was added to amd64. 
o Support for Intel 945G/GM video chipsets (on i386).
o Support for additional I2C sensors:
o The adt(4) driver now supports the National Semiconductor LM9600, SMSC EMC6D10x and SMSC SCH5017 chips.
o The admtemp(4) driver now supports the Analog Devices ADM1023, Genesys Logic GL523SM and Global Mixed-mode Technology G781 chips.

- New tools:
o GNU RCS has been replaced with OpenRCS.

- New functionality:
o IPsec has been greatly improved:
o ipsecctl(8) has been greatly extended and completely supersedes ipsecadm(8):
o Lots of documentation improvements (man ipsec.conf)
o IPv6 support
o AH support
o Transport mode support
o Dynamic IKE support for roaming users
o USER_FQDN id support
o sasyncd(8) works much better:
o communicates with isakmpd(8), telling it to run active or passive depending on the master/slave state of the carp(4) interfaces. This makes IPsec failover setups much more robust.
o looks at the carp(4) interface group by default to suppress preemption of IPsec traffic during system boot.
o isakmpd(8) can now be safely configured by ipsecctl(8) on startup.
o ftp(1) now supports HTTPS.
o cdio(1) can now perform track-at-once burning and rewritable blanking.
o spppcontrol(8) and wicontrol(8) functionality has been merged into ifconfig(8).
o gcc(1) provides a new warning, -Wstack-larger-than-N, to report functions which are too greedy in stack variables, see gcc-local(1) for details.
o An in-kernel getcwd(3) implementation.
o A new system call adjfreq(2) to allow ntpd(8) to adjust the tick rate of the system clock automatically.
o Support for X11 on VAX has been added
o Virtual Allocation Table (VAT) support for UDF.
o C99 functions round(3), roundf(3), trunc(3), and truncf(3) have been added to libm, the math library.
o pf(4) now supports Unicast Reverse Path Forwarding (uRPF) checks for simplified ingress filtering.
o bpf(4) can now ignore packets based on their direction (inbound/outbound) using the BIOCSDIRFILT ioctl.
o pdisk(8) can now set up slices on HFS(DPME) partitioned disks on mac68k.
o New dissectors have been added to tcpdump(8):
o Cisco's VQP (VLAN Query Protocol)
o IEEE 802.1AB LLDP (Link Layer Discovery Protocol)
o trunk(4) now supports the new loadbalance mode to balance outgoing traffic based on hashed protocol header information.
o bioctl(8) has been extended to provide runtime information on rebuilds, scrubs and initialization.
o New sysctls to check the system vendor, product, version, serial number, and UUID.
o Equal cost multipath routing support. Needs to be enabled by a sysctl.
o Prebind, a secure implementation of prelinking, has been added to ldconfig(8), it speeds up launching of shared binaries. Prebind is compatible with address space randomization, unlike prelink.
o vnconfig(8) can now use PKCS #5 PBKDF2 to create a more secure key when using encryption.

- Assorted improvements and code cleanup:
o Much better time keeping for multiprocessor OpenBSD/i386 systems.
o Much improved implementation of telldir(3) and friends.
o Replacement of many malloc(3) calls that follow a pattern prone to integer overflow with safer constructs.
o Improved failover handling in carp(4):
o Extend the carp protocol with the demotion counter to act smarter on multiple failures.
o Group failovers now work without carp running preempt mode.
o Demotion can now be controlled via interface groups.
o chio(1) is now a useful tool for controlling tape changers.
o Much improved st(4) device setup, tape handling and error processing.
o Many dhclient(8) fixes, including 'alias' handling and improved interface initialization.
o scsi(4) devices detect the correct SCSI version.
o More umass(4) devices properly detected.
o Improved detection of fibre channel devices and devices in SCSI enclosures
o The new RSSI header has been added to the ieee80211_radiotap(9) framework as a replacement for ANTSIGNAL headers.
o Many integer type safety cleanups with lint(1).

- Install/Upgrade process changes:
o Host specific site files add easy customization for individual hosts
o X Window aperture support, where available, now defaults to off

- New functionality for hostapd(8), the Host Access Point Daemon:
o IP based roaming to build wireless networks without the requirement of a single broadcast domain.
o New event rules to match optional elements of radiotap headers: signal percentage, transmit rate and channel frequency.
o Various bug fixes and improvements.

- OpenSSH 4.4:
o Conditional configuration in sshd_config(5) using the Match directive. This allows some configuration options to be selectively overridden if specific criteria (based on user, group, hostname and/or address) are met.
o Add support for Diffie-Hellman group exchange key agreement with a final hash of SHA256.
o Added a ForceCommand directive to sshd_config(5), similar to the command="..." option in ~/.ssh/authorized_keys.
o Added a PermitOpen directive to sshd_config(5), similar to the permitopen="..." option in authorized_keys, to allow control over the port-forwardings that a user is allowed to establish.
o Added an ExitOnForwardFailure option to cause ssh(1) to exit (with a non-zero exit code) when requested port forwardings could not be established.
o Added optional logging of transactions to sftp-server(8).
o ssh(1) will now record port numbers for hosts stored in ~/.ssh/authorized_keys when a non-standard port has been requested.
o Extended the sshd_config(5) "SubSystem" directive to allow the specification of commandline arguments.
o Many manpage fixes and improvements

- OpenBGPD 4.0:
o new nexthop selection logic ignoring bgpd routes, helps in complex setups with ospfd
o add a "detailed" show rib view to bgpctl, including communities
o allow requesting a route refresh from a peer that supports it
o have bgpd always report back the result of an operation to bgpctl, so the operator can spot errors quicker
o allow bgpd to manipulate carp demotion counters based on session states, gives even greater failover  support
o support restarting sessions that reached max-prefix after a given time
o bgpctl can now show all routes received from a neighbor before filters were applied, and routes sent to neighbors
o assorted fixes and improvements, as usual

- OpenOSPFD 4.0:
o Track uptime of the daemon itself.
o Track uptime of all ospf enabled interfaces.
o Adjust logging behaviour to prevent unwanted logging.
o Delay LSA updates when removing and adding - prevent flapping.
o Fix plaintext authentication.
o Improve the output of 'ospfctl show interfaces'.
o Support rtlabels when redistributing routes.

- OpenNTPD 4.0:
o support timedelta sensors, such as DCF77 receivers supported by udcf(4) and GPS receivers supported by nmea(4).
o Adjust the kernel tick frequency, using adjfreq(2), improving accuracy on many machines.
o allow for weight to be added to sensors or servers, so that one can weight timedelta sensors higher than ntp peers

- Over 3700 ports, 3400 pre-built packages, improved package tools.
- Full support for pkg_add(1) over ssh(1), using one single connection.

- As usual, steady improvements in manual pages and other documentation.

- The system includes the following major components from outside suppliers:
o X.Org 6.9.0 (+ patches, and i386 contains XFree86 3.3.6 servers (+ patches) for legacy chipsets not supported by X.Org)
o Gcc 2.95.3 (+ patches) and 3.3.5 (+ patches)
o Perl 5.8.8 (+ patches)
o Apache 1.3.29, mod_ssl 2.8.16, DSO support (+ patches)
o OpenSSL 0.9.7j (+ patches)
o Groff 1.15
o Sendmail 8.13.8, with libmilter
o Bind 9.3.2-P1 (+ patches)
o Lynx 2.8.5rel.4 with HTTPS and IPv6 support (+ patches)
o Sudo 1.6.8p9
o Ncurses 5.2
o Latest KAME IPv6
o Heimdal 0.7.2 (+ patches)
o Arla 0.35.7
o Binutils 2.15 (+ patches)
o Gdb 6.3 (+ patches)

If you'd like to see a list of what has changed between OpenBSD 3.9 and 4.0, look at

Even though the list is a summary of the most important changes made to OpenBSD, it still is a very very long list.


We provide patches for known security threats and other important issues discovered after each CD release. As usual, between the creation of the OpenBSD 4.0 FTP/CD-ROM binaries and the actual 4.0 release date, our team found and fixed some new reliability problems (note: most are minor and in subsystems that are not enabled by default). Our continued research into security means we will find new security problems -- and we always provide patches as soon as possible. Therefore, we advise regular visits to:

Security patch announcements are sent to the mailing list. For information on OpenBSD mailing lists, please see:


OpenBSD 4.0 is also available on CD-ROM. The 3-CD set costs $50USD (EUR 50 including VAT) and is available via mail order and from a number of contacts around the world. The set includes a colourful booklet
which carefully explains the installation of OpenBSD. A new set of cute little stickers is also included (sorry, but our FTP mirror sites do not support STP, the Sticker Transfer Protocol). As an added bonus, the second CD contains an audio track, a song entitled "Humppa Negala".

OpenBSD 4.0 comes with another OpenBSD Audio CD which celebrates the artwork and songs that have been released with each OpenBSD release. All the songs from the 3.0 to 4.0 releases are included (plus one bonus
track by Ty Semaka explaining his role in the development of the art that accompanies OpenBSD releases). Includes a 11cm silver-on-clear die-cut wireframe Puffy sticker!

Lyrics (and an explanation) for the songs may be found at:

Profits from CD sales are the primary income source for the OpenBSD project -- in essence selling these CD-ROM units ensures that OpenBSD will continue to make another release six months from now.

The OpenBSD 4.0 CD-ROMs are bootable on the following five platforms:

o i386
o amd64
o macppc
o sparc
o sparc64 (UltraSPARC)

(Other platforms must boot from floppy, network, or other method).

For more information on ordering CD-ROMs, see:

The above web page lists a number of places where OpenBSD CD-ROMs can be purchased from. For our default mail order, go directly to:

or, for European orders:

All of our developers strongly urge you to buy a CD-ROM and support our future efforts. Additionally, donations to the project are highly appreciated, as described in more detail at:


The project continues to expand its funding base by selling t-shirts and polo shirts. And our users like them too. We have a variety of shirts available, with the new and old designs, from our web ordering system at:

and for Europe:

The OpenBSD 4.0 t-shirts are available now. The new shirt for 4.0 is a colourful parody of a well-known French comic. We also sell our older shirts, as well as a selection of OpenSSH t-shirts.


If you choose not to buy an OpenBSD CD-ROM, OpenBSD can be easily installed via FTP. Typically you need a single small piece of boot media (e.g., a boot floppy) and then the rest of the files can be installed from a number of locations, including directly off the Internet. Follow this simple set of instructions to ensure that you find all of the documentation you will need while performing an install via FTP. With the CD-ROMs, the necessary documentation is easier to find.

1) Read either of the following two files for a list of ftp mirrors which provide OpenBSD, then choose one near you:

As of Nov 1, 2006, the following ftp mirror sites have the 4.0 release: Austria Austria Germany Sweden CO, USA CA, USA IL, USA

The release is also available at the master site: Alberta, Canada

However it is strongly suggested you use a mirror.

Other mirror sites may take a day or two to update.

2) Connect to that ftp mirror site and go into the directory pub/OpenBSD/4.0/ which contains these files and directories. This is a list of what you will see:

ANNOUNCEMENT alpha/ luna88k/ sgi/
Changelogs/ amd64/ mac68k/ sparc/
HARDWARE armish/ macppc/ sparc64/
PACKAGES cats/ mvme68k/ src.tar.gz
PORTS ftplist mvme88k/ sys.tar.gz
README hp300/ packages/ tools/
SIZES hppa/ ports.tar.gz vax/
XF4.tar.gz i386/ root.mail zaurus/

It is quite likely that you will want at LEAST the following files which apply to all the architectures OpenBSD supports.

HARDWARE - list of hardware we support
PORTS - description of our "ports" tree
PACKAGES - description of pre-compiled packages
root.mail - a copy of root's mail at initial login.
(This is really worthwhile reading).

3) Read the README file. It is short, and a quick read will make sure you understand what else you need to fetch.

4) Next, go into the directory that applies to your architecture, for example, i386. This is a list of what you will see:

CKSUM bsd.rd etc40.tgz misc40.tgz
INSTALL.i386 cd40.iso floppy40.fs pxeboot
INSTALL.linux cdboot floppyB40.fs xbase40.tgz
MD5 cdbr floppyC40.fs xetc40.tgz
base40.tgz cdemu40.iso game40.tgz xfont40.tgz
bsd cdrom40.fs index.txt xserv40.tgz comp40.tgz man40.tgz xshare40.tgz

If you are new to OpenBSD, fetch _at least_ the file INSTALL.i386 and the appropriate floppy*.fs or cd40.iso file. Consult the INSTALL.i386 file if you don't know which of the floppy images you need (or simply fetch all of them).

5) If you are an expert, follow the instructions in the file called README; otherwise, use the more complete instructions in the file called INSTALL.i386. INSTALL.i386 may tell you that you need to fetch other files.

6) Just in case, take a peek at:

This is the page where we talk about the mistakes we made while creating the 4.0 release, or the significant bugs we fixed post-release which we think our users should have fixes for. Patches and workarounds are clearly described there.

Note: If you end up needing to write a raw floppy using Windows, you can use "fdimage.exe" located in the pub/OpenBSD/4.0/tools directory to do so.


X.Org has been integrated more closely into the system. This release contains X.Org 6.9.0. Most of our architectures ship with X.Org, including amd64, sparc, sparc64 and macppc. During installation, you can install
X.Org quite easily. Be sure to try out xdm(1) and see how we have customized it for OpenBSD.


The OpenBSD ports tree contains automated instructions for building third party software. The software has been verified to build and run on the various OpenBSD architectures. The 4.0 ports collection, including many of the distribution files, is included on the 3-CD set. Please see the PORTS file for more information.

Note: some of the most popular ports, e.g., the Apache web server and several X applications, come standard with OpenBSD. Also, many popular ports have been pre-compiled for those who do not desire to build their own binaries (see BINARY PACKAGES, below).


A large number of binary packages are provided. Please see the PACKAGES file ( for more details.


The CD-ROMs contain source code for all the subsystems explained above, and the README ( file explains how to deal with these source files. For those who are doing an FTP install, the source code for all four subsystems can be found in the pub/OpenBSD/4.0/ directory:

XF4.tar.gz ports.tar.gz src.tar.gz sys.tar.gz


OpenBSD 4.0 includes artwork and CD artistic layout by Ty Semaka, who also arranged an audio track on the OpenBSD 4.0 CD set. Ports tree and package building by Peter Valchev, Nikolay Sturm and Christian Weisgerber. System builds by Theo de Raadt, Kenji Aoyama, and Miod Vallat. X11 builds by Todd Fries. ISO-9660 filesystem layout by Theo de Raadt.

We would like to thank all of the people who sent in bug reports, bug fixes, donation cheques, and hardware that we use. We would also like to thank those who pre-ordered the 4.0 CD-ROM or bought our previous
CD-ROMs. Those who did not support us financially have still helped us with our goal of improving the quality of the software.

Our developers are:

Aaron Campbell, Aleksander Piotrowski, Alex Feldman, Alexander Guy, Alexander von Gernler, Alexander Yurchenko, Alexandre Anriot, Andreas Gunnarsson, Angelos D. Keromytis, Anil Madhavapeddy, Antoine Jacoutot, Artur Grabowski, Ben Lindstrom, Bernd Ahlers, Bjorn Sandell, Bob Beck, Brad Smith, Brandon Creighton, Brian Caswell, Brian Somers, Bruno Rohee, Camiel Dobbelaar, Can Erkin Acar, Cedric Berger, Chad Loder, Chris Cappuccio, Chris Kuethe, Christian Weisgerber, Christopher Pascoe, Claudio Jeker, Constantine Sapuntzakis, Dale Rahn, Damien Bergamini, Damien Couderc, Damien Miller, Dan Harnett, Daniel Hartmeier,
Darren Tucker, David B Terrell, David Gwynne, David Hill, David Krause, David Lebel, David Leonard, Dimitry Andric, Don Stewart, Dug Song, Eric Jackson, Esben Norby, Federico G. Schwindt, Felix Kronlage, Fernando Gont, Gordon Willem Klok, Greg Taleck, Grigoriy Orlov, Hakan Olsson, Hans Insulander, Hans-Joerg Hoexer, Heikki Korpela, Henning Brauer, Henric Jungheim, Hiroaki Etoh, Horacio Menezo Ganau, Hugh Graham,
Ian Darwin, Jacob Meuser, Jakob Schlyter, Jan-Uwe Finck, Jared J. Yanovich, Jason Ish, Jason McIntyre, Jason Peel, Jason Wright, Jasper Lievisse Adriaanse, Jean-Baptiste Marchand, Jean-Francois Brousseau, Jean-Jacques Bernard-Gundol, Jim Rees, Joel Knight, Jolan Luff, Jonathan Gray, Jordan Hargrave, Joris Vink,
Jose Nazario, Joshua Stein, Jun-ichiro itojun Hagino, Kenji Aoyama, Kenjiro Cho, Kenneth R Westerback, Kevin Lo, Kevin Steves, Kjell Wooding, Kurt Miller, Louis Bertrand, Magnus Holmberg, Marc Aurele La France, Marc Balmer, Marc Espie, Marc Matteo, Marco Peereboom, Marco Pfatschbacher, Marco S Hyman, Marcus Glocker, Marcus Watts, Margarida Sequeira, Marius Eriksen, Mark Grimes, Mark Kettenis, Mark Uemura, Markus Friedl, Martin Reindl, Mathieu Sauve-Frankel, Mats O Jansson, Matt Behrens, Matt Smart, Matthias Kilian, Matthew Jacob, Matthieu Herrb, Michael Coulter, Michael Knudsen, Michael Shalayeff, Michael T. Stolarchuk, Mike Frantzen, Mike Pechkin, Miod Vallat, Moritz Jodeit, Nathan Binkert, Niall O'Higgins, Nick Holland, Niels Provos, Niklas Hallqvist, Nikolay Sturm, Nils Nordman, Oleg Safiullin, Otto Moerbeek, Patrick Latifi, Paul Janzen, Pedro Martelletto, Peter Galbavy, Peter Stromberg, Peter Valchev, Philipp Buehler,
Reinhard J. Sammer, Ray Lai, Reyk Floeter, Rich Cannings, Robert Nagy, Ryan Thomas McBride, Saad Kadhi, Shell Hin-lik Hung, Stephen Kirkham, Steve Murphree, Steven Mestdagh, Ted Unangst, Theo de Raadt, Thierry Deval, Thomas Nordin, Thordur I. Bjornsson, Thorsten Lockert, Tobias Weingartner, Todd C. Miller, Todd T. Fries, Tom Cosgrove, Uwe Stuehler, Vincent Labrecque, Wilbern Cobb, Wim Vandeputte, Xavier Santolaria.

Other related posts:
FreeBSD 6.2 released
Thunderbird 2.0 beta 1 out - and I like it
Firefox 2.0 and Windows Vista niggles

comments powered by Disqus


Google News search
IT News
PC World New Zealand
Computerworld NZ
PC World and Computerworld Australia
PC World US
Computerworld US
NZ Herald
Virus Bulletin

Content copyright © Juha Saarinen. If you wish to use the content of my blog on your site, please contact me for details. I'm usually happy to share my material as long as it's not for spamblogs and content farms. Please attribute with a link back to this blog. If you wish to advertise on my blog, please drop me an email to discuss the details.
Comments policy All comments posted on this blog are the copyright and responsibility of the submitters in question. Comments commercial and promotional in nature are not allowed. Please ensure that your comments are on topic and refrain from making personal remarks.