UPDATING revision 194498
154359SrobertoUpdating Information for FreeBSD current users 254359Sroberto 354359SrobertoThis file is maintained and copyrighted by M. Warner Losh 454359Sroberto<imp@village.org>. See end of file for further details. For commonly 554359Srobertodone items, please see the COMMON ITEMS: section later in the file. 654359Sroberto 754359SrobertoItems affecting the ports and packages system can be found in 854359Sroberto/usr/ports/UPDATING. Please read that file before running 954359Srobertoportupgrade. 1054359Sroberto 1154359SrobertoNOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW: 1254359Sroberto FreeBSD 8.x has many debugging features turned on, in 13106424Sroberto both the kernel and userland. These features attempt to detect 14290000Sglebius incorrect use of system primitives, and encourage loud failure 15290000Sglebius through extra sanity checking and fail stop semantics. They 16290000Sglebius also substantially impact system performance. If you want to 17290000Sglebius do performance measurement, benchmarking, and optimization, 18290000Sglebius you'll want to turn them off. This includes various WITNESS- 19290000Sglebius related kernel options, INVARIANTS, malloc debugging flags 2054359Sroberto in userland, and various verbose features in the kernel. Many 21290000Sglebius developers choose to disable these features on build machines 22290000Sglebius to maximize performance. (To disable malloc debugging, run 23290000Sglebius ln -s aj /etc/malloc.conf.) 24290000Sglebius 25290000Sglebius20090619: 26290000Sglebius NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 27290000Sglebius and 1024 respectively. As long as no more than 16 groups per 28290000Sglebius process are used, no changes should be visible. When more 2954359Sroberto than 16 groups are used, old binaries may fail if they call 30290000Sglebius getgroups() or getgrouplist() with statically sized storage. 3154359Sroberto Recompiling will work around this, but applications should be 3254359Sroberto modified to use dynamically allocated storage for group arrays 3354359Sroberto as POSIX.1-2008 does not cap an implementation's number of 3454359Sroberto supported groups at NGROUPS_MAX+1 as previous versions did. 3554359Sroberto 3654359Sroberto NFS and portalfs mounts may also be affected as the list of 3754359Sroberto groups is truncated to 16. Users of NFS who use more than 16 3854359Sroberto groups, should take care that negative group permissions are not 39290000Sglebius used on the exported file systems as they will not be reliable 40290000Sglebius unless a GSSAPI based authentication method is used. 4154359Sroberto 4254359Sroberto20090616: 4354359Sroberto The compiling option ADAPTIVE_LOCKMGRS has been introduced. 44290000Sglebius This option compiles in the support for adaptive spinning for lockmgrs 45290000Sglebius which want to enable it. The lockinit() function now accepts the 4682498Sroberto flag LK_ADAPTIVE in order to make the lock object subject to 47290000Sglebius adaptive spinning when both held in write and read mode. 48290000Sglebius 49290000Sglebius20090613: 5054359Sroberto The layout of the structure returned by IEEE80211_IOC_STA_INFO 51290000Sglebius has changed. User applications that use this ioctl need to be 52290000Sglebius rebuilt. 53290000Sglebius 54290000Sglebius20090611: 5554359Sroberto The layout of struct thread has changed. Kernel and modules 56290000Sglebius need to be rebuilt. 57 5820090608: 59 The layout of structs ifnet, domain, protosw and vnet_net has 60 changed. Kernel modules need to be rebuilt. 61 Bump __FreeBSD_version to 800097. 62 6320090602: 64 window(1) has been removed from the base system. It can now be 65 installed from ports. The port is called misc/window. 66 6720090601: 68 The way we are storing and accessing `routing table' entries 69 has changed. Programs reading the FIB, like netstat, need to 70 be re-compiled. 71 7220090601: 73 A new netisr implementation has been added for FreeBSD 8. Network 74 file system modules, such as igmp, ipdivert, and others, should be 75 rebuilt. 76 Bump __FreeBSD_version to 800096. 77 7820090531: 79 For those who use ipfw and especially pf, those two firewalls 80 are now started BEFORE the network is initialized (i.e., before 81 rc.d/netif). Please review your rules to make sure that your 82 interfaces will be properly described. 83 8420090530: 85 Remove the tunable/sysctl debug.mpsafevfs as its initial purpose 86 is no more valid. 87 8820090530: 89 Add VOP_ACCESSX(9). File system modules need to be rebuilt. 90 Bump __FreeBSD_version to 800094. 91 9220090529: 93 Add mnt_xflag field to 'struct mount'. File system modules 94 need to be rebuilt. 95 Bump __FreeBSD_version to 800093. 96 9720090528: 98 The compiling option ADAPTIVE_SX has been retired while it has been 99 introduced the option NO_ADAPTIVE_SX which handles the reversed logic. 100 The KPI for sx_init_flags() changes as accepting flags: 101 SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag 102 has been introduced in order to handle the reversed logic. 103 Bump __FreeBSD_version to 800092. 104 10520090527: 106 Add support for hierarchical jails. Remove global securelevel. 107 Bump __FreeBSD_version to 800091. 108 10920090523: 110 The layout of struct vnet_net has changed, therefore modules 111 need to be rebuilt. 112 Bump __FreeBSD_version to 800090. 113 11420090523: 115 The newly imported zic(8) produces a new format in the 116 output. Please run tzsetup(8) to install the newly created 117 data to /etc/localtime. 118 11920090520: 120 The sysctl tree for the usb stack has renamed from hw.usb2.* to 121 hw.usb.* and is now consistent again with previous releases. 122 12320090520: 124 802.11 monitor mode support was revised and driver api's 125 were changed. Drivers dependent on net80211 now support 126 DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11. No 127 user-visible data structures were changed but applications 128 that use DLT_IEEE802_11 may require changes. 129 Bump __FreeBSD_version to 800088. 130 13120090430: 132 The layout of the following structs has changed: sysctl_oid, 133 socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, 134 vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or 135 panics may be experienced. World rebuild is required for 136 correctly checking networking state from userland. 137 Bump __FreeBSD_version to 800085. 138 13920090429: 140 MLDv2 and Source-Specific Multicast (SSM) have been merged 141 to the IPv6 stack. VIMAGE hooks are in but not yet used. 142 The implementation of SSM within FreeBSD's IPv6 stack closely 143 follows the IPv4 implementation. 144 145 For kernel developers: 146 147 * The most important changes are that the ip6_output() and 148 ip6_input() paths no longer take the IN6_MULTI_LOCK, 149 and this lock has been downgraded to a non-recursive mutex. 150 151 * As with the changes to the IPv4 stack to support SSM, filtering 152 of inbound multicast traffic must now be performed by transport 153 protocols within the IPv6 stack. This does not apply to TCP and 154 SCTP, however, it does apply to UDP in IPv6 and raw IPv6. 155 156 * The KPIs used by IPv6 multicast are similar to those used by 157 the IPv4 stack, with the following differences: 158 * im6o_mc_filter() is analogous to imo_multicast_filter(). 159 * The legacy KAME entry points in6_joingroup and in6_leavegroup() 160 are shimmed to in6_mc_join() and in6_mc_leave() respectively. 161 * IN6_LOOKUP_MULTI() has been deprecated and removed. 162 * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs 163 for MLDv1 have an additional 'timer' argument which is used to 164 jitter the initial membership report for the solicited-node 165 multicast membership on-link. 166 * This is not strictly needed for MLDv2, which already jitters 167 its report transmissions. However, the 'timer' argument is 168 preserved in case MLDv1 is active on the interface. 169 170 * The KAME linked-list based IPv6 membership implementation has 171 been refactored to use a vector similar to that used by the IPv4 172 stack. 173 Code which maintains a list of its own multicast memberships 174 internally, e.g. carp, has been updated to reflect the new 175 semantics. 176 177 * There is a known Lock Order Reversal (LOR) due to in6_setscope() 178 acquiring the IF_AFDATA_LOCK and being called within ip6_output(). 179 Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an 180 implementation constraint which needs to be addressed in HEAD. 181 182 For application developers: 183 184 * The changes are broadly similar to those made for the IPv4 185 stack. 186 187 * The use of IPv4 and IPv6 multicast socket options on the same 188 socket, using mapped addresses, HAS NOT been tested or supported. 189 190 * There are a number of issues with the implementation of various 191 IPv6 multicast APIs which need to be resolved in the API surface 192 before the implementation is fully compatible with KAME userland 193 use, and these are mostly to do with interface index treatment. 194 195 * The literature available discusses the use of either the delta / ASM 196 API with setsockopt(2)/getsockopt(2), or the full-state / ASM API 197 using setsourcefilter(3)/getsourcefilter(3). For more information 198 please refer to RFC 3768, 'Socket Interface Extensions for 199 Multicast Source Filters'. 200 201 * Applications which use the published RFC 3678 APIs should be fine. 202 203 For systems administrators: 204 205 * The mtest(8) utility has been refactored to support IPv6, in 206 addition to IPv4. Interface addresses are no longer accepted 207 as arguments, their names must be used instead. The utility 208 will map the interface name to its first IPv4 address as 209 returned by getifaddrs(3). 210 211 * The ifmcstat(8) utility has also been updated to print the MLDv2 212 endpoint state and source filter lists via sysctl(3). 213 214 * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable 215 loopback of IPv6 multicast datagrams by default; it defaults to 1 216 to preserve the existing behaviour. Disabling multicast loopback is 217 recommended for optimal system performance. 218 219 * The IPv6 MROUTING code has been changed to examine this sysctl 220 instead of attempting to perform a group lookup before looping 221 back forwarded datagrams. 222 223 Bump __FreeBSD_version to 800084. 224 22520090422: 226 Implement low-level Bluetooth HCI API. 227 Bump __FreeBSD_version to 800083. 228 22920090419: 230 The layout of struct malloc_type, used by modules to register new 231 memory allocation types, has changed. Most modules will need to 232 be rebuilt or panics may be experienced. 233 Bump __FreeBSD_version to 800081. 234 23520090415: 236 Anticipate overflowing inp_flags - add inp_flags2. 237 This changes most offsets in inpcb, so checking v4 connection 238 state will require a world rebuild. 239 Bump __FreeBSD_version to 800080. 240 24120090415: 242 Add an llentry to struct route and struct route_in6. Modules 243 embedding a struct route will need to be recompiled. 244 Bump __FreeBSD_version to 800079. 245 24620090414: 247 The size of rt_metrics_lite and by extension rtentry has changed. 248 Networking administration apps will need to be recompiled. 249 The route command now supports show as an alias for get, weighting 250 of routes, sticky and nostick flags to alter the behavior of stateful 251 load balancing. 252 Bump __FreeBSD_version to 800078. 253 25420090408: 255 Do not use Giant for kbdmux(4) locking. This is wrong and 256 apparently causing more problems than it solves. This will 257 re-open the issue where interrupt handlers may race with 258 kbdmux(4) in polling mode. Typical symptoms include (but 259 not limited to) duplicated and/or missing characters when 260 low level console functions (such as gets) are used while 261 interrupts are enabled (for example geli password prompt, 262 mountroot prompt etc.). Disabling kbdmux(4) may help. 263 26420090407: 265 The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; 266 kernel modules referencing any of the above need to be recompiled. 267 Bump __FreeBSD_version to 800075. 268 26920090320: 270 GEOM_PART has become the default partition slicer for storage devices, 271 replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It 272 introduces some changes: 273 274 MSDOS/EBR: the devices created from MSDOS extended partition entries 275 (EBR) can be named differently than with GEOM_MBR and are now symlinks 276 to devices with offset-based names. fstabs may need to be modified. 277 278 BSD: the "geometry does not match label" warning is harmless in most 279 cases but it points to problems in file system misalignment with 280 disk geometry. The "c" partition is now implicit, covers the whole 281 top-level drive and cannot be (mis)used by users. 282 283 General: Kernel dumps are now not allowed to be written to devices 284 whose partition types indicate they are meant to be used for file 285 systems (or, in case of MSDOS partitions, as something else than 286 the "386BSD" type). 287 288 Most of these changes date approximately from 200812. 289 29020090319: 291 The uscanner(4) driver has been removed from the kernel. This follows 292 Linux removing theirs in 2.6 and making libusb the default interface 293 (supported by sane). 294 29520090319: 296 The multicast forwarding code has been cleaned up. netstat(1) 297 only relies on KVM now for printing bandwidth upcall meters. 298 The IPv4 and IPv6 modules are split into ip_mroute_mod and 299 ip6_mroute_mod respectively. The config(5) options for statically 300 compiling this code remain the same, i.e. 'options MROUTING'. 301 30220090315: 303 Support for the IFF_NEEDSGIANT network interface flag has been 304 removed, which means that non-MPSAFE network device drivers are no 305 longer supported. In particular, if_ar, if_sr, and network device 306 drivers from the old (legacy) USB stack can no longer be built or 307 used. 308 30920090313: 310 POSIX.1 Native Language Support (NLS) has been enabled in libc and 311 a bunch of new language catalog files have also been added. 312 This means that some common libc messages are now localized and 313 they depend on the LC_MESSAGES environmental variable. 314 31520090313: 316 The k8temp(4) driver has been renamed to amdtemp(4) since 317 support for K10 and K11 CPU families was added. 318 31920090309: 320 IGMPv3 and Source-Specific Multicast (SSM) have been merged 321 to the IPv4 stack. VIMAGE hooks are in but not yet used. 322 323 For kernel developers, the most important changes are that the 324 ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 325 and this lock has been downgraded to a non-recursive mutex. 326 327 Transport protocols (UDP, Raw IP) are now responsible for filtering 328 inbound multicast traffic according to group membership and source 329 filters. The imo_multicast_filter() KPI exists for this purpose. 330 Transports which do not use multicast (SCTP, TCP) already reject 331 multicast by default. Forwarding and receive performance may improve 332 as a mutex acquisition is no longer needed in the ip_input() 333 low-level input path. in_addmulti() and in_delmulti() are shimmed 334 to new KPIs which exist to support SSM in-kernel. 335 336 For application developers, it is recommended that loopback of 337 multicast datagrams be disabled for best performance, as this 338 will still cause the lock to be taken for each looped-back 339 datagram transmission. The net.inet.ip.mcast.loop sysctl may 340 be tuned to 0 to disable loopback by default; it defaults to 1 341 to preserve the existing behaviour. 342 343 For systems administrators, to obtain best performance with 344 multicast reception and multiple groups, it is always recommended 345 that a card with a suitably precise hash filter is used. Hash 346 collisions will still result in the lock being taken within the 347 transport protocol input path to check group membership. 348 349 If deploying FreeBSD in an environment with IGMP snooping switches, 350 it is recommended that the net.inet.igmp.sendlocal sysctl remain 351 enabled; this forces 224.0.0.0/24 group membership to be announced 352 via IGMP. 353 354 The size of 'struct igmpstat' has changed; netstat needs to be 355 recompiled to reflect this. 356 Bump __FreeBSD_version to 800070. 357 35820090309: 359 libusb20.so.1 is now installed as libusb.so.1 and the ports system 360 updated to use it. This requires a buildworld/installworld in order to 361 update the library and dependencies (usbconfig, etc). Its advisable to 362 rebuild all ports which uses libusb. More specific directions are given 363 in the ports collection UPDATING file. Any /etc/libmap.conf entries for 364 libusb are no longer required and can be removed. 365 36620090302: 367 A workaround is committed to allow the creation of System V shared 368 memory segment of size > 2 GB on the 64-bit architectures. 369 Due to a limitation of the existing ABI, the shm_segsz member 370 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 371 wrong for large segments. Note that limits must be explicitly 372 raised to allow such segments to be created. 373 37420090301: 375 The layout of struct ifnet has changed, requiring a rebuild of all 376 network device driver modules. 377 37820090227: 379 The /dev handling for the new USB stack has changed, a 380 buildworld/installworld is required for libusb20. 381 38220090223: 383 The new USB2 stack has now been permanently moved in and all kernel and 384 module names reverted to their previous values (eg, usb, ehci, ohci, 385 ums, ...). The old usb stack can be compiled in by prefixing the name 386 with the letter 'o', the old usb modules have been removed. 387 Updating entry 20090216 for xorg and 20090215 for libmap may still 388 apply. 389 39020090217: 391 The rc.conf(5) option if_up_delay has been renamed to 392 defaultroute_delay to better reflect its purpose. If you have 393 customized this setting in /etc/rc.conf you need to update it to 394 use the new name. 395 39620090216: 397 xorg 7.4 wants to configure its input devices via hald which does not 398 yet work with USB2. If the keyboard/mouse does not work in xorg then 399 add 400 Option "AllowEmptyInput" "off" 401 to your ServerLayout section. This will cause X to use the configured 402 kbd and mouse sections from your xorg.conf. 403 40420090215: 405 The GENERIC kernels for all architectures now default to the new USB2 406 stack. No kernel config options or code have been removed so if a 407 problem arises please report it and optionally revert to the old USB 408 stack. If you are loading USB kernel modules or have a custom kernel 409 that includes GENERIC then ensure that usb names are also changed over, 410 eg uftdi -> usb2_serial_ftdi. 411 412 Older programs linked against the ports libusb 0.1 need to be 413 redirected to the new stack's libusb20. /etc/libmap.conf can 414 be used for this: 415 # Map old usb library to new one for usb2 stack 416 libusb-0.1.so.8 libusb20.so.1 417 41820090203: 419 The ichsmb(4) driver has been changed to require SMBus slave 420 addresses be left-justified (xxxxxxx0b) rather than right-justified. 421 All of the other SMBus controller drivers require left-justified 422 slave addresses, so this change makes all the drivers provide the 423 same interface. 424 42520090201: 426 INET6 statistics (struct ip6stat) was updated. 427 netstat(1) needs to be recompiled. 428 42920090119: 430 NTFS has been removed from GENERIC kernel on amd64 to match 431 GENERIC on i386. Should not cause any issues since mount_ntfs(8) 432 will load ntfs.ko module automatically when NTFS support is 433 actually needed, unless ntfs.ko is not installed or security 434 level prohibits loading kernel modules. If either is the case, 435 "options NTFS" has to be added into kernel config. 436 43720090115: 438 TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 439 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 440 800061. User space tools that rely on the size of struct tcpcb in 441 tcp_var.h (e.g. sockstat) need to be recompiled. 442 44320081225: 444 ng_tty(4) module updated to match the new TTY subsystem. 445 Due to API change, user-level applications must be updated. 446 New API support added to mpd5 CVS and expected to be present 447 in next mpd5.3 release. 448 44920081219: 450 With __FreeBSD_version 800060 the makefs tool is part of 451 the base system (it was a port). 452 45320081216: 454 The afdata and ifnet locks have been changed from mutexes to 455 rwlocks, network modules will need to be re-compiled. 456 45720081214: 458 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 459 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 460 The new code reduced struct rtentry{} by 16 bytes on 32-bit 461 architecture and 40 bytes on 64-bit architecture. The userland 462 applications "arp" and "ndp" have been updated accordingly. 463 The output from "netstat -r" shows only routing entries and 464 none of the L2 information. 465 46620081130: 467 __FreeBSD_version 800057 marks the switchover from the 468 binary ath hal to source code. Users must add the line: 469 470 options AH_SUPPORT_AR5416 471 472 to their kernel config files when specifying: 473 474 device ath_hal 475 476 The ath_hal module no longer exists; the code is now compiled 477 together with the driver in the ath module. It is now 478 possible to tailor chip support (i.e. reduce the set of chips 479 and thereby the code size); consult ath_hal(4) for details. 480 48120081121: 482 __FreeBSD_version 800054 adds memory barriers to 483 <machine/atomic.h>, new interfaces to ifnet to facilitate 484 multiple hardware transmit queues for cards that support 485 them, and a lock-less ring-buffer implementation to 486 enable drivers to more efficiently manage queueing of 487 packets. 488 48920081117: 490 A new version of ZFS (version 13) has been merged to -HEAD. 491 This version has zpool attribute "listsnapshots" off by 492 default, which means "zfs list" does not show snapshots, 493 and is the same as Solaris behavior. 494 49520081028: 496 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 497 49820081009: 499 The uhci, ohci, ehci and slhci USB Host controller drivers have 500 been put into separate modules. If you load the usb module 501 separately through loader.conf you will need to load the 502 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 503 controller add the following to loader.conf: 504 505 uhci_load="YES" 506 ehci_load="YES" 507 50820081009: 509 The ABI used by the PMC toolset has changed. Please keep 510 userland (libpmc(3)) and the kernel module (hwpmc(4)) in 511 sync. 512 51320080820: 514 The TTY subsystem of the kernel has been replaced by a new 515 implementation, which provides better scalability and an 516 improved driver model. Most common drivers have been migrated to 517 the new TTY subsystem, while others have not. The following 518 drivers have not yet been ported to the new TTY layer: 519 520 PCI/ISA: 521 cy, digi, rc, rp, sio 522 523 USB: 524 ubser, ucycom 525 526 Line disciplines: 527 ng_h4, ng_tty, ppp, sl, snp 528 529 Adding these drivers to your kernel configuration file shall 530 cause compilation to fail. 531 53220080818: 533 ntpd has been upgraded to 4.2.4p5. 534 53520080801: 536 OpenSSH has been upgraded to 5.1p1. 537 538 For many years, FreeBSD's version of OpenSSH preferred DSA 539 over RSA for host and user authentication keys. With this 540 upgrade, we've switched to the vendor's default of RSA over 541 DSA. This may cause upgraded clients to warn about unknown 542 host keys even for previously known hosts. Users should 543 follow the usual procedure for verifying host keys before 544 accepting the RSA key. 545 546 This can be circumvented by setting the "HostKeyAlgorithms" 547 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 548 command line. 549 550 Please note that the sequence of keys offered for 551 authentication has been changed as well. You may want to 552 specify IdentityFile in a different order to revert this 553 behavior. 554 55520080713: 556 The sio(4) driver has been removed from the i386 and amd64 557 kernel configuration files. This means uart(4) is now the 558 default serial port driver on those platforms as well. 559 560 To prevent collisions with the sio(4) driver, the uart(4) driver 561 uses different names for its device nodes. This means the 562 onboard serial port will now most likely be called "ttyu0" 563 instead of "ttyd0". You may need to reconfigure applications to 564 use the new device names. 565 566 When using the serial port as a boot console, be sure to update 567 /boot/device.hints and /etc/ttys before booting the new kernel. 568 If you forget to do so, you can still manually specify the hints 569 at the loader prompt: 570 571 set hint.uart.0.at="isa" 572 set hint.uart.0.port="0x3F8" 573 set hint.uart.0.flags="0x10" 574 set hint.uart.0.irq="4" 575 boot -s 576 57720080609: 578 The gpt(8) utility has been removed. Use gpart(8) to partition 579 disks instead. 580 58120080603: 582 The version that Linuxulator emulates was changed from 2.4.2 583 to 2.6.16. If you experience any problems with Linux binaries 584 please try to set sysctl compat.linux.osrelease to 2.4.2 and 585 if it fixes the problem contact emulation mailing list. 586 58720080525: 588 ISDN4BSD (I4B) was removed from the src tree. You may need to 589 update a your kernel configuration and remove relevant entries. 590 59120080509: 592 I have checked in code to support multiple routing tables. 593 See the man pages setfib(1) and setfib(2). 594 This is a hopefully backwards compatible version, 595 but to make use of it you need to compile your kernel 596 with options ROUTETABLES=2 (or more up to 16). 597 59820080420: 599 The 802.11 wireless support was redone to enable multi-bss 600 operation on devices that are capable. The underlying device 601 is no longer used directly but instead wlanX devices are 602 cloned with ifconfig. This requires changes to rc.conf files. 603 For example, change: 604 ifconfig_ath0="WPA DHCP" 605 to 606 wlans_ath0=wlan0 607 ifconfig_wlan0="WPA DHCP" 608 see rc.conf(5) for more details. In addition, mergemaster of 609 /etc/rc.d is highly recommended. Simultaneous update of userland 610 and kernel wouldn't hurt either. 611 612 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 613 modules were merged into the base wlan module. All references 614 to these modules (e.g. in kernel config files) must be removed. 615 61620080408: 617 psm(4) has gained write(2) support in native operation level. 618 Arbitrary commands can be written to /dev/psm%d and status can 619 be read back from it. Therefore, an application is responsible 620 for status validation and error recovery. It is a no-op in 621 other operation levels. 622 62320080312: 624 Support for KSE threading has been removed from the kernel. To 625 run legacy applications linked against KSE libmap.conf may 626 be used. The following libmap.conf may be used to ensure 627 compatibility with any prior release: 628 629 libpthread.so.1 libthr.so.1 630 libpthread.so.2 libthr.so.2 631 libkse.so.3 libthr.so.3 632 63320080301: 634 The layout of struct vmspace has changed. This affects libkvm 635 and any executables that link against libkvm and use the 636 kvm_getprocs() function. In particular, but not exclusively, 637 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 638 The effects are minimal, but it's advisable to upgrade world 639 nonetheless. 640 64120080229: 642 The latest em driver no longer has support in it for the 643 82575 adapter, this is now moved to the igb driver. The 644 split was done to make new features that are incompatible 645 with older hardware easier to do. 646 64720080220: 648 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 649 likewise the kernel option is now GEOM_LINUX_LVM. 650 65120080211: 652 The default NFS mount mode has changed from UDP to TCP for 653 increased reliability. If you rely on (insecurely) NFS 654 mounting across a firewall you may need to update your 655 firewall rules. 656 65720080208: 658 Belatedly note the addition of m_collapse for compacting 659 mbuf chains. 660 66120080126: 662 The fts(3) structures have been changed to use adequate 663 integer types for their members and so to be able to cope 664 with huge file trees. The old fts(3) ABI is preserved 665 through symbol versioning in libc, so third-party binaries 666 using fts(3) should still work, although they will not take 667 advantage of the extended types. At the same time, some 668 third-party software might fail to build after this change 669 due to unportable assumptions made in its source code about 670 fts(3) structure members. Such software should be fixed 671 by its vendor or, in the worst case, in the ports tree. 672 FreeBSD_version 800015 marks this change for the unlikely 673 case that a portable fix is impossible. 674 67520080123: 676 To upgrade to -current after this date, you must be running 677 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 678 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 679 68020071128: 681 The ADAPTIVE_GIANT kernel option has been retired because its 682 functionality is the default now. 683 68420071118: 685 The AT keyboard emulation of sunkbd(4) has been turned on 686 by default. In order to make the special symbols of the Sun 687 keyboards driven by sunkbd(4) work under X these now have 688 to be configured the same way as Sun USB keyboards driven 689 by ukbd(4) (which also does AT keyboard emulation), f.e.: 690 691 Option "XkbLayout" "us" 692 Option "XkbRules" "xorg" 693 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 694 69520071024: 696 It has been decided that it is desirable to provide ABI 697 backwards compatibility to the FreeBSD 4/5/6 versions of the 698 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 699 broken with the introduction of PCI domain support (see the 700 20070930 entry). Unfortunately, this required the ABI of 701 PCIOCGETCONF to be broken again in order to be able to 702 provide backwards compatibility to the old version of that 703 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 704 again. As for prominent ports this affects neither pciutils 705 nor xorg-server this time, the hal port needs to be rebuilt 706 however. 707 70820071020: 709 The misnamed kthread_create() and friends have been renamed 710 to kproc_create() etc. Many of the callers already 711 used kproc_start().. 712 I will return kthread_create() and friends in a while 713 with implementations that actually create threads, not procs. 714 Renaming corresponds with version 800002. 715 71620071010: 717 RELENG_7 branched. 718 71920071009: 720 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 721 WITHOUT_LIBTHR are set. 722 72320070930: 724 The PCI code has been made aware of PCI domains. This means that 725 the location strings as used by pciconf(8) etc are now in the 726 following format: pci<domain>:<bus>:<device>[:<function>]. It 727 also means that consumers of <sys/pciio.h> potentially need to 728 be recompiled; this includes the hal and xorg-server ports. 729 73020070928: 731 The caching daemon (cached) was renamed to nscd. nscd.conf 732 configuration file should be used instead of cached.conf and 733 nscd_enable, nscd_pidfile and nscd_flags options should be used 734 instead of cached_enable, cached_pidfile and cached_flags in 735 rc.conf. 736 73720070921: 738 The getfacl(1) utility now prints owning user and group name 739 instead of owning uid and gid in the three line comment header. 740 This is the same behavior as getfacl(1) on Solaris and Linux. 741 74220070704: 743 The new IPsec code is now compiled in using the IPSEC option. The 744 IPSEC option now requires "device crypto" be defined in your kernel 745 configuration. The FAST_IPSEC kernel option is now deprecated. 746 74720070702: 748 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 749 note the changed syntax - keep state is now on by default. Also 750 note the fact that ftp-proxy(8) has been changed from bottom up and 751 has been moved from libexec to usr/sbin. Changes in the ALTQ 752 handling also affect users of IPFW's ALTQ capabilities. 753 75420070701: 755 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 756 only IPsec supported by FreeBSD. The new IPsec stack 757 supports both IPv4 and IPv6. The kernel option will change 758 after the code changes have settled in. For now the kernel 759 option IPSEC is deprecated and FAST_IPSEC is the only option, that 760 will change after some settling time. 761 76220070701: 763 The wicontrol(8) utility has been removed from the base system. wi(4) 764 cards should be configured using ifconfig(8), see the man page for more 765 information. 766 76720070612: 768 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 769 instead of the nve(4) driver. Please update your configuration 770 accordingly. 771 77220070612: 773 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 774 database if it is missing or older than the aliases file. If 775 desired, set the new rc.conf option sendmail_rebuild_aliases 776 to "YES" to restore that functionality. 777 77820070612: 779 The IPv4 multicast socket code has been considerably modified, and 780 moved to the file sys/netinet/in_mcast.c. Initial support for the 781 RFC 3678 Source-Specific Multicast Socket API has been added to 782 the IPv4 network stack. 783 784 Strict multicast and broadcast reception is now the default for 785 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 786 has now been removed. 787 788 The RFC 1724 hack for interface selection has been removed; the use 789 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 790 been added to replace it. Consumers such as routed will soon be 791 updated to reflect this. 792 793 These changes affect users who are running routed(8) or rdisc(8) 794 from the FreeBSD base system on point-to-point or unnumbered 795 interfaces. 796 79720070610: 798 The net80211 layer has changed significantly and all wireless 799 drivers that depend on it need to be recompiled. Further these 800 changes require that any program that interacts with the wireless 801 support in the kernel be recompiled; this includes: ifconfig, 802 wpa_supplicant, hostapd, and wlanstats. Users must also, for 803 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 804 if they use modules for wireless support. These modules implement 805 scanning support for station and ap modes, respectively. Failure 806 to load the appropriate module before marking a wireless interface 807 up will result in a message to the console and the device not 808 operating properly. 809 81020070610: 811 The pam_nologin(8) module ceases to provide an authentication 812 function and starts providing an account management function. 813 Consequent changes to /etc/pam.d should be brought in using 814 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 815 need manual editing as follows. Locate this line (or similar): 816 817 auth required pam_nologin.so no_warn 818 819 and change it according to this example: 820 821 account required pam_nologin.so no_warn 822 823 That is, the first word needs to be changed from "auth" to 824 "account". The new line can be moved to the account section 825 within the file for clarity. Not updating pam.conf(5) files 826 will result in nologin(5) ignored by the respective services. 827 82820070529: 829 The ether_ioctl() function has been synchronized with ioctl(2) 830 and ifnet.if_ioctl. Due to that, the size of one of its arguments 831 has changed on 64-bit architectures. All kernel modules using 832 ether_ioctl() need to be rebuilt on such architectures. 833 83420070516: 835 Improved INCLUDE_CONFIG_FILE support has been introduced to the 836 config(8) utility. In order to take advantage of this new 837 functionality, you are expected to recompile and install 838 src/usr.sbin/config. If you don't rebuild config(8), and your 839 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 840 build will be broken because of a missing "kernconfstring" 841 symbol. 842 84320070513: 844 Symbol versioning is enabled by default. To disable it, use 845 option WITHOUT_SYMVER. It is not advisable to attempt to 846 disable symbol versioning once it is enabled; your installworld 847 will break because a symbol version-less libc will get installed 848 before the install tools. As a result, the old install tools, 849 which previously had symbol dependencies to FBSD_1.0, will fail 850 because the freshly installed libc will not have them. 851 852 The default threading library (providing "libpthread") has been 853 changed to libthr. If you wish to have libkse as your default, 854 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 855 85620070423: 857 The ABI breakage in sendmail(8)'s libmilter has been repaired 858 so it is no longer necessary to recompile mail filters (aka, 859 milters). If you recompiled mail filters after the 20070408 860 note, it is not necessary to recompile them again. 861 86220070417: 863 The new trunk(4) driver has been renamed to lagg(4) as it better 864 reflects its purpose. ifconfig will need to be recompiled. 865 86620070408: 867 sendmail(8) has been updated to version 8.14.1. Mail filters 868 (aka, milters) compiled against the libmilter included in the 869 base operating system should be recompiled. 870 87120070302: 872 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 873 In order to use them one must agree to the respective LICENSE in 874 share/doc/legal and define legal.intel_<name>.license_ack=1 via 875 loader.conf(5) or kenv(1). Make sure to deinstall the now 876 deprecated modules from the respective firmware ports. 877 87820070228: 879 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 880 were removed from FreeBSD's libc. These originally came from INRIA 881 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 882 deprecated in previous releases. 883 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 884 replace it as a more portable (and re-entrant) API. 885 88620070224: 887 To support interrupt filtering a modification to the newbus API 888 has occurred, ABI was broken and __FreeBSD_version was bumped 889 to 700031. Please make sure that your kernel and modules are in 890 sync. For more info: 891 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 892 89320070224: 894 The IPv6 multicast forwarding code may now be loaded into GENERIC 895 kernels by loading the ip_mroute.ko module. This is built into the 896 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 897 set; see src.conf(5) for more information. 898 89920070214: 900 The output of netstat -r has changed. Without -n, we now only 901 print a "network name" without the prefix length if the network 902 address and mask exactly match a Class A/B/C network, and an entry 903 exists in the nsswitch "networks" map. 904 With -n, we print the full unabbreviated CIDR network prefix in 905 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 906 This change is in preparation for changes such as equal-cost 907 multipath, and to more generally assist operational deployment 908 of FreeBSD as a modern IPv4 router. 909 91020070210: 911 PIM has been turned on by default in the IPv4 multicast 912 routing code. The kernel option 'PIM' has now been removed. 913 PIM is now built by default if option 'MROUTING' is specified. 914 It may now be loaded into GENERIC kernels by loading the 915 ip_mroute.ko module. 916 91720070207: 918 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 919 has been removed. Its functionality may be achieved by explicitly 920 configuring gif(4) interfaces and using the 'phyint' keyword in 921 mrouted.conf. 922 XORP does not support source-routed IPv4 multicast tunnels nor the 923 integrated IPIP tunneling, therefore it is not affected by this 924 change. The __FreeBSD_version macro has been bumped to 700030. 925 92620061221: 927 Support for PCI Message Signalled Interrupts has been 928 re-enabled in the bge driver, only for those chips which are 929 believed to support it properly. If there are any problems, 930 MSI can be disabled completely by setting the 931 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 932 in the loader. 933 93420061214: 935 Support for PCI Message Signalled Interrupts has been 936 disabled again in the bge driver. Many revisions of the 937 hardware fail to support it properly. Support can be 938 re-enabled by removing the #define of BGE_DISABLE_MSI in 939 "src/sys/dev/bge/if_bge.c". 940 94120061214: 942 Support for PCI Message Signalled Interrupts has been added 943 to the bge driver. If there are any problems, MSI can be 944 disabled completely by setting the 'hw.pci.enable_msi' and 945 'hw.pci.enable_msix' tunables to 0 in the loader. 946 94720061205: 948 The removal of several facets of the experimental Threading 949 system from the kernel means that the proc and thread structures 950 have changed quite a bit. I suggest all kernel modules that might 951 reference these structures be recompiled.. Especially the 952 linux module. 953 95420061126: 955 Sound infrastructure has been updated with various fixes and 956 improvements. Most of the changes are pretty much transparent, 957 with exceptions of followings: 958 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 959 moved to their own dev sysctl nodes, for example: 960 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 961 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 962 own chardev in the form of "dsp%d.<function>%d", where <function> 963 is p = playback, r = record and v = virtual, respectively. Users 964 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 965 This does not affect those who are using "/dev/dsp". 966 96720061122: 968 geom(4)'s gmirror(8) class metadata structure has been 969 rev'd from v3 to v4. If you update across this point and 970 your metadata is converted for you, you will not be easily 971 able to downgrade since the /boot/kernel.old/geom_mirror.ko 972 kernel module will be unable to read the v4 metadata. You 973 can resolve this by doing from the loader(8) prompt: 974 975 set vfs.root.mountfrom="ufs:/dev/XXX" 976 977 where XXX is the root slice of one of the disks that composed 978 the mirror (i.e.: /dev/ad0s1a). You can then rebuild 979 the array the same way you built it originally. 980 98120061122: 982 The following binaries have been disconnected from the build: 983 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 984 and mount_std. The functionality of these programs has been 985 moved into the mount program. For example, to mount a devfs 986 filesystem, instead of using mount_devfs, use: "mount -t devfs". 987 This does not affect entries in /etc/fstab, since entries in 988 /etc/fstab are always processed with "mount -t fstype". 989 99020061113: 991 Support for PCI Message Signalled Interrupts on i386 and amd64 992 has been added to the kernel and various drivers will soon be 993 updated to use MSI when it is available. If there are any problems, 994 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 995 and 'hw.pci.enable_msix' tunables to 0 in the loader. 996 99720061110: 998 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 999 The lockmgr object layout has been changed as a result of having 1000 a lock_object embedded in it. As a consequence all file system 1001 kernel modules must be re-compiled. The mutex profiling man page 1002 has not yet been updated to reflect this change. 1003 100420061026: 1005 KSE in the kernel has now been made optional and turned on by 1006 default. Use 'nooption KSE' in your kernel config to turn it 1007 off. All kernel modules *must* be recompiled after this change. 1008 There-after, modules from a KSE kernel should be compatible with 1009 modules from a NOKSE kernel due to the temporary padding fields 1010 added to 'struct proc'. 1011 101220060929: 1013 mrouted and its utilities have been removed from the base system. 1014 101520060927: 1016 Some ioctl(2) command codes have changed. Full backward ABI 1017 compatibility is provided if the "options COMPAT_FREEBSD6" is 1018 present in the kernel configuration file. Make sure to add 1019 this option to your kernel config file, or recompile X.Org 1020 and the rest of ports; otherwise they may refuse to work. 1021 102220060924: 1023 tcpslice has been removed from the base system. 1024 102520060913: 1026 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 1027 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 1028 systat needs to be rebuilt. 1029 103020060903: 1031 libpcap updated to v0.9.4 and tcpdump to v3.9.4 1032 103320060816: 1034 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 1035 for IPFIREWALL_FORWARD is now as it was before when it was first 1036 committed and for years after. The behaviour is now ON. 1037 103820060725: 1039 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 1040 Now it can decrypt files created from different architectures. 1041 Unfortunately, it is no longer able to decrypt a cipher text 1042 generated with an older version on 64 bit architectures. 1043 If you have such a file, you need old utility to decrypt it. 1044 104520060709: 1046 The interface version of the i4b kernel part has changed. So 1047 after updating the kernel sources and compiling a new kernel, 1048 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 1049 be rebuilt, and vice versa. 1050 105120060627: 1052 The XBOX kernel now defaults to the nfe(4) driver instead of 1053 the nve(4) driver. Please update your configuration 1054 accordingly. 1055 105620060514: 1057 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 1058 PCnet family of NICs has been removed. The new le(4) driver serves 1059 as an equivalent but cross-platform replacement with the pcn(4) 1060 driver still providing performance-optimized support for the subset 1061 of AMD Am79C971 PCnet-FAST and greater chips as before. 1062 106320060511: 1064 The machdep.* sysctls and the adjkerntz utility have been 1065 modified a bit. The new adjkerntz utility uses the new 1066 sysctl names and sysctlbyname() calls, so it may be impossible 1067 to run an old /sbin/adjkerntz utility in single-user mode 1068 with a new kernel. Replace the `adjkerntz -i' step before 1069 `make installworld' with: 1070 1071 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 1072 1073 and proceed as usual with the rest of the installworld-stage 1074 steps. Otherwise, you risk installing binaries with their 1075 timestamp set several hours in the future, especially if 1076 you are running with local time set to GMT+X hours. 1077 107820060412: 1079 The ip6fw utility has been removed. The behavior provided by 1080 ip6fw has been in ipfw2 for a good while and the rc.d scripts 1081 have been updated to deal with it. There are some rules that 1082 might not migrate cleanly. Use rc.firewall6 as a template to 1083 rewrite rules. 1084 108520060428: 1086 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 1087 attachments have been removed. Make sure to configure scc(4) 1088 on sparc64. Note also that by default puc(4) will use uart(4) 1089 and not sio(4) for serial ports because interrupt handling has 1090 been optimized for multi-port serial cards and only uart(4) 1091 implements the interface to support it. 1092 109320060330: 1094 The scc(4) driver replaces puc(4) for Serial Communications 1095 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 1096 Z8530. On sparc64, it is advised to add scc(4) to the kernel 1097 configuration to make sure that the serial ports remain 1098 functional. 1099 110020060317: 1101 Most world/kernel related NO_* build options changed names. 1102 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 1103 after FreeBSD ports) and should be set in /etc/src.conf 1104 (the src.conf(5) manpage is provided). Full backwards 1105 compatibility is maintained for the time being though it's 1106 highly recommended to start moving old options out of the 1107 system-wide /etc/make.conf file into the new /etc/src.conf 1108 while also properly renaming them. More conversions will 1109 likely follow. Posting to current@: 1110 1111 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 1112 111320060305: 1114 The NETSMBCRYPTO kernel option has been retired because its 1115 functionality is always included in NETSMB and smbfs.ko now. 1116 111720060303: 1118 The TDFX_LINUX kernel option was retired and replaced by the 1119 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 1120 kernel module. Loading it alone should suffice to get 3dfx support 1121 for Linux apps because it will pull in 3dfx.ko and linux.ko through 1122 its dependencies. 1123 112420060204: 1125 The 'audit' group was added to support the new auditing functionality 1126 in the base system. Be sure to follow the directions for updating, 1127 including the requirement to run mergemaster -p. 1128 112920060201: 1130 The kernel ABI to file system modules was changed on i386. 1131 Please make sure that your kernel and modules are in sync. 1132 113320060118: 1134 This actually occured some time ago, but installing the kernel 1135 now also installs a bunch of symbol files for the kernel modules. 1136 This increases the size of /boot/kernel to about 67Mbytes. You 1137 will need twice this if you will eventually back this up to kernel.old 1138 on your next install. 1139 If you have a shortage of room in your root partition, you should add 1140 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 1141 to your /etc/make.conf. 1142 114320060113: 1144 libc's malloc implementation has been replaced. This change has the 1145 potential to uncover application bugs that previously went unnoticed. 1146 See the malloc(3) manual page for more details. 1147 114820060112: 1149 The generic netgraph(4) cookie has been changed. If you upgrade 1150 kernel passing this point, you also need to upgrade userland 1151 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 1152 115320060106: 1154 si(4)'s device files now contain the unit number. 1155 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 1156 115720060106: 1158 The kernel ABI was mostly destroyed due to a change in the size 1159 of struct lock_object which is nested in other structures such 1160 as mutexes which are nested in all sorts of other structures. 1161 Make sure your kernel and modules are in sync. 1162 116320051231: 1164 The page coloring algorithm in the VM subsystem was converted 1165 from tuning with kernel options to autotuning. Please remove 1166 any PQ_* option except PQ_NOOPT from your kernel config. 1167 116820051211: 1169 The net80211-related tools in the tools/tools/ath directory 1170 have been moved to tools/tools/net80211 and renamed with a 1171 "wlan" prefix. Scripts that use them should be adjusted 1172 accordingly. 1173 117420051202: 1175 Scripts in the local_startup directories (as defined in 1176 /etc/defaults/rc.conf) that have the new rc.d semantics will 1177 now be run as part of the base system rcorder. If there are 1178 errors or problems with one of these local scripts, it could 1179 cause boot problems. If you encounter such problems, boot in 1180 single user mode, remove that script from the */rc.d directory. 1181 Please report the problem to the port's maintainer, and the 1182 freebsd-ports@freebsd.org mailing list. 1183 118420051129: 1185 The nodev mount option was deprecated in RELENG_6 (where it 1186 was a no-op), and is now unsupported. If you have nodev or dev listed 1187 in /etc/fstab, remove it, otherwise it will result in a mount error. 1188 118920051129: 1190 ABI between ipfw(4) and ipfw(8) has been changed. You need 1191 to rebuild ipfw(8) when rebuilding kernel. 1192 119320051108: 1194 rp(4)'s device files now contain the unit number. 1195 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 1196 119720051029: 1198 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 1199 Its /etc/rc.conf.d configuration file has been `ppp' from 1200 the beginning, and hence there is no need to touch it. 1201 120220051014: 1203 Now most modules get their build-time options from the kernel 1204 configuration file. A few modules still have fixed options 1205 due to their non-conformant implementation, but they will be 1206 corrected eventually. You may need to review the options of 1207 the modules in use, explicitly specify the non-default options 1208 in the kernel configuration file, and rebuild the kernel and 1209 modules afterwards. 1210 121120051001: 1212 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 1213 to turn polling(4) on your interfaces. 1214 121520050927: 1216 The old bridge(4) implementation was retired. The new 1217 if_bridge(4) serves as a full functional replacement. 1218 121920050722: 1220 The ai_addrlen of a struct addrinfo was changed to a socklen_t 1221 to conform to POSIX-2001. This change broke an ABI 1222 compatibility on 64 bit architecture. You have to recompile 1223 userland programs that use getaddrinfo(3) on 64 bit 1224 architecture. 1225 122620050711: 1227 RELENG_6 branched here. 1228 122920050629: 1230 The pccard_ifconfig rc.conf variable has been removed and a new 1231 variable, ifconfig_DEFAULT has been introduced. Unlike 1232 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 1233 do not have ifconfig_ifn entries rather than just those in 1234 removable_interfaces. 1235 123620050616: 1237 Some previous versions of PAM have permitted the use of 1238 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 1239 to third party PAM modules in /usr/local/lib. A change has been 1240 made to require the use of absolute paths in order to avoid 1241 ambiguity and dependence on library path configuration, which may 1242 affect existing configurations. 1243 124420050610: 1245 Major changes to network interface API. All drivers must be 1246 recompiled. Drivers not in the base system will need to be 1247 updated to the new APIs. 1248 124920050609: 1250 Changes were made to kinfo_proc in sys/user.h. Please recompile 1251 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 1252 will not behave correctly. 1253 1254 The API and ABI for hwpmc(4) have changed with the addition 1255 of sampling support. Please recompile lib/libpmc(3) and 1256 usr.sbin/{pmcstat,pmccontrol}. 1257 125820050606: 1259 The OpenBSD dhclient was imported in place of the ISC dhclient 1260 and the network interface configuration scripts were updated 1261 accordingly. If you use DHCP to configure your interfaces, you 1262 must now run devd. Also, DNS updating was lost so you will need 1263 to find a workaround if you use this feature. 1264 1265 The '_dhcp' user was added to support the OpenBSD dhclient. Be 1266 sure to run mergemaster -p (like you are supposed to do every time 1267 anyway). 1268 126920050605: 1270 if_bridge was added to the tree. This has changed struct ifnet. 1271 Please recompile userland and all network related modules. 1272 127320050603: 1274 The n_net of a struct netent was changed to an uint32_t, and 1275 1st argument of getnetbyaddr() was changed to an uint32_t, to 1276 conform to POSIX-2001. These changes broke an ABI 1277 compatibility on 64 bit architecture. With these changes, 1278 shlib major of libpcap was bumped. You have to recompile 1279 userland programs that use getnetbyaddr(3), getnetbyname(3), 1280 getnetent(3) and/or libpcap on 64 bit architecture. 1281 128220050528: 1283 Kernel parsing of extra options on '#!' first lines of shell 1284 scripts has changed. Lines with multiple options likely will 1285 fail after this date. For full details, please see 1286 http://people.freebsd.org/~gad/Updating-20050528.txt 1287 128820050503: 1289 The packet filter (pf) code has been updated to OpenBSD 3.7 1290 Please note the changed anchor syntax and the fact that 1291 authpf(8) now needs a mounted fdescfs(5) to function. 1292 129320050415: 1294 The NO_MIXED_MODE kernel option has been removed from the i386 1295 amd64 platforms as its use has been superceded by the new local 1296 APIC timer code. Any kernel config files containing this option 1297 should be updated. 1298 129920050227: 1300 The on-disk format of LC_CTYPE files was changed to be machine 1301 independent. Please make sure NOT to use NO_CLEAN buildworld 1302 when crossing this point. Crossing this point also requires 1303 recompile or reinstall of all locale depended packages. 1304 130520050225: 1306 The ifi_epoch member of struct if_data has been changed to 1307 contain the uptime at which the interface was created or the 1308 statistics zeroed rather then the wall clock time because 1309 wallclock time may go backwards. This should have no impact 1310 unless an snmp implementation is using this value (I know of 1311 none at this point.) 1312 131320050224: 1314 The acpi_perf and acpi_throttle drivers are now part of the 1315 acpi(4) main module. They are no longer built separately. 1316 131720050223: 1318 The layout of struct image_params has changed. You have to 1319 recompile all compatibility modules (linux, svr4, etc) for use 1320 with the new kernel. 1321 132220050223: 1323 The p4tcc driver has been merged into cpufreq(4). This makes 1324 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 1325 compile in "device cpufreq" to restore this functionality. 1326 132720050220: 1328 The responsibility of recomputing the file system summary of 1329 a SoftUpdates-enabled dirty volume has been transferred to the 1330 background fsck. A rebuild of fsck(8) utility is recommended 1331 if you have updated the kernel. 1332 1333 To get the old behavior (recompute file system summary at mount 1334 time), you can set vfs.ffs.compute_summary_at_mount=1 before 1335 mounting the new volume. 1336 133720050206: 1338 The cpufreq import is complete. As part of this, the sysctls for 1339 acpi(4) throttling have been removed. The power_profile script 1340 has been updated, so you can use performance/economy_cpu_freq in 1341 rc.conf(5) to set AC on/offline cpu frequencies. 1342 134320050206: 1344 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 1345 requires recompiling libnetgraph and userland netgraph utilities. 1346 134720050114: 1348 Support for abbreviated forms of a number of ipfw options is 1349 now deprecated. Warnings are printed to stderr indicating the 1350 correct full form when a match occurs. Some abbreviations may 1351 be supported at a later date based on user feedback. To be 1352 considered for support, abbreviations must be in use prior to 1353 this commit and unlikely to be confused with current key words. 1354 135520041221: 1356 By a popular demand, a lot of NOFOO options were renamed 1357 to NO_FOO (see bsd.compat.mk for a full list). The old 1358 spellings are still supported, but will cause annoying 1359 warnings on stderr. Make sure you upgrade properly (see 1360 the COMMON ITEMS: section later in this file). 1361 136220041219: 1363 Auto-loading of ancillary wlan modules such as wlan_wep has 1364 been temporarily disabled; you need to statically configure 1365 the modules you need into your kernel or explicitly load them 1366 prior to use. Specifically, if you intend to use WEP encryption 1367 with an 802.11 device load/configure wlan_wep; if you want to 1368 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 1369 and wlan_xauth as required. 1370 137120041213: 1372 The behaviour of ppp(8) has changed slightly. If lqr is enabled 1373 (``enable lqr''), older versions would revert to LCP ECHO mode on 1374 negotiation failure. Now, ``enable echo'' is required for this 1375 behaviour. The ppp version number has been bumped to 3.4.2 to 1376 reflect the change. 1377 137820041201: 1379 The wlan support has been updated to split the crypto support 1380 into separate modules. For static WEP you must configure the 1381 wlan_wep module in your system or build and install the module 1382 in place where it can be loaded (the kernel will auto-load 1383 the module when a wep key is configured). 1384 138520041201: 1386 The ath driver has been updated to split the tx rate control 1387 algorithm into a separate module. You need to include either 1388 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 1389 139020041116: 1391 Support for systems with an 80386 CPU has been removed. Please 1392 use FreeBSD 5.x or earlier on systems with an 80386. 1393 139420041110: 1395 We have had a hack which would mount the root filesystem 1396 R/W if the device were named 'md*'. As part of the vnode 1397 work I'm doing I have had to remove this hack. People 1398 building systems which use preloaded MD root filesystems 1399 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 1400 their /etc/rc scripts. 1401 140220041104: 1403 FreeBSD 5.3 shipped here. 1404 140520041102: 1406 The size of struct tcpcb has changed again due to the removal 1407 of RFC1644 T/TCP. You have to recompile userland programs that 1408 read kmem for tcp sockets directly (netstat, sockstat, etc.) 1409 141020041022: 1411 The size of struct tcpcb has changed. You have to recompile 1412 userland programs that read kmem for tcp sockets directly 1413 (netstat, sockstat, etc.) 1414 141520041016: 1416 RELENG_5 branched here. For older entries, please see updating 1417 in the RELENG_5 branch. 1418 1419COMMON ITEMS: 1420 1421 General Notes 1422 ------------- 1423 Avoid using make -j when upgrading. From time to time in the 1424 past there have been problems using -j with buildworld and/or 1425 installworld. This is especially true when upgrading between 1426 "distant" versions (eg one that cross a major release boundary 1427 or several minor releases, or when several months have passed 1428 on the -current branch). 1429 1430 Sometimes, obscure build problems are the result of environment 1431 poisoning. This can happen because the make utility reads its 1432 environment when searching for values for global variables. 1433 To run your build attempts in an "environmental clean room", 1434 prefix all make commands with 'env -i '. See the env(1) manual 1435 page for more details. 1436 1437 When upgrading from one major version to another it is generally 1438 best to upgrade to the latest code in the currently installed branch 1439 first, then do an upgrade to the new branch. This is the best-tested 1440 upgrade path, and has the highest probability of being successful. 1441 Please try this approach before reporting problems with a major 1442 version upgrade. 1443 1444 To build a kernel 1445 ----------------- 1446 If you are updating from a prior version of FreeBSD (even one just 1447 a few days old), you should follow this procedure. It is the most 1448 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1449 1450 make kernel-toolchain 1451 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1452 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1453 1454 To test a kernel once 1455 --------------------- 1456 If you just want to boot a kernel once (because you are not sure 1457 if it works, or if you want to boot a known bad kernel to provide 1458 debugging information) run 1459 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1460 nextboot -k testkernel 1461 1462 To just build a kernel when you know that it won't mess you up 1463 -------------------------------------------------------------- 1464 This assumes you are already running a 5.X system. Replace 1465 ${arch} with the architecture of your machine (e.g. "i386", 1466 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 1467 1468 cd src/sys/${arch}/conf 1469 config KERNEL_NAME_HERE 1470 cd ../compile/KERNEL_NAME_HERE 1471 make depend 1472 make 1473 make install 1474 1475 If this fails, go to the "To build a kernel" section. 1476 1477 To rebuild everything and install it on the current system. 1478 ----------------------------------------------------------- 1479 # Note: sometimes if you are running current you gotta do more than 1480 # is listed here if you are upgrading from a really old current. 1481 1482 <make sure you have good level 0 dumps> 1483 make buildworld 1484 make kernel KERNCONF=YOUR_KERNEL_HERE 1485 [1] 1486 <reboot in single user> [3] 1487 mergemaster -p [5] 1488 make installworld 1489 make delete-old 1490 mergemaster [4] 1491 <reboot> 1492 1493 1494 To cross-install current onto a separate partition 1495 -------------------------------------------------- 1496 # In this approach we use a separate partition to hold 1497 # current's root, 'usr', and 'var' directories. A partition 1498 # holding "/", "/usr" and "/var" should be about 2GB in 1499 # size. 1500 1501 <make sure you have good level 0 dumps> 1502 <boot into -stable> 1503 make buildworld 1504 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1505 <maybe newfs current's root partition> 1506 <mount current's root partition on directory ${CURRENT_ROOT}> 1507 make installworld DESTDIR=${CURRENT_ROOT} 1508 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1509 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1510 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1511 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1512 <reboot into current> 1513 <do a "native" rebuild/install as described in the previous section> 1514 <maybe install compatibility libraries from ports/misc/compat*> 1515 <reboot> 1516 1517 1518 To upgrade in-place from 5.x-stable to current 1519 ---------------------------------------------- 1520 <make sure you have good level 0 dumps> 1521 make buildworld [9] 1522 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1523 [1] 1524 <reboot in single user> [3] 1525 mergemaster -p [5] 1526 make installworld 1527 make delete-old 1528 mergemaster -i [4] 1529 <reboot> 1530 1531 Make sure that you've read the UPDATING file to understand the 1532 tweaks to various things you need. At this point in the life 1533 cycle of current, things change often and you are on your own 1534 to cope. The defaults can also change, so please read ALL of 1535 the UPDATING entries. 1536 1537 Also, if you are tracking -current, you must be subscribed to 1538 freebsd-current@freebsd.org. Make sure that before you update 1539 your sources that you have read and understood all the recent 1540 messages there. If in doubt, please track -stable which has 1541 much fewer pitfalls. 1542 1543 [1] If you have third party modules, such as vmware, you 1544 should disable them at this point so they don't crash your 1545 system on reboot. 1546 1547 [3] From the bootblocks, boot -s, and then do 1548 fsck -p 1549 mount -u / 1550 mount -a 1551 cd src 1552 adjkerntz -i # if CMOS is wall time 1553 Also, when doing a major release upgrade, it is required that 1554 you boot into single user mode to do the installworld. 1555 1556 [4] Note: This step is non-optional. Failure to do this step 1557 can result in a significant reduction in the functionality of the 1558 system. Attempting to do it by hand is not recommended and those 1559 that pursue this avenue should read this file carefully, as well 1560 as the archives of freebsd-current and freebsd-hackers mailing lists 1561 for potential gotchas. 1562 1563 [5] Usually this step is a noop. However, from time to time 1564 you may need to do this if you get unknown user in the following 1565 step. It never hurts to do it all the time. You may need to 1566 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1567 install) after the buildworld before this step if you last updated 1568 from current before 20020224 or from -stable before 20020408. 1569 1570 [8] In order to have a kernel that can run the 4.x binaries 1571 needed to do an installworld, you must include the COMPAT_FREEBSD4 1572 option in your kernel. Failure to do so may leave you with a system 1573 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 1574 is required to run the 5.x binaries on more recent kernels. 1575 1576 Make sure that you merge any new devices from GENERIC since the 1577 last time you updated your kernel config file. 1578 1579 [9] When checking out sources, you must include the -P flag to have 1580 cvs prune empty directories. 1581 1582 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1583 "?=" instead of the "=" assignment operator, so that buildworld can 1584 override the CPUTYPE if it needs to. 1585 1586 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1587 not on the command line, or in /etc/make.conf. buildworld will 1588 warn if it is improperly defined. 1589FORMAT: 1590 1591This file contains a list, in reverse chronological order, of major 1592breakages in tracking -current. Not all things will be listed here, 1593and it only starts on October 16, 2004. Updating files can found in 1594previous releases if your system is older than this. 1595 1596Copyright information: 1597 1598Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 1599 1600Redistribution, publication, translation and use, with or without 1601modification, in full or in part, in any form or format of this 1602document are permitted without further permission from the author. 1603 1604THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1605IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1606WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1607DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1608INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1609(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1610SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1611HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1612STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1613IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1614POSSIBILITY OF SUCH DAMAGE. 1615 1616If you find this document useful, and you want to, you may buy the 1617author a beer. 1618 1619Contact Warner Losh if you have any questions about your use of 1620this document. 1621 1622$FreeBSD: head/UPDATING 194498 2009-06-19 17:10:35Z brooks $ 1623