UPDATING revision 188693
11769SjkhUpdating Information for FreeBSD current users 21769Sjkh 31769SjkhThis file is maintained and copyrighted by M. Warner Losh 41769Sjkh<imp@village.org>. See end of file for further details. For commonly 51769Sjkhdone items, please see the COMMON ITEMS: section later in the file. 61769Sjkh 71769SjkhItems affecting the ports and packages system can be found in 81769Sjkh/usr/ports/UPDATING. Please read that file before running 91769Sjkhportupgrade. 101769Sjkh 111769SjkhNOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW: 121769Sjkh FreeBSD 8.x has many debugging features turned on, in 131769Sjkh both the kernel and userland. These features attempt to detect 141769Sjkh incorrect use of system primitives, and encourage loud failure 151769Sjkh through extra sanity checking and fail stop semantics. They 161769Sjkh also substantially impact system performance. If you want to 171769Sjkh do performance measurement, benchmarking, and optimization, 181769Sjkh you'll want to turn them off. This includes various WITNESS- 191769Sjkh related kernel options, INVARIANTS, malloc debugging flags 201769Sjkh in userland, and various verbose features in the kernel. Many 211769Sjkh developers choose to disable these features on build machines 221769Sjkh to maximize performance. (To disable malloc debugging, run 231769Sjkh ln -s aj /etc/malloc.conf.) 241769Sjkh 251769Sjkh20090216: 261769Sjkh xorg 7.4 wants to configure its input devices via hald which does not 271769Sjkh yet work with USB2. If the keyboard/mouse does not work in xorg then 281769Sjkh add 291769Sjkh Option "AllowEmptyInput" "off" 301769Sjkh to your ServerLayout section. This will cause X to use the configured 311769Sjkh kbd and mouse sections from your xorg.conf 321769Sjkh 3351237Speter20090215: 34130151Sschweikh The GENERIC kernels for all architectures now default to the new USB2 351769Sjkh stack. No kernel config options or code have been removed so if a 363876Sache problem arises please report it and optionally revert to the old USB 373876Sache stack. If you are loading USB kernel modules or have a custom kernel 3875786Sache that includes GENERIC then ensure that usb names are also changed over, 3975786Sache eg uftdi -> usb2_serial_ftdi 4075786Sache 4175786Sache20090203: 4275786Sache The ichsmb(4) driver has been changed to require SMBus slave 4375786Sache addresses be left-justified (xxxxxxx0b) rather than right-justified. 443120Sache All of the other SMBus controller drivers require left-justified 455559Sache slave addresses, so this change makes all the drivers provide the 4675786Sache same interface. 4762284Sache 481769Sjkh20090201: 4975786Sache INET6 statistics (struct ip6stat) was updated. 5081669Sache netstat(1) needs to be recompiled. 5181669Sache 5286793Sache20090119: 533876Sache NTFS has been removed from GENERIC kernel on amd64 to match 5486793Sache GENERIC on i386. Should not cause any issues since mount_ntfs(8) 553876Sache will load ntfs.ko module automatically when NTFS support is 563623Sache actually needed, unless ntfs.ko is not installed or security 5763728Sache level prohibits loading kernel modules. If either is the case, 5862284Sache "options NTFS" has to be added into kernel config. 5962284Sache 6062284Sache20090115: 6162284Sache TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 6262284Sache New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 6362284Sache 800061. User space tools that rely on the size of struct tcpcb in 6462284Sache tcp_var.h (e.g. sockstat) need to be recompiled. 6562284Sache 661769Sjkh20081225: 677708Srgrimes ng_tty(4) module updated to match the new TTY subsystem. 683623Sache Due to API change, user-level applications must be updated. 693623Sache New API support added to mpd5 CVS and expected to be present 7062284Sache in next mpd5.3 release. 7162284Sache 7262284Sache20081219: 7362284Sache With __FreeBSD_version 800060 the makefs tool is part of 74194107Sedwin the base system (it was a port). 75194107Sedwin 76194107Sedwin20081216: 77194107Sedwin The afdata and ifnet locks have been changed from mutexes to 78194107Sedwin rwlocks, network modules will need to be re-compiled. 79194107Sedwin 80194107Sedwin20081214: 81194107Sedwin __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 82194107Sedwin RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 83194107Sedwin The new code reduced struct rtentry{} by 16 bytes on 32-bit 84194107Sedwin architecture and 40 bytes on 64-bit architecture. The userland 8575717Sache applications "arp" and "ndp" have been updated accordingly. 8675717Sache The output from "netstat -r" shows only routing entries and 8786791Sache none of the L2 information. 8865073Sache 8975717Sache20081130: 9063728Sache __FreeBSD_version 800057 marks the switchover from the 9175717Sache binary ath hal to source code. Users must add the line: 9262284Sache 9375717Sache options AH_SUPPORT_AR5416 9462284Sache 9575717Sache to their kernel config files when specifying: 9662284Sache 9775717Sache device ath_hal 9862284Sache 9975717Sache The ath_hal module no longer exists; the code is now compiled 1003132Sache together with the driver in the ath module. It is now 10175717Sache possible to tailor chip support (i.e. reduce the set of chips 1023623Sache and thereby the code size); consult ath_hal(4) for details. 10375717Sache 10462284Sache20081121: 10575717Sache __FreeBSD_version 800054 adds memory barriers to 10662284Sache <machine/atomic.h>, new interfaces to ifnet to facilitate 107194107Sedwin multiple hardware transmit queues for cards that support 108194107Sedwin them, and a lock-less ring-buffer implementation to 109194107Sedwin enable drivers to more efficiently manage queueing of 110194107Sedwin packets. 111194107Sedwin 112194107Sedwin20081117: 113194107Sedwin A new version of ZFS (version 13) has been merged to -HEAD. 114194107Sedwin This version has zpool attribute "listsnapshots" off by 115194107Sedwin default, which means "zfs list" does not show snapshots, 116194107Sedwin and is the same as Solaris behavior. 117194107Sedwin 118194107Sedwin20081028: 119194107Sedwin dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 120194107Sedwin 121194107Sedwin20081009: 122194107Sedwin The uhci, ohci, ehci and slhci USB Host controller drivers have 123194107Sedwin been put into separate modules. If you load the usb module 124194107Sedwin separately through loader.conf you will need to load the 125194107Sedwin appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 126194107Sedwin controller add the following to loader.conf: 127194107Sedwin 128194107Sedwin uhci_load="YES" 12962284Sache ehci_load="YES" 13062284Sache 13186791Sache20081009: 13262284Sache The ABI used by the PMC toolset has changed. Please keep 13362284Sache userland (libpmc(3)) and the kernel module (hwpmc(4)) in 13463728Sache sync. 13562284Sache 13662284Sache20080820: 13762284Sache The TTY subsystem of the kernel has been replaced by a new 13862284Sache implementation, which provides better scalability and an 13962284Sache improved driver model. Most common drivers have been migrated to 14062284Sache the new TTY subsystem, while others have not. The following 14162284Sache drivers have not yet been ported to the new TTY layer: 14262284Sache 14362284Sache PCI/ISA: 14462284Sache cy, digi, rc, rp, sio 14562284Sache 14662284Sache USB: 14762284Sache ubser, ucycom 14862284Sache 14962284Sache Line disciplines: 15062284Sache ng_h4, ng_tty, ppp, sl, snp 15162284Sache 1523623Sache Adding these drivers to your kernel configuration file shall 15386791Sache cause compilation to fail. 1543876Sache 1553623Sache20080818: 15663728Sache ntpd has been upgraded to 4.2.4p5. 15762284Sache 15862284Sache20080801: 15962284Sache OpenSSH has been upgraded to 5.1p1. 16062284Sache 16162284Sache For many years, FreeBSD's version of OpenSSH preferred DSA 16262284Sache over RSA for host and user authentication keys. With this 16362284Sache upgrade, we've switched to the vendor's default of RSA over 16462284Sache DSA. This may cause upgraded clients to warn about unknown 1653623Sache host keys even for previously known hosts. Users should 1663132Sache follow the usual procedure for verifying host keys before 1673623Sache accepting the RSA key. 1683623Sache 16962284Sache This can be circumvented by setting the "HostKeyAlgorithms" 17062284Sache option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 17162284Sache command line. 17262284Sache 173194107Sedwin Please note that the sequence of keys offered for 174218477Suqs authentication has been changed as well. You may want to 175194107Sedwin specify IdentityFile in a different order to revert this 176194107Sedwin behavior. 177194107Sedwin 178194107Sedwin20080713: 179194107Sedwin The sio(4) driver has been removed from the i386 and amd64 180194107Sedwin kernel configuration files. This means uart(4) is now the 181194107Sedwin default serial port driver on those platforms as well. 182194107Sedwin 183194107Sedwin To prevent collisions with the sio(4) driver, the uart(4) driver 18486789Sache uses different names for its device nodes. This means the 185194088Sedwin onboard serial port will now most likely be called "ttyu0" 18686791Sache instead of "ttyd0". You may need to reconfigure applications to 18786789Sache use the new device names. 18886789Sache 18986789Sache When using the serial port as a boot console, be sure to update 19086789Sache /boot/device.hints and /etc/ttys before booting the new kernel. 19186789Sache If you forget to do so, you can still manually specify the hints 19286789Sache at the loader prompt: 19386789Sache 19486789Sache set hint.uart.0.at="isa" 19586789Sache set hint.uart.0.port="0x3F8" 19686789Sache set hint.uart.0.flags="0x10" 19786789Sache set hint.uart.0.irq="4" 19886789Sache boot -s 19986789Sache 20086789Sache20080609: 20186789Sache The gpt(8) utility has been removed. Use gpart(8) to partition 20286789Sache disks instead. 20386789Sache 20486789Sache20080603: 20586789Sache The version that Linuxulator emulates was changed from 2.4.2 2061769Sjkh to 2.6.16. If you experience any problems with Linux binaries 207204821Sed please try to set sysctl compat.linux.osrelease to 2.4.2 and 208204821Sed if it fixes the problem contact emulation mailing list. 209204821Sed 210204821Sed20080525: 211204821Sed ISDN4BSD (I4B) was removed from the src tree. You may need to 212204821Sed update a your kernel configuration and remove relevant entries. 213204821Sed 214204821Sed20080509: 215204821Sed I have checked in code to support multiple routing tables. 216204821Sed See the man pages setfib(1) and setfib(2). 217204821Sed This is a hopefully backwards compatible version, 218204821Sed but to make use of it you need to compile your kernel 219204821Sed with options ROUTETABLES=2 (or more up to 16). 220204821Sed 221204821Sed20080420: 222204821Sed The 802.11 wireless support was redone to enable multi-bss 223204821Sed operation on devices that are capable. The underlying device 224204821Sed is no longer used directly but instead wlanX devices are 225204821Sed cloned with ifconfig. This requires changes to rc.conf files. 226204821Sed For example, change: 227204821Sed ifconfig_ath0="WPA DHCP" 228194107Sedwin to 229204821Sed wlans_ath0=wlan0 230204821Sed ifconfig_wlan0="WPA DHCP" 231204821Sed see rc.conf(5) for more details. In addition, mergemaster of 232204821Sed /etc/rc.d is highly recommended. Simultaneous update of userland 233204821Sed and kernel wouldn't hurt either. 234204821Sed 235204821Sed As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 236204821Sed modules were merged into the base wlan module. All references 237204821Sed to these modules (e.g. in kernel config files) must be removed. 238204821Sed 239204821Sed20080408: 240204821Sed psm(4) has gained write(2) support in native operation level. 241204821Sed Arbitrary commands can be written to /dev/psm%d and status can 242204821Sed be read back from it. Therefore, an application is responsible 243204821Sed for status validation and error recovery. It is a no-op in 244204821Sed other operation levels. 245204821Sed 246204821Sed20080312: 247200369Sed Support for KSE threading has been removed from the kernel. To 248194107Sedwin run legacy applications linked against KSE libmap.conf may 249200369Sed be used. The following libmap.conf may be used to ensure 250202048Sed compatibility with any prior release: 251200369Sed 252202048Sed libpthread.so.1 libthr.so.1 253200369Sed libpthread.so.2 libthr.so.2 254200369Sed libkse.so.3 libthr.so.3 255194107Sedwin 256194107Sedwin20080301: 257200369Sed The layout of struct vmspace has changed. This affects libkvm 258200369Sed and any executables that link against libkvm and use the 259200369Sed kvm_getprocs() function. In particular, but not exclusively, 260200369Sed it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 261200369Sed The effects are minimal, but it's advisable to upgrade world 262200369Sed nonetheless. 263200369Sed 264200369Sed20080229: 265200369Sed The latest em driver no longer has support in it for the 266200369Sed 82575 adapter, this is now moved to the igb driver. The 267200369Sed split was done to make new features that are incompatible 268200503Sdougb with older hardware easier to do. 269200369Sed 270194107Sedwin20080220: 271194107Sedwin The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 272194107Sedwin likewise the kernel option is now GEOM_LINUX_LVM. 273194107Sedwin 274200369Sed20080211: 275200369Sed The default NFS mount mode has changed from UDP to TCP for 276200503Sdougb increased reliability. If you rely on (insecurely) NFS 277200503Sdougb mounting across a firewall you may need to update your 278200503Sdougb firewall rules. 279200503Sdougb 280200503Sdougb20080208: 281204821Sed Belatedly note the addition of m_collapse for compacting 282204821Sed mbuf chains. 283204821Sed 284204821Sed20080126: 285204821Sed The fts(3) structures have been changed to use adequate 286204821Sed integer types for their members and so to be able to cope 287204821Sed with huge file trees. The old fts(3) ABI is preserved 288204821Sed through symbol versioning in libc, so third-party binaries 289204821Sed using fts(3) should still work, although they will not take 290204821Sed advantage of the extended types. At the same time, some 291204821Sed third-party software might fail to build after this change 292204821Sed due to unportable assumptions made in its source code about 293204821Sed fts(3) structure members. Such software should be fixed 294204821Sed by its vendor or, in the worst case, in the ports tree. 295204821Sed FreeBSD_version 800015 marks this change for the unlikely 296204821Sed case that a portable fix is impossible. 297204821Sed 298204821Sed20080123: 299204821Sed To upgrade to -current after this date, you must be running 300204821Sed FreeBSD not older than 6.0-RELEASE. Upgrading to -current 301204821Sed from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 302204821Sed 303204821Sed20071128: 304204821Sed The ADAPTIVE_GIANT kernel option has been retired because its 305204821Sed functionality is the default now. 306204821Sed 307204821Sed20071118: 308204821Sed The AT keyboard emulation of sunkbd(4) has been turned on 309204821Sed by default. In order to make the special symbols of the Sun 310204821Sed keyboards driven by sunkbd(4) work under X these now have 311204821Sed to be configured the same way as Sun USB keyboards driven 312204821Sed by ukbd(4) (which also does AT keyboard emulation), f.e.: 313204821Sed 314204821Sed Option "XkbLayout" "us" 315204821Sed Option "XkbRules" "xorg" 316 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 317 31820071024: 319 It has been decided that it is desirable to provide ABI 320 backwards compatibility to the FreeBSD 4/5/6 versions of the 321 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 322 broken with the introduction of PCI domain support (see the 323 20070930 entry). Unfortunately, this required the ABI of 324 PCIOCGETCONF to be broken again in order to be able to 325 provide backwards compatibility to the old version of that 326 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 327 again. As for prominent ports this affects neither pciutils 328 nor xorg-server this time, the hal port needs to be rebuilt 329 however. 330 33120071020: 332 The misnamed kthread_create() and friends have been renamed 333 to kproc_create() etc. Many of the callers already 334 used kproc_start().. 335 I will return kthread_create() and friends in a while 336 with implementations that actually create threads, not procs. 337 Renaming corresponds with version 800002. 338 33920071010: 340 RELENG_7 branched. 341 34220071009: 343 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 344 WITHOUT_LIBTHR are set. 345 34620070930: 347 The PCI code has been made aware of PCI domains. This means that 348 the location strings as used by pciconf(8) etc are now in the 349 following format: pci<domain>:<bus>:<device>[:<function>]. It 350 also means that consumers of <sys/pciio.h> potentially need to 351 be recompiled; this includes the hal and xorg-server ports. 352 35320070928: 354 The caching daemon (cached) was renamed to nscd. nscd.conf 355 configuration file should be used instead of cached.conf and 356 nscd_enable, nscd_pidfile and nscd_flags options should be used 357 instead of cached_enable, cached_pidfile and cached_flags in 358 rc.conf. 359 36020070921: 361 The getfacl(1) utility now prints owning user and group name 362 instead of owning uid and gid in the three line comment header. 363 This is the same behavior as getfacl(1) on Solaris and Linux. 364 36520070704: 366 The new IPsec code is now compiled in using the IPSEC option. The 367 IPSEC option now requires "device crypto" be defined in your kernel 368 configuration. The FAST_IPSEC kernel option is now deprecated. 369 37020070702: 371 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 372 note the changed syntax - keep state is now on by default. Also 373 note the fact that ftp-proxy(8) has been changed from bottom up and 374 has been moved from libexec to usr/sbin. Changes in the ALTQ 375 handling also affect users of IPFW's ALTQ capabilities. 376 37720070701: 378 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 379 only IPsec supported by FreeBSD. The new IPsec stack 380 supports both IPv4 and IPv6. The kernel option will change 381 after the code changes have settled in. For now the kernel 382 option IPSEC is deprecated and FAST_IPSEC is the only option, that 383 will change after some settling time. 384 38520070701: 386 The wicontrol(8) utility has been removed from the base system. wi(4) 387 cards should be configured using ifconfig(8), see the man page for more 388 information. 389 39020070612: 391 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 392 instead of the nve(4) driver. Please update your configuration 393 accordingly. 394 39520070612: 396 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 397 database if it is missing or older than the aliases file. If 398 desired, set the new rc.conf option sendmail_rebuild_aliases 399 to "YES" to restore that functionality. 400 40120070612: 402 The IPv4 multicast socket code has been considerably modified, and 403 moved to the file sys/netinet/in_mcast.c. Initial support for the 404 RFC 3678 Source-Specific Multicast Socket API has been added to 405 the IPv4 network stack. 406 407 Strict multicast and broadcast reception is now the default for 408 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 409 has now been removed. 410 411 The RFC 1724 hack for interface selection has been removed; the use 412 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 413 been added to replace it. Consumers such as routed will soon be 414 updated to reflect this. 415 416 These changes affect users who are running routed(8) or rdisc(8) 417 from the FreeBSD base system on point-to-point or unnumbered 418 interfaces. 419 42020070610: 421 The net80211 layer has changed significantly and all wireless 422 drivers that depend on it need to be recompiled. Further these 423 changes require that any program that interacts with the wireless 424 support in the kernel be recompiled; this includes: ifconfig, 425 wpa_supplicant, hostapd, and wlanstats. Users must also, for 426 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 427 if they use modules for wireless support. These modules implement 428 scanning support for station and ap modes, respectively. Failure 429 to load the appropriate module before marking a wireless interface 430 up will result in a message to the console and the device not 431 operating properly. 432 43320070610: 434 The pam_nologin(8) module ceases to provide an authentication 435 function and starts providing an account management function. 436 Consequent changes to /etc/pam.d should be brought in using 437 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 438 need manual editing as follows. Locate this line (or similar): 439 440 auth required pam_nologin.so no_warn 441 442 and change it according to this example: 443 444 account required pam_nologin.so no_warn 445 446 That is, the first word needs to be changed from "auth" to 447 "account". The new line can be moved to the account section 448 within the file for clarity. Not updating pam.conf(5) files 449 will result in nologin(5) ignored by the respective services. 450 45120070529: 452 The ether_ioctl() function has been synchronized with ioctl(2) 453 and ifnet.if_ioctl. Due to that, the size of one of its arguments 454 has changed on 64-bit architectures. All kernel modules using 455 ether_ioctl() need to be rebuilt on such architectures. 456 45720070516: 458 Improved INCLUDE_CONFIG_FILE support has been introduced to the 459 config(8) utility. In order to take advantage of this new 460 functionality, you are expected to recompile and install 461 src/usr.sbin/config. If you don't rebuild config(8), and your 462 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 463 build will be broken because of a missing "kernconfstring" 464 symbol. 465 46620070513: 467 Symbol versioning is enabled by default. To disable it, use 468 option WITHOUT_SYMVER. It is not advisable to attempt to 469 disable symbol versioning once it is enabled; your installworld 470 will break because a symbol version-less libc will get installed 471 before the install tools. As a result, the old install tools, 472 which previously had symbol dependencies to FBSD_1.0, will fail 473 because the freshly installed libc will not have them. 474 475 The default threading library (providing "libpthread") has been 476 changed to libthr. If you wish to have libkse as your default, 477 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 478 47920070423: 480 The ABI breakage in sendmail(8)'s libmilter has been repaired 481 so it is no longer necessary to recompile mail filters (aka, 482 milters). If you recompiled mail filters after the 20070408 483 note, it is not necessary to recompile them again. 484 48520070417: 486 The new trunk(4) driver has been renamed to lagg(4) as it better 487 reflects its purpose. ifconfig will need to be recompiled. 488 48920070408: 490 sendmail(8) has been updated to version 8.14.1. Mail filters 491 (aka, milters) compiled against the libmilter included in the 492 base operating system should be recompiled. 493 49420070302: 495 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 496 In order to use them one must agree to the respective LICENSE in 497 share/doc/legal and define legal.intel_<name>.license_ack=1 via 498 loader.conf(5) or kenv(1). Make sure to deinstall the now 499 deprecated modules from the respective firmware ports. 500 50120070228: 502 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 503 were removed from FreeBSD's libc. These originally came from INRIA 504 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 505 deprecated in previous releases. 506 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 507 replace it as a more portable (and re-entrant) API. 508 50920070224: 510 To support interrupt filtering a modification to the newbus API 511 has occurred, ABI was broken and __FreeBSD_version was bumped 512 to 700031. Please make sure that your kernel and modules are in 513 sync. For more info: 514 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 515 51620070224: 517 The IPv6 multicast forwarding code may now be loaded into GENERIC 518 kernels by loading the ip_mroute.ko module. This is built into the 519 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 520 set; see src.conf(5) for more information. 521 52220070214: 523 The output of netstat -r has changed. Without -n, we now only 524 print a "network name" without the prefix length if the network 525 address and mask exactly match a Class A/B/C network, and an entry 526 exists in the nsswitch "networks" map. 527 With -n, we print the full unabbreviated CIDR network prefix in 528 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 529 This change is in preparation for changes such as equal-cost 530 multipath, and to more generally assist operational deployment 531 of FreeBSD as a modern IPv4 router. 532 53320070210: 534 PIM has been turned on by default in the IPv4 multicast 535 routing code. The kernel option 'PIM' has now been removed. 536 PIM is now built by default if option 'MROUTING' is specified. 537 It may now be loaded into GENERIC kernels by loading the 538 ip_mroute.ko module. 539 54020070207: 541 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 542 has been removed. Its functionality may be achieved by explicitly 543 configuring gif(4) interfaces and using the 'phyint' keyword in 544 mrouted.conf. 545 XORP does not support source-routed IPv4 multicast tunnels nor the 546 integrated IPIP tunneling, therefore it is not affected by this 547 change. The __FreeBSD_version macro has been bumped to 700030. 548 54920061221: 550 Support for PCI Message Signalled Interrupts has been 551 re-enabled in the bge driver, only for those chips which are 552 believed to support it properly. If there are any problems, 553 MSI can be disabled completely by setting the 554 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 555 in the loader. 556 55720061214: 558 Support for PCI Message Signalled Interrupts has been 559 disabled again in the bge driver. Many revisions of the 560 hardware fail to support it properly. Support can be 561 re-enabled by removing the #define of BGE_DISABLE_MSI in 562 "src/sys/dev/bge/if_bge.c". 563 56420061214: 565 Support for PCI Message Signalled Interrupts has been added 566 to the bge driver. If there are any problems, MSI can be 567 disabled completely by setting the 'hw.pci.enable_msi' and 568 'hw.pci.enable_msix' tunables to 0 in the loader. 569 57020061205: 571 The removal of several facets of the experimental Threading 572 system from the kernel means that the proc and thread structures 573 have changed quite a bit. I suggest all kernel modules that might 574 reference these structures be recompiled.. Especially the 575 linux module. 576 57720061126: 578 Sound infrastructure has been updated with various fixes and 579 improvements. Most of the changes are pretty much transparent, 580 with exceptions of followings: 581 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 582 moved to their own dev sysctl nodes, for example: 583 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 584 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 585 own chardev in the form of "dsp%d.<function>%d", where <function> 586 is p = playback, r = record and v = virtual, respectively. Users 587 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 588 This does not affect those who are using "/dev/dsp". 589 59020061122: 591 geom(4)'s gmirror(8) class metadata structure has been 592 rev'd from v3 to v4. If you update across this point and 593 your metadata is converted for you, you will not be easily 594 able to downgrade since the /boot/kernel.old/geom_mirror.ko 595 kernel module will be unable to read the v4 metadata. You 596 can resolve this by doing from the loader(8) prompt: 597 598 set vfs.root.mountfrom="ufs:/dev/XXX" 599 600 where XXX is the root slice of one of the disks that composed 601 the mirror (i.e.: /dev/ad0s1a). You can then rebuild 602 the array the same way you built it originally. 603 60420061122: 605 The following binaries have been disconnected from the build: 606 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 607 and mount_std. The functionality of these programs has been 608 moved into the mount program. For example, to mount a devfs 609 filesystem, instead of using mount_devfs, use: "mount -t devfs". 610 This does not affect entries in /etc/fstab, since entries in 611 /etc/fstab are always processed with "mount -t fstype". 612 61320061113: 614 Support for PCI Message Signalled Interrupts on i386 and amd64 615 has been added to the kernel and various drivers will soon be 616 updated to use MSI when it is available. If there are any problems, 617 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 618 and 'hw.pci.enable_msix' tunables to 0 in the loader. 619 62020061110: 621 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 622 The lockmgr object layout has been changed as a result of having 623 a lock_object embedded in it. As a consequence all file system 624 kernel modules must be re-compiled. The mutex profiling man page 625 has not yet been updated to reflect this change. 626 62720061026: 628 KSE in the kernel has now been made optional and turned on by 629 default. Use 'nooption KSE' in your kernel config to turn it 630 off. All kernel modules *must* be recompiled after this change. 631 There-after, modules from a KSE kernel should be compatible with 632 modules from a NOKSE kernel due to the temporary padding fields 633 added to 'struct proc'. 634 63520060929: 636 mrouted and its utilities have been removed from the base system. 637 63820060927: 639 Some ioctl(2) command codes have changed. Full backward ABI 640 compatibility is provided if the "options COMPAT_FREEBSD6" is 641 present in the kernel configuration file. Make sure to add 642 this option to your kernel config file, or recompile X.Org 643 and the rest of ports; otherwise they may refuse to work. 644 64520060924: 646 tcpslice has been removed from the base system. 647 64820060913: 649 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 650 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 651 systat needs to be rebuilt. 652 65320060903: 654 libpcap updated to v0.9.4 and tcpdump to v3.9.4 655 65620060816: 657 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 658 for IPFIREWALL_FORWARD is now as it was before when it was first 659 committed and for years after. The behaviour is now ON. 660 66120060725: 662 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 663 Now it can decrypt files created from different architectures. 664 Unfortunately, it is no longer able to decrypt a cipher text 665 generated with an older version on 64 bit architectures. 666 If you have such a file, you need old utility to decrypt it. 667 66820060709: 669 The interface version of the i4b kernel part has changed. So 670 after updating the kernel sources and compiling a new kernel, 671 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 672 be rebuilt, and vice versa. 673 67420060627: 675 The XBOX kernel now defaults to the nfe(4) driver instead of 676 the nve(4) driver. Please update your configuration 677 accordingly. 678 67920060514: 680 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 681 PCnet family of NICs has been removed. The new le(4) driver serves 682 as an equivalent but cross-platform replacement with the pcn(4) 683 driver still providing performance-optimized support for the subset 684 of AMD Am79C971 PCnet-FAST and greater chips as before. 685 68620060511: 687 The machdep.* sysctls and the adjkerntz utility have been 688 modified a bit. The new adjkerntz utility uses the new 689 sysctl names and sysctlbyname() calls, so it may be impossible 690 to run an old /sbin/adjkerntz utility in single-user mode 691 with a new kernel. Replace the `adjkerntz -i' step before 692 `make installworld' with: 693 694 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 695 696 and proceed as usual with the rest of the installworld-stage 697 steps. Otherwise, you risk installing binaries with their 698 timestamp set several hours in the future, especially if 699 you are running with local time set to GMT+X hours. 700 70120060412: 702 The ip6fw utility has been removed. The behavior provided by 703 ip6fw has been in ipfw2 for a good while and the rc.d scripts 704 have been updated to deal with it. There are some rules that 705 might not migrate cleanly. Use rc.firewall6 as a template to 706 rewrite rules. 707 70820060428: 709 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 710 attachments have been removed. Make sure to configure scc(4) 711 on sparc64. Note also that by default puc(4) will use uart(4) 712 and not sio(4) for serial ports because interrupt handling has 713 been optimized for multi-port serial cards and only uart(4) 714 implements the interface to support it. 715 71620060330: 717 The scc(4) driver replaces puc(4) for Serial Communications 718 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 719 Z8530. On sparc64, it is advised to add scc(4) to the kernel 720 configuration to make sure that the serial ports remain 721 functional. 722 72320060317: 724 Most world/kernel related NO_* build options changed names. 725 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 726 after FreeBSD ports) and should be set in /etc/src.conf 727 (the src.conf(5) manpage is provided). Full backwards 728 compatibility is maintained for the time being though it's 729 highly recommended to start moving old options out of the 730 system-wide /etc/make.conf file into the new /etc/src.conf 731 while also properly renaming them. More conversions will 732 likely follow. Posting to current@: 733 734 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 735 73620060305: 737 The NETSMBCRYPTO kernel option has been retired because its 738 functionality is always included in NETSMB and smbfs.ko now. 739 74020060303: 741 The TDFX_LINUX kernel option was retired and replaced by the 742 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 743 kernel module. Loading it alone should suffice to get 3dfx support 744 for Linux apps because it will pull in 3dfx.ko and linux.ko through 745 its dependencies. 746 74720060204: 748 The 'audit' group was added to support the new auditing functionality 749 in the base system. Be sure to follow the directions for updating, 750 including the requirement to run mergemaster -p. 751 75220060201: 753 The kernel ABI to file system modules was changed on i386. 754 Please make sure that your kernel and modules are in sync. 755 75620060118: 757 This actually occured some time ago, but installing the kernel 758 now also installs a bunch of symbol files for the kernel modules. 759 This increases the size of /boot/kernel to about 67Mbytes. You 760 will need twice this if you will eventually back this up to kernel.old 761 on your next install. 762 If you have a shortage of room in your root partition, you should add 763 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 764 to your /etc/make.conf. 765 76620060113: 767 libc's malloc implementation has been replaced. This change has the 768 potential to uncover application bugs that previously went unnoticed. 769 See the malloc(3) manual page for more details. 770 77120060112: 772 The generic netgraph(4) cookie has been changed. If you upgrade 773 kernel passing this point, you also need to upgrade userland 774 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 775 77620060106: 777 si(4)'s device files now contain the unit number. 778 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 779 78020060106: 781 The kernel ABI was mostly destroyed due to a change in the size 782 of struct lock_object which is nested in other structures such 783 as mutexes which are nested in all sorts of other structures. 784 Make sure your kernel and modules are in sync. 785 78620051231: 787 The page coloring algorithm in the VM subsystem was converted 788 from tuning with kernel options to autotuning. Please remove 789 any PQ_* option except PQ_NOOPT from your kernel config. 790 79120051211: 792 The net80211-related tools in the tools/tools/ath directory 793 have been moved to tools/tools/net80211 and renamed with a 794 "wlan" prefix. Scripts that use them should be adjusted 795 accordingly. 796 79720051202: 798 Scripts in the local_startup directories (as defined in 799 /etc/defaults/rc.conf) that have the new rc.d semantics will 800 now be run as part of the base system rcorder. If there are 801 errors or problems with one of these local scripts, it could 802 cause boot problems. If you encounter such problems, boot in 803 single user mode, remove that script from the */rc.d directory. 804 Please report the problem to the port's maintainer, and the 805 freebsd-ports@freebsd.org mailing list. 806 80720051129: 808 The nodev mount option was deprecated in RELENG_6 (where it 809 was a no-op), and is now unsupported. If you have nodev or dev listed 810 in /etc/fstab, remove it, otherwise it will result in a mount error. 811 81220051129: 813 ABI between ipfw(4) and ipfw(8) has been changed. You need 814 to rebuild ipfw(8) when rebuilding kernel. 815 81620051108: 817 rp(4)'s device files now contain the unit number. 818 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 819 82020051029: 821 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 822 Its /etc/rc.conf.d configuration file has been `ppp' from 823 the beginning, and hence there is no need to touch it. 824 82520051014: 826 Now most modules get their build-time options from the kernel 827 configuration file. A few modules still have fixed options 828 due to their non-conformant implementation, but they will be 829 corrected eventually. You may need to review the options of 830 the modules in use, explicitly specify the non-default options 831 in the kernel configuration file, and rebuild the kernel and 832 modules afterwards. 833 83420051001: 835 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 836 to turn polling(4) on your interfaces. 837 83820050927: 839 The old bridge(4) implementation was retired. The new 840 if_bridge(4) serves as a full functional replacement. 841 84220050722: 843 The ai_addrlen of a struct addrinfo was changed to a socklen_t 844 to conform to POSIX-2001. This change broke an ABI 845 compatibility on 64 bit architecture. You have to recompile 846 userland programs that use getaddrinfo(3) on 64 bit 847 architecture. 848 84920050711: 850 RELENG_6 branched here. 851 85220050629: 853 The pccard_ifconfig rc.conf variable has been removed and a new 854 variable, ifconfig_DEFAULT has been introduced. Unlike 855 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 856 do not have ifconfig_ifn entries rather than just those in 857 removable_interfaces. 858 85920050616: 860 Some previous versions of PAM have permitted the use of 861 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 862 to third party PAM modules in /usr/local/lib. A change has been 863 made to require the use of absolute paths in order to avoid 864 ambiguity and dependence on library path configuration, which may 865 affect existing configurations. 866 86720050610: 868 Major changes to network interface API. All drivers must be 869 recompiled. Drivers not in the base system will need to be 870 updated to the new APIs. 871 87220050609: 873 Changes were made to kinfo_proc in sys/user.h. Please recompile 874 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 875 will not behave correctly. 876 877 The API and ABI for hwpmc(4) have changed with the addition 878 of sampling support. Please recompile lib/libpmc(3) and 879 usr.sbin/{pmcstat,pmccontrol}. 880 88120050606: 882 The OpenBSD dhclient was imported in place of the ISC dhclient 883 and the network interface configuration scripts were updated 884 accordingly. If you use DHCP to configure your interfaces, you 885 must now run devd. Also, DNS updating was lost so you will need 886 to find a workaround if you use this feature. 887 888 The '_dhcp' user was added to support the OpenBSD dhclient. Be 889 sure to run mergemaster -p (like you are supposed to do every time 890 anyway). 891 89220050605: 893 if_bridge was added to the tree. This has changed struct ifnet. 894 Please recompile userland and all network related modules. 895 89620050603: 897 The n_net of a struct netent was changed to an uint32_t, and 898 1st argument of getnetbyaddr() was changed to an uint32_t, to 899 conform to POSIX-2001. These changes broke an ABI 900 compatibility on 64 bit architecture. With these changes, 901 shlib major of libpcap was bumped. You have to recompile 902 userland programs that use getnetbyaddr(3), getnetbyname(3), 903 getnetent(3) and/or libpcap on 64 bit architecture. 904 90520050528: 906 Kernel parsing of extra options on '#!' first lines of shell 907 scripts has changed. Lines with multiple options likely will 908 fail after this date. For full details, please see 909 http://people.freebsd.org/~gad/Updating-20050528.txt 910 91120050503: 912 The packet filter (pf) code has been updated to OpenBSD 3.7 913 Please note the changed anchor syntax and the fact that 914 authpf(8) now needs a mounted fdescfs(5) to function. 915 91620050415: 917 The NO_MIXED_MODE kernel option has been removed from the i386 918 amd64 platforms as its use has been superceded by the new local 919 APIC timer code. Any kernel config files containing this option 920 should be updated. 921 92220050227: 923 The on-disk format of LC_CTYPE files was changed to be machine 924 independent. Please make sure NOT to use NO_CLEAN buildworld 925 when crossing this point. Crossing this point also requires 926 recompile or reinstall of all locale depended packages. 927 92820050225: 929 The ifi_epoch member of struct if_data has been changed to 930 contain the uptime at which the interface was created or the 931 statistics zeroed rather then the wall clock time because 932 wallclock time may go backwards. This should have no impact 933 unless an snmp implementation is using this value (I know of 934 none at this point.) 935 93620050224: 937 The acpi_perf and acpi_throttle drivers are now part of the 938 acpi(4) main module. They are no longer built separately. 939 94020050223: 941 The layout of struct image_params has changed. You have to 942 recompile all compatibility modules (linux, svr4, etc) for use 943 with the new kernel. 944 94520050223: 946 The p4tcc driver has been merged into cpufreq(4). This makes 947 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 948 compile in "device cpufreq" to restore this functionality. 949 95020050220: 951 The responsibility of recomputing the file system summary of 952 a SoftUpdates-enabled dirty volume has been transferred to the 953 background fsck. A rebuild of fsck(8) utility is recommended 954 if you have updated the kernel. 955 956 To get the old behavior (recompute file system summary at mount 957 time), you can set vfs.ffs.compute_summary_at_mount=1 before 958 mounting the new volume. 959 96020050206: 961 The cpufreq import is complete. As part of this, the sysctls for 962 acpi(4) throttling have been removed. The power_profile script 963 has been updated, so you can use performance/economy_cpu_freq in 964 rc.conf(5) to set AC on/offline cpu frequencies. 965 96620050206: 967 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 968 requires recompiling libnetgraph and userland netgraph utilities. 969 97020050114: 971 Support for abbreviated forms of a number of ipfw options is 972 now deprecated. Warnings are printed to stderr indicating the 973 correct full form when a match occurs. Some abbreviations may 974 be supported at a later date based on user feedback. To be 975 considered for support, abbreviations must be in use prior to 976 this commit and unlikely to be confused with current key words. 977 97820041221: 979 By a popular demand, a lot of NOFOO options were renamed 980 to NO_FOO (see bsd.compat.mk for a full list). The old 981 spellings are still supported, but will cause annoying 982 warnings on stderr. Make sure you upgrade properly (see 983 the COMMON ITEMS: section later in this file). 984 98520041219: 986 Auto-loading of ancillary wlan modules such as wlan_wep has 987 been temporarily disabled; you need to statically configure 988 the modules you need into your kernel or explicitly load them 989 prior to use. Specifically, if you intend to use WEP encryption 990 with an 802.11 device load/configure wlan_wep; if you want to 991 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 992 and wlan_xauth as required. 993 99420041213: 995 The behaviour of ppp(8) has changed slightly. If lqr is enabled 996 (``enable lqr''), older versions would revert to LCP ECHO mode on 997 negotiation failure. Now, ``enable echo'' is required for this 998 behaviour. The ppp version number has been bumped to 3.4.2 to 999 reflect the change. 1000 100120041201: 1002 The wlan support has been updated to split the crypto support 1003 into separate modules. For static WEP you must configure the 1004 wlan_wep module in your system or build and install the module 1005 in place where it can be loaded (the kernel will auto-load 1006 the module when a wep key is configured). 1007 100820041201: 1009 The ath driver has been updated to split the tx rate control 1010 algorithm into a separate module. You need to include either 1011 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 1012 101320041116: 1014 Support for systems with an 80386 CPU has been removed. Please 1015 use FreeBSD 5.x or earlier on systems with an 80386. 1016 101720041110: 1018 We have had a hack which would mount the root filesystem 1019 R/W if the device were named 'md*'. As part of the vnode 1020 work I'm doing I have had to remove this hack. People 1021 building systems which use preloaded MD root filesystems 1022 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 1023 their /etc/rc scripts. 1024 102520041104: 1026 FreeBSD 5.3 shipped here. 1027 102820041102: 1029 The size of struct tcpcb has changed again due to the removal 1030 of RFC1644 T/TCP. You have to recompile userland programs that 1031 read kmem for tcp sockets directly (netstat, sockstat, etc.) 1032 103320041022: 1034 The size of struct tcpcb has changed. You have to recompile 1035 userland programs that read kmem for tcp sockets directly 1036 (netstat, sockstat, etc.) 1037 103820041016: 1039 RELENG_5 branched here. For older entries, please see updating 1040 in the RELENG_5 branch. 1041 1042COMMON ITEMS: 1043 1044 General Notes 1045 ------------- 1046 Avoid using make -j when upgrading. From time to time in the 1047 past there have been problems using -j with buildworld and/or 1048 installworld. This is especially true when upgrading between 1049 "distant" versions (eg one that cross a major release boundary 1050 or several minor releases, or when several months have passed 1051 on the -current branch). 1052 1053 Sometimes, obscure build problems are the result of environment 1054 poisoning. This can happen because the make utility reads its 1055 environment when searching for values for global variables. 1056 To run your build attempts in an "environmental clean room", 1057 prefix all make commands with 'env -i '. See the env(1) manual 1058 page for more details. 1059 1060 When upgrading from one major version to another it is generally 1061 best to upgrade to the latest code in the currently installed branch 1062 first, then do an upgrade to the new branch. This is the best-tested 1063 upgrade path, and has the highest probability of being successful. 1064 Please try this approach before reporting problems with a major 1065 version upgrade. 1066 1067 To build a kernel 1068 ----------------- 1069 If you are updating from a prior version of FreeBSD (even one just 1070 a few days old), you should follow this procedure. It is the most 1071 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1072 1073 make kernel-toolchain 1074 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1075 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1076 1077 To test a kernel once 1078 --------------------- 1079 If you just want to boot a kernel once (because you are not sure 1080 if it works, or if you want to boot a known bad kernel to provide 1081 debugging information) run 1082 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1083 nextboot -k testkernel 1084 1085 To just build a kernel when you know that it won't mess you up 1086 -------------------------------------------------------------- 1087 This assumes you are already running a 5.X system. Replace 1088 ${arch} with the architecture of your machine (e.g. "i386", 1089 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 1090 1091 cd src/sys/${arch}/conf 1092 config KERNEL_NAME_HERE 1093 cd ../compile/KERNEL_NAME_HERE 1094 make depend 1095 make 1096 make install 1097 1098 If this fails, go to the "To build a kernel" section. 1099 1100 To rebuild everything and install it on the current system. 1101 ----------------------------------------------------------- 1102 # Note: sometimes if you are running current you gotta do more than 1103 # is listed here if you are upgrading from a really old current. 1104 1105 <make sure you have good level 0 dumps> 1106 make buildworld 1107 make kernel KERNCONF=YOUR_KERNEL_HERE 1108 [1] 1109 <reboot in single user> [3] 1110 mergemaster -p [5] 1111 make installworld 1112 make delete-old 1113 mergemaster [4] 1114 <reboot> 1115 1116 1117 To cross-install current onto a separate partition 1118 -------------------------------------------------- 1119 # In this approach we use a separate partition to hold 1120 # current's root, 'usr', and 'var' directories. A partition 1121 # holding "/", "/usr" and "/var" should be about 2GB in 1122 # size. 1123 1124 <make sure you have good level 0 dumps> 1125 <boot into -stable> 1126 make buildworld 1127 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1128 <maybe newfs current's root partition> 1129 <mount current's root partition on directory ${CURRENT_ROOT}> 1130 make installworld DESTDIR=${CURRENT_ROOT} 1131 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1132 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1133 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1134 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1135 <reboot into current> 1136 <do a "native" rebuild/install as described in the previous section> 1137 <maybe install compatibility libraries from ports/misc/compat*> 1138 <reboot> 1139 1140 1141 To upgrade in-place from 5.x-stable to current 1142 ---------------------------------------------- 1143 <make sure you have good level 0 dumps> 1144 make buildworld [9] 1145 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1146 [1] 1147 <reboot in single user> [3] 1148 mergemaster -p [5] 1149 make installworld 1150 make delete-old 1151 mergemaster -i [4] 1152 <reboot> 1153 1154 Make sure that you've read the UPDATING file to understand the 1155 tweaks to various things you need. At this point in the life 1156 cycle of current, things change often and you are on your own 1157 to cope. The defaults can also change, so please read ALL of 1158 the UPDATING entries. 1159 1160 Also, if you are tracking -current, you must be subscribed to 1161 freebsd-current@freebsd.org. Make sure that before you update 1162 your sources that you have read and understood all the recent 1163 messages there. If in doubt, please track -stable which has 1164 much fewer pitfalls. 1165 1166 [1] If you have third party modules, such as vmware, you 1167 should disable them at this point so they don't crash your 1168 system on reboot. 1169 1170 [3] From the bootblocks, boot -s, and then do 1171 fsck -p 1172 mount -u / 1173 mount -a 1174 cd src 1175 adjkerntz -i # if CMOS is wall time 1176 Also, when doing a major release upgrade, it is required that 1177 you boot into single user mode to do the installworld. 1178 1179 [4] Note: This step is non-optional. Failure to do this step 1180 can result in a significant reduction in the functionality of the 1181 system. Attempting to do it by hand is not recommended and those 1182 that pursue this avenue should read this file carefully, as well 1183 as the archives of freebsd-current and freebsd-hackers mailing lists 1184 for potential gotchas. 1185 1186 [5] Usually this step is a noop. However, from time to time 1187 you may need to do this if you get unknown user in the following 1188 step. It never hurts to do it all the time. You may need to 1189 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1190 install) after the buildworld before this step if you last updated 1191 from current before 20020224 or from -stable before 20020408. 1192 1193 [8] In order to have a kernel that can run the 4.x binaries 1194 needed to do an installworld, you must include the COMPAT_FREEBSD4 1195 option in your kernel. Failure to do so may leave you with a system 1196 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 1197 is required to run the 5.x binaries on more recent kernels. 1198 1199 Make sure that you merge any new devices from GENERIC since the 1200 last time you updated your kernel config file. 1201 1202 [9] When checking out sources, you must include the -P flag to have 1203 cvs prune empty directories. 1204 1205 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1206 "?=" instead of the "=" assignment operator, so that buildworld can 1207 override the CPUTYPE if it needs to. 1208 1209 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1210 not on the command line, or in /etc/make.conf. buildworld will 1211 warn if it is improperly defined. 1212FORMAT: 1213 1214This file contains a list, in reverse chronological order, of major 1215breakages in tracking -current. Not all things will be listed here, 1216and it only starts on October 16, 2004. Updating files can found in 1217previous releases if your system is older than this. 1218 1219Copyright information: 1220 1221Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 1222 1223Redistribution, publication, translation and use, with or without 1224modification, in full or in part, in any form or format of this 1225document are permitted without further permission from the author. 1226 1227THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1228IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1229WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1230DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1231INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1232(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1233SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1234HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1235STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1236IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1237POSSIBILITY OF SUCH DAMAGE. 1238 1239If you find this document useful, and you want to, you may buy the 1240author a beer. 1241 1242Contact Warner Losh if you have any questions about your use of 1243this document. 1244 1245$FreeBSD: head/UPDATING 188693 2009-02-16 18:59:18Z thompsa $ 1246