UPDATING revision 172497
1Updating Information for FreeBSD current users 2 3This file is maintained and copyrighted by M. Warner Losh 4<imp@village.org>. See end of file for further details. For commonly 5done items, please see the COMMON ITEMS: section later in the file. 6 7Items affecting the ports and packages system can be found in 8/usr/ports/UPDATING. Please read that file before running 9portupgrade. 10 11NOTE TO PEOPLE WHO THINK THAT FreeBSD 7.x IS SLOW: 12 FreeBSD 7.x has many debugging features turned on, in 13 both the kernel and userland. These features attempt to detect 14 incorrect use of system primitives, and encourage loud failure 15 through extra sanity checking and fail stop semantics. They 16 also substantially impact system performance. If you want to 17 do performance measurement, benchmarking, and optimization, 18 you'll want to turn them off. This includes various WITNESS- 19 related kernel options, INVARIANTS, malloc debugging flags 20 in userland, and various verbose features in the kernel. Many 21 developers choose to disable these features on build machines 22 to maximize performance. 23 2420071009: 25 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 26 WITHOUT_LIBTHR are set. 27 2820070930: 29 The PCI code has been made aware of PCI domains. This means that 30 the location strings as used by pciconf(8) etc are now in the 31 following format: pci<domain>:<bus>:<device>[:<function>]. It 32 also means that consumers of <sys/pciio.h> potentially need to 33 be recompiled; this includes the hal and xorg-server ports. 34 3520070928: 36 The caching daemon (cached) was renamed to nscd. nscd.conf 37 configuration file should be used instead of cached.conf and 38 nscd_enable, nscd_pidfile and nscd_flags options should be used 39 instead of cached_enable, cached_pidfile and cached_flags in 40 rc.conf. 41 4220070704: 43 The new IPsec code is now compiled in using the IPSEC option. The 44 IPSEC option now requires "device crypto" be defined in your kernel 45 configuration. The FAST_IPSEC kernel option is now deprecated. 46 4720070702: 48 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 49 note the changed syntax - keep state is now on by default. Also 50 note the fact that ftp-proxy(8) has been changed from bottom up and 51 has been moved from libexec to usr/sbin. Changes in the ALTQ 52 handling also affect users of IPFW's ALTQ capabilities. 53 5420070701: 55 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 56 only IPsec supported by FreeBSD. The new IPsec stack 57 supports both IPv4 and IPv6. The kernel option will change 58 after the code changes have settled in. For now the kernel 59 option IPSEC is deprecated and FAST_IPSEC is the only option, that 60 will change after some settling time. 61 6220070701: 63 The wicontrol(8) utility has been removed from the base system. wi(4) 64 cards should be configured using ifconfig(8), see the man page for more 65 information. 66 6720070612: 68 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 69 instead of the nve(4) driver. Please update your configuration 70 accordingly. 71 7220070612: 73 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 74 database if it is missing or older than the aliases file. If 75 desired, set the new rc.conf option sendmail_rebuild_aliases 76 to "YES" to restore that functionality. 77 7820070612: 79 The IPv4 multicast socket code has been considerably modified, and 80 moved to the file sys/netinet/in_mcast.c. Initial support for the 81 RFC 3678 Source-Specific Multicast Socket API has been added to 82 the IPv4 network stack. 83 84 Strict multicast and broadcast reception is now the default for 85 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 86 has now been removed. 87 88 The RFC 1724 hack for interface selection has been removed; the use 89 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 90 been added to replace it. Consumers such as routed will soon be 91 updated to reflect this. 92 93 These changes affect users who are running routed(8) or rdisc(8) 94 from the FreeBSD base system on point-to-point or unnumbered 95 interfaces. 96 9720070610: 98 The net80211 layer has changed significantly and all wireless 99 drivers that depend on it need to be recompiled. Further these 100 changes require that any program that interacts with the wireless 101 support in the kernel be recompiled; this includes: ifconfig, 102 wpa_supplicant, hostapd, and wlanstats. Users must also, for 103 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 104 if they use modules for wireless support. These modules implement 105 scanning support for station and ap modes, respectively. Failure 106 to load the appropriate module before marking a wireless interface 107 up will result in a message to the console and the device not 108 operating properly. 109 11020070610: 111 The pam_nologin(8) module ceases to provide an authentication 112 function and starts providing an account management function. 113 Consequent changes to /etc/pam.d should be brought in using 114 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 115 need manual editing as follows. Locate this line (or similar): 116 117 auth required pam_nologin.so no_warn 118 119 and change it according to this example: 120 121 account required pam_nologin.so no_warn 122 123 That is, the first word needs to be changed from "auth" to 124 "account". The new line can be moved to the account section 125 within the file for clarity. Not updating pam.conf(5) files 126 will result in nologin(5) ignored by the respective services. 127 12820070529: 129 The ether_ioctl() function has been synchronized with ioctl(2) 130 and ifnet.if_ioctl. Due to that, the size of one of its arguments 131 has changed on 64-bit architectures. All kernel modules using 132 ether_ioctl() need to be rebuilt on such architectures. 133 13420070516: 135 Improved INCLUDE_CONFIG_FILE support has been introduced to the 136 config(8) utility. In order to take advantage of this new 137 functionality, you are expected to recompile and install 138 src/usr.sbin/config. If you don't rebuild config(8), and your 139 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 140 build will be broken because of a missing "kernconfstring" 141 symbol. 142 14320070513: 144 Symbol versioning is enabled by default. To disable it, use 145 option WITHOUT_SYMVER. It is not advisable to attempt to 146 disable symbol versioning once it is enabled; your installworld 147 will break because a symbol version-less libc will get installed 148 before the install tools. As a result, the old install tools, 149 which previously had symbol dependencies to FBSD_1.0, will fail 150 because the freshly installed libc will not have them. 151 152 The default threading library (providing "libpthread") has been 153 changed to libthr. If you wish to have libkse as your default, 154 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 155 15620070423: 157 The ABI breakage in sendmail(8)'s libmilter has been repaired 158 so it is no longer necessary to recompile mail filters (aka, 159 milters). If you recompiled mail filters after the 20070408 160 note, it is not necessary to recompile them again. 161 16220070417: 163 The new trunk(4) driver has been renamed to lagg(4) as it better 164 reflects its purpose. ifconfig will need to be recompiled. 165 16620070408: 167 sendmail(8) has been updated to version 8.14.1. Mail filters 168 (aka, milters) compiled against the libmilter included in the 169 base operating system should be recompiled. 170 17120070302: 172 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 173 In order to use them one must agree to the respective LICENSE in 174 share/doc/legal and define legal.intel_<name>.license_ack=1 via 175 loader.conf(5) or kenv(1). Make sure to deinstall the now 176 deprecated modules from the respective firmware ports. 177 17820070228: 179 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 180 were removed from FreeBSD's libc. These originally came from INRIA 181 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 182 deprecated in previous releases. 183 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 184 replace it as a more portable (and re-entrant) API. 185 18620070224: 187 To support interrupt filtering a modification to the newbus API 188 has occurred, ABI was broken and __FreeBSD_version was bumped 189 to 700031. Please make sure that your kernel and modules are in 190 sync. For more info: 191 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 192 19320070224: 194 The IPv6 multicast forwarding code may now be loaded into GENERIC 195 kernels by loading the ip_mroute.ko module. This is built into the 196 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 197 set; see src.conf(5) for more information. 198 19920070214: 200 The output of netstat -r has changed. Without -n, we now only 201 print a "network name" without the prefix length if the network 202 address and mask exactly match a Class A/B/C network, and an entry 203 exists in the nsswitch "networks" map. 204 With -n, we print the full unabbreviated CIDR network prefix in 205 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 206 This change is in preparation for changes such as equal-cost 207 multipath, and to more generally assist operational deployment 208 of FreeBSD as a modern IPv4 router. 209 21020070210: 211 PIM has been turned on by default in the IPv4 multicast 212 routing code. The kernel option 'PIM' has now been removed. 213 PIM is now built by default if option 'MROUTING' is specified. 214 It may now be loaded into GENERIC kernels by loading the 215 ip_mroute.ko module. 216 21720070207: 218 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 219 has been removed. Its functionality may be achieved by explicitly 220 configuring gif(4) interfaces and using the 'phyint' keyword in 221 mrouted.conf. 222 XORP does not support source-routed IPv4 multicast tunnels nor the 223 integrated IPIP tunneling, therefore it is not affected by this 224 change. The __FreeBSD_version macro has been bumped to 700030. 225 22620061221: 227 Support for PCI Message Signalled Interrupts has been 228 re-enabled in the bge driver, only for those chips which are 229 believed to support it properly. If there are any problems, 230 MSI can be disabled completely by setting the 231 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 232 in the loader. 233 23420061214: 235 Support for PCI Message Signalled Interrupts has been 236 disabled again in the bge driver. Many revisions of the 237 hardware fail to support it properly. Support can be 238 re-enabled by removing the #define of BGE_DISABLE_MSI in 239 "src/sys/dev/bge/if_bge.c". 240 24120061214: 242 Support for PCI Message Signalled Interrupts has been added 243 to the bge driver. If there are any problems, MSI can be 244 disabled completely by setting the 'hw.pci.enable_msi' and 245 'hw.pci.enable_msix' tunables to 0 in the loader. 246 24720061205: 248 The removal of several facets of the experimental Threading 249 system from the kernel means that the proc and thread structures 250 have changed quite a bit. I suggest all kernel modules that might 251 reference these structures be recompiled.. Especially the 252 linux module. 253 25420061126: 255 Sound infrastructure has been updated with various fixes and 256 improvements. Most of the changes are pretty much transparent, 257 with exceptions of followings: 258 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 259 moved to their own dev sysctl nodes, for example: 260 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 261 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 262 own chardev in the form of "dsp%d.<function>%d", where <function> 263 is p = playback, r = record and v = virtual, respectively. Users 264 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 265 This does not affect those who are using "/dev/dsp". 266 26720061122: 268 The following binaries have been disconnected from the build: 269 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 270 and mount_std. The functionality of these programs has been 271 moved into the mount program. For example, to mount a devfs 272 filesystem, instead of using mount_devfs, use: "mount -t devfs". 273 This does not affect entries in /etc/fstab, since entries in 274 /etc/fstab are always processed with "mount -t fstype". 275 27620061113: 277 Support for PCI Message Signalled Interrupts on i386 and amd64 278 has been added to the kernel and various drivers will soon be 279 updated to use MSI when it is available. If there are any problems, 280 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 281 and 'hw.pci.enable_msix' tunables to 0 in the loader. 282 28320061110: 284 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 285 The lockmgr object layout has been changed as a result of having 286 a lock_object embedded in it. As a consequence all file system 287 kernel modules must be re-compiled. The mutex profiling man page 288 has not yet been updated to reflect this change. 289 29020061026: 291 KSE in the kernel has now been made optional and turned on by 292 default. Use 'nooption KSE' in your kernel config to turn it 293 off. All kernel modules *must* be recompiled after this change. 294 There-after, modules from a KSE kernel should be compatible with 295 modules from a NOKSE kernel due to the temporary padding fields 296 added to 'struct proc'. 297 29820060929: 299 mrouted and its utilities have been removed from the base system. 300 30120060927: 302 Some ioctl(2) command codes have changed. Full backward ABI 303 compatibility is provided if the "options COMPAT_FREEBSD6" is 304 present in the kernel configuration file. Make sure to add 305 this option to your kernel config file, or recompile X.Org 306 and the rest of ports; otherwise they may refuse to work. 307 30820060924: 309 tcpslice has been removed from the base system. 310 31120060913: 312 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 313 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 314 systat needs to be rebuilt. 315 31620060903: 317 libpcap updated to v0.9.4 and tcpdump to v3.9.4 318 31920060816: 320 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 321 for IPFIREWALL_FORWARD is now as it was before when it was first 322 committed and for years after. The behaviour is now ON. 323 32420060725: 325 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 326 Now it can decrypt files created from different architectures. 327 Unfortunately, it is no longer able to decrypt a cipher text 328 generated with an older version on 64 bit architectures. 329 If you have such a file, you need old utility to decrypt it. 330 33120060709: 332 The interface version of the i4b kernel part has changed. So 333 after updating the kernel sources and compiling a new kernel, 334 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 335 be rebuilt, and vice versa. 336 33720060627: 338 The XBOX kernel now defaults to the nfe(4) driver instead of 339 the nve(4) driver. Please update your configuration 340 accordingly. 341 34220060514: 343 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 344 PCnet family of NICs has been removed. The new le(4) driver serves 345 as an equivalent but cross-platform replacement with the pcn(4) 346 driver still providing performance-optimized support for the subset 347 of AMD Am79C971 PCnet-FAST and greater chips as before. 348 34920060511: 350 The machdep.* sysctls and the adjkerntz utility have been 351 modified a bit. The new adjkerntz utility uses the new 352 sysctl names and sysctlbyname() calls, so it may be impossible 353 to run an old /sbin/adjkerntz utility in single-user mode 354 with a new kernel. Replace the `adjkerntz -i' step before 355 `make installworld' with: 356 357 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 358 359 and proceed as usual with the rest of the installworld-stage 360 steps. Otherwise, you risk installing binaries with their 361 timestamp set several hours in the future, especially if 362 you are running with local time set to GMT+X hours. 363 36420060412: 365 The ip6fw utility has been removed. The behavior provided by 366 ip6fw has been in ipfw2 for a good while and the rc.d scripts 367 have been updated to deal with it. There are some rules that 368 might not migrate cleanly. Use rc.firewall6 as a template to 369 rewrite rules. 370 37120060428: 372 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 373 attachments have been removed. Make sure to configure scc(4) 374 on sparc64. Note also that by default puc(4) will use uart(4) 375 and not sio(4) for serial ports because interrupt handling has 376 been optimized for multi-port serial cards and only uart(4) 377 implements the interface to support it. 378 37920060330: 380 The scc(4) driver replaces puc(4) for Serial Communications 381 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 382 Z8530. On sparc64, it is advised to add scc(4) to the kernel 383 configuration to make sure that the serial ports remain 384 functional. 385 38620060317: 387 Most world/kernel related NO_* build options changed names. 388 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 389 after FreeBSD ports) and should be set in /etc/src.conf 390 (the src.conf(5) manpage is provided). Full backwards 391 compatibility is maintained for the time being though it's 392 highly recommended to start moving old options out of the 393 system-wide /etc/make.conf file into the new /etc/src.conf 394 while also properly renaming them. More conversions will 395 likely follow. Posting to current@: 396 397 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 398 39920060305: 400 The NETSMBCRYPTO kernel option has been retired because its 401 functionality is always included in NETSMB and smbfs.ko now. 402 40320060303: 404 The TDFX_LINUX kernel option was retired and replaced by the 405 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 406 kernel module. Loading it alone should suffice to get 3dfx support 407 for Linux apps because it will pull in 3dfx.ko and linux.ko through 408 its dependencies. 409 41020060204: 411 The 'audit' group was added to support the new auditing functionality 412 in the base system. Be sure to follow the directions for updating, 413 including the requirement to run mergemaster -p. 414 41520060201: 416 The kernel ABI to file system modules was changed on i386. 417 Please make sure that your kernel and modules are in sync. 418 41920060118: 420 This actually occured some time ago, but installing the kernel 421 now also installs a bunch of symbol files for the kernel modules. 422 This increases the size of /boot/kernel to about 67Mbytes. You 423 will need twice this if you will eventually back this up to kernel.old 424 on your next install. 425 If you have a shortage of room in your root partition, you should add 426 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 427 to your /etc/make.conf. 428 42920060113: 430 libc's malloc implementation has been replaced. This change has the 431 potential to uncover application bugs that previously went unnoticed. 432 See the malloc(3) manual page for more details. 433 43420060112: 435 The generic netgraph(4) cookie has been changed. If you upgrade 436 kernel passing this point, you also need to upgrade userland 437 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 438 43920060106: 440 si(4)'s device files now contain the unit number. 441 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 442 44320060106: 444 The kernel ABI was mostly destroyed due to a change in the size 445 of struct lock_object which is nested in other structures such 446 as mutexes which are nested in all sorts of other structures. 447 Make sure your kernel and modules are in sync. 448 44920051231: 450 The page coloring algorithm in the VM subsystem was converted 451 from tuning with kernel options to autotuning. Please remove 452 any PQ_* option except PQ_NOOPT from your kernel config. 453 45420051211: 455 The net80211-related tools in the tools/tools/ath directory 456 have been moved to tools/tools/net80211 and renamed with a 457 "wlan" prefix. Scripts that use them should be adjusted 458 accordingly. 459 46020051202: 461 Scripts in the local_startup directories (as defined in 462 /etc/defaults/rc.conf) that have the new rc.d semantics will 463 now be run as part of the base system rcorder. If there are 464 errors or problems with one of these local scripts, it could 465 cause boot problems. If you encounter such problems, boot in 466 single user mode, remove that script from the */rc.d directory. 467 Please report the problem to the port's maintainer, and the 468 freebsd-ports@freebsd.org mailing list. 469 47020051129: 471 The nodev mount option was deprecated in RELENG_6 (where it 472 was a no-op), and is now unsupported. If you have nodev or dev listed 473 in /etc/fstab, remove it, otherwise it will result in a mount error. 474 47520051129: 476 ABI between ipfw(4) and ipfw(8) has been changed. You need 477 to rebuild ipfw(8) when rebuilding kernel. 478 47920051108: 480 rp(4)'s device files now contain the unit number. 481 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 482 48320051029: 484 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 485 Its /etc/rc.conf.d configuration file has been `ppp' from 486 the beginning, and hence there is no need to touch it. 487 48820051014: 489 Now most modules get their build-time options from the kernel 490 configuration file. A few modules still have fixed options 491 due to their non-conformant implementation, but they will be 492 corrected eventually. You may need to review the options of 493 the modules in use, explicitly specify the non-default options 494 in the kernel configuration file, and rebuild the kernel and 495 modules afterwards. 496 49720051001: 498 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 499 to turn polling(4) on your interfaces. 500 50120050927: 502 The old bridge(4) implementation was retired. The new 503 if_bridge(4) serves as a full functional replacement. 504 50520050722: 506 The ai_addrlen of a struct addrinfo was changed to a socklen_t 507 to conform to POSIX-2001. This change broke an ABI 508 compatibility on 64 bit architecture. You have to recompile 509 userland programs that use getaddrinfo(3) on 64 bit 510 architecture. 511 51220050711: 513 RELENG_6 branched here. 514 51520050629: 516 The pccard_ifconfig rc.conf variable has been removed and a new 517 variable, ifconfig_DEFAULT has been introduced. Unlike 518 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 519 do not have ifconfig_ifn entries rather than just those in 520 removable_interfaces. 521 52220050616: 523 Some previous versions of PAM have permitted the use of 524 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 525 to third party PAM modules in /usr/local/lib. A change has been 526 made to require the use of absolute paths in order to avoid 527 ambiguity and dependence on library path configuration, which may 528 affect existing configurations. 529 53020050610: 531 Major changes to network interface API. All drivers must be 532 recompiled. Drivers not in the base system will need to be 533 updated to the new APIs. 534 53520050609: 536 Changes were made to kinfo_proc in sys/user.h. Please recompile 537 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 538 will not behave correctly. 539 540 The API and ABI for hwpmc(4) have changed with the addition 541 of sampling support. Please recompile lib/libpmc(3) and 542 usr.sbin/{pmcstat,pmccontrol}. 543 54420050606: 545 The OpenBSD dhclient was imported in place of the ISC dhclient 546 and the network interface configuration scripts were updated 547 accordingly. If you use DHCP to configure your interfaces, you 548 must now run devd. Also, DNS updating was lost so you will need 549 to find a workaround if you use this feature. 550 551 The '_dhcp' user was added to support the OpenBSD dhclient. Be 552 sure to run mergemaster -p (like you are supposed to do every time 553 anyway). 554 55520050605: 556 if_bridge was added to the tree. This has changed struct ifnet. 557 Please recompile userland and all network related modules. 558 55920050603: 560 The n_net of a struct netent was changed to an uint32_t, and 561 1st argument of getnetbyaddr() was changed to an uint32_t, to 562 conform to POSIX-2001. These changes broke an ABI 563 compatibility on 64 bit architecture. With these changes, 564 shlib major of libpcap was bumped. You have to recompile 565 userland programs that use getnetbyaddr(3), getnetbyname(3), 566 getnetent(3) and/or libpcap on 64 bit architecture. 567 56820050528: 569 Kernel parsing of extra options on '#!' first lines of shell 570 scripts has changed. Lines with multiple options likely will 571 fail after this date. For full details, please see 572 http://people.freebsd.org/~gad/Updating-20050528.txt 573 57420050503: 575 The packet filter (pf) code has been updated to OpenBSD 3.7 576 Please note the changed anchor syntax and the fact that 577 authpf(8) now needs a mounted fdescfs(5) to function. 578 57920050415: 580 The NO_MIXED_MODE kernel option has been removed from the i386 581 amd64 platforms as its use has been superceded by the new local 582 APIC timer code. Any kernel config files containing this option 583 should be updated. 584 58520050227: 586 The on-disk format of LC_CTYPE files was changed to be machine 587 independent. Please make sure NOT to use NO_CLEAN buildworld 588 when crossing this point. Crossing this point also requires 589 recompile or reinstall of all locale depended packages. 590 59120050225: 592 The ifi_epoch member of struct if_data has been changed to 593 contain the uptime at which the interface was created or the 594 statistics zeroed rather then the wall clock time because 595 wallclock time may go backwards. This should have no impact 596 unless an snmp implementation is using this value (I know of 597 none at this point.) 598 59920050224: 600 The acpi_perf and acpi_throttle drivers are now part of the 601 acpi(4) main module. They are no longer built separately. 602 60320050223: 604 The layout of struct image_params has changed. You have to 605 recompile all compatibility modules (linux, svr4, etc) for use 606 with the new kernel. 607 60820050223: 609 The p4tcc driver has been merged into cpufreq(4). This makes 610 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 611 compile in "device cpufreq" to restore this functionality. 612 61320050220: 614 The responsibility of recomputing the file system summary of 615 a SoftUpdates-enabled dirty volume has been transferred to the 616 background fsck. A rebuild of fsck(8) utility is recommended 617 if you have updated the kernel. 618 619 To get the old behavior (recompute file system summary at mount 620 time), you can set vfs.ffs.compute_summary_at_mount=1 before 621 mounting the new volume. 622 62320050206: 624 The cpufreq import is complete. As part of this, the sysctls for 625 acpi(4) throttling have been removed. The power_profile script 626 has been updated, so you can use performance/economy_cpu_freq in 627 rc.conf(5) to set AC on/offline cpu frequencies. 628 62920050206: 630 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 631 requires recompiling libnetgraph and userland netgraph utilities. 632 63320050114: 634 Support for abbreviated forms of a number of ipfw options is 635 now deprecated. Warnings are printed to stderr indicating the 636 correct full form when a match occurs. Some abbreviations may 637 be supported at a later date based on user feedback. To be 638 considered for support, abbreviations must be in use prior to 639 this commit and unlikely to be confused with current key words. 640 64120041221: 642 By a popular demand, a lot of NOFOO options were renamed 643 to NO_FOO (see bsd.compat.mk for a full list). The old 644 spellings are still supported, but will cause annoying 645 warnings on stderr. Make sure you upgrade properly (see 646 the COMMON ITEMS: section later in this file). 647 64820041219: 649 Auto-loading of ancillary wlan modules such as wlan_wep has 650 been temporarily disabled; you need to statically configure 651 the modules you need into your kernel or explicitly load them 652 prior to use. Specifically, if you intend to use WEP encryption 653 with an 802.11 device load/configure wlan_wep; if you want to 654 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 655 and wlan_xauth as required. 656 65720041213: 658 The behaviour of ppp(8) has changed slightly. If lqr is enabled 659 (``enable lqr''), older versions would revert to LCP ECHO mode on 660 negotiation failure. Now, ``enable echo'' is required for this 661 behaviour. The ppp version number has been bumped to 3.4.2 to 662 reflect the change. 663 66420041201: 665 The wlan support has been updated to split the crypto support 666 into separate modules. For static WEP you must configure the 667 wlan_wep module in your system or build and install the module 668 in place where it can be loaded (the kernel will auto-load 669 the module when a wep key is configured). 670 67120041201: 672 The ath driver has been updated to split the tx rate control 673 algorithm into a separate module. You need to include either 674 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 675 67620041116: 677 Support for systems with an 80386 CPU has been removed. Please 678 use FreeBSD 5.x or earlier on systems with an 80386. 679 68020041110: 681 We have had a hack which would mount the root filesystem 682 R/W if the device were named 'md*'. As part of the vnode 683 work I'm doing I have had to remove this hack. People 684 building systems which use preloaded MD root filesystems 685 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 686 their /etc/rc scripts. 687 68820041104: 689 FreeBSD 5.3 shipped here. 690 69120041102: 692 The size of struct tcpcb has changed again due to the removal 693 of RFC1644 T/TCP. You have to recompile userland programs that 694 read kmem for tcp sockets directly (netstat, sockstat, etc.) 695 69620041022: 697 The size of struct tcpcb has changed. You have to recompile 698 userland programs that read kmem for tcp sockets directly 699 (netstat, sockstat, etc.) 700 70120041016: 702 RELENG_5 branched here. For older entries, please see updating 703 in the RELENG_5 branch. 704 705COMMON ITEMS: 706 707 General Notes 708 ------------- 709 Avoid using make -j when upgrading. From time to time in the 710 past there have been problems using -j with buildworld and/or 711 installworld. This is especially true when upgrading between 712 "distant" versions (eg one that cross a major release boundary 713 or several minor releases, or when several months have passed 714 on the -current branch). 715 716 Sometimes, obscure build problems are the result of environment 717 poisoning. This can happen because the make utility reads its 718 environment when searching for values for global variables. 719 To run your build attempts in an "environmental clean room", 720 prefix all make commands with 'env -i '. See the env(1) manual 721 page for more details. 722 723 When upgrading from one major version to another it is generally 724 best to upgrade to the latest code in the currently installed branch 725 first, then do an upgrade to the new branch. This is the best-tested 726 upgrade path, and has the highest probability of being successful. 727 Please try this approach before reporting problems with a major 728 version upgrade. 729 730 To build a kernel 731 ----------------- 732 If you are updating from a prior version of FreeBSD (even one just 733 a few days old), you should follow this procedure. It is the most 734 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 735 736 make kernel-toolchain 737 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 738 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 739 740 To test a kernel once 741 --------------------- 742 If you just want to boot a kernel once (because you are not sure 743 if it works, or if you want to boot a known bad kernel to provide 744 debugging information) run 745 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 746 nextboot -k testkernel 747 748 To just build a kernel when you know that it won't mess you up 749 -------------------------------------------------------------- 750 This assumes you are already running a 5.X system. Replace 751 ${arch} with the architecture of your machine (e.g. "i386", 752 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 753 754 cd src/sys/${arch}/conf 755 config KERNEL_NAME_HERE 756 cd ../compile/KERNEL_NAME_HERE 757 make depend 758 make 759 make install 760 761 If this fails, go to the "To build a kernel" section. 762 763 To rebuild everything and install it on the current system. 764 ----------------------------------------------------------- 765 # Note: sometimes if you are running current you gotta do more than 766 # is listed here if you are upgrading from a really old current. 767 768 <make sure you have good level 0 dumps> 769 make buildworld 770 make kernel KERNCONF=YOUR_KERNEL_HERE 771 [1] 772 <reboot in single user> [3] 773 mergemaster -p [5] 774 make installworld 775 make delete-old 776 mergemaster [4] 777 <reboot> 778 779 780 To cross-install current onto a separate partition 781 -------------------------------------------------- 782 # In this approach we use a separate partition to hold 783 # current's root, 'usr', and 'var' directories. A partition 784 # holding "/", "/usr" and "/var" should be about 2GB in 785 # size. 786 787 <make sure you have good level 0 dumps> 788 <boot into -stable> 789 make buildworld 790 make buildkernel KERNCONF=YOUR_KERNEL_HERE 791 <maybe newfs current's root partition> 792 <mount current's root partition on directory ${CURRENT_ROOT}> 793 make installworld DESTDIR=${CURRENT_ROOT} 794 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 795 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 796 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 797 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 798 <reboot into current> 799 <do a "native" rebuild/install as described in the previous section> 800 <maybe install compatibility libraries from src/lib/compat> 801 <reboot> 802 803 804 To upgrade in-place from 5.x-stable to current 805 ---------------------------------------------- 806 <make sure you have good level 0 dumps> 807 make buildworld [9] 808 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 809 [1] 810 <reboot in single user> [3] 811 mergemaster -p [5] 812 make installworld 813 make delete-old 814 mergemaster -i [4] 815 <reboot> 816 817 Make sure that you've read the UPDATING file to understand the 818 tweaks to various things you need. At this point in the life 819 cycle of current, things change often and you are on your own 820 to cope. The defaults can also change, so please read ALL of 821 the UPDATING entries. 822 823 Also, if you are tracking -current, you must be subscribed to 824 freebsd-current@freebsd.org. Make sure that before you update 825 your sources that you have read and understood all the recent 826 messages there. If in doubt, please track -stable which has 827 much fewer pitfalls. 828 829 [1] If you have third party modules, such as vmware, you 830 should disable them at this point so they don't crash your 831 system on reboot. 832 833 [3] From the bootblocks, boot -s, and then do 834 fsck -p 835 mount -u / 836 mount -a 837 cd src 838 adjkerntz -i # if CMOS is wall time 839 Also, when doing a major release upgrade, it is required that 840 you boot into single user mode to do the installworld. 841 842 [4] Note: This step is non-optional. Failure to do this step 843 can result in a significant reduction in the functionality of the 844 system. Attempting to do it by hand is not recommended and those 845 that pursue this avenue should read this file carefully, as well 846 as the archives of freebsd-current and freebsd-hackers mailing lists 847 for potential gotchas. 848 849 [5] Usually this step is a noop. However, from time to time 850 you may need to do this if you get unknown user in the following 851 step. It never hurts to do it all the time. You may need to 852 install a new mergemaster (cd src/usr.sbin/mergemaster && make 853 install) after the buildworld before this step if you last updated 854 from current before 20020224 or from -stable before 20020408. 855 856 [8] In order to have a kernel that can run the 4.x binaries 857 needed to do an installworld, you must include the COMPAT_FREEBSD4 858 option in your kernel. Failure to do so may leave you with a system 859 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 860 is required to run the 5.x binaries on more recent kernels. 861 862 Make sure that you merge any new devices from GENERIC since the 863 last time you updated your kernel config file. 864 865 [9] When checking out sources, you must include the -P flag to have 866 cvs prune empty directories. 867 868 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 869 "?=" instead of the "=" assignment operator, so that buildworld can 870 override the CPUTYPE if it needs to. 871 872 MAKEOBJDIRPREFIX must be defined in an environment variable, and 873 not on the command line, or in /etc/make.conf. buildworld will 874 warn if it is improperly defined. 875FORMAT: 876 877This file contains a list, in reverse chronological order, of major 878breakages in tracking -current. Not all things will be listed here, 879and it only starts on October 16, 2004. Updating files can found in 880previous releases if your system is older than this. 881 882Copyright information: 883 884Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 885 886Redistribution, publication, translation and use, with or without 887modification, in full or in part, in any form or format of this 888document are permitted without further permission from the author. 889 890THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 891IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 892WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 893DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 894INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 895(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 896SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 897HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 898STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 899IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 900POSSIBILITY OF SUCH DAMAGE. 901 902If you find this document useful, and you want to, you may buy the 903author a beer. 904 905Contact Warner Losh if you have any questions about your use of 906this document. 907 908$FreeBSD: head/UPDATING 172497 2007-10-09 17:51:11Z obrien $ 909