OpenBSD 4.2
Released Nov 1, 2007
Copyright 1997-2007, Theo de Raadt.
ISBN 978-0-9784475-0-2
4.2 Song: "100001 1010101"
- Order a CDROM from our ordering system.
- See the information on The FTP page for
a list of mirror machines.
- Go to the pub/OpenBSD/4.2/ directory on
one of the mirror sites.
- Briefly read the rest of this document.
- Have a look at The 4.2 Errata page for a list
of bugs and workarounds.
- See a detailed log of changes between the
4.1 and 4.2 releases.
All applicable copyrights and credits can be found in the applicable
file sources found in the files src.tar.gz, sys.tar.gz,
xenocara.tar.gz, or in the files fetched via ports.tar.gz. The
distribution files used to build packages from the ports.tar.gz file
are not included on the CDROM because of lack of space.
What's New
This is a partial list of new features and systems included in OpenBSD 4.2.
For a comprehensive list, see the changelog leading
to 4.2.
- New/extended platforms:
- OpenBSD/sparc64.
The PCIe UltraSPARC IIIi machines like the V215 and V245 are now
supported.
- OpenBSD/hppa.
Four-digit B/C/J-class workstations like the B2000, C3750 or J6750
are now supported (in 32-bit mode).
- OpenBSD/alpha.
Add support in the alpha platform for a couple of new Alpha
models, AlphaServer 1200 and 4100.
- Platforms skipped this release:
- OpenBSD/sgi.
Due to various issues, this architecture will not be released
this time.
- Improved hardware support, including:
- Native Serial-ATA support:
- ahci(4)
driver for SATA controllers conforming to the Advanced Host Controller
Interface specification.
- jmb(4) driver for the JMicron JMB36x SATA II and PATA Host Controller.
- sili(4)
driver for SATA controllers using the Silicon Image 3124/3132/3531 SATALink
chipsets.
- The pciide(4) driver has had support added for newer chipsets, including:
- Intel ICH8M PATA
- JMicron JMB36x PATA
- VIA CX700/VX700 PATA
- The lm(4)
driver now supports Winbond W83627DHG and W83627EHF-A Super I/O Hardware Monitors.
- The siop(4)
driver now has support for NCR 53C720/770 controllers in big endian mode.
In particular this means that the onboard Fast-Wide SCSI on many hppa
machines is supported now.
- New tht(4)
driver for Tehuti Networks 10Gb Ethernet controllers.
- The malo(4)
driver now supports Marvell 88W8385 802.11g based Compact Flash devices.
- New uts(4)
driver for USB touch screens, and the xtsscale(1)
calibration utility.
- The i810(4)
X.Org driver and the PCI AGP driver now support Intel i965GM chips.
- New led(4)
driver for the front panel LEDs on the V215/245.
- New bbc(4)
driver providing support for the BootBus Controllers in UltraSparc III systems.
- New pmc(4)
driver for the
watchdog(4) timer on the National Semiconductor PC87317 SuperIO chip.
- New pyro(4) driver for the SPARC64 Host/PCIe bridge.
- New astro(4) driver for the Astro Memory and I/O controller on hppa.
- New elroy(4) driver for the Elroy PCI hostbridge on hppa.
- New lcd(4) driver for the front panel LCD display on hppa.
- New ssio(4) driver for the National Semiconductor PC87560 Legacy IO on hppa.
- New pxammc(4) driver for the MMC/SD/SDIO controller on zaurus.
- New xlights(4) driver for the front panel lights on the Xserve G4.
- New sysbutton(4) driver for the system identification button on the Xserve G4.
- New piixpcib(4) driver for System Management Mode initiated speedstep frequency scaling on certain pairings of the Intel PIIX4 ISA bridges and Intel Pentium 3 processors.
- CPU frequency and voltage can now be scaled on all CPUs when running GENERIC.MP on a multiprocessor i386 or AMD64 machine with enhanced speedstep or powernow.
- Intel enhanced speedstep is now supported on OpenBSD/amd64.
- New support for the on die CPU temperature sensor found on the Intel Core family of processors.
- The nvram(4) driver is now available on OpenBSD/amd64.
- New tools:
- New functionality:
- FFS2, the updated version of the fast file system.
- ftp(1)
now can send cookies loaded from a netscape-like cookiejar, supports
proxies requiring a password, and has a keep-alive option to avoid
overly aggressive control connection dropping.
- pkg_add(1) has been vastly improved. It is more robust, outputs more
consistent error messages, and can deal with a lot more update scenarios
gracefully. It also has much better look-up capabilities for multiple entries
in
PKG_PATH
, stopping at the first directory with suitable
candidates.
- ftp-proxy(8)
is now able to automatically tag packets passing through the pf(4) rule with a supplied name.
- Kernel work queues,
workq_add_task(9),
workq_create(9),
workq_destroy(9) provides a mechanism to defer tasks to a process context when it is impossible to run such a task in the current context.
- ifconfig(8)
now understands IP address/mask in CIDR notation.
- Add IP (v4 and v6) load balancing to carp(4), similar to the ARP balancing.
- sensorsd(8)
now supports a zero-configuration monitoring and has a more intuitive logging
for all sensors that automatically provide sensor state. It also features
advancements in user-specified monitoring, including monitoring of sensors
that are periodically flagged as invalid.
- sensorsd.conf(5)
now supports sensor matching by sensor type, allowing easier configuration.
- The i386 bootloader can now load amd64 kernels.
- The amd64 bootloader can now load i386 kernels.
- Assorted improvements and code cleanup:
- Huge performance improvements in the network stack, including:
- In pf, store routing table ID, queue ID etc directly in the packet header mbuf instead of using
mbuf tags (which use malloc'd memory). This yields a 100% improvement in pf performance.
- Packet forwarding can skip IPSEC stack if no IPSEC flows are defined. This
yields a further 5% improvement in packet forwarding performance.
- Skip TCP/UDP/ICMP/ICMP6 checksumming when not necessary.
This yields a further 10% improvement in pf performance.
- A change in the way the kernel random pool is stirred greatly increases
performance with network interface cards that support interrupt mitigation, especially
on architectures where reading the clock is expensive (such as amd64).
- Enable interrupt holdoff on sis(4)
chips that support it. Significant performance gain for slower CPU devices with sis(4), such as Soekris.
- Large (>1TB) disk and partition support in the disklabel and buffer cache
code and in the userland utilities that manipulate disk blocks. Note
that some parts of the system are not 64-bit disk block clean yet, so partition
larger than 2TB cannot be used at the moment.
- Large (>2^32-1 sectors) SCSI disk sizes now probed.
- Thread support for the Objective-C library (libobjc).
- carp
route handling has been fixed, solving some problems the routing daemons were exhibiting.
- i386 TLB handling improved to avoid possible corruption on Core2Duo processors.
- Rework TLB shootdown code for i386 and amd64, gives fairly large speed
improvements.
- i386 and amd64 use the BIOS disk geometry when creating default disklabels.
- Default disk geometry changed from 64 heads/32 sectors to 255 heads/63 sectors.
- More usb devices with various quirks coaxed to work.
- Archive/Wangtek cartridge tape drives (wt*) no longer supported.
- rcs has improved GNU compatibility.
- make(1) has improved stability of -j option.
- isakmpd(8) now allows key exchange with RSA signature authentication to work with Cisco IOS.
- Fixed isakmpd(8) interop-issues with peers, that start rekeying on port 4500 for NAT-T (e.g. Cisco, Openswan)
- The stability of OpenBSD/alpha has been greatly improved.
- The stability of OpenBSD/hppa has been greatly improved.
- Install/Upgrade process changes:
- Allow the specification of an NTP server during installation.
- Allow no fsck'ing of clean non-root partitions during upgrade.
- Check for INSTALL.<arch> to confirm sets are for the correct architecture.
- Create and format the MSDOS partition for macppc installs in a more flexible and reliable way.
- OpenBGPD 4.2:
- Include support for Four-octet AS Number Space.
- Allow matching on communities using 0 in the AS part.
- Filtering on IPv6 prefixes is now possible.
- Various bugs in the encoding of multiprotocol updates were fixed.
- Allow the use of pkill -HUP bgpd to reload the config.
- bgpctl can filter prefix output by community now
- OpenNTPD 4.2:
- Improved support for timedelta sensors.
- OpenOSPFD 4.2:
- Added support for RFC 3137: OSPF Stub Router Advertisement
- It is possible to specify a carp demote group on interfaces and areas.
- Added support for mapping route labels to AS-external route tags and vice versa.
- Allow the use of pkill -HUP ospfd to reload the config.
- Hoststated 4.2:
- Added support for Layer 7 load balancing (or relay).
- Added support for reloading through hoststatectl or SIGHUP.
- OpenSSH 4.7:
- Prevent
ssh(1)
from using a trusted X11 cookie if creation of an
untrusted cookie fails; found and fixed by Jan Pechanec.
- sshd(8)
in new installations defaults to SSH Protocol 2 only.
Existing installations are unchanged.
- The SSH channel window size has been increased, and both
ssh(1)
and
sshd(8)
now send window updates more aggressively.
These improves performance on high-BDP (Bandwidth Delay Product) networks.
- ssh(1)
and
sshd(8)
now preserve MAC contexts between packets, which
saves 2 hash calls per packet and results in 12-16% speedup for
arcfour256/hmac-md5.
- A new MAC algorithm has been added, UMAC-64 (RFC4418) which is
approximately 20% faster than HMAC-MD5.
- A -K flag was added to
ssh(1)
to set GSSAPIAuthentication=Yes.
- Failure to establish a
ssh(1)
TunnelForward is now treated as a
fatal error when the ExitOnForwardFailure option is set.
- ssh(1)
returns a sensible exit status if the control master goes
away without passing the full exit status. (bz #1261)
- Over 4,500 ports, minor robustness improvements in package tools.
- Many pre-built packages for each architecture:
- i386: 4360
- sparc64: 4205
- alpha: 3779
- sh: 817
|
- amd64: 4283
- powerpc: 4230
- sparc: 3283
- m68k: 1107
|
- arm: 2131
- hppa: 3215
- vax: 108
|
Some highlights:
- Gnome 2.18.
- GNUstep 1.14.
- KDE 3.5.7 and koffice 1.6.3.
- Xfce 4.4.1.
- OpenMotif 2.3.0.
- OpenOffice.org 2.2.1.
- Mozilla Firefox 2.0.0.6.
- PostgreSQL 8.2.4.
- GHC 6.6.1 (amd64 and i386 only)
- As usual, steady improvements in manual pages and other documentation.
- The system includes the following major components from outside suppliers:
- Xenocara (based on X.Org 7.2 + patches, freetype 2.2.1, fontconfig
2.4.2, expat 2.0.0, Mesa 6.5.2, xterm 225 and more)
- Gcc 2.95.3
(+ patches)
and 3.3.5
(+ patches)
- Perl 5.8.8 (+ patches)
- Our improved and secured version of Apache 1.3, with SSL/TLS and DSO support
- OpenSSL 0.9.7j (+ patches)
- Groff 1.15
- Sendmail 8.14.1, with libmilter
- Bind 9.3.4 (+ patches)
- Lynx 2.8.5rel.4 with HTTPS and IPv6 support (+ patches)
- Sudo 1.6.9p4
- Ncurses 5.2
- Latest KAME IPv6
- Heimdal 0.7.2 (+ patches)
- Arla 0.35.7
- Binutils 2.15 (+ patches)
- Gdb 6.3 (+ patches)
How to install
Following this are the instructions which you would have on a piece of
paper if you had purchased a CDROM set instead of doing an alternate
form of install. The instructions for doing an FTP (or other style
of) install are very similar; the CDROM instructions are left intact
so that you can see how much easier it would have been if you had
purchased a CDROM instead.
Please refer to the following files on the three CDROMs or FTP mirror for
extensive details on how to install OpenBSD 4.2 on your machine:
- CD1:4.2/i386/INSTALL.i386
- CD2:4.2/amd64/INSTALL.amd64
- CD2:4.2/macppc/INSTALL.macppc
- CD3:4.2/sparc64/INSTALL.sparc64
- FTP:.../OpenBSD/4.2/alpha/INSTALL.alpha
- FTP:.../OpenBSD/4.2/armish/INSTALL.armish
- FTP:.../OpenBSD/4.2/hp300/INSTALL.hp300
- FTP:.../OpenBSD/4.2/hppa/INSTALL.hppa
- FTP:.../OpenBSD/4.2/landisk/INSTALL.landisk
- FTP:.../OpenBSD/4.2/mac68k/INSTALL.mac68k
- FTP:.../OpenBSD/4.2/mvme68k/INSTALL.mvme68k
- FTP:.../OpenBSD/4.2/mvme88k/INSTALL.mvme88k
- FTP:.../OpenBSD/4.2/sparc/INSTALL.sparc
- FTP:.../OpenBSD/4.2/vax/INSTALL.vax
- FTP:.../OpenBSD/4.2/zaurus/INSTALL.zaurus
Quick installer information for people familiar with OpenBSD, and the
use of the "disklabel -E" command. If you are at all confused when
installing OpenBSD, read the relevant INSTALL.* file as listed above!
OpenBSD/i386:
Play with your BIOS options to enable booting from a CD. The OpenBSD/i386
release is on CD1. If your BIOS does not support booting from CD, you will need
to create a boot floppy to install from. To create a boot floppy write
CD1:4.2/i386/floppy42.fs to a floppy and boot via the floppy drive.
Use CD1:4.2/i386/floppyB42.fs instead for greater SCSI controller
support, or CD1:4.2/i386/floppyC42.fs for better laptop support.
NOTE: some older BIOSes appear to have problems booting CD1.
A workaround can be found on the
4.2 errata page.
If you can't boot from a CD or a floppy disk,
you can install across the network using PXE as described in
the included INSTALL.i386 document.
If you are planning on dual booting OpenBSD with another OS, you will need to
read INSTALL.i386.
To make a boot floppy under MS-DOS, use the "rawrite" utility located
at CD1:4.2/tools/rawrite.exe. To make the boot floppy under a Unix OS,
use the
dd(1)
utility. The following is an example usage of
dd(1),
where the device could be "floppy", "rfd0c", or
"rfd0a".
# dd if=<file> of=/dev/<device> bs=32k
Make sure you use properly formatted perfect floppies with NO BAD BLOCKS or
your install will most likely fail. For more information on creating a boot
floppy and installing OpenBSD/i386 please refer to
FAQ 4.3.1.
OpenBSD/amd64:
The 4.2 release of OpenBSD/amd64 is located on CD2.
Boot from the CD to begin the install - you may need to adjust
your BIOS options first.
If you can't boot from the CD, you can create a boot floppy to install from.
To do this, write CD2:4.2/amd64/floppy42.fs to a floppy, then
boot from the floppy drive.
If you can't boot from a CD or a floppy disk,
you can install across the network using PXE as described in the included
INSTALL.amd64 document.
If you are planning to dual boot OpenBSD with another OS, you will need to
read INSTALL.amd64.
OpenBSD/macppc:
Put CD2 in your CDROM drive and poweron your machine while holding down the
C key until the display turns on and shows OpenBSD/macppc boot.
Alternatively, at the Open Firmware prompt, enter boot cd:,ofwboot
/4.2/macppc/bsd.rd
OpenBSD/sparc64:
Put CD3 in your CDROM drive and type boot cdrom.
If this doesn't work, or if you don't have a CDROM drive, you can write
CD3:4.2/sparc64/floppy42.fs or CD3:4.2/sparc64/floppyB42.fs
(depending on your machine) to a floppy and boot it with boot
floppy. Refer to INSTALL.sparc64 for details.
Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install
will most likely fail.
You can also write CD3:4.2/sparc64/miniroot42.fs to the swap partition on
the disk and boot with boot disk:b.
If nothing works, you can boot over the network as described in INSTALL.sparc64.
OpenBSD/alpha:
Write FTP:4.2/alpha/floppy42.fs or
FTP:4.2/alpha/floppyB42.fs (depending on your machine) to a diskette and
enter boot dva0. Refer to INSTALL.alpha for more details.
Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install
will most likely fail.
OpenBSD/armish:
After connecting a serial port, Thecus can boot directly from the network
either tftp or http. Configure the network using fconfig, reset,
then load bsd.rd, see INSTALL.armish for specific details.
IOData HDL-G can only boot from an EXT-2 partition. Boot into linux
and copy 'boot' and bsd.rd into the first partition on wd0 (hda1)
then load and run bsd.rd, preserving the wd0i (hda1) ext2fs partition.
More details are available in INSTALL.armish.
OpenBSD/hp300:
OpenBSD/hppa:
OpenBSD/landisk:
Write miniroot42.fs to the start of the CF
or disk, and boot normally.
OpenBSD/mac68k:
Boot MacOS as normal and extract the Macside "BSD/Mac68k Booter" utility from
FTP:4.2/mac68k/utils onto your hard disk. Configure the "BSD/Mac68k
Booter" with the location of your bsd.rd kernel and boot into the installer.
Refer to the instructions in INSTALL.mac68k for more details.
OpenBSD/mvme68k:
You can create a bootable installation tape or boot over the network.
The network boot requires a MVME68K BUG version that supports the NIOT
and NBO debugger commands. Follow the instructions in INSTALL.mvme68k
for more details.
OpenBSD/mvme88k:
You can create a bootable installation tape or boot over the network.
The network boot requires a MVME88K BUG version that supports the NIOT
and NBO debugger commands. Follow the instructions in INSTALL.mvme88k
for more details.
OpenBSD/sparc:
Boot from one of the provided install ISO images, using one of the two
commands listed below, depending on the version of your ROM.
ok boot cdrom 4.2/sparc/bsd.rd
or
> b sd(0,6,0)4.2/sparc/bsd.rd
If your SPARC system does not have a CD drive, you can alternatively boot from floppy.
To do so you need to write floppy42.fs to a floppy.
For more information see FAQ 4.3.1.
To boot from the floppy use one of the two commands listed below,
depending on the version of your ROM.
ok boot floppy
or
> b fd()
Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install
will most likely fail.
If your SPARC system doesn't have a floppy drive nor a CD drive, you can either
setup a bootable tape, or install via network, as told in the
INSTALL.sparc file.
OpenBSD/vax:
Boot over the network via mopbooting as described in INSTALL.vax.
OpenBSD/zaurus:
Using the Linux built-in graphical ipkg installer, install the
openbsd42_arm.ipk package. Reboot, then run it. Read INSTALL.zaurus
for a few important details.
Notes about the source code:
src.tar.gz contains a source archive starting at /usr/src. This file
contains everything you need except for the kernel sources, which are
in a separate archive. To extract:
# mkdir -p /usr/src
# cd /usr/src
# tar xvfz /tmp/src.tar.gz
sys.tar.gz contains a source archive starting at /usr/src/sys.
This file contains all the kernel sources you need to rebuild kernels.
To extract:
# mkdir -p /usr/src/sys
# cd /usr/src
# tar xvfz /tmp/sys.tar.gz
Both of these trees are a regular CVS checkout. Using these trees it
is possible to get a head-start on using the anoncvs servers as
described here.
Using these files
results in a much faster initial CVS update than you could expect from
a fresh checkout of the full OpenBSD source tree.
How to upgrade
If you already have an OpenBSD 4.1 system, and do not want to reinstall,
upgrade instructions and advice can be found in the
Upgrade Guide.
Ports Tree
A ports tree archive is also provided. To extract:
# cd /usr
# tar xvfz /tmp/ports.tar.gz
# cd ports
The ports/ subdirectory is a checkout of the OpenBSD ports tree. Go
read the ports page
if you know nothing about ports
at this point. This text is not a manual of how to use ports.
Rather, it is a set of notes meant to kickstart the user on the
OpenBSD ports system.
The ports/ directory represents a CVS (see the manpage for
cvs(1) if
you aren't familiar with CVS) checkout of our ports. As with our complete
source tree, our ports tree is available via anoncvs. So, in
order to keep current with it, you must make the ports/ tree
available on a read-write medium and update the tree with a command
like:
# cd [portsdir]/; cvs -d anoncvs@server.openbsd.org:/cvs update -Pd -rOPENBSD_4_2
[Of course, you must replace the local directory and server name here
with the location of your ports collection and a nearby anoncvs
server.]
Note that most ports are available as packages through FTP. Updated
packages for the 4.2 release will be made available if problems arise.
If you're interested in seeing a port added, would like to help out, or just
would like to know more, the mailing list ports@openbsd.org is a good
place to know.