1 Updating Information for FreeBSD current users
3 This file is maintained and copyrighted by M. Warner Losh
4 <imp@village.org>. See end of file for further details. For commonly
5 done items, please see the COMMON ITEMS: section later in the file.
7 Items affecting the ports and packages system can be found in
8 /usr/ports/UPDATING. Please read that file before running
11 NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW ON IA64 OR SUN4V:
12 For ia64 the INVARIANTS and INVARIANT_SUPPORT kernel options
13 were left in the GENERIC kernel because the kernel does not
14 work properly without them. For sun4v all of the normal kernel
15 debugging tools present in HEAD were left in place because
16 sun4v support still needs work to become production ready.
19 The latest version of openssl rejects TLS handshakes with DH
20 parameters below 768 bits. sendmail releases prior to 8.15.2
21 (not yet released), defaulted to a 512 bit DH parameter setting
22 for client connections. To improve interoperability, the
23 sendmail default for client connections has been raised to
27 The nve(4) driver for NVIDIA nForce MCP Ethernet adapters has
28 been deprecated and will not be part of FreeBSD 11.0 and later
29 releases. If you use this driver, please consider switching to
30 the nfe(4) driver instead.
33 The behavior of gss_pseudo_random() for the krb5 mechanism
34 has changed, for applications requesting a longer random string
35 than produced by the underlying enctype's pseudo-random() function.
36 In particular, the random string produced from a session key of
37 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
38 be different at the 17th octet and later, after this change.
39 The counter used in the PRF+ construction is now encoded as a
40 big-endian integer in accordance with RFC 4402.
41 __FreeBSD_version is bumped to 804501.
44 Behavior of devfs rules path matching has been changed.
45 Pattern is now always matched against fully qualified devfs
46 path and slash characters must be explicitly matched by
47 slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
48 subdirectories must be reviewed.
51 hastctl(8)'s `status' command output changed to terse one-liner format.
52 Scripts using this should switch to `list' command or be rewritten.
55 Added ZFS TRIM support which is enabled by default. To disable
56 ZFS TRIM support set vfs.zfs.trim.enabled=0 in loader.conf.
58 Creating new ZFS pools and adding new devices to existing pools
59 first performs a full device level TRIM, which can take a significant
60 amount of time. Set the sysctl vfs.zfs.vdev.trim_on_init to 0 to
61 disable this behaviour.
63 ZFS TRIM requires the underlying device support BIO_DELETE which
64 is currently provided by methods such as ATA TRIM and SCSI UNMAP
65 via CAM, which are typically supported by SSD's.
67 Stats for ZFS TRIM can be monitored by looking at the sysctl's
68 under kstat.zfs.misc.zio_trim.
74 `list' command has been added to hastctl(8). For now, it is full
75 equivalent of `status' command.
76 WARNING: in the near future the output of hastctl's status command
77 will change to more terse format. If you use `hastctl status'
78 for parsing in your scripts, switch to `hastctl list'.
81 Fix a bug that allows NFS clients to issue READDIR on files.
84 A new compression method (lz4) has been merged. Please refer to
85 zpool-features(7) for more information.
87 Please refer to the "ZFS notes" section of this file for information
88 on upgrading boot ZFS pools.
91 A new version of ZFS (pool version 5000) has been merged to 8-STABLE.
92 Starting with this version the old system of ZFS pool versioning
93 is superseded by "feature flags". This concept enables forward
94 compatibility against certain future changes in functionality of ZFS
95 pools. The first two read-only compatible "feature flags" for ZFS
96 pools are "com.delphix:async_destroy" and "com.delphix:empty_bpobj".
97 For more information read the new zpool-features(7) manual page.
98 Please refer to the "ZFS notes" section of this file for information
99 on upgrading boot ZFS pools.
102 WITH_CTF can now be specified in src.conf (not recommended, there
103 are some problems with static executables), make.conf (would also
104 affect ports which do not use GNU make and do not override the
105 compile targets) or in the kernel config (via "makeoptions
107 When WITH_CTF was specified there before this was silently ignored,
108 so make sure that WITH_CTF is not used in places which could lead
109 to unwanted behavior.
112 The random(4) support for the VIA hardware random number
113 generator (`PADLOCK') is no longer enabled unconditionally.
114 Add the PADLOCK_RNG option in the custom kernel config if
115 needed. The GENERIC kernels on i386 and amd64 do include the
116 option, so the change only affects the custom kernel
120 The sparc64 ZFS loader has been changed to no longer try to auto-
121 detect ZFS providers based on diskN aliases but now requires these
122 to be explicitly listed in the OFW boot-device environment variable.
128 A new VOP_ADVISE() was added to support posix_fadvise(2). All
129 filesystem modules must be recompiled.
132 A new VOP_ALLOCATE() was added to support posix_fallocate(2). All
133 filesystem modules must be recompiled.
136 The broken amd(4) driver has been replaced with esp(4) in the amd64,
137 i386 and pc98 GENERIC kernel configuration files.
140 A new version of ZFS (version 28) has been merged.
141 This version does not depend on a python library and the
142 sysutils/py-zfs port is not used anymore.
143 For upgrading your boot pool, please read "ZFS notes"
144 in the COMMON ITEMS: section later in this file.
147 IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868
148 compliant, and will now use half of hash for authentication.
149 This will break interoperability with all stacks (including all
150 older FreeBSD versions) who implement
151 draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for
153 The only workaround with such peers is to use another HMAC
154 algorithm for IPsec ("phase 2") authentication.
160 New version of minidump format for amd64 architecture was
161 introduced in r215872. To analyze vmcore files produced by
162 kernels at or after this version you will need updated userland,
163 libkvm actually, that is able to handle the new version.
166 A workaround for a fixed ld bug has been removed in kernel code,
167 so make sure that your system ld is built from sources after
168 revision 211583 from 2010-08-21 (r210245 from 2010-07-19 if
169 building stable/8 kernel on head, r211584 from 2010-08-21 for
170 stable/7). A symptom of incorrect ld version is
171 different addresses for set_pcpu section and __start_set_pcpu
172 symbol in kernel and/or modules.
175 A new version of ZFS (version 15) has been merged.
176 This version uses a python library for the following subcommands:
177 zfs allow, zfs unallow, zfs groupspace, zfs userspace.
178 For full functionality of these commands the following port must
179 be installed: sysutils/py-zfs
185 The config(8) command has been updated to maintain compatibility
186 with config files from 8.0-RELEASE. You will need a new version
187 of config to build kernels (this version can be used from 8.0-RELEASE
188 forward). The buildworld target will generate it, so following
189 the instructions in this file for updating will work glitch-free.
190 Merely doing a make buildkernel without first doing a make buildworld
191 (or kernel-toolchain), or attempting to build a kernel using
192 traidtional methods will generate a config version warning, indicating
196 The rc.firewall and rc.firewall6 were unified, and
197 rc.firewall6 and rc.d/ip6fw were removed.
198 According to the removal of rc.d/ip6fw, ipv6_firewall_* rc
199 variables are obsoleted. Instead, the following new rc
200 variables are added to rc.d/ipfw:
202 firewall_client_net_ipv6, firewall_simple_iif_ipv6,
203 firewall_simple_inet_ipv6, firewall_simple_oif_ipv6,
204 firewall_simple_onet_ipv6
206 The meanings correspond to the relevant IPv4 variables.
209 COMPAT_IA32 has been added as an alias for COMPAT_FREEBSD32. A new
210 version of config(8) is required. The error message when you hit this
211 condition is confusing (COMPAT_FREEBSD32 duplicate option), when it
212 should really say "your config is too old to compile this new kernel."
215 The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32
216 to allow 32-bit compatibility on non-x86 platforms. All kernel
217 configurations on amd64 and ia64 platforms using these options must
218 be modified accordingly.
221 Introduce the kernel thread "deadlock resolver" (which can be enabled
222 via the DEADLKRES option, see NOTES for more details) and the
223 sleepq_type() function for sleepqueues.
229 802.11s D3.03 support was committed. This is incompatible with
230 the previous code, which was based on D3.0.
233 ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for
234 mount(8) and -a option for df(1) to see them.
237 Remove the option STOP_NMI. The default action is now to use NMI
238 only for KDB via the newly introduced function stop_cpus_hard()
239 and maintain stop_cpus() to just use a normal IPI_STOP on ia32
246 Bump the shared library version numbers for all libraries that
247 do not use symbol versioning as part of the 8.0-RELEASE cycle.
248 Bump __FreeBSD_version to 800105.
251 Due to changes in the implementation of virtual network stack
252 support, all network-related kernel modules must be recompiled.
253 As this change breaks the ABI, bump __FreeBSD_version to 800104.
256 The TOE interface to the TCP syncache has been modified to remove struct
257 tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack. The
258 cxgb driver is the only TOE consumer affected by this change, and needs
259 to be recompiled along with the kernel. As this change breaks the ABI,
260 bump __FreeBSD_version to 800103.
263 Padding has been added to struct tcpcb, sackhint and tcpstat in
264 <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
265 maintainig the ABI. However, this change breaks the ABI, so bump
266 __FreeBSD_version to 800102. User space tools that rely on the size of
267 any of these structs (e.g. sockstat) need to be recompiled.
270 The NFS_LEGACYRPC option has been removed along with the old
271 kernel RPC implementation that this option selected. Kernel
272 configurations may need to be adjusted.
275 The network interface device nodes at /dev/net/<interface> have
276 been removed. All ioctl operations can be performed the normal
277 way using routing sockets. The kqueue functionality can
278 generally be replaced with routing sockets.
281 The documentation from the FreeBSD Documentation Project
282 (Handbook, FAQ, etc.) is now installed via packages by
283 sysinstall(8) and under the /usr/local/share/doc/freebsd
284 directory instead of /usr/share/doc.
287 The ABI of various structures related to the SYSV IPC API have
288 been changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43
289 kernel options now all require COMPAT_FREEBSD7.
290 Bump __FreeBSD_version to 800100.
293 Layout of struct vnet has changed as routing related variables
294 were moved to their own Vimage module. Modules need to be
295 recompiled. Bump __FreeBSD_version to 800099.
298 NGROUPS_MAX and NGROUPS have been increased from 16 to 1023
299 and 1024 respectively. As long as no more than 16 groups per
300 process are used, no changes should be visible. When more
301 than 16 groups are used, old binaries may fail if they call
302 getgroups() or getgrouplist() with statically sized storage.
303 Recompiling will work around this, but applications should be
304 modified to use dynamically allocated storage for group arrays
305 as POSIX.1-2008 does not cap an implementation's number of
306 supported groups at NGROUPS_MAX+1 as previous versions did.
308 NFS and portalfs mounts may also be affected as the list of
309 groups is truncated to 16. Users of NFS who use more than 16
310 groups, should take care that negative group permissions are not
311 used on the exported file systems as they will not be reliable
312 unless a GSSAPI based authentication method is used.
315 The compiling option ADAPTIVE_LOCKMGRS has been introduced.
316 This option compiles in the support for adaptive spinning for lockmgrs
317 which want to enable it. The lockinit() function now accepts the
318 flag LK_ADAPTIVE in order to make the lock object subject to
319 adaptive spinning when both held in write and read mode.
322 The layout of the structure returned by IEEE80211_IOC_STA_INFO
323 has changed. User applications that use this ioctl need to be
327 The layout of struct thread has changed. Kernel and modules
331 The layout of structs ifnet, domain, protosw and vnet_net has
332 changed. Kernel modules need to be rebuilt.
333 Bump __FreeBSD_version to 800097.
336 window(1) has been removed from the base system. It can now be
337 installed from ports. The port is called misc/window.
340 The way we are storing and accessing `routing table' entries
341 has changed. Programs reading the FIB, like netstat, need to
345 A new netisr implementation has been added for FreeBSD 8. Network
346 file system modules, such as igmp, ipdivert, and others, should be
348 Bump __FreeBSD_version to 800096.
351 Remove the tunable/sysctl debug.mpsafevfs as its initial purpose
355 Add VOP_ACCESSX(9). File system modules need to be rebuilt.
356 Bump __FreeBSD_version to 800094.
359 Add mnt_xflag field to 'struct mount'. File system modules
361 Bump __FreeBSD_version to 800093.
364 The compiling option ADAPTIVE_SX has been retired while it has been
365 introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
366 The KPI for sx_init_flags() changes as accepting flags:
367 SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag
368 has been introduced in order to handle the reversed logic.
369 Bump __FreeBSD_version to 800092.
372 Add support for hierarchical jails. Remove global securelevel.
373 Bump __FreeBSD_version to 800091.
376 The layout of struct vnet_net has changed, therefore modules
378 Bump __FreeBSD_version to 800090.
381 The newly imported zic(8) produces a new format in the
382 output. Please run tzsetup(8) to install the newly created
383 data to /etc/localtime.
386 The sysctl tree for the usb stack has renamed from hw.usb2.* to
387 hw.usb.* and is now consistent again with previous releases.
390 802.11 monitor mode support was revised and driver api's
391 were changed. Drivers dependent on net80211 now support
392 DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11. No
393 user-visible data structures were changed but applications
394 that use DLT_IEEE802_11 may require changes.
395 Bump __FreeBSD_version to 800088.
398 The layout of the following structs has changed: sysctl_oid,
399 socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
400 vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or
401 panics may be experienced. World rebuild is required for
402 correctly checking networking state from userland.
403 Bump __FreeBSD_version to 800085.
406 MLDv2 and Source-Specific Multicast (SSM) have been merged
407 to the IPv6 stack. VIMAGE hooks are in but not yet used.
408 The implementation of SSM within FreeBSD's IPv6 stack closely
409 follows the IPv4 implementation.
411 For kernel developers:
413 * The most important changes are that the ip6_output() and
414 ip6_input() paths no longer take the IN6_MULTI_LOCK,
415 and this lock has been downgraded to a non-recursive mutex.
417 * As with the changes to the IPv4 stack to support SSM, filtering
418 of inbound multicast traffic must now be performed by transport
419 protocols within the IPv6 stack. This does not apply to TCP and
420 SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
422 * The KPIs used by IPv6 multicast are similar to those used by
423 the IPv4 stack, with the following differences:
424 * im6o_mc_filter() is analogous to imo_multicast_filter().
425 * The legacy KAME entry points in6_joingroup and in6_leavegroup()
426 are shimmed to in6_mc_join() and in6_mc_leave() respectively.
427 * IN6_LOOKUP_MULTI() has been deprecated and removed.
428 * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
429 for MLDv1 have an additional 'timer' argument which is used to
430 jitter the initial membership report for the solicited-node
431 multicast membership on-link.
432 * This is not strictly needed for MLDv2, which already jitters
433 its report transmissions. However, the 'timer' argument is
434 preserved in case MLDv1 is active on the interface.
436 * The KAME linked-list based IPv6 membership implementation has
437 been refactored to use a vector similar to that used by the IPv4
439 Code which maintains a list of its own multicast memberships
440 internally, e.g. carp, has been updated to reflect the new
443 * There is a known Lock Order Reversal (LOR) due to in6_setscope()
444 acquiring the IF_AFDATA_LOCK and being called within ip6_output().
445 Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
446 implementation constraint which needs to be addressed in HEAD.
448 For application developers:
450 * The changes are broadly similar to those made for the IPv4
453 * The use of IPv4 and IPv6 multicast socket options on the same
454 socket, using mapped addresses, HAS NOT been tested or supported.
456 * There are a number of issues with the implementation of various
457 IPv6 multicast APIs which need to be resolved in the API surface
458 before the implementation is fully compatible with KAME userland
459 use, and these are mostly to do with interface index treatment.
461 * The literature available discusses the use of either the delta / ASM
462 API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
463 using setsourcefilter(3)/getsourcefilter(3). For more information
464 please refer to RFC 3768, 'Socket Interface Extensions for
465 Multicast Source Filters'.
467 * Applications which use the published RFC 3678 APIs should be fine.
469 For systems administrators:
471 * The mtest(8) utility has been refactored to support IPv6, in
472 addition to IPv4. Interface addresses are no longer accepted
473 as arguments, their names must be used instead. The utility
474 will map the interface name to its first IPv4 address as
475 returned by getifaddrs(3).
477 * The ifmcstat(8) utility has also been updated to print the MLDv2
478 endpoint state and source filter lists via sysctl(3).
480 * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
481 loopback of IPv6 multicast datagrams by default; it defaults to 1
482 to preserve the existing behaviour. Disabling multicast loopback is
483 recommended for optimal system performance.
485 * The IPv6 MROUTING code has been changed to examine this sysctl
486 instead of attempting to perform a group lookup before looping
487 back forwarded datagrams.
489 Bump __FreeBSD_version to 800084.
492 Implement low-level Bluetooth HCI API.
493 Bump __FreeBSD_version to 800083.
496 The layout of struct malloc_type, used by modules to register new
497 memory allocation types, has changed. Most modules will need to
498 be rebuilt or panics may be experienced.
499 Bump __FreeBSD_version to 800081.
502 Anticipate overflowing inp_flags - add inp_flags2.
503 This changes most offsets in inpcb, so checking v4 connection
504 state will require a world rebuild.
505 Bump __FreeBSD_version to 800080.
508 Add an llentry to struct route and struct route_in6. Modules
509 embedding a struct route will need to be recompiled.
510 Bump __FreeBSD_version to 800079.
513 The size of rt_metrics_lite and by extension rtentry has changed.
514 Networking administration apps will need to be recompiled.
515 The route command now supports show as an alias for get, weighting
516 of routes, sticky and nostick flags to alter the behavior of stateful
518 Bump __FreeBSD_version to 800078.
521 Do not use Giant for kbdmux(4) locking. This is wrong and
522 apparently causing more problems than it solves. This will
523 re-open the issue where interrupt handlers may race with
524 kbdmux(4) in polling mode. Typical symptoms include (but
525 not limited to) duplicated and/or missing characters when
526 low level console functions (such as gets) are used while
527 interrupts are enabled (for example geli password prompt,
528 mountroot prompt etc.). Disabling kbdmux(4) may help.
531 The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
532 kernel modules referencing any of the above need to be recompiled.
533 Bump __FreeBSD_version to 800075.
536 GEOM_PART has become the default partition slicer for storage devices,
537 replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
538 introduces some changes:
540 MSDOS/EBR: the devices created from MSDOS extended partition entries
541 (EBR) can be named differently than with GEOM_MBR and are now symlinks
542 to devices with offset-based names. fstabs may need to be modified.
544 BSD: the "geometry does not match label" warning is harmless in most
545 cases but it points to problems in file system misalignment with
546 disk geometry. The "c" partition is now implicit, covers the whole
547 top-level drive and cannot be (mis)used by users.
549 General: Kernel dumps are now not allowed to be written to devices
550 whose partition types indicate they are meant to be used for file
551 systems (or, in case of MSDOS partitions, as something else than
554 Most of these changes date approximately from 200812.
557 The uscanner(4) driver has been removed from the kernel. This follows
558 Linux removing theirs in 2.6 and making libusb the default interface
562 The multicast forwarding code has been cleaned up. netstat(1)
563 only relies on KVM now for printing bandwidth upcall meters.
564 The IPv4 and IPv6 modules are split into ip_mroute_mod and
565 ip6_mroute_mod respectively. The config(5) options for statically
566 compiling this code remain the same, i.e. 'options MROUTING'.
569 Support for the IFF_NEEDSGIANT network interface flag has been
570 removed, which means that non-MPSAFE network device drivers are no
571 longer supported. In particular, if_ar, if_sr, and network device
572 drivers from the old (legacy) USB stack can no longer be built or
576 POSIX.1 Native Language Support (NLS) has been enabled in libc and
577 a bunch of new language catalog files have also been added.
578 This means that some common libc messages are now localized and
579 they depend on the LC_MESSAGES environmental variable.
582 The k8temp(4) driver has been renamed to amdtemp(4) since
583 support for K10 and K11 CPU families was added.
586 IGMPv3 and Source-Specific Multicast (SSM) have been merged
587 to the IPv4 stack. VIMAGE hooks are in but not yet used.
589 For kernel developers, the most important changes are that the
590 ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
591 and this lock has been downgraded to a non-recursive mutex.
593 Transport protocols (UDP, Raw IP) are now responsible for filtering
594 inbound multicast traffic according to group membership and source
595 filters. The imo_multicast_filter() KPI exists for this purpose.
596 Transports which do not use multicast (SCTP, TCP) already reject
597 multicast by default. Forwarding and receive performance may improve
598 as a mutex acquisition is no longer needed in the ip_input()
599 low-level input path. in_addmulti() and in_delmulti() are shimmed
600 to new KPIs which exist to support SSM in-kernel.
602 For application developers, it is recommended that loopback of
603 multicast datagrams be disabled for best performance, as this
604 will still cause the lock to be taken for each looped-back
605 datagram transmission. The net.inet.ip.mcast.loop sysctl may
606 be tuned to 0 to disable loopback by default; it defaults to 1
607 to preserve the existing behaviour.
609 For systems administrators, to obtain best performance with
610 multicast reception and multiple groups, it is always recommended
611 that a card with a suitably precise hash filter is used. Hash
612 collisions will still result in the lock being taken within the
613 transport protocol input path to check group membership.
615 If deploying FreeBSD in an environment with IGMP snooping switches,
616 it is recommended that the net.inet.igmp.sendlocal sysctl remain
617 enabled; this forces 224.0.0.0/24 group membership to be announced
620 The size of 'struct igmpstat' has changed; netstat needs to be
621 recompiled to reflect this.
622 Bump __FreeBSD_version to 800070.
625 libusb20.so.1 is now installed as libusb.so.1 and the ports system
626 updated to use it. This requires a buildworld/installworld in order to
627 update the library and dependencies (usbconfig, etc). Its advisable to
628 rebuild all ports which uses libusb. More specific directions are given
629 in the ports collection UPDATING file. Any /etc/libmap.conf entries for
630 libusb are no longer required and can be removed.
633 A workaround is committed to allow the creation of System V shared
634 memory segment of size > 2 GB on the 64-bit architectures.
635 Due to a limitation of the existing ABI, the shm_segsz member
636 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
637 wrong for large segments. Note that limits must be explicitly
638 raised to allow such segments to be created.
641 The layout of struct ifnet has changed, requiring a rebuild of all
642 network device driver modules.
645 The /dev handling for the new USB stack has changed, a
646 buildworld/installworld is required for libusb20.
649 The new USB2 stack has now been permanently moved in and all kernel and
650 module names reverted to their previous values (eg, usb, ehci, ohci,
651 ums, ...). The old usb stack can be compiled in by prefixing the name
652 with the letter 'o', the old usb modules have been removed.
653 Updating entry 20090216 for xorg and 20090215 for libmap may still
657 The rc.conf(5) option if_up_delay has been renamed to
658 defaultroute_delay to better reflect its purpose. If you have
659 customized this setting in /etc/rc.conf you need to update it to
663 xorg 7.4 wants to configure its input devices via hald which does not
664 yet work with USB2. If the keyboard/mouse does not work in xorg then
666 Option "AllowEmptyInput" "off"
667 to your ServerLayout section. This will cause X to use the configured
668 kbd and mouse sections from your xorg.conf.
671 The GENERIC kernels for all architectures now default to the new USB2
672 stack. No kernel config options or code have been removed so if a
673 problem arises please report it and optionally revert to the old USB
674 stack. If you are loading USB kernel modules or have a custom kernel
675 that includes GENERIC then ensure that usb names are also changed over,
676 eg uftdi -> usb2_serial_ftdi.
678 Older programs linked against the ports libusb 0.1 need to be
679 redirected to the new stack's libusb20. /etc/libmap.conf can
681 # Map old usb library to new one for usb2 stack
682 libusb-0.1.so.8 libusb20.so.1
685 All USB ethernet devices now attach as interfaces under the name ueN
686 (eg. ue0). This is to provide a predictable name as vendors often
687 change usb chipsets in a product without notice.
690 The ichsmb(4) driver has been changed to require SMBus slave
691 addresses be left-justified (xxxxxxx0b) rather than right-justified.
692 All of the other SMBus controller drivers require left-justified
693 slave addresses, so this change makes all the drivers provide the
697 INET6 statistics (struct ip6stat) was updated.
698 netstat(1) needs to be recompiled.
701 NTFS has been removed from GENERIC kernel on amd64 to match
702 GENERIC on i386. Should not cause any issues since mount_ntfs(8)
703 will load ntfs.ko module automatically when NTFS support is
704 actually needed, unless ntfs.ko is not installed or security
705 level prohibits loading kernel modules. If either is the case,
706 "options NTFS" has to be added into kernel config.
709 TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
710 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
711 800061. User space tools that rely on the size of struct tcpcb in
712 tcp_var.h (e.g. sockstat) need to be recompiled.
715 ng_tty(4) module updated to match the new TTY subsystem.
716 Due to API change, user-level applications must be updated.
717 New API support added to mpd5 CVS and expected to be present
718 in next mpd5.3 release.
721 With __FreeBSD_version 800060 the makefs tool is part of
722 the base system (it was a port).
725 The afdata and ifnet locks have been changed from mutexes to
726 rwlocks, network modules will need to be re-compiled.
729 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
730 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
731 The new code reduced struct rtentry{} by 16 bytes on 32-bit
732 architecture and 40 bytes on 64-bit architecture. The userland
733 applications "arp" and "ndp" have been updated accordingly.
734 The output from "netstat -r" shows only routing entries and
735 none of the L2 information.
738 __FreeBSD_version 800057 marks the switchover from the
739 binary ath hal to source code. Users must add the line:
741 options AH_SUPPORT_AR5416
743 to their kernel config files when specifying:
747 The ath_hal module no longer exists; the code is now compiled
748 together with the driver in the ath module. It is now
749 possible to tailor chip support (i.e. reduce the set of chips
750 and thereby the code size); consult ath_hal(4) for details.
753 __FreeBSD_version 800054 adds memory barriers to
754 <machine/atomic.h>, new interfaces to ifnet to facilitate
755 multiple hardware transmit queues for cards that support
756 them, and a lock-less ring-buffer implementation to
757 enable drivers to more efficiently manage queueing of
761 A new version of ZFS (version 13) has been merged to -HEAD.
762 This version has zpool attribute "listsnapshots" off by
763 default, which means "zfs list" does not show snapshots,
764 and is the same as Solaris behavior.
767 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
770 The uhci, ohci, ehci and slhci USB Host controller drivers have
771 been put into separate modules. If you load the usb module
772 separately through loader.conf you will need to load the
773 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
774 controller add the following to loader.conf:
780 The ABI used by the PMC toolset has changed. Please keep
781 userland (libpmc(3)) and the kernel module (hwpmc(4)) in
785 atapci kernel module now includes only generic PCI ATA
786 driver. AHCI driver moved to ataahci kernel module.
787 All vendor-specific code moved into separate kernel modules:
788 ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek,
789 atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron,
790 atamarvell, atamicron, atanational, atanetcell, atanvidia,
791 atapromise, ataserverworks, atasiliconimage, atasis, atavia
794 The TTY subsystem of the kernel has been replaced by a new
795 implementation, which provides better scalability and an
796 improved driver model. Most common drivers have been migrated to
797 the new TTY subsystem, while others have not. The following
798 drivers have not yet been ported to the new TTY layer:
801 cy, digi, rc, rp, sio
807 ng_h4, ng_tty, ppp, sl, snp
809 Adding these drivers to your kernel configuration file shall
810 cause compilation to fail.
813 ntpd has been upgraded to 4.2.4p5.
816 OpenSSH has been upgraded to 5.1p1.
818 For many years, FreeBSD's version of OpenSSH preferred DSA
819 over RSA for host and user authentication keys. With this
820 upgrade, we've switched to the vendor's default of RSA over
821 DSA. This may cause upgraded clients to warn about unknown
822 host keys even for previously known hosts. Users should
823 follow the usual procedure for verifying host keys before
824 accepting the RSA key.
826 This can be circumvented by setting the "HostKeyAlgorithms"
827 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
830 Please note that the sequence of keys offered for
831 authentication has been changed as well. You may want to
832 specify IdentityFile in a different order to revert this
836 The sio(4) driver has been removed from the i386 and amd64
837 kernel configuration files. This means uart(4) is now the
838 default serial port driver on those platforms as well.
840 To prevent collisions with the sio(4) driver, the uart(4) driver
841 uses different names for its device nodes. This means the
842 onboard serial port will now most likely be called "ttyu0"
843 instead of "ttyd0". You may need to reconfigure applications to
844 use the new device names.
846 When using the serial port as a boot console, be sure to update
847 /boot/device.hints and /etc/ttys before booting the new kernel.
848 If you forget to do so, you can still manually specify the hints
849 at the loader prompt:
851 set hint.uart.0.at="isa"
852 set hint.uart.0.port="0x3F8"
853 set hint.uart.0.flags="0x10"
854 set hint.uart.0.irq="4"
858 The gpt(8) utility has been removed. Use gpart(8) to partition
862 The version that Linuxulator emulates was changed from 2.4.2
863 to 2.6.16. If you experience any problems with Linux binaries
864 please try to set sysctl compat.linux.osrelease to 2.4.2 and
865 if it fixes the problem contact emulation mailing list.
868 ISDN4BSD (I4B) was removed from the src tree. You may need to
869 update a your kernel configuration and remove relevant entries.
872 I have checked in code to support multiple routing tables.
873 See the man pages setfib(1) and setfib(2).
874 This is a hopefully backwards compatible version,
875 but to make use of it you need to compile your kernel
876 with options ROUTETABLES=2 (or more up to 16).
879 The 802.11 wireless support was redone to enable multi-bss
880 operation on devices that are capable. The underlying device
881 is no longer used directly but instead wlanX devices are
882 cloned with ifconfig. This requires changes to rc.conf files.
884 ifconfig_ath0="WPA DHCP"
887 ifconfig_wlan0="WPA DHCP"
888 see rc.conf(5) for more details. In addition, mergemaster of
889 /etc/rc.d is highly recommended. Simultaneous update of userland
890 and kernel wouldn't hurt either.
892 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
893 modules were merged into the base wlan module. All references
894 to these modules (e.g. in kernel config files) must be removed.
897 psm(4) has gained write(2) support in native operation level.
898 Arbitrary commands can be written to /dev/psm%d and status can
899 be read back from it. Therefore, an application is responsible
900 for status validation and error recovery. It is a no-op in
901 other operation levels.
904 Support for KSE threading has been removed from the kernel. To
905 run legacy applications linked against KSE libmap.conf may
906 be used. The following libmap.conf may be used to ensure
907 compatibility with any prior release:
909 libpthread.so.1 libthr.so.1
910 libpthread.so.2 libthr.so.2
911 libkse.so.3 libthr.so.3
914 The layout of struct vmspace has changed. This affects libkvm
915 and any executables that link against libkvm and use the
916 kvm_getprocs() function. In particular, but not exclusively,
917 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
918 The effects are minimal, but it's advisable to upgrade world
922 The latest em driver no longer has support in it for the
923 82575 adapter, this is now moved to the igb driver. The
924 split was done to make new features that are incompatible
925 with older hardware easier to do.
928 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
929 likewise the kernel option is now GEOM_LINUX_LVM.
932 The default NFS mount mode has changed from UDP to TCP for
933 increased reliability. If you rely on (insecurely) NFS
934 mounting across a firewall you may need to update your
938 Belatedly note the addition of m_collapse for compacting
942 The fts(3) structures have been changed to use adequate
943 integer types for their members and so to be able to cope
944 with huge file trees. The old fts(3) ABI is preserved
945 through symbol versioning in libc, so third-party binaries
946 using fts(3) should still work, although they will not take
947 advantage of the extended types. At the same time, some
948 third-party software might fail to build after this change
949 due to unportable assumptions made in its source code about
950 fts(3) structure members. Such software should be fixed
951 by its vendor or, in the worst case, in the ports tree.
952 FreeBSD_version 800015 marks this change for the unlikely
953 case that a portable fix is impossible.
956 To upgrade to -current after this date, you must be running
957 FreeBSD not older than 6.0-RELEASE. Upgrading to -current
958 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
961 The ADAPTIVE_GIANT kernel option has been retired because its
962 functionality is the default now.
965 The AT keyboard emulation of sunkbd(4) has been turned on
966 by default. In order to make the special symbols of the Sun
967 keyboards driven by sunkbd(4) work under X these now have
968 to be configured the same way as Sun USB keyboards driven
969 by ukbd(4) (which also does AT keyboard emulation), f.e.:
971 Option "XkbLayout" "us"
972 Option "XkbRules" "xorg"
973 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
976 It has been decided that it is desirable to provide ABI
977 backwards compatibility to the FreeBSD 4/5/6 versions of the
978 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
979 broken with the introduction of PCI domain support (see the
980 20070930 entry). Unfortunately, this required the ABI of
981 PCIOCGETCONF to be broken again in order to be able to
982 provide backwards compatibility to the old version of that
983 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
984 again. As for prominent ports this affects neither pciutils
985 nor xorg-server this time, the hal port needs to be rebuilt
989 The misnamed kthread_create() and friends have been renamed
990 to kproc_create() etc. Many of the callers already
992 I will return kthread_create() and friends in a while
993 with implementations that actually create threads, not procs.
994 Renaming corresponds with version 800002.
1000 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
1001 WITHOUT_LIBTHR are set.
1004 The PCI code has been made aware of PCI domains. This means that
1005 the location strings as used by pciconf(8) etc are now in the
1006 following format: pci<domain>:<bus>:<device>[:<function>]. It
1007 also means that consumers of <sys/pciio.h> potentially need to
1008 be recompiled; this includes the hal and xorg-server ports.
1011 The caching daemon (cached) was renamed to nscd. nscd.conf
1012 configuration file should be used instead of cached.conf and
1013 nscd_enable, nscd_pidfile and nscd_flags options should be used
1014 instead of cached_enable, cached_pidfile and cached_flags in
1018 The getfacl(1) utility now prints owning user and group name
1019 instead of owning uid and gid in the three line comment header.
1020 This is the same behavior as getfacl(1) on Solaris and Linux.
1023 The new IPsec code is now compiled in using the IPSEC option. The
1024 IPSEC option now requires "device crypto" be defined in your kernel
1025 configuration. The FAST_IPSEC kernel option is now deprecated.
1028 The packet filter (pf) code has been updated to OpenBSD 4.1 Please
1029 note the changed syntax - keep state is now on by default. Also
1030 note the fact that ftp-proxy(8) has been changed from bottom up and
1031 has been moved from libexec to usr/sbin. Changes in the ALTQ
1032 handling also affect users of IPFW's ALTQ capabilities.
1035 Remove KAME IPsec in favor of FAST_IPSEC, which is now the
1036 only IPsec supported by FreeBSD. The new IPsec stack
1037 supports both IPv4 and IPv6. The kernel option will change
1038 after the code changes have settled in. For now the kernel
1039 option IPSEC is deprecated and FAST_IPSEC is the only option, that
1040 will change after some settling time.
1043 The wicontrol(8) utility has been removed from the base system. wi(4)
1044 cards should be configured using ifconfig(8), see the man page for more
1048 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
1049 instead of the nve(4) driver. Please update your configuration
1053 By default, /etc/rc.d/sendmail no longer rebuilds the aliases
1054 database if it is missing or older than the aliases file. If
1055 desired, set the new rc.conf option sendmail_rebuild_aliases
1056 to "YES" to restore that functionality.
1059 The IPv4 multicast socket code has been considerably modified, and
1060 moved to the file sys/netinet/in_mcast.c. Initial support for the
1061 RFC 3678 Source-Specific Multicast Socket API has been added to
1062 the IPv4 network stack.
1064 Strict multicast and broadcast reception is now the default for
1065 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
1066 has now been removed.
1068 The RFC 1724 hack for interface selection has been removed; the use
1069 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
1070 been added to replace it. Consumers such as routed will soon be
1071 updated to reflect this.
1073 These changes affect users who are running routed(8) or rdisc(8)
1074 from the FreeBSD base system on point-to-point or unnumbered
1078 The net80211 layer has changed significantly and all wireless
1079 drivers that depend on it need to be recompiled. Further these
1080 changes require that any program that interacts with the wireless
1081 support in the kernel be recompiled; this includes: ifconfig,
1082 wpa_supplicant, hostapd, and wlanstats. Users must also, for
1083 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
1084 if they use modules for wireless support. These modules implement
1085 scanning support for station and ap modes, respectively. Failure
1086 to load the appropriate module before marking a wireless interface
1087 up will result in a message to the console and the device not
1091 The pam_nologin(8) module ceases to provide an authentication
1092 function and starts providing an account management function.
1093 Consequent changes to /etc/pam.d should be brought in using
1094 mergemaster(8). Third-party files in /usr/local/etc/pam.d may
1095 need manual editing as follows. Locate this line (or similar):
1097 auth required pam_nologin.so no_warn
1099 and change it according to this example:
1101 account required pam_nologin.so no_warn
1103 That is, the first word needs to be changed from "auth" to
1104 "account". The new line can be moved to the account section
1105 within the file for clarity. Not updating pam.conf(5) files
1106 will result in nologin(5) ignored by the respective services.
1109 The ether_ioctl() function has been synchronized with ioctl(2)
1110 and ifnet.if_ioctl. Due to that, the size of one of its arguments
1111 has changed on 64-bit architectures. All kernel modules using
1112 ether_ioctl() need to be rebuilt on such architectures.
1115 Improved INCLUDE_CONFIG_FILE support has been introduced to the
1116 config(8) utility. In order to take advantage of this new
1117 functionality, you are expected to recompile and install
1118 src/usr.sbin/config. If you don't rebuild config(8), and your
1119 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
1120 build will be broken because of a missing "kernconfstring"
1124 Symbol versioning is enabled by default. To disable it, use
1125 option WITHOUT_SYMVER. It is not advisable to attempt to
1126 disable symbol versioning once it is enabled; your installworld
1127 will break because a symbol version-less libc will get installed
1128 before the install tools. As a result, the old install tools,
1129 which previously had symbol dependencies to FBSD_1.0, will fail
1130 because the freshly installed libc will not have them.
1132 The default threading library (providing "libpthread") has been
1133 changed to libthr. If you wish to have libkse as your default,
1134 use option DEFAULT_THREAD_LIB=libkse for the buildworld.
1137 The ABI breakage in sendmail(8)'s libmilter has been repaired
1138 so it is no longer necessary to recompile mail filters (aka,
1139 milters). If you recompiled mail filters after the 20070408
1140 note, it is not necessary to recompile them again.
1143 The new trunk(4) driver has been renamed to lagg(4) as it better
1144 reflects its purpose. ifconfig will need to be recompiled.
1147 sendmail(8) has been updated to version 8.14.1. Mail filters
1148 (aka, milters) compiled against the libmilter included in the
1149 base operating system should be recompiled.
1152 Firmwares for ipw(4) and iwi(4) are now included in the base tree.
1153 In order to use them one must agree to the respective LICENSE in
1154 share/doc/legal and define legal.intel_<name>.license_ack=1 via
1155 loader.conf(5) or kenv(1). Make sure to deinstall the now
1156 deprecated modules from the respective firmware ports.
1159 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
1160 were removed from FreeBSD's libc. These originally came from INRIA
1161 IPv6. Nothing in FreeBSD ever used them. They may be regarded as
1162 deprecated in previous releases.
1163 The AF_LINK support for getnameinfo(3) was merged from NetBSD to
1164 replace it as a more portable (and re-entrant) API.
1167 To support interrupt filtering a modification to the newbus API
1168 has occurred, ABI was broken and __FreeBSD_version was bumped
1169 to 700031. Please make sure that your kernel and modules are in
1170 sync. For more info:
1171 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
1174 The IPv6 multicast forwarding code may now be loaded into GENERIC
1175 kernels by loading the ip_mroute.ko module. This is built into the
1176 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
1177 set; see src.conf(5) for more information.
1180 The output of netstat -r has changed. Without -n, we now only
1181 print a "network name" without the prefix length if the network
1182 address and mask exactly match a Class A/B/C network, and an entry
1183 exists in the nsswitch "networks" map.
1184 With -n, we print the full unabbreviated CIDR network prefix in
1185 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
1186 This change is in preparation for changes such as equal-cost
1187 multipath, and to more generally assist operational deployment
1188 of FreeBSD as a modern IPv4 router.
1191 PIM has been turned on by default in the IPv4 multicast
1192 routing code. The kernel option 'PIM' has now been removed.
1193 PIM is now built by default if option 'MROUTING' is specified.
1194 It may now be loaded into GENERIC kernels by loading the
1195 ip_mroute.ko module.
1198 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
1199 has been removed. Its functionality may be achieved by explicitly
1200 configuring gif(4) interfaces and using the 'phyint' keyword in
1202 XORP does not support source-routed IPv4 multicast tunnels nor the
1203 integrated IPIP tunneling, therefore it is not affected by this
1204 change. The __FreeBSD_version macro has been bumped to 700030.
1207 Support for PCI Message Signalled Interrupts has been
1208 re-enabled in the bge driver, only for those chips which are
1209 believed to support it properly. If there are any problems,
1210 MSI can be disabled completely by setting the
1211 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
1215 Support for PCI Message Signalled Interrupts has been
1216 disabled again in the bge driver. Many revisions of the
1217 hardware fail to support it properly. Support can be
1218 re-enabled by removing the #define of BGE_DISABLE_MSI in
1219 "src/sys/dev/bge/if_bge.c".
1222 Support for PCI Message Signalled Interrupts has been added
1223 to the bge driver. If there are any problems, MSI can be
1224 disabled completely by setting the 'hw.pci.enable_msi' and
1225 'hw.pci.enable_msix' tunables to 0 in the loader.
1228 The removal of several facets of the experimental Threading
1229 system from the kernel means that the proc and thread structures
1230 have changed quite a bit. I suggest all kernel modules that might
1231 reference these structures be recompiled.. Especially the
1235 Sound infrastructure has been updated with various fixes and
1236 improvements. Most of the changes are pretty much transparent,
1237 with exceptions of followings:
1238 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
1239 moved to their own dev sysctl nodes, for example:
1240 hw.snd.pcm0.vchans -> dev.pcm.0.vchans
1241 2) /dev/dspr%d.%d has been deprecated. Each channel now has its
1242 own chardev in the form of "dsp%d.<function>%d", where <function>
1243 is p = playback, r = record and v = virtual, respectively. Users
1244 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
1245 This does not affect those who are using "/dev/dsp".
1248 geom(4)'s gmirror(8) class metadata structure has been
1249 rev'd from v3 to v4. If you update across this point and
1250 your metadata is converted for you, you will not be easily
1251 able to downgrade since the /boot/kernel.old/geom_mirror.ko
1252 kernel module will be unable to read the v4 metadata. You
1253 can resolve this by doing from the loader(8) prompt:
1255 set vfs.root.mountfrom="ufs:/dev/XXX"
1257 where XXX is the root slice of one of the disks that composed
1258 the mirror (i.e.: /dev/ad0s1a). You can then rebuild
1259 the array the same way you built it originally.
1262 The following binaries have been disconnected from the build:
1263 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
1264 and mount_std. The functionality of these programs has been
1265 moved into the mount program. For example, to mount a devfs
1266 filesystem, instead of using mount_devfs, use: "mount -t devfs".
1267 This does not affect entries in /etc/fstab, since entries in
1268 /etc/fstab are always processed with "mount -t fstype".
1271 Support for PCI Message Signalled Interrupts on i386 and amd64
1272 has been added to the kernel and various drivers will soon be
1273 updated to use MSI when it is available. If there are any problems,
1274 MSI can be disabled completely by setting the 'hw.pci.enable_msi'
1275 and 'hw.pci.enable_msix' tunables to 0 in the loader.
1278 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
1279 The lockmgr object layout has been changed as a result of having
1280 a lock_object embedded in it. As a consequence all file system
1281 kernel modules must be re-compiled. The mutex profiling man page
1282 has not yet been updated to reflect this change.
1285 KSE in the kernel has now been made optional and turned on by
1286 default. Use 'nooption KSE' in your kernel config to turn it
1287 off. All kernel modules *must* be recompiled after this change.
1288 There-after, modules from a KSE kernel should be compatible with
1289 modules from a NOKSE kernel due to the temporary padding fields
1290 added to 'struct proc'.
1293 mrouted and its utilities have been removed from the base system.
1296 Some ioctl(2) command codes have changed. Full backward ABI
1297 compatibility is provided if the "options COMPAT_FREEBSD6" is
1298 present in the kernel configuration file. Make sure to add
1299 this option to your kernel config file, or recompile X.Org
1300 and the rest of ports; otherwise they may refuse to work.
1303 tcpslice has been removed from the base system.
1306 The sizes of struct tcpcb (and struct xtcpcb) have changed due to
1307 the rewrite of TCP syncookies. Tools like netstat, sockstat, and
1308 systat needs to be rebuilt.
1311 libpcap updated to v0.9.4 and tcpdump to v3.9.4
1314 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
1315 for IPFIREWALL_FORWARD is now as it was before when it was first
1316 committed and for years after. The behaviour is now ON.
1319 enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
1320 Now it can decrypt files created from different architectures.
1321 Unfortunately, it is no longer able to decrypt a cipher text
1322 generated with an older version on 64 bit architectures.
1323 If you have such a file, you need old utility to decrypt it.
1326 The interface version of the i4b kernel part has changed. So
1327 after updating the kernel sources and compiling a new kernel,
1328 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
1329 be rebuilt, and vice versa.
1332 The XBOX kernel now defaults to the nfe(4) driver instead of
1333 the nve(4) driver. Please update your configuration
1337 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
1338 PCnet family of NICs has been removed. The new le(4) driver serves
1339 as an equivalent but cross-platform replacement with the pcn(4)
1340 driver still providing performance-optimized support for the subset
1341 of AMD Am79C971 PCnet-FAST and greater chips as before.
1344 The machdep.* sysctls and the adjkerntz utility have been
1345 modified a bit. The new adjkerntz utility uses the new
1346 sysctl names and sysctlbyname() calls, so it may be impossible
1347 to run an old /sbin/adjkerntz utility in single-user mode
1348 with a new kernel. Replace the `adjkerntz -i' step before
1349 `make installworld' with:
1351 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
1353 and proceed as usual with the rest of the installworld-stage
1354 steps. Otherwise, you risk installing binaries with their
1355 timestamp set several hours in the future, especially if
1356 you are running with local time set to GMT+X hours.
1359 The ip6fw utility has been removed. The behavior provided by
1360 ip6fw has been in ipfw2 for a good while and the rc.d scripts
1361 have been updated to deal with it. There are some rules that
1362 might not migrate cleanly. Use rc.firewall6 as a template to
1366 The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
1367 attachments have been removed. Make sure to configure scc(4)
1368 on sparc64. Note also that by default puc(4) will use uart(4)
1369 and not sio(4) for serial ports because interrupt handling has
1370 been optimized for multi-port serial cards and only uart(4)
1371 implements the interface to support it.
1374 The scc(4) driver replaces puc(4) for Serial Communications
1375 Controllers (SCCs) like the Siemens SAB82532 and the Zilog
1376 Z8530. On sparc64, it is advised to add scc(4) to the kernel
1377 configuration to make sure that the serial ports remain
1381 Most world/kernel related NO_* build options changed names.
1382 New knobs have common prefixes WITHOUT_*/WITH_* (modelled
1383 after FreeBSD ports) and should be set in /etc/src.conf
1384 (the src.conf(5) manpage is provided). Full backwards
1385 compatibility is maintained for the time being though it's
1386 highly recommended to start moving old options out of the
1387 system-wide /etc/make.conf file into the new /etc/src.conf
1388 while also properly renaming them. More conversions will
1389 likely follow. Posting to current@:
1391 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
1394 The NETSMBCRYPTO kernel option has been retired because its
1395 functionality is always included in NETSMB and smbfs.ko now.
1398 The TDFX_LINUX kernel option was retired and replaced by the
1399 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko
1400 kernel module. Loading it alone should suffice to get 3dfx support
1401 for Linux apps because it will pull in 3dfx.ko and linux.ko through
1405 The 'audit' group was added to support the new auditing functionality
1406 in the base system. Be sure to follow the directions for updating,
1407 including the requirement to run mergemaster -p.
1410 The kernel ABI to file system modules was changed on i386.
1411 Please make sure that your kernel and modules are in sync.
1414 This actually occured some time ago, but installing the kernel
1415 now also installs a bunch of symbol files for the kernel modules.
1416 This increases the size of /boot/kernel to about 67Mbytes. You
1417 will need twice this if you will eventually back this up to kernel.old
1418 on your next install.
1419 If you have a shortage of room in your root partition, you should add
1420 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
1421 to your /etc/make.conf.
1424 libc's malloc implementation has been replaced. This change has the
1425 potential to uncover application bugs that previously went unnoticed.
1426 See the malloc(3) manual page for more details.
1429 The generic netgraph(4) cookie has been changed. If you upgrade
1430 kernel passing this point, you also need to upgrade userland
1431 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
1434 si(4)'s device files now contain the unit number.
1435 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
1438 The kernel ABI was mostly destroyed due to a change in the size
1439 of struct lock_object which is nested in other structures such
1440 as mutexes which are nested in all sorts of other structures.
1441 Make sure your kernel and modules are in sync.
1444 The page coloring algorithm in the VM subsystem was converted
1445 from tuning with kernel options to autotuning. Please remove
1446 any PQ_* option except PQ_NOOPT from your kernel config.
1449 The net80211-related tools in the tools/tools/ath directory
1450 have been moved to tools/tools/net80211 and renamed with a
1451 "wlan" prefix. Scripts that use them should be adjusted
1455 Scripts in the local_startup directories (as defined in
1456 /etc/defaults/rc.conf) that have the new rc.d semantics will
1457 now be run as part of the base system rcorder. If there are
1458 errors or problems with one of these local scripts, it could
1459 cause boot problems. If you encounter such problems, boot in
1460 single user mode, remove that script from the */rc.d directory.
1461 Please report the problem to the port's maintainer, and the
1462 freebsd-ports@freebsd.org mailing list.
1465 The nodev mount option was deprecated in RELENG_6 (where it
1466 was a no-op), and is now unsupported. If you have nodev or dev listed
1467 in /etc/fstab, remove it, otherwise it will result in a mount error.
1470 ABI between ipfw(4) and ipfw(8) has been changed. You need
1471 to rebuild ipfw(8) when rebuilding kernel.
1474 rp(4)'s device files now contain the unit number.
1475 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
1478 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
1479 Its /etc/rc.conf.d configuration file has been `ppp' from
1480 the beginning, and hence there is no need to touch it.
1483 Now most modules get their build-time options from the kernel
1484 configuration file. A few modules still have fixed options
1485 due to their non-conformant implementation, but they will be
1486 corrected eventually. You may need to review the options of
1487 the modules in use, explicitly specify the non-default options
1488 in the kernel configuration file, and rebuild the kernel and
1492 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
1493 to turn polling(4) on your interfaces.
1496 The old bridge(4) implementation was retired. The new
1497 if_bridge(4) serves as a full functional replacement.
1500 The ai_addrlen of a struct addrinfo was changed to a socklen_t
1501 to conform to POSIX-2001. This change broke an ABI
1502 compatibility on 64 bit architecture. You have to recompile
1503 userland programs that use getaddrinfo(3) on 64 bit
1507 RELENG_6 branched here.
1510 The pccard_ifconfig rc.conf variable has been removed and a new
1511 variable, ifconfig_DEFAULT has been introduced. Unlike
1512 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
1513 do not have ifconfig_ifn entries rather than just those in
1514 removable_interfaces.
1517 Some previous versions of PAM have permitted the use of
1518 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
1519 to third party PAM modules in /usr/local/lib. A change has been
1520 made to require the use of absolute paths in order to avoid
1521 ambiguity and dependence on library path configuration, which may
1522 affect existing configurations.
1525 Major changes to network interface API. All drivers must be
1526 recompiled. Drivers not in the base system will need to be
1527 updated to the new APIs.
1530 Changes were made to kinfo_proc in sys/user.h. Please recompile
1531 userland, or commands like `fstat', `pkill', `ps', `top' and `w'
1532 will not behave correctly.
1534 The API and ABI for hwpmc(4) have changed with the addition
1535 of sampling support. Please recompile lib/libpmc(3) and
1536 usr.sbin/{pmcstat,pmccontrol}.
1539 The OpenBSD dhclient was imported in place of the ISC dhclient
1540 and the network interface configuration scripts were updated
1541 accordingly. If you use DHCP to configure your interfaces, you
1542 must now run devd. Also, DNS updating was lost so you will need
1543 to find a workaround if you use this feature.
1545 The '_dhcp' user was added to support the OpenBSD dhclient. Be
1546 sure to run mergemaster -p (like you are supposed to do every time
1550 if_bridge was added to the tree. This has changed struct ifnet.
1551 Please recompile userland and all network related modules.
1554 The n_net of a struct netent was changed to an uint32_t, and
1555 1st argument of getnetbyaddr() was changed to an uint32_t, to
1556 conform to POSIX-2001. These changes broke an ABI
1557 compatibility on 64 bit architecture. With these changes,
1558 shlib major of libpcap was bumped. You have to recompile
1559 userland programs that use getnetbyaddr(3), getnetbyname(3),
1560 getnetent(3) and/or libpcap on 64 bit architecture.
1563 Kernel parsing of extra options on '#!' first lines of shell
1564 scripts has changed. Lines with multiple options likely will
1565 fail after this date. For full details, please see
1566 http://people.freebsd.org/~gad/Updating-20050528.txt
1569 The packet filter (pf) code has been updated to OpenBSD 3.7
1570 Please note the changed anchor syntax and the fact that
1571 authpf(8) now needs a mounted fdescfs(5) to function.
1574 The NO_MIXED_MODE kernel option has been removed from the i386
1575 amd64 platforms as its use has been superceded by the new local
1576 APIC timer code. Any kernel config files containing this option
1580 The on-disk format of LC_CTYPE files was changed to be machine
1581 independent. Please make sure NOT to use NO_CLEAN buildworld
1582 when crossing this point. Crossing this point also requires
1583 recompile or reinstall of all locale depended packages.
1586 The ifi_epoch member of struct if_data has been changed to
1587 contain the uptime at which the interface was created or the
1588 statistics zeroed rather then the wall clock time because
1589 wallclock time may go backwards. This should have no impact
1590 unless an snmp implementation is using this value (I know of
1591 none at this point.)
1594 The acpi_perf and acpi_throttle drivers are now part of the
1595 acpi(4) main module. They are no longer built separately.
1598 The layout of struct image_params has changed. You have to
1599 recompile all compatibility modules (linux, svr4, etc) for use
1600 with the new kernel.
1603 The p4tcc driver has been merged into cpufreq(4). This makes
1604 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or
1605 compile in "device cpufreq" to restore this functionality.
1608 The responsibility of recomputing the file system summary of
1609 a SoftUpdates-enabled dirty volume has been transferred to the
1610 background fsck. A rebuild of fsck(8) utility is recommended
1611 if you have updated the kernel.
1613 To get the old behavior (recompute file system summary at mount
1614 time), you can set vfs.ffs.compute_summary_at_mount=1 before
1615 mounting the new volume.
1618 The cpufreq import is complete. As part of this, the sysctls for
1619 acpi(4) throttling have been removed. The power_profile script
1620 has been updated, so you can use performance/economy_cpu_freq in
1621 rc.conf(5) to set AC on/offline cpu frequencies.
1624 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1625 requires recompiling libnetgraph and userland netgraph utilities.
1628 Support for abbreviated forms of a number of ipfw options is
1629 now deprecated. Warnings are printed to stderr indicating the
1630 correct full form when a match occurs. Some abbreviations may
1631 be supported at a later date based on user feedback. To be
1632 considered for support, abbreviations must be in use prior to
1633 this commit and unlikely to be confused with current key words.
1636 By a popular demand, a lot of NOFOO options were renamed
1637 to NO_FOO (see bsd.compat.mk for a full list). The old
1638 spellings are still supported, but will cause annoying
1639 warnings on stderr. Make sure you upgrade properly (see
1640 the COMMON ITEMS: section later in this file).
1643 Auto-loading of ancillary wlan modules such as wlan_wep has
1644 been temporarily disabled; you need to statically configure
1645 the modules you need into your kernel or explicitly load them
1646 prior to use. Specifically, if you intend to use WEP encryption
1647 with an 802.11 device load/configure wlan_wep; if you want to
1648 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1649 and wlan_xauth as required.
1652 The behaviour of ppp(8) has changed slightly. If lqr is enabled
1653 (``enable lqr''), older versions would revert to LCP ECHO mode on
1654 negotiation failure. Now, ``enable echo'' is required for this
1655 behaviour. The ppp version number has been bumped to 3.4.2 to
1659 The wlan support has been updated to split the crypto support
1660 into separate modules. For static WEP you must configure the
1661 wlan_wep module in your system or build and install the module
1662 in place where it can be loaded (the kernel will auto-load
1663 the module when a wep key is configured).
1666 The ath driver has been updated to split the tx rate control
1667 algorithm into a separate module. You need to include either
1668 ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1671 Support for systems with an 80386 CPU has been removed. Please
1672 use FreeBSD 5.x or earlier on systems with an 80386.
1675 We have had a hack which would mount the root filesystem
1676 R/W if the device were named 'md*'. As part of the vnode
1677 work I'm doing I have had to remove this hack. People
1678 building systems which use preloaded MD root filesystems
1679 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1680 their /etc/rc scripts.
1683 FreeBSD 5.3 shipped here.
1686 The size of struct tcpcb has changed again due to the removal
1687 of RFC1644 T/TCP. You have to recompile userland programs that
1688 read kmem for tcp sockets directly (netstat, sockstat, etc.)
1691 The size of struct tcpcb has changed. You have to recompile
1692 userland programs that read kmem for tcp sockets directly
1693 (netstat, sockstat, etc.)
1696 RELENG_5 branched here. For older entries, please see updating
1697 in the RELENG_5 branch.
1703 Avoid using make -j when upgrading. From time to time in the
1704 past there have been problems using -j with buildworld and/or
1705 installworld. This is especially true when upgrading between
1706 "distant" versions (eg one that cross a major release boundary
1707 or several minor releases, or when several months have passed
1708 on the -current branch).
1710 Sometimes, obscure build problems are the result of environment
1711 poisoning. This can happen because the make utility reads its
1712 environment when searching for values for global variables.
1713 To run your build attempts in an "environmental clean room",
1714 prefix all make commands with 'env -i '. See the env(1) manual
1715 page for more details.
1717 When upgrading from one major version to another it is generally
1718 best to upgrade to the latest code in the currently installed branch
1719 first, then do an upgrade to the new branch. This is the best-tested
1720 upgrade path, and has the highest probability of being successful.
1721 Please try this approach before reporting problems with a major
1726 When upgrading the boot ZFS pool to a new version, always follow
1729 1.) recompile and reinstall the ZFS boot loader and boot block
1730 (this is part of "make buildworld" and "make installworld")
1732 2.) update the ZFS boot block on your boot drive
1734 The following example updates the ZFS boot block on the first
1735 partition (freebsd-boot) of a GPT partitioned drive ad0:
1736 "gpart bootcode -p /boot/gptzfsboot -i 1 ad0"
1738 Non-boot pools do not need these updates.
1742 If you are updating from a prior version of FreeBSD (even one just
1743 a few days old), you should follow this procedure. It is the most
1744 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1746 make kernel-toolchain
1747 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1748 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1750 To test a kernel once
1751 ---------------------
1752 If you just want to boot a kernel once (because you are not sure
1753 if it works, or if you want to boot a known bad kernel to provide
1754 debugging information) run
1755 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1756 nextboot -k testkernel
1758 To just build a kernel when you know that it won't mess you up
1759 --------------------------------------------------------------
1760 This assumes you are already running a 5.X system. Replace
1761 ${arch} with the architecture of your machine (e.g. "i386",
1762 "alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1764 cd src/sys/${arch}/conf
1765 config KERNEL_NAME_HERE
1766 cd ../compile/KERNEL_NAME_HERE
1771 If this fails, go to the "To build a kernel" section.
1773 To rebuild everything and install it on the current system.
1774 -----------------------------------------------------------
1775 # Note: sometimes if you are running current you gotta do more than
1776 # is listed here if you are upgrading from a really old current.
1778 <make sure you have good level 0 dumps>
1780 make kernel KERNCONF=YOUR_KERNEL_HERE
1782 <reboot in single user> [3]
1790 To cross-install current onto a separate partition
1791 --------------------------------------------------
1792 # In this approach we use a separate partition to hold
1793 # current's root, 'usr', and 'var' directories. A partition
1794 # holding "/", "/usr" and "/var" should be about 2GB in
1797 <make sure you have good level 0 dumps>
1800 make buildkernel KERNCONF=YOUR_KERNEL_HERE
1801 <maybe newfs current's root partition>
1802 <mount current's root partition on directory ${CURRENT_ROOT}>
1803 make installworld DESTDIR=${CURRENT_ROOT}
1804 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1805 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1806 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd
1807 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1808 <reboot into current>
1809 <do a "native" rebuild/install as described in the previous section>
1810 <maybe install compatibility libraries from ports/misc/compat*>
1814 To upgrade in-place from 5.x-stable to current
1815 ----------------------------------------------
1816 <make sure you have good level 0 dumps>
1818 make kernel KERNCONF=YOUR_KERNEL_HERE [8]
1820 <reboot in single user> [3]
1827 Make sure that you've read the UPDATING file to understand the
1828 tweaks to various things you need. At this point in the life
1829 cycle of current, things change often and you are on your own
1830 to cope. The defaults can also change, so please read ALL of
1831 the UPDATING entries.
1833 Also, if you are tracking -current, you must be subscribed to
1834 freebsd-current@freebsd.org. Make sure that before you update
1835 your sources that you have read and understood all the recent
1836 messages there. If in doubt, please track -stable which has
1837 much fewer pitfalls.
1839 [1] If you have third party modules, such as vmware, you
1840 should disable them at this point so they don't crash your
1843 [3] From the bootblocks, boot -s, and then do
1848 adjkerntz -i # if CMOS is wall time
1849 Also, when doing a major release upgrade, it is required that
1850 you boot into single user mode to do the installworld.
1852 [4] Note: This step is non-optional. Failure to do this step
1853 can result in a significant reduction in the functionality of the
1854 system. Attempting to do it by hand is not recommended and those
1855 that pursue this avenue should read this file carefully, as well
1856 as the archives of freebsd-current and freebsd-hackers mailing lists
1857 for potential gotchas.
1859 [5] Usually this step is a noop. However, from time to time
1860 you may need to do this if you get unknown user in the following
1861 step. It never hurts to do it all the time. You may need to
1862 install a new mergemaster (cd src/usr.sbin/mergemaster && make
1863 install) after the buildworld before this step if you last updated
1864 from current before 20020224 or from -stable before 20020408.
1866 [6] This only deletes old files and directories. Old libraries
1867 can be deleted by "make delete-old-libs", but you have to make
1868 sure that no program is using those libraries anymore.
1870 [8] In order to have a kernel that can run the 4.x binaries
1871 needed to do an installworld, you must include the COMPAT_FREEBSD4
1872 option in your kernel. Failure to do so may leave you with a system
1873 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1874 is required to run the 5.x binaries on more recent kernels.
1876 Make sure that you merge any new devices from GENERIC since the
1877 last time you updated your kernel config file.
1879 [9] When checking out sources, you must include the -P flag to have
1880 cvs prune empty directories.
1882 If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1883 "?=" instead of the "=" assignment operator, so that buildworld can
1884 override the CPUTYPE if it needs to.
1886 MAKEOBJDIRPREFIX must be defined in an environment variable, and
1887 not on the command line, or in /etc/make.conf. buildworld will
1888 warn if it is improperly defined.
1891 This file contains a list, in reverse chronological order, of major
1892 breakages in tracking -current. It is not guaranteed to be a complete
1893 list of such breakages, and only contains entries since October 16, 2004.
1894 If you need to see UPDATING entries from before that date, you will need
1895 to fetch an UPDATING file from an older FreeBSD release.
1897 Copyright information:
1899 Copyright 1998-2005 M. Warner Losh. All Rights Reserved.
1901 Redistribution, publication, translation and use, with or without
1902 modification, in full or in part, in any form or format of this
1903 document are permitted without further permission from the author.
1905 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1906 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1907 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1908 DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1909 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1910 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1911 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1912 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1913 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1914 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1915 POSSIBILITY OF SUCH DAMAGE.
1917 If you find this document useful, and you want to, you may buy the
1920 Contact Warner Losh if you have any questions about your use of