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.
18 20091203: p1 FreeBSD-SA-09:15.ssl, FreeBSD-SA-09:16.rtld,
19 FreeBSD-SA-09:17.freebsd-update
20 Disable SSL renegotiation in order to protect against a serious
21 protocol flaw. [09:15]
23 Correctly handle failures from unsetenv resulting from a corrupt
24 environment in rtld-elf. [09:16]
26 Fix permissions in freebsd-update in order to prevent leakage of
27 sensitive files. [09:17]
33 802.11s D3.03 support was committed. This is incompatible with
34 the previous code, which was based on D3.0.
37 ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for
38 mount(8) and -a option for df(1) to see them.
41 Remove the option STOP_NMI. The default action is now to use NMI
42 only for KDB via the newly introduced function stop_cpus_hard()
43 and maintain stop_cpus() to just use a normal IPI_STOP on ia32
50 Bump the shared library version numbers for all libraries that
51 do not use symbol versioning as part of the 8.0-RELEASE cycle.
52 Bump __FreeBSD_version to 800105.
55 Due to changes in the implementation of virtual network stack
56 support, all network-related kernel modules must be recompiled.
57 As this change breaks the ABI, bump __FreeBSD_version to 800104.
60 The TOE interface to the TCP syncache has been modified to remove struct
61 tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack. The
62 cxgb driver is the only TOE consumer affected by this change, and needs
63 to be recompiled along with the kernel. As this change breaks the ABI,
64 bump __FreeBSD_version to 800103.
67 Padding has been added to struct tcpcb, sackhint and tcpstat in
68 <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
69 maintainig the ABI. However, this change breaks the ABI, so bump
70 __FreeBSD_version to 800102. User space tools that rely on the size of
71 any of these structs (e.g. sockstat) need to be recompiled.
74 The NFS_LEGACYRPC option has been removed along with the old
75 kernel RPC implementation that this option selected. Kernel
76 configurations may need to be adjusted.
79 The network interface device nodes at /dev/net/<interface> have
80 been removed. All ioctl operations can be performed the normal
81 way using routing sockets. The kqueue functionality can
82 generally be replaced with routing sockets.
85 The documentation from the FreeBSD Documentation Project
86 (Handbook, FAQ, etc.) is now installed via packages by
87 sysinstall(8) and under the /usr/local/share/doc/freebsd
88 directory instead of /usr/share/doc.
91 The ABI of various structures related to the SYSV IPC API have
92 been changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43
93 kernel options now all require COMPAT_FREEBSD7.
94 Bump __FreeBSD_version to 800100.
97 Layout of struct vnet has changed as routing related variables
98 were moved to their own Vimage module. Modules need to be
99 recompiled. Bump __FreeBSD_version to 800099.
102 NGROUPS_MAX and NGROUPS have been increased from 16 to 1023
103 and 1024 respectively. As long as no more than 16 groups per
104 process are used, no changes should be visible. When more
105 than 16 groups are used, old binaries may fail if they call
106 getgroups() or getgrouplist() with statically sized storage.
107 Recompiling will work around this, but applications should be
108 modified to use dynamically allocated storage for group arrays
109 as POSIX.1-2008 does not cap an implementation's number of
110 supported groups at NGROUPS_MAX+1 as previous versions did.
112 NFS and portalfs mounts may also be affected as the list of
113 groups is truncated to 16. Users of NFS who use more than 16
114 groups, should take care that negative group permissions are not
115 used on the exported file systems as they will not be reliable
116 unless a GSSAPI based authentication method is used.
119 The compiling option ADAPTIVE_LOCKMGRS has been introduced.
120 This option compiles in the support for adaptive spinning for lockmgrs
121 which want to enable it. The lockinit() function now accepts the
122 flag LK_ADAPTIVE in order to make the lock object subject to
123 adaptive spinning when both held in write and read mode.
126 The layout of the structure returned by IEEE80211_IOC_STA_INFO
127 has changed. User applications that use this ioctl need to be
131 The layout of struct thread has changed. Kernel and modules
135 The layout of structs ifnet, domain, protosw and vnet_net has
136 changed. Kernel modules need to be rebuilt.
137 Bump __FreeBSD_version to 800097.
140 window(1) has been removed from the base system. It can now be
141 installed from ports. The port is called misc/window.
144 The way we are storing and accessing `routing table' entries
145 has changed. Programs reading the FIB, like netstat, need to
149 A new netisr implementation has been added for FreeBSD 8. Network
150 file system modules, such as igmp, ipdivert, and others, should be
152 Bump __FreeBSD_version to 800096.
155 Remove the tunable/sysctl debug.mpsafevfs as its initial purpose
159 Add VOP_ACCESSX(9). File system modules need to be rebuilt.
160 Bump __FreeBSD_version to 800094.
163 Add mnt_xflag field to 'struct mount'. File system modules
165 Bump __FreeBSD_version to 800093.
168 The compiling option ADAPTIVE_SX has been retired while it has been
169 introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
170 The KPI for sx_init_flags() changes as accepting flags:
171 SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag
172 has been introduced in order to handle the reversed logic.
173 Bump __FreeBSD_version to 800092.
176 Add support for hierarchical jails. Remove global securelevel.
177 Bump __FreeBSD_version to 800091.
180 The layout of struct vnet_net has changed, therefore modules
182 Bump __FreeBSD_version to 800090.
185 The newly imported zic(8) produces a new format in the
186 output. Please run tzsetup(8) to install the newly created
187 data to /etc/localtime.
190 The sysctl tree for the usb stack has renamed from hw.usb2.* to
191 hw.usb.* and is now consistent again with previous releases.
194 802.11 monitor mode support was revised and driver api's
195 were changed. Drivers dependent on net80211 now support
196 DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11. No
197 user-visible data structures were changed but applications
198 that use DLT_IEEE802_11 may require changes.
199 Bump __FreeBSD_version to 800088.
202 The layout of the following structs has changed: sysctl_oid,
203 socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
204 vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or
205 panics may be experienced. World rebuild is required for
206 correctly checking networking state from userland.
207 Bump __FreeBSD_version to 800085.
210 MLDv2 and Source-Specific Multicast (SSM) have been merged
211 to the IPv6 stack. VIMAGE hooks are in but not yet used.
212 The implementation of SSM within FreeBSD's IPv6 stack closely
213 follows the IPv4 implementation.
215 For kernel developers:
217 * The most important changes are that the ip6_output() and
218 ip6_input() paths no longer take the IN6_MULTI_LOCK,
219 and this lock has been downgraded to a non-recursive mutex.
221 * As with the changes to the IPv4 stack to support SSM, filtering
222 of inbound multicast traffic must now be performed by transport
223 protocols within the IPv6 stack. This does not apply to TCP and
224 SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
226 * The KPIs used by IPv6 multicast are similar to those used by
227 the IPv4 stack, with the following differences:
228 * im6o_mc_filter() is analogous to imo_multicast_filter().
229 * The legacy KAME entry points in6_joingroup and in6_leavegroup()
230 are shimmed to in6_mc_join() and in6_mc_leave() respectively.
231 * IN6_LOOKUP_MULTI() has been deprecated and removed.
232 * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
233 for MLDv1 have an additional 'timer' argument which is used to
234 jitter the initial membership report for the solicited-node
235 multicast membership on-link.
236 * This is not strictly needed for MLDv2, which already jitters
237 its report transmissions. However, the 'timer' argument is
238 preserved in case MLDv1 is active on the interface.
240 * The KAME linked-list based IPv6 membership implementation has
241 been refactored to use a vector similar to that used by the IPv4
243 Code which maintains a list of its own multicast memberships
244 internally, e.g. carp, has been updated to reflect the new
247 * There is a known Lock Order Reversal (LOR) due to in6_setscope()
248 acquiring the IF_AFDATA_LOCK and being called within ip6_output().
249 Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
250 implementation constraint which needs to be addressed in HEAD.
252 For application developers:
254 * The changes are broadly similar to those made for the IPv4
257 * The use of IPv4 and IPv6 multicast socket options on the same
258 socket, using mapped addresses, HAS NOT been tested or supported.
260 * There are a number of issues with the implementation of various
261 IPv6 multicast APIs which need to be resolved in the API surface
262 before the implementation is fully compatible with KAME userland
263 use, and these are mostly to do with interface index treatment.
265 * The literature available discusses the use of either the delta / ASM
266 API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
267 using setsourcefilter(3)/getsourcefilter(3). For more information
268 please refer to RFC 3768, 'Socket Interface Extensions for
269 Multicast Source Filters'.
271 * Applications which use the published RFC 3678 APIs should be fine.
273 For systems administrators:
275 * The mtest(8) utility has been refactored to support IPv6, in
276 addition to IPv4. Interface addresses are no longer accepted
277 as arguments, their names must be used instead. The utility
278 will map the interface name to its first IPv4 address as
279 returned by getifaddrs(3).
281 * The ifmcstat(8) utility has also been updated to print the MLDv2
282 endpoint state and source filter lists via sysctl(3).
284 * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
285 loopback of IPv6 multicast datagrams by default; it defaults to 1
286 to preserve the existing behaviour. Disabling multicast loopback is
287 recommended for optimal system performance.
289 * The IPv6 MROUTING code has been changed to examine this sysctl
290 instead of attempting to perform a group lookup before looping
291 back forwarded datagrams.
293 Bump __FreeBSD_version to 800084.
296 Implement low-level Bluetooth HCI API.
297 Bump __FreeBSD_version to 800083.
300 The layout of struct malloc_type, used by modules to register new
301 memory allocation types, has changed. Most modules will need to
302 be rebuilt or panics may be experienced.
303 Bump __FreeBSD_version to 800081.
306 Anticipate overflowing inp_flags - add inp_flags2.
307 This changes most offsets in inpcb, so checking v4 connection
308 state will require a world rebuild.
309 Bump __FreeBSD_version to 800080.
312 Add an llentry to struct route and struct route_in6. Modules
313 embedding a struct route will need to be recompiled.
314 Bump __FreeBSD_version to 800079.
317 The size of rt_metrics_lite and by extension rtentry has changed.
318 Networking administration apps will need to be recompiled.
319 The route command now supports show as an alias for get, weighting
320 of routes, sticky and nostick flags to alter the behavior of stateful
322 Bump __FreeBSD_version to 800078.
325 Do not use Giant for kbdmux(4) locking. This is wrong and
326 apparently causing more problems than it solves. This will
327 re-open the issue where interrupt handlers may race with
328 kbdmux(4) in polling mode. Typical symptoms include (but
329 not limited to) duplicated and/or missing characters when
330 low level console functions (such as gets) are used while
331 interrupts are enabled (for example geli password prompt,
332 mountroot prompt etc.). Disabling kbdmux(4) may help.
335 The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
336 kernel modules referencing any of the above need to be recompiled.
337 Bump __FreeBSD_version to 800075.
340 GEOM_PART has become the default partition slicer for storage devices,
341 replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
342 introduces some changes:
344 MSDOS/EBR: the devices created from MSDOS extended partition entries
345 (EBR) can be named differently than with GEOM_MBR and are now symlinks
346 to devices with offset-based names. fstabs may need to be modified.
348 BSD: the "geometry does not match label" warning is harmless in most
349 cases but it points to problems in file system misalignment with
350 disk geometry. The "c" partition is now implicit, covers the whole
351 top-level drive and cannot be (mis)used by users.
353 General: Kernel dumps are now not allowed to be written to devices
354 whose partition types indicate they are meant to be used for file
355 systems (or, in case of MSDOS partitions, as something else than
358 Most of these changes date approximately from 200812.
361 The uscanner(4) driver has been removed from the kernel. This follows
362 Linux removing theirs in 2.6 and making libusb the default interface
366 The multicast forwarding code has been cleaned up. netstat(1)
367 only relies on KVM now for printing bandwidth upcall meters.
368 The IPv4 and IPv6 modules are split into ip_mroute_mod and
369 ip6_mroute_mod respectively. The config(5) options for statically
370 compiling this code remain the same, i.e. 'options MROUTING'.
373 Support for the IFF_NEEDSGIANT network interface flag has been
374 removed, which means that non-MPSAFE network device drivers are no
375 longer supported. In particular, if_ar, if_sr, and network device
376 drivers from the old (legacy) USB stack can no longer be built or
380 POSIX.1 Native Language Support (NLS) has been enabled in libc and
381 a bunch of new language catalog files have also been added.
382 This means that some common libc messages are now localized and
383 they depend on the LC_MESSAGES environmental variable.
386 The k8temp(4) driver has been renamed to amdtemp(4) since
387 support for K10 and K11 CPU families was added.
390 IGMPv3 and Source-Specific Multicast (SSM) have been merged
391 to the IPv4 stack. VIMAGE hooks are in but not yet used.
393 For kernel developers, the most important changes are that the
394 ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
395 and this lock has been downgraded to a non-recursive mutex.
397 Transport protocols (UDP, Raw IP) are now responsible for filtering
398 inbound multicast traffic according to group membership and source
399 filters. The imo_multicast_filter() KPI exists for this purpose.
400 Transports which do not use multicast (SCTP, TCP) already reject
401 multicast by default. Forwarding and receive performance may improve
402 as a mutex acquisition is no longer needed in the ip_input()
403 low-level input path. in_addmulti() and in_delmulti() are shimmed
404 to new KPIs which exist to support SSM in-kernel.
406 For application developers, it is recommended that loopback of
407 multicast datagrams be disabled for best performance, as this
408 will still cause the lock to be taken for each looped-back
409 datagram transmission. The net.inet.ip.mcast.loop sysctl may
410 be tuned to 0 to disable loopback by default; it defaults to 1
411 to preserve the existing behaviour.
413 For systems administrators, to obtain best performance with
414 multicast reception and multiple groups, it is always recommended
415 that a card with a suitably precise hash filter is used. Hash
416 collisions will still result in the lock being taken within the
417 transport protocol input path to check group membership.
419 If deploying FreeBSD in an environment with IGMP snooping switches,
420 it is recommended that the net.inet.igmp.sendlocal sysctl remain
421 enabled; this forces 224.0.0.0/24 group membership to be announced
424 The size of 'struct igmpstat' has changed; netstat needs to be
425 recompiled to reflect this.
426 Bump __FreeBSD_version to 800070.
429 libusb20.so.1 is now installed as libusb.so.1 and the ports system
430 updated to use it. This requires a buildworld/installworld in order to
431 update the library and dependencies (usbconfig, etc). Its advisable to
432 rebuild all ports which uses libusb. More specific directions are given
433 in the ports collection UPDATING file. Any /etc/libmap.conf entries for
434 libusb are no longer required and can be removed.
437 A workaround is committed to allow the creation of System V shared
438 memory segment of size > 2 GB on the 64-bit architectures.
439 Due to a limitation of the existing ABI, the shm_segsz member
440 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
441 wrong for large segments. Note that limits must be explicitly
442 raised to allow such segments to be created.
445 The layout of struct ifnet has changed, requiring a rebuild of all
446 network device driver modules.
449 The /dev handling for the new USB stack has changed, a
450 buildworld/installworld is required for libusb20.
453 The new USB2 stack has now been permanently moved in and all kernel and
454 module names reverted to their previous values (eg, usb, ehci, ohci,
455 ums, ...). The old usb stack can be compiled in by prefixing the name
456 with the letter 'o', the old usb modules have been removed.
457 Updating entry 20090216 for xorg and 20090215 for libmap may still
461 The rc.conf(5) option if_up_delay has been renamed to
462 defaultroute_delay to better reflect its purpose. If you have
463 customized this setting in /etc/rc.conf you need to update it to
467 xorg 7.4 wants to configure its input devices via hald which does not
468 yet work with USB2. If the keyboard/mouse does not work in xorg then
470 Option "AllowEmptyInput" "off"
471 to your ServerLayout section. This will cause X to use the configured
472 kbd and mouse sections from your xorg.conf.
475 The GENERIC kernels for all architectures now default to the new USB2
476 stack. No kernel config options or code have been removed so if a
477 problem arises please report it and optionally revert to the old USB
478 stack. If you are loading USB kernel modules or have a custom kernel
479 that includes GENERIC then ensure that usb names are also changed over,
480 eg uftdi -> usb2_serial_ftdi.
482 Older programs linked against the ports libusb 0.1 need to be
483 redirected to the new stack's libusb20. /etc/libmap.conf can
485 # Map old usb library to new one for usb2 stack
486 libusb-0.1.so.8 libusb20.so.1
489 The ichsmb(4) driver has been changed to require SMBus slave
490 addresses be left-justified (xxxxxxx0b) rather than right-justified.
491 All of the other SMBus controller drivers require left-justified
492 slave addresses, so this change makes all the drivers provide the
496 INET6 statistics (struct ip6stat) was updated.
497 netstat(1) needs to be recompiled.
500 NTFS has been removed from GENERIC kernel on amd64 to match
501 GENERIC on i386. Should not cause any issues since mount_ntfs(8)
502 will load ntfs.ko module automatically when NTFS support is
503 actually needed, unless ntfs.ko is not installed or security
504 level prohibits loading kernel modules. If either is the case,
505 "options NTFS" has to be added into kernel config.
508 TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
509 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
510 800061. User space tools that rely on the size of struct tcpcb in
511 tcp_var.h (e.g. sockstat) need to be recompiled.
514 ng_tty(4) module updated to match the new TTY subsystem.
515 Due to API change, user-level applications must be updated.
516 New API support added to mpd5 CVS and expected to be present
517 in next mpd5.3 release.
520 With __FreeBSD_version 800060 the makefs tool is part of
521 the base system (it was a port).
524 The afdata and ifnet locks have been changed from mutexes to
525 rwlocks, network modules will need to be re-compiled.
528 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
529 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
530 The new code reduced struct rtentry{} by 16 bytes on 32-bit
531 architecture and 40 bytes on 64-bit architecture. The userland
532 applications "arp" and "ndp" have been updated accordingly.
533 The output from "netstat -r" shows only routing entries and
534 none of the L2 information.
537 __FreeBSD_version 800057 marks the switchover from the
538 binary ath hal to source code. Users must add the line:
540 options AH_SUPPORT_AR5416
542 to their kernel config files when specifying:
546 The ath_hal module no longer exists; the code is now compiled
547 together with the driver in the ath module. It is now
548 possible to tailor chip support (i.e. reduce the set of chips
549 and thereby the code size); consult ath_hal(4) for details.
552 __FreeBSD_version 800054 adds memory barriers to
553 <machine/atomic.h>, new interfaces to ifnet to facilitate
554 multiple hardware transmit queues for cards that support
555 them, and a lock-less ring-buffer implementation to
556 enable drivers to more efficiently manage queueing of
560 A new version of ZFS (version 13) has been merged to -HEAD.
561 This version has zpool attribute "listsnapshots" off by
562 default, which means "zfs list" does not show snapshots,
563 and is the same as Solaris behavior.
566 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
569 The uhci, ohci, ehci and slhci USB Host controller drivers have
570 been put into separate modules. If you load the usb module
571 separately through loader.conf you will need to load the
572 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
573 controller add the following to loader.conf:
579 The ABI used by the PMC toolset has changed. Please keep
580 userland (libpmc(3)) and the kernel module (hwpmc(4)) in
584 atapci kernel module now includes only generic PCI ATA
585 driver. AHCI driver moved to ataahci kernel module.
586 All vendor-specific code moved into separate kernel modules:
587 ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek,
588 atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron,
589 atamarvell, atamicron, atanational, atanetcell, atanvidia,
590 atapromise, ataserverworks, atasiliconimage, atasis, atavia
593 The TTY subsystem of the kernel has been replaced by a new
594 implementation, which provides better scalability and an
595 improved driver model. Most common drivers have been migrated to
596 the new TTY subsystem, while others have not. The following
597 drivers have not yet been ported to the new TTY layer:
600 cy, digi, rc, rp, sio
606 ng_h4, ng_tty, ppp, sl, snp
608 Adding these drivers to your kernel configuration file shall
609 cause compilation to fail.
612 ntpd has been upgraded to 4.2.4p5.
615 OpenSSH has been upgraded to 5.1p1.
617 For many years, FreeBSD's version of OpenSSH preferred DSA
618 over RSA for host and user authentication keys. With this
619 upgrade, we've switched to the vendor's default of RSA over
620 DSA. This may cause upgraded clients to warn about unknown
621 host keys even for previously known hosts. Users should
622 follow the usual procedure for verifying host keys before
623 accepting the RSA key.
625 This can be circumvented by setting the "HostKeyAlgorithms"
626 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
629 Please note that the sequence of keys offered for
630 authentication has been changed as well. You may want to
631 specify IdentityFile in a different order to revert this
635 The sio(4) driver has been removed from the i386 and amd64
636 kernel configuration files. This means uart(4) is now the
637 default serial port driver on those platforms as well.
639 To prevent collisions with the sio(4) driver, the uart(4) driver
640 uses different names for its device nodes. This means the
641 onboard serial port will now most likely be called "ttyu0"
642 instead of "ttyd0". You may need to reconfigure applications to
643 use the new device names.
645 When using the serial port as a boot console, be sure to update
646 /boot/device.hints and /etc/ttys before booting the new kernel.
647 If you forget to do so, you can still manually specify the hints
648 at the loader prompt:
650 set hint.uart.0.at="isa"
651 set hint.uart.0.port="0x3F8"
652 set hint.uart.0.flags="0x10"
653 set hint.uart.0.irq="4"
657 The gpt(8) utility has been removed. Use gpart(8) to partition
661 The version that Linuxulator emulates was changed from 2.4.2
662 to 2.6.16. If you experience any problems with Linux binaries
663 please try to set sysctl compat.linux.osrelease to 2.4.2 and
664 if it fixes the problem contact emulation mailing list.
667 ISDN4BSD (I4B) was removed from the src tree. You may need to
668 update a your kernel configuration and remove relevant entries.
671 I have checked in code to support multiple routing tables.
672 See the man pages setfib(1) and setfib(2).
673 This is a hopefully backwards compatible version,
674 but to make use of it you need to compile your kernel
675 with options ROUTETABLES=2 (or more up to 16).
678 The 802.11 wireless support was redone to enable multi-bss
679 operation on devices that are capable. The underlying device
680 is no longer used directly but instead wlanX devices are
681 cloned with ifconfig. This requires changes to rc.conf files.
683 ifconfig_ath0="WPA DHCP"
686 ifconfig_wlan0="WPA DHCP"
687 see rc.conf(5) for more details. In addition, mergemaster of
688 /etc/rc.d is highly recommended. Simultaneous update of userland
689 and kernel wouldn't hurt either.
691 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
692 modules were merged into the base wlan module. All references
693 to these modules (e.g. in kernel config files) must be removed.
696 psm(4) has gained write(2) support in native operation level.
697 Arbitrary commands can be written to /dev/psm%d and status can
698 be read back from it. Therefore, an application is responsible
699 for status validation and error recovery. It is a no-op in
700 other operation levels.
703 Support for KSE threading has been removed from the kernel. To
704 run legacy applications linked against KSE libmap.conf may
705 be used. The following libmap.conf may be used to ensure
706 compatibility with any prior release:
708 libpthread.so.1 libthr.so.1
709 libpthread.so.2 libthr.so.2
710 libkse.so.3 libthr.so.3
713 The layout of struct vmspace has changed. This affects libkvm
714 and any executables that link against libkvm and use the
715 kvm_getprocs() function. In particular, but not exclusively,
716 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
717 The effects are minimal, but it's advisable to upgrade world
721 The latest em driver no longer has support in it for the
722 82575 adapter, this is now moved to the igb driver. The
723 split was done to make new features that are incompatible
724 with older hardware easier to do.
727 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
728 likewise the kernel option is now GEOM_LINUX_LVM.
731 The default NFS mount mode has changed from UDP to TCP for
732 increased reliability. If you rely on (insecurely) NFS
733 mounting across a firewall you may need to update your
737 Belatedly note the addition of m_collapse for compacting
741 The fts(3) structures have been changed to use adequate
742 integer types for their members and so to be able to cope
743 with huge file trees. The old fts(3) ABI is preserved
744 through symbol versioning in libc, so third-party binaries
745 using fts(3) should still work, although they will not take
746 advantage of the extended types. At the same time, some
747 third-party software might fail to build after this change
748 due to unportable assumptions made in its source code about
749 fts(3) structure members. Such software should be fixed
750 by its vendor or, in the worst case, in the ports tree.
751 FreeBSD_version 800015 marks this change for the unlikely
752 case that a portable fix is impossible.
755 To upgrade to -current after this date, you must be running
756 FreeBSD not older than 6.0-RELEASE. Upgrading to -current
757 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
760 The ADAPTIVE_GIANT kernel option has been retired because its
761 functionality is the default now.
764 The AT keyboard emulation of sunkbd(4) has been turned on
765 by default. In order to make the special symbols of the Sun
766 keyboards driven by sunkbd(4) work under X these now have
767 to be configured the same way as Sun USB keyboards driven
768 by ukbd(4) (which also does AT keyboard emulation), f.e.:
770 Option "XkbLayout" "us"
771 Option "XkbRules" "xorg"
772 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
775 It has been decided that it is desirable to provide ABI
776 backwards compatibility to the FreeBSD 4/5/6 versions of the
777 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
778 broken with the introduction of PCI domain support (see the
779 20070930 entry). Unfortunately, this required the ABI of
780 PCIOCGETCONF to be broken again in order to be able to
781 provide backwards compatibility to the old version of that
782 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
783 again. As for prominent ports this affects neither pciutils
784 nor xorg-server this time, the hal port needs to be rebuilt
788 The misnamed kthread_create() and friends have been renamed
789 to kproc_create() etc. Many of the callers already
791 I will return kthread_create() and friends in a while
792 with implementations that actually create threads, not procs.
793 Renaming corresponds with version 800002.
799 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
800 WITHOUT_LIBTHR are set.
803 The PCI code has been made aware of PCI domains. This means that
804 the location strings as used by pciconf(8) etc are now in the
805 following format: pci<domain>:<bus>:<device>[:<function>]. It
806 also means that consumers of <sys/pciio.h> potentially need to
807 be recompiled; this includes the hal and xorg-server ports.
810 The caching daemon (cached) was renamed to nscd. nscd.conf
811 configuration file should be used instead of cached.conf and
812 nscd_enable, nscd_pidfile and nscd_flags options should be used
813 instead of cached_enable, cached_pidfile and cached_flags in
817 The getfacl(1) utility now prints owning user and group name
818 instead of owning uid and gid in the three line comment header.
819 This is the same behavior as getfacl(1) on Solaris and Linux.
822 The new IPsec code is now compiled in using the IPSEC option. The
823 IPSEC option now requires "device crypto" be defined in your kernel
824 configuration. The FAST_IPSEC kernel option is now deprecated.
827 The packet filter (pf) code has been updated to OpenBSD 4.1 Please
828 note the changed syntax - keep state is now on by default. Also
829 note the fact that ftp-proxy(8) has been changed from bottom up and
830 has been moved from libexec to usr/sbin. Changes in the ALTQ
831 handling also affect users of IPFW's ALTQ capabilities.
834 Remove KAME IPsec in favor of FAST_IPSEC, which is now the
835 only IPsec supported by FreeBSD. The new IPsec stack
836 supports both IPv4 and IPv6. The kernel option will change
837 after the code changes have settled in. For now the kernel
838 option IPSEC is deprecated and FAST_IPSEC is the only option, that
839 will change after some settling time.
842 The wicontrol(8) utility has been removed from the base system. wi(4)
843 cards should be configured using ifconfig(8), see the man page for more
847 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
848 instead of the nve(4) driver. Please update your configuration
852 By default, /etc/rc.d/sendmail no longer rebuilds the aliases
853 database if it is missing or older than the aliases file. If
854 desired, set the new rc.conf option sendmail_rebuild_aliases
855 to "YES" to restore that functionality.
858 The IPv4 multicast socket code has been considerably modified, and
859 moved to the file sys/netinet/in_mcast.c. Initial support for the
860 RFC 3678 Source-Specific Multicast Socket API has been added to
861 the IPv4 network stack.
863 Strict multicast and broadcast reception is now the default for
864 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
865 has now been removed.
867 The RFC 1724 hack for interface selection has been removed; the use
868 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
869 been added to replace it. Consumers such as routed will soon be
870 updated to reflect this.
872 These changes affect users who are running routed(8) or rdisc(8)
873 from the FreeBSD base system on point-to-point or unnumbered
877 The net80211 layer has changed significantly and all wireless
878 drivers that depend on it need to be recompiled. Further these
879 changes require that any program that interacts with the wireless
880 support in the kernel be recompiled; this includes: ifconfig,
881 wpa_supplicant, hostapd, and wlanstats. Users must also, for
882 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
883 if they use modules for wireless support. These modules implement
884 scanning support for station and ap modes, respectively. Failure
885 to load the appropriate module before marking a wireless interface
886 up will result in a message to the console and the device not
890 The pam_nologin(8) module ceases to provide an authentication
891 function and starts providing an account management function.
892 Consequent changes to /etc/pam.d should be brought in using
893 mergemaster(8). Third-party files in /usr/local/etc/pam.d may
894 need manual editing as follows. Locate this line (or similar):
896 auth required pam_nologin.so no_warn
898 and change it according to this example:
900 account required pam_nologin.so no_warn
902 That is, the first word needs to be changed from "auth" to
903 "account". The new line can be moved to the account section
904 within the file for clarity. Not updating pam.conf(5) files
905 will result in nologin(5) ignored by the respective services.
908 The ether_ioctl() function has been synchronized with ioctl(2)
909 and ifnet.if_ioctl. Due to that, the size of one of its arguments
910 has changed on 64-bit architectures. All kernel modules using
911 ether_ioctl() need to be rebuilt on such architectures.
914 Improved INCLUDE_CONFIG_FILE support has been introduced to the
915 config(8) utility. In order to take advantage of this new
916 functionality, you are expected to recompile and install
917 src/usr.sbin/config. If you don't rebuild config(8), and your
918 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
919 build will be broken because of a missing "kernconfstring"
923 Symbol versioning is enabled by default. To disable it, use
924 option WITHOUT_SYMVER. It is not advisable to attempt to
925 disable symbol versioning once it is enabled; your installworld
926 will break because a symbol version-less libc will get installed
927 before the install tools. As a result, the old install tools,
928 which previously had symbol dependencies to FBSD_1.0, will fail
929 because the freshly installed libc will not have them.
931 The default threading library (providing "libpthread") has been
932 changed to libthr. If you wish to have libkse as your default,
933 use option DEFAULT_THREAD_LIB=libkse for the buildworld.
936 The ABI breakage in sendmail(8)'s libmilter has been repaired
937 so it is no longer necessary to recompile mail filters (aka,
938 milters). If you recompiled mail filters after the 20070408
939 note, it is not necessary to recompile them again.
942 The new trunk(4) driver has been renamed to lagg(4) as it better
943 reflects its purpose. ifconfig will need to be recompiled.
946 sendmail(8) has been updated to version 8.14.1. Mail filters
947 (aka, milters) compiled against the libmilter included in the
948 base operating system should be recompiled.
951 Firmwares for ipw(4) and iwi(4) are now included in the base tree.
952 In order to use them one must agree to the respective LICENSE in
953 share/doc/legal and define legal.intel_<name>.license_ack=1 via
954 loader.conf(5) or kenv(1). Make sure to deinstall the now
955 deprecated modules from the respective firmware ports.
958 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
959 were removed from FreeBSD's libc. These originally came from INRIA
960 IPv6. Nothing in FreeBSD ever used them. They may be regarded as
961 deprecated in previous releases.
962 The AF_LINK support for getnameinfo(3) was merged from NetBSD to
963 replace it as a more portable (and re-entrant) API.
966 To support interrupt filtering a modification to the newbus API
967 has occurred, ABI was broken and __FreeBSD_version was bumped
968 to 700031. Please make sure that your kernel and modules are in
970 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
973 The IPv6 multicast forwarding code may now be loaded into GENERIC
974 kernels by loading the ip_mroute.ko module. This is built into the
975 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
976 set; see src.conf(5) for more information.
979 The output of netstat -r has changed. Without -n, we now only
980 print a "network name" without the prefix length if the network
981 address and mask exactly match a Class A/B/C network, and an entry
982 exists in the nsswitch "networks" map.
983 With -n, we print the full unabbreviated CIDR network prefix in
984 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
985 This change is in preparation for changes such as equal-cost
986 multipath, and to more generally assist operational deployment
987 of FreeBSD as a modern IPv4 router.
990 PIM has been turned on by default in the IPv4 multicast
991 routing code. The kernel option 'PIM' has now been removed.
992 PIM is now built by default if option 'MROUTING' is specified.
993 It may now be loaded into GENERIC kernels by loading the
997 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
998 has been removed. Its functionality may be achieved by explicitly
999 configuring gif(4) interfaces and using the 'phyint' keyword in
1001 XORP does not support source-routed IPv4 multicast tunnels nor the
1002 integrated IPIP tunneling, therefore it is not affected by this
1003 change. The __FreeBSD_version macro has been bumped to 700030.
1006 Support for PCI Message Signalled Interrupts has been
1007 re-enabled in the bge driver, only for those chips which are
1008 believed to support it properly. If there are any problems,
1009 MSI can be disabled completely by setting the
1010 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
1014 Support for PCI Message Signalled Interrupts has been
1015 disabled again in the bge driver. Many revisions of the
1016 hardware fail to support it properly. Support can be
1017 re-enabled by removing the #define of BGE_DISABLE_MSI in
1018 "src/sys/dev/bge/if_bge.c".
1021 Support for PCI Message Signalled Interrupts has been added
1022 to the bge driver. If there are any problems, MSI can be
1023 disabled completely by setting the 'hw.pci.enable_msi' and
1024 'hw.pci.enable_msix' tunables to 0 in the loader.
1027 The removal of several facets of the experimental Threading
1028 system from the kernel means that the proc and thread structures
1029 have changed quite a bit. I suggest all kernel modules that might
1030 reference these structures be recompiled.. Especially the
1034 Sound infrastructure has been updated with various fixes and
1035 improvements. Most of the changes are pretty much transparent,
1036 with exceptions of followings:
1037 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
1038 moved to their own dev sysctl nodes, for example:
1039 hw.snd.pcm0.vchans -> dev.pcm.0.vchans
1040 2) /dev/dspr%d.%d has been deprecated. Each channel now has its
1041 own chardev in the form of "dsp%d.<function>%d", where <function>
1042 is p = playback, r = record and v = virtual, respectively. Users
1043 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
1044 This does not affect those who are using "/dev/dsp".
1047 geom(4)'s gmirror(8) class metadata structure has been
1048 rev'd from v3 to v4. If you update across this point and
1049 your metadata is converted for you, you will not be easily
1050 able to downgrade since the /boot/kernel.old/geom_mirror.ko
1051 kernel module will be unable to read the v4 metadata. You
1052 can resolve this by doing from the loader(8) prompt:
1054 set vfs.root.mountfrom="ufs:/dev/XXX"
1056 where XXX is the root slice of one of the disks that composed
1057 the mirror (i.e.: /dev/ad0s1a). You can then rebuild
1058 the array the same way you built it originally.
1061 The following binaries have been disconnected from the build:
1062 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
1063 and mount_std. The functionality of these programs has been
1064 moved into the mount program. For example, to mount a devfs
1065 filesystem, instead of using mount_devfs, use: "mount -t devfs".
1066 This does not affect entries in /etc/fstab, since entries in
1067 /etc/fstab are always processed with "mount -t fstype".
1070 Support for PCI Message Signalled Interrupts on i386 and amd64
1071 has been added to the kernel and various drivers will soon be
1072 updated to use MSI when it is available. If there are any problems,
1073 MSI can be disabled completely by setting the 'hw.pci.enable_msi'
1074 and 'hw.pci.enable_msix' tunables to 0 in the loader.
1077 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
1078 The lockmgr object layout has been changed as a result of having
1079 a lock_object embedded in it. As a consequence all file system
1080 kernel modules must be re-compiled. The mutex profiling man page
1081 has not yet been updated to reflect this change.
1084 KSE in the kernel has now been made optional and turned on by
1085 default. Use 'nooption KSE' in your kernel config to turn it
1086 off. All kernel modules *must* be recompiled after this change.
1087 There-after, modules from a KSE kernel should be compatible with
1088 modules from a NOKSE kernel due to the temporary padding fields
1089 added to 'struct proc'.
1092 mrouted and its utilities have been removed from the base system.
1095 Some ioctl(2) command codes have changed. Full backward ABI
1096 compatibility is provided if the "options COMPAT_FREEBSD6" is
1097 present in the kernel configuration file. Make sure to add
1098 this option to your kernel config file, or recompile X.Org
1099 and the rest of ports; otherwise they may refuse to work.
1102 tcpslice has been removed from the base system.
1105 The sizes of struct tcpcb (and struct xtcpcb) have changed due to
1106 the rewrite of TCP syncookies. Tools like netstat, sockstat, and
1107 systat needs to be rebuilt.
1110 libpcap updated to v0.9.4 and tcpdump to v3.9.4
1113 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
1114 for IPFIREWALL_FORWARD is now as it was before when it was first
1115 committed and for years after. The behaviour is now ON.
1118 enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
1119 Now it can decrypt files created from different architectures.
1120 Unfortunately, it is no longer able to decrypt a cipher text
1121 generated with an older version on 64 bit architectures.
1122 If you have such a file, you need old utility to decrypt it.
1125 The interface version of the i4b kernel part has changed. So
1126 after updating the kernel sources and compiling a new kernel,
1127 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
1128 be rebuilt, and vice versa.
1131 The XBOX kernel now defaults to the nfe(4) driver instead of
1132 the nve(4) driver. Please update your configuration
1136 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
1137 PCnet family of NICs has been removed. The new le(4) driver serves
1138 as an equivalent but cross-platform replacement with the pcn(4)
1139 driver still providing performance-optimized support for the subset
1140 of AMD Am79C971 PCnet-FAST and greater chips as before.
1143 The machdep.* sysctls and the adjkerntz utility have been
1144 modified a bit. The new adjkerntz utility uses the new
1145 sysctl names and sysctlbyname() calls, so it may be impossible
1146 to run an old /sbin/adjkerntz utility in single-user mode
1147 with a new kernel. Replace the `adjkerntz -i' step before
1148 `make installworld' with:
1150 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
1152 and proceed as usual with the rest of the installworld-stage
1153 steps. Otherwise, you risk installing binaries with their
1154 timestamp set several hours in the future, especially if
1155 you are running with local time set to GMT+X hours.
1158 The ip6fw utility has been removed. The behavior provided by
1159 ip6fw has been in ipfw2 for a good while and the rc.d scripts
1160 have been updated to deal with it. There are some rules that
1161 might not migrate cleanly. Use rc.firewall6 as a template to
1165 The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
1166 attachments have been removed. Make sure to configure scc(4)
1167 on sparc64. Note also that by default puc(4) will use uart(4)
1168 and not sio(4) for serial ports because interrupt handling has
1169 been optimized for multi-port serial cards and only uart(4)
1170 implements the interface to support it.
1173 The scc(4) driver replaces puc(4) for Serial Communications
1174 Controllers (SCCs) like the Siemens SAB82532 and the Zilog
1175 Z8530. On sparc64, it is advised to add scc(4) to the kernel
1176 configuration to make sure that the serial ports remain
1180 Most world/kernel related NO_* build options changed names.
1181 New knobs have common prefixes WITHOUT_*/WITH_* (modelled
1182 after FreeBSD ports) and should be set in /etc/src.conf
1183 (the src.conf(5) manpage is provided). Full backwards
1184 compatibility is maintained for the time being though it's
1185 highly recommended to start moving old options out of the
1186 system-wide /etc/make.conf file into the new /etc/src.conf
1187 while also properly renaming them. More conversions will
1188 likely follow. Posting to current@:
1190 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
1193 The NETSMBCRYPTO kernel option has been retired because its
1194 functionality is always included in NETSMB and smbfs.ko now.
1197 The TDFX_LINUX kernel option was retired and replaced by the
1198 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko
1199 kernel module. Loading it alone should suffice to get 3dfx support
1200 for Linux apps because it will pull in 3dfx.ko and linux.ko through
1204 The 'audit' group was added to support the new auditing functionality
1205 in the base system. Be sure to follow the directions for updating,
1206 including the requirement to run mergemaster -p.
1209 The kernel ABI to file system modules was changed on i386.
1210 Please make sure that your kernel and modules are in sync.
1213 This actually occured some time ago, but installing the kernel
1214 now also installs a bunch of symbol files for the kernel modules.
1215 This increases the size of /boot/kernel to about 67Mbytes. You
1216 will need twice this if you will eventually back this up to kernel.old
1217 on your next install.
1218 If you have a shortage of room in your root partition, you should add
1219 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
1220 to your /etc/make.conf.
1223 libc's malloc implementation has been replaced. This change has the
1224 potential to uncover application bugs that previously went unnoticed.
1225 See the malloc(3) manual page for more details.
1228 The generic netgraph(4) cookie has been changed. If you upgrade
1229 kernel passing this point, you also need to upgrade userland
1230 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
1233 si(4)'s device files now contain the unit number.
1234 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
1237 The kernel ABI was mostly destroyed due to a change in the size
1238 of struct lock_object which is nested in other structures such
1239 as mutexes which are nested in all sorts of other structures.
1240 Make sure your kernel and modules are in sync.
1243 The page coloring algorithm in the VM subsystem was converted
1244 from tuning with kernel options to autotuning. Please remove
1245 any PQ_* option except PQ_NOOPT from your kernel config.
1248 The net80211-related tools in the tools/tools/ath directory
1249 have been moved to tools/tools/net80211 and renamed with a
1250 "wlan" prefix. Scripts that use them should be adjusted
1254 Scripts in the local_startup directories (as defined in
1255 /etc/defaults/rc.conf) that have the new rc.d semantics will
1256 now be run as part of the base system rcorder. If there are
1257 errors or problems with one of these local scripts, it could
1258 cause boot problems. If you encounter such problems, boot in
1259 single user mode, remove that script from the */rc.d directory.
1260 Please report the problem to the port's maintainer, and the
1261 freebsd-ports@freebsd.org mailing list.
1264 The nodev mount option was deprecated in RELENG_6 (where it
1265 was a no-op), and is now unsupported. If you have nodev or dev listed
1266 in /etc/fstab, remove it, otherwise it will result in a mount error.
1269 ABI between ipfw(4) and ipfw(8) has been changed. You need
1270 to rebuild ipfw(8) when rebuilding kernel.
1273 rp(4)'s device files now contain the unit number.
1274 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
1277 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
1278 Its /etc/rc.conf.d configuration file has been `ppp' from
1279 the beginning, and hence there is no need to touch it.
1282 Now most modules get their build-time options from the kernel
1283 configuration file. A few modules still have fixed options
1284 due to their non-conformant implementation, but they will be
1285 corrected eventually. You may need to review the options of
1286 the modules in use, explicitly specify the non-default options
1287 in the kernel configuration file, and rebuild the kernel and
1291 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
1292 to turn polling(4) on your interfaces.
1295 The old bridge(4) implementation was retired. The new
1296 if_bridge(4) serves as a full functional replacement.
1299 The ai_addrlen of a struct addrinfo was changed to a socklen_t
1300 to conform to POSIX-2001. This change broke an ABI
1301 compatibility on 64 bit architecture. You have to recompile
1302 userland programs that use getaddrinfo(3) on 64 bit
1306 RELENG_6 branched here.
1309 The pccard_ifconfig rc.conf variable has been removed and a new
1310 variable, ifconfig_DEFAULT has been introduced. Unlike
1311 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
1312 do not have ifconfig_ifn entries rather than just those in
1313 removable_interfaces.
1316 Some previous versions of PAM have permitted the use of
1317 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
1318 to third party PAM modules in /usr/local/lib. A change has been
1319 made to require the use of absolute paths in order to avoid
1320 ambiguity and dependence on library path configuration, which may
1321 affect existing configurations.
1324 Major changes to network interface API. All drivers must be
1325 recompiled. Drivers not in the base system will need to be
1326 updated to the new APIs.
1329 Changes were made to kinfo_proc in sys/user.h. Please recompile
1330 userland, or commands like `fstat', `pkill', `ps', `top' and `w'
1331 will not behave correctly.
1333 The API and ABI for hwpmc(4) have changed with the addition
1334 of sampling support. Please recompile lib/libpmc(3) and
1335 usr.sbin/{pmcstat,pmccontrol}.
1338 The OpenBSD dhclient was imported in place of the ISC dhclient
1339 and the network interface configuration scripts were updated
1340 accordingly. If you use DHCP to configure your interfaces, you
1341 must now run devd. Also, DNS updating was lost so you will need
1342 to find a workaround if you use this feature.
1344 The '_dhcp' user was added to support the OpenBSD dhclient. Be
1345 sure to run mergemaster -p (like you are supposed to do every time
1349 if_bridge was added to the tree. This has changed struct ifnet.
1350 Please recompile userland and all network related modules.
1353 The n_net of a struct netent was changed to an uint32_t, and
1354 1st argument of getnetbyaddr() was changed to an uint32_t, to
1355 conform to POSIX-2001. These changes broke an ABI
1356 compatibility on 64 bit architecture. With these changes,
1357 shlib major of libpcap was bumped. You have to recompile
1358 userland programs that use getnetbyaddr(3), getnetbyname(3),
1359 getnetent(3) and/or libpcap on 64 bit architecture.
1362 Kernel parsing of extra options on '#!' first lines of shell
1363 scripts has changed. Lines with multiple options likely will
1364 fail after this date. For full details, please see
1365 http://people.freebsd.org/~gad/Updating-20050528.txt
1368 The packet filter (pf) code has been updated to OpenBSD 3.7
1369 Please note the changed anchor syntax and the fact that
1370 authpf(8) now needs a mounted fdescfs(5) to function.
1373 The NO_MIXED_MODE kernel option has been removed from the i386
1374 amd64 platforms as its use has been superceded by the new local
1375 APIC timer code. Any kernel config files containing this option
1379 The on-disk format of LC_CTYPE files was changed to be machine
1380 independent. Please make sure NOT to use NO_CLEAN buildworld
1381 when crossing this point. Crossing this point also requires
1382 recompile or reinstall of all locale depended packages.
1385 The ifi_epoch member of struct if_data has been changed to
1386 contain the uptime at which the interface was created or the
1387 statistics zeroed rather then the wall clock time because
1388 wallclock time may go backwards. This should have no impact
1389 unless an snmp implementation is using this value (I know of
1390 none at this point.)
1393 The acpi_perf and acpi_throttle drivers are now part of the
1394 acpi(4) main module. They are no longer built separately.
1397 The layout of struct image_params has changed. You have to
1398 recompile all compatibility modules (linux, svr4, etc) for use
1399 with the new kernel.
1402 The p4tcc driver has been merged into cpufreq(4). This makes
1403 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or
1404 compile in "device cpufreq" to restore this functionality.
1407 The responsibility of recomputing the file system summary of
1408 a SoftUpdates-enabled dirty volume has been transferred to the
1409 background fsck. A rebuild of fsck(8) utility is recommended
1410 if you have updated the kernel.
1412 To get the old behavior (recompute file system summary at mount
1413 time), you can set vfs.ffs.compute_summary_at_mount=1 before
1414 mounting the new volume.
1417 The cpufreq import is complete. As part of this, the sysctls for
1418 acpi(4) throttling have been removed. The power_profile script
1419 has been updated, so you can use performance/economy_cpu_freq in
1420 rc.conf(5) to set AC on/offline cpu frequencies.
1423 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1424 requires recompiling libnetgraph and userland netgraph utilities.
1427 Support for abbreviated forms of a number of ipfw options is
1428 now deprecated. Warnings are printed to stderr indicating the
1429 correct full form when a match occurs. Some abbreviations may
1430 be supported at a later date based on user feedback. To be
1431 considered for support, abbreviations must be in use prior to
1432 this commit and unlikely to be confused with current key words.
1435 By a popular demand, a lot of NOFOO options were renamed
1436 to NO_FOO (see bsd.compat.mk for a full list). The old
1437 spellings are still supported, but will cause annoying
1438 warnings on stderr. Make sure you upgrade properly (see
1439 the COMMON ITEMS: section later in this file).
1442 Auto-loading of ancillary wlan modules such as wlan_wep has
1443 been temporarily disabled; you need to statically configure
1444 the modules you need into your kernel or explicitly load them
1445 prior to use. Specifically, if you intend to use WEP encryption
1446 with an 802.11 device load/configure wlan_wep; if you want to
1447 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1448 and wlan_xauth as required.
1451 The behaviour of ppp(8) has changed slightly. If lqr is enabled
1452 (``enable lqr''), older versions would revert to LCP ECHO mode on
1453 negotiation failure. Now, ``enable echo'' is required for this
1454 behaviour. The ppp version number has been bumped to 3.4.2 to
1458 The wlan support has been updated to split the crypto support
1459 into separate modules. For static WEP you must configure the
1460 wlan_wep module in your system or build and install the module
1461 in place where it can be loaded (the kernel will auto-load
1462 the module when a wep key is configured).
1465 The ath driver has been updated to split the tx rate control
1466 algorithm into a separate module. You need to include either
1467 ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1470 Support for systems with an 80386 CPU has been removed. Please
1471 use FreeBSD 5.x or earlier on systems with an 80386.
1474 We have had a hack which would mount the root filesystem
1475 R/W if the device were named 'md*'. As part of the vnode
1476 work I'm doing I have had to remove this hack. People
1477 building systems which use preloaded MD root filesystems
1478 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1479 their /etc/rc scripts.
1482 FreeBSD 5.3 shipped here.
1485 The size of struct tcpcb has changed again due to the removal
1486 of RFC1644 T/TCP. You have to recompile userland programs that
1487 read kmem for tcp sockets directly (netstat, sockstat, etc.)
1490 The size of struct tcpcb has changed. You have to recompile
1491 userland programs that read kmem for tcp sockets directly
1492 (netstat, sockstat, etc.)
1495 RELENG_5 branched here. For older entries, please see updating
1496 in the RELENG_5 branch.
1502 Avoid using make -j when upgrading. From time to time in the
1503 past there have been problems using -j with buildworld and/or
1504 installworld. This is especially true when upgrading between
1505 "distant" versions (eg one that cross a major release boundary
1506 or several minor releases, or when several months have passed
1507 on the -current branch).
1509 Sometimes, obscure build problems are the result of environment
1510 poisoning. This can happen because the make utility reads its
1511 environment when searching for values for global variables.
1512 To run your build attempts in an "environmental clean room",
1513 prefix all make commands with 'env -i '. See the env(1) manual
1514 page for more details.
1516 When upgrading from one major version to another it is generally
1517 best to upgrade to the latest code in the currently installed branch
1518 first, then do an upgrade to the new branch. This is the best-tested
1519 upgrade path, and has the highest probability of being successful.
1520 Please try this approach before reporting problems with a major
1525 If you are updating from a prior version of FreeBSD (even one just
1526 a few days old), you should follow this procedure. It is the most
1527 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1529 make kernel-toolchain
1530 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1531 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1533 To test a kernel once
1534 ---------------------
1535 If you just want to boot a kernel once (because you are not sure
1536 if it works, or if you want to boot a known bad kernel to provide
1537 debugging information) run
1538 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1539 nextboot -k testkernel
1541 To just build a kernel when you know that it won't mess you up
1542 --------------------------------------------------------------
1543 This assumes you are already running a 5.X system. Replace
1544 ${arch} with the architecture of your machine (e.g. "i386",
1545 "alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1547 cd src/sys/${arch}/conf
1548 config KERNEL_NAME_HERE
1549 cd ../compile/KERNEL_NAME_HERE
1554 If this fails, go to the "To build a kernel" section.
1556 To rebuild everything and install it on the current system.
1557 -----------------------------------------------------------
1558 # Note: sometimes if you are running current you gotta do more than
1559 # is listed here if you are upgrading from a really old current.
1561 <make sure you have good level 0 dumps>
1563 make kernel KERNCONF=YOUR_KERNEL_HERE
1565 <reboot in single user> [3]
1573 To cross-install current onto a separate partition
1574 --------------------------------------------------
1575 # In this approach we use a separate partition to hold
1576 # current's root, 'usr', and 'var' directories. A partition
1577 # holding "/", "/usr" and "/var" should be about 2GB in
1580 <make sure you have good level 0 dumps>
1583 make buildkernel KERNCONF=YOUR_KERNEL_HERE
1584 <maybe newfs current's root partition>
1585 <mount current's root partition on directory ${CURRENT_ROOT}>
1586 make installworld DESTDIR=${CURRENT_ROOT}
1587 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1588 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1589 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd
1590 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1591 <reboot into current>
1592 <do a "native" rebuild/install as described in the previous section>
1593 <maybe install compatibility libraries from ports/misc/compat*>
1597 To upgrade in-place from 5.x-stable to current
1598 ----------------------------------------------
1599 <make sure you have good level 0 dumps>
1601 make kernel KERNCONF=YOUR_KERNEL_HERE [8]
1603 <reboot in single user> [3]
1610 Make sure that you've read the UPDATING file to understand the
1611 tweaks to various things you need. At this point in the life
1612 cycle of current, things change often and you are on your own
1613 to cope. The defaults can also change, so please read ALL of
1614 the UPDATING entries.
1616 Also, if you are tracking -current, you must be subscribed to
1617 freebsd-current@freebsd.org. Make sure that before you update
1618 your sources that you have read and understood all the recent
1619 messages there. If in doubt, please track -stable which has
1620 much fewer pitfalls.
1622 [1] If you have third party modules, such as vmware, you
1623 should disable them at this point so they don't crash your
1626 [3] From the bootblocks, boot -s, and then do
1631 adjkerntz -i # if CMOS is wall time
1632 Also, when doing a major release upgrade, it is required that
1633 you boot into single user mode to do the installworld.
1635 [4] Note: This step is non-optional. Failure to do this step
1636 can result in a significant reduction in the functionality of the
1637 system. Attempting to do it by hand is not recommended and those
1638 that pursue this avenue should read this file carefully, as well
1639 as the archives of freebsd-current and freebsd-hackers mailing lists
1640 for potential gotchas.
1642 [5] Usually this step is a noop. However, from time to time
1643 you may need to do this if you get unknown user in the following
1644 step. It never hurts to do it all the time. You may need to
1645 install a new mergemaster (cd src/usr.sbin/mergemaster && make
1646 install) after the buildworld before this step if you last updated
1647 from current before 20020224 or from -stable before 20020408.
1649 [8] In order to have a kernel that can run the 4.x binaries
1650 needed to do an installworld, you must include the COMPAT_FREEBSD4
1651 option in your kernel. Failure to do so may leave you with a system
1652 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1653 is required to run the 5.x binaries on more recent kernels.
1655 Make sure that you merge any new devices from GENERIC since the
1656 last time you updated your kernel config file.
1658 [9] When checking out sources, you must include the -P flag to have
1659 cvs prune empty directories.
1661 If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1662 "?=" instead of the "=" assignment operator, so that buildworld can
1663 override the CPUTYPE if it needs to.
1665 MAKEOBJDIRPREFIX must be defined in an environment variable, and
1666 not on the command line, or in /etc/make.conf. buildworld will
1667 warn if it is improperly defined.
1670 This file contains a list, in reverse chronological order, of major
1671 breakages in tracking -current. Not all things will be listed here,
1672 and it only starts on October 16, 2004. Updating files can found in
1673 previous releases if your system is older than this.
1675 Copyright information:
1677 Copyright 1998-2005 M. Warner Losh. All Rights Reserved.
1679 Redistribution, publication, translation and use, with or without
1680 modification, in full or in part, in any form or format of this
1681 document are permitted without further permission from the author.
1683 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1684 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1685 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1686 DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1687 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1688 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1689 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1690 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1691 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1692 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1693 POSSIBILITY OF SUCH DAMAGE.
1695 If you find this document useful, and you want to, you may buy the
1698 Contact Warner Losh if you have any questions about your use of