OpenBSD 4.4
Released Nov 1, 2008
Copyright 1997-2008, Theo de Raadt.
ISBN 978-0-9784475-2-6
4.4 Song: "Trial of the BSD Knights"
- 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.4/ directory on
one of the mirror sites.
- Briefly read the rest of this document.
- Have a look at The 4.4 Errata page for a list
of bugs and workarounds.
- See a detailed log of changes between the
4.3 and 4.4 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.4.
For a comprehensive list, see the changelog leading
to 4.4.
- New/extended platforms:
- OpenBSD/sparc64
Much more platform support. Machines using the UltraSPARC IV/T1/T2
and Fujitsu SPARC64-V/VI/VII are now supported.
- OpenBSD/socppc
For machines based on the Freescale MPC8349E
System-on-Chip (SoC) platform that use Das U-Boot as a boot loader.
- OpenBSD/landisk
Added shared libraries support.
- Improved hardware support, including:
- Several new/improved drivers for sensors, including:
- New fins(4)
driver for Fintek F71805F LPC Super I/O Hardware Monitor.
- New andl(4)
driver for Andigilog aSC7611 Hardware Monitor.
- New kate(4)
driver for AMD K8 embedded temperature sensor.
- New sdtemp(4)
driver for JEDEC JC-42.4 memory module thermal sensors.
- New adtfsm(4)
driver for Analog Devices ADT7462.
- New km(4)
driver for AMD K10 (Phenom, Opteron Barcelona et alia) embedded temperature sensor.
- The it(4)
driver now has better probing procedure.
- The lmtemp(4)
driver now support LM76.
- Support for the Intel G33 and G35 chipsets in
agp(4).
- New lii(4)
driver for Attansic L2 10/100 Ethernet devices.
- Preliminary support for UVC USB webcams:
uvideo(4)
and video(4).
- The openchrome(4)
driver replaces the via X.Org driver for VIA video cards.
- AMD Geode video card driver for X.Org.
- New vmt(4)
driver which implements VMware Tools.
- New auglx(4)
driver for AMD Geode LX CS5536 integrated AC'97 audio.
- New ix(4)
driver for Intel 82598 PCI Express 10Gb Ethernet.
- New acpithinkpad(4)
driver provides additional ACPI support for IBM/Lenovo ThinkPad laptops.
- New acpiasus(4)
driver provides additional ACPI support for ASUS laptops, including the EeePC.
- New gecko(4)
driver supporting the GeckoBOA BC GSC+ port found on some hppa systems.
- New tsec(4)
driver supporting the Freescale Triple Speed Ethernet Controller.
- The re(4)
driver now supports RTL8102E and RTL8168 devices.
- The cas(4)
driver now supports National Semiconductor Saturn devices.
- The pccom(4)
driver has been removed; all platforms use
com(4)
now.
- cardbus(4)
and
pcmcia(4)
now work on most sparc64 machines.
- The udcf(4)
driver now supports mouseCLOCK USB II devices.
- The msk(4)
driver now supports 88E8040T devices.
- The ath(4)
driver now supports many more Atheros wireless devices.
- The ciss(4)
driver now supports HP Smart Array P212, P410, P411, P411i
and P812 devices.
- The uftdi(4)
driver now supports ELV Elektronik and FTDI 2232L devices.
- The umsm(4)
driver now supports Option GlobeTrotter 3G+, Huawei E220
and more HSDPA MSM devices.
- The ubsa(4)
driver now supports ZTE CMDMA MSM devices.
- The axe(4)
driver now supports Apple USB A1277 devices.
- The puc(4)
driver now supports more Netmos devices.
- The mgx(4)
driver now supports 2D acceleration on selected boards.
- The isp(4)
driver firmware for some controllers has been updated.
- The isp(4)
driver no longer hangs during probe on some machines.
- The bge(4)
driver has better support for BCM5704 chipsets in fiber
mode which helps with some blade servers.
- The bge(4)
driver has better support for the BCM5906 chipset on some systems.
- The bge(4)
driver has much better support for PCI Express chipsets
resulting in much faster transmit performance.
- The bge(4)
driver has support for the BCM5714/5715/5780 chipsets using fiber interfaces.
- The bnx(4)
driver has support for the BCM5706/5708 chipsets using fiber interfaces.
- The ral(4)
driver now supports Ralink Technology RT2700 devices.
- Serial ports other than com0 can now be used for console on amd64.
- The serial console on i386 and amd64 has improved compatibility
with server management cards.
- New tools:
- rpc.statd(8),
the host status monitoring daemon for use with the NFS file locking daemon.
- Initial import of
ypldap(8),
a drop-in replacement for ypserv to glue in an LDAP directory for
get{pw,gr}ent family of functions.
- Deprecated slattach(8)
and nmeaattach(8)
in favor of
ldattach(8).
- Import of tcpbench(1), a small TCP benchmarking tool.
- New functionality:
- aucat(1)
is now able to play and record audio in full-duplex,
mix unlimited number of streams, handle up to 16 channels,
resample streams on the fly, support various 24-bit and 32-bit
encodings and does format conversions on the fly.
- httpd(8) now supports IPv6.
- dhcpd(8)
now supports basic synchronization of the /var/db/dhcpd.leases
file to allow running multiple instances for redundancy.
- WPA/WPA2-PSK support for several models of wireless cards.
- rpc.lockd(8)
now supports NLMv4 and does actually do locking.
- ftp(1)
now supports recursive mget transfers.
- ftp(1)
now uses keep alive packets by default.
- ftp(1)
now accepts empty passwords in URLs.
- locate(1) now supports -b flag to perform search only on the last
component of the path.
- Allow cdio(1)
in TAO mode to set the write speed.
- cdio(1)
no longer blanks media twice.
- Add ability in cdio(1)
to determine media capabilities and make it figure out if media supports TAO or blanking.
- Initial version of
softraid(4)
crypto support.
- dhcpd(8)
now groks options tftp-config-file and auto-proxy-script in
dhcpd.conf(5).
- dhclient(8)
option handling much more resistant to abuse.
- dhclient(8)
now aware of interface link state and reacts to changes.
- DIOCRLDINFO, DIOCGPDINFO, and DIOCGPART support added to block devices
previously lacking it.
- disklabel(8)
no longer supports the '-r' option, and obtains all disklabel information via ioctl's.
- disklabel(8)
no longer suggests offsets and sizes that would result in partitions starting or ending
outside the OpenBSD section of the disk.
- disklabel(8)
now correctly reads back the 'vendor' field from text disklabels.
- disklabel(8)
editor mode '?' and 'p' commands are more compact and the 'l' command has been added
to produce previous verbose output.
- I/O's outside the bounds of the RAW_PART are now prevented, allowing
proper detection of invalid I/O's.
- USB floppies now have a valid cylinder count calculated, rather than 0.
- newfs(8)
can now create filesystems on devices with sector sizes other than 512, although
such filesystems cannot yet be read.
- rtadvd(8)
now revokes its privileges and runs as its own user _rtadvd.
- scsi(4)
probing displays less useless verbiage and fewer spurious error messages.
- st(4)
devices can now be detached.
- ATAPI devices are now identified as such, rather than as SCSIn devices.
- SATA tape drives now work.
- scsi(4)
probing now displays the ID of the initiator on the bus.
- scsi(4)
debug capabilities improved to show commands and input or output data as appropriate.
- scsi(4)
probing makes better use of the TEST UNIT READY command to clear errors and allow
successful attachments.
- scsi(4)
probing can now find more fibre channel attached devices.
- Several mbuf pool cache corruption issues were fixed.
- identd(8)
now supports IPv6 in standalone mode.
- cal(1)
now shows week numbers too.
- In pf(4),
implement a sloppy tcpstate tracker which does not look at sequence numbers at all.
- pf(4)
rule accounting now has a counter to record how many states in total have been
created by a rule.
- The kill states feature in
pfctl(8)
now supports two additional match targets: Kill by rule label or state ID.
- Make relayd(8)
use sloppy
pf(4)
state keeping for routed sessions (Direct Server Return).
- Added support in
relayd(8)
for transparent L7 forwarding in relays.
- Added support for dynamic IPv6-to-IPv4 or IPv4-to-IPv6 TCP relays in
relayd(8).
- Improved the DNS mode and use OpenBSD's Id shuffle code from
named(8).
in relayd(8).
- Extend awk(1)
with bitwise operations.
- Updated the display code for
systat(1)
which adds views for
pf(4)
states, rules and queues.
- Imported initial support for IEEE 802.3ad/LACP in
trunk(4).
- Assorted improvements and code cleanup:
- A greatly changed buffer cache subsystem which maps cache pages only
when in use, resulting in improved filesystem performance, and
allowing for the effective use of a much larger buffer cache.
- A greatly improved implementation of
malloc(3), the general purpose memory allocator,
which catches more mistakes, reduces address space fragmentation,
and is faster.
- The
statfs(2) system call has been enhanced to support large
filesystems.
- The strtof(3)
function has been added to libc.
- A lot of work has been done on libm to add several functions towards more
C99 compliance.
- Lots of features have been implemented in OpenCVS, which can now be used
to do some real work.
- New APIs for arc4random(3),
one to fill a buffer with random numbers and the other to return a
uniformly distributed random number without bias.
- Install/Upgrade process changes:
- A new tool
sysmerge(8), derived from the old mergemaster port, makes
it easier to merge configuration files changes during an upgrade.
- Fully support OpenBSD inside extended partitions on i386 and amd64.
- During installation 'dhcp' is now the initial default answer during
network configuration.
- Fetching sets via FTP more reliable due to automatic use of keep alive.
- Fetching sets via NFS no longer hangs retrying a non-functional mount.
- Installation ensures hostname.* files are installed with mode 600.
- Serial console configuration now automatically detects speed.
- Serial console support extended to all architectures.
- Partition size display no longer limited to 32 bit sizes.
- Partition sizes now scaled and formatted to use human readable units.
- ntpd(8)
configuration questions improved.
- Sparc miniroot root disk detection fixed.
- Invocations of
disklabel(8)
by the scripts are now less verbose.
- OpenSSH 5.1:
- New experimental fingerprint ASCII art visualisation system for easier
verification of remote keys.
- Added
chroot(2) support for
sshd(8).
- Added an extended test mode (-T) to
sshd(8).
- Make
ssh(1)
support negation of groups in a "Match group" block.
- Increased the ephemeral key size in protocol1 from 768 to 1024 bits.
- Better tests of primes in /etc/moduli
- Refuse to read .shosts or authorized_keys files that are not regular
files.
- Enable ~ escapes for multiplex slave sessions.
- Support CIDR address matching in Match blocks and authorized_keys
from="..." stanzas.
- Make port forwarding code try additional addresses when connecting to
a destination whose DNS name resolves to more than one address.
- Make the maximum number of
ssh(1)
sessions run-time controllable via MaxSessions in
ssh_config(5).
-
ssh-keyscan(1) now defaults to RSA protocol 2 keys, instead of RSA1.
- Added an extension to sftp protocol to implement
statvfs(3)-like operations and add a df command to
sftp(1).
- Disable execution of ~/.ssh/rc for sessions where a command has been
forced by the sshd_config ForceCommand directive.
- And several bug fixes and performance enhancements.
- Over 5205 ports, minor robustness improvements in package tools.
- Many pre-built packages for each architecture:
- i386: 5033
- sparc64: 4862
- alpha: 4852
|
- sh: 1285
- amd64: 4940
- powerpc: 4466
|
- sparc: 3381
- arm: 4018
- hppa: 1595
| |
Some highlights:
- Gnome 2.20.3.
- GNUstep 1.14.2.
- KDE 3.5.9.
- Mozilla Firefox 2.0.0.16 and 3.0.1.
- Mozilla Thunderbird 2.0.0.16.
- MySQL 5.0.51a
- OpenMotif 2.3.0.
- OpenOffice.org 2.4.1.
- PostgreSQL 8.3.3.
- Xfce 4.4.2.
- 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.3 + patches, freetype 2.3.5, fontconfig
2.4.2, Mesa 7.0.3, xterm 234 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.3, with libmilter
- Bind 9.4.2-P2 (+ patches)
- Lynx 2.8.5rel.4 with HTTPS and IPv6 support (+ patches)
- Sudo 1.6.9p17
- 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.4 on your machine:
- CD1:4.4/i386/INSTALL.i386
- CD2:4.4/amd64/INSTALL.amd64
- CD2:4.4/macppc/INSTALL.macppc
- CD3:4.4/sparc64/INSTALL.sparc64
- FTP:.../OpenBSD/4.4/alpha/INSTALL.alpha
- FTP:.../OpenBSD/4.4/armish/INSTALL.armish
- FTP:.../OpenBSD/4.4/hp300/INSTALL.hp300
- FTP:.../OpenBSD/4.4/hppa/INSTALL.hppa
- FTP:.../OpenBSD/4.4/landisk/INSTALL.landisk
- FTP:.../OpenBSD/4.4/mac68k/INSTALL.mac68k
- FTP:.../OpenBSD/4.4/mvme68k/INSTALL.mvme68k
- FTP:.../OpenBSD/4.4/mvme88k/INSTALL.mvme88k
- FTP:.../OpenBSD/4.4/sgi/INSTALL.sgi
- FTP:.../OpenBSD/4.4/sparc/INSTALL.sparc
- FTP:.../OpenBSD/4.4/vax/INSTALL.vax
- FTP:.../OpenBSD/4.4/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.4/i386/floppy44.fs to a floppy and boot via the floppy drive.
Use CD1:4.4/i386/floppyB44.fs instead for greater SCSI controller
support, or CD1:4.4/i386/floppyC44.fs for better laptop support.
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.4/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.4 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.4/amd64/floppy44.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.4/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.4/sparc64/floppy44.fs or CD3:4.4/sparc64/floppyB44.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.4/sparc64/miniroot44.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.4/alpha/floppy44.fs or
FTP:4.4/alpha/floppyB44.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 miniroot44.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.4/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.4/sparc/bsd.rd
or
> b sd(0,6,0)4.4/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 floppy44.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/sgi:
Burn cd44.iso on a CD-R, put it in the CD drive of your machine and
select Install System Software from the System Maintenance menu.
If your machine doesn't have a CD drive, you can
setup a DHCP/tftp network server, and boot using "bootp()/bsd.rd".
Refer to the instructions in INSTALL.sgi for more details.
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
openbsd44_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.3 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_4
[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.4 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.