UPDATING revision 189602
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 8.x IS SLOW: 12 FreeBSD 8.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. (To disable malloc debugging, run 23 ln -s aj /etc/malloc.conf.) 24 2520090309: 26 IGMPv3 and Source-Specific Multicast (SSM) have been merged 27 to the IPv4 stack. VIMAGE hooks are in but not yet used. 28 29 For kernel developers, the most important changes are that the 30 ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 31 and this lock has been downgraded to a non-recursive mutex. 32 33 Transport protocols (UDP, Raw IP) are now responsible for filtering 34 inbound multicast traffic according to group membership and source 35 filters. The imo_multicast_filter() KPI exists for this purpose. 36 Transports which do not use multicast (SCTP, TCP) already reject 37 multicast by default. Forwarding and receive performance may improve 38 as a mutex acquisition is no longer needed in the ip_input() 39 low-level input path. in_addmulti() and in_delmulti() are shimmed 40 to new KPIs which exist to support SSM in-kernel. 41 42 For application developers, it is recommended that loopback of 43 multicast datagrams be disabled for best performance, as this 44 will still cause the lock to be taken for each looped-back 45 datagram transmission. The net.inet.ip.mcast.loop sysctl may 46 be tuned to 0 to disable loopback by default; it defaults to 1 47 to preserve the existing behaviour. 48 49 For systems administrators, to obtain best performance with 50 multicast reception and multiple groups, it is always recommended 51 that a card with a suitably precise hash filter is used. Hash 52 collisions will still result in the lock being taken within the 53 transport protocol input path to check group membership. 54 55 If deploying FreeBSD in an environment with IGMP snooping switches, 56 it is recommended that the net.inet.igmp.sendlocal sysctl remain 57 enabled; this forces 224.0.0.0/24 group membership to be announced 58 via IGMP. 59 60 The size of 'struct igmpstat' has changed; netstat needs to be 61 recompiled to reflect this. 62 Bump __FreeBSD_version to 800070. 63 6420090309: 65 libusb20.so.1 is now installed as libusb.so.1 and the ports system 66 updated to use it. This requires a buildworld/installworld in order to 67 update the library and dependencies (usbconfig, etc). Its advisable to 68 rebuild all ports which uses libusb. More specific directions are given 69 in the ports collection UPDATING file. Any /etc/libmap.conf entries for 70 libusb are no longer required and can be removed. 71 7220090302: 73 A workaround is committed to allow the creation of System V shared 74 memory segment of size > 2 GB on the 64-bit architectures. 75 Due to a limitation of the existing ABI, the shm_segsz member 76 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 77 wrong for large segments. Note that limits must be explicitely 78 raised to allow such segments to be created. 79 8020090301: 81 The layout of struct ifnet has changed, requiring a rebuild of all 82 network device driver modules. 83 8420090227: 85 The /dev handling for the new USB stack has changed, a 86 buildworld/installworld is required for libusb20. 87 8820090223: 89 The new USB2 stack has now been permanently moved in and all kernel and 90 module names reverted to their previous values (eg, usb, ehci, ohci, 91 ums, ...). The old usb stack can be compiled in by prefixing the name 92 with the letter 'o', the old usb modules have been removed. 93 Updating entry 20090216 for xorg and 20090215 for libmap may still 94 apply. 95 9620090217: 97 The rc.conf(5) option if_up_delay has been renamed to 98 defaultroute_delay to better reflect its purpose. If you have 99 customized this setting in /etc/rc.conf you need to update it to 100 use the new name. 101 10220090216: 103 xorg 7.4 wants to configure its input devices via hald which does not 104 yet work with USB2. If the keyboard/mouse does not work in xorg then 105 add 106 Option "AllowEmptyInput" "off" 107 to your ServerLayout section. This will cause X to use the configured 108 kbd and mouse sections from your xorg.conf. 109 11020090215: 111 The GENERIC kernels for all architectures now default to the new USB2 112 stack. No kernel config options or code have been removed so if a 113 problem arises please report it and optionally revert to the old USB 114 stack. If you are loading USB kernel modules or have a custom kernel 115 that includes GENERIC then ensure that usb names are also changed over, 116 eg uftdi -> usb2_serial_ftdi. 117 118 Older programs linked against the ports libusb 0.1 need to be 119 redirected to the new stack's libusb20. /etc/libmap.conf can 120 be used for this: 121 # Map old usb library to new one for usb2 stack 122 libusb-0.1.so.8 libusb20.so.1 123 12420090203: 125 The ichsmb(4) driver has been changed to require SMBus slave 126 addresses be left-justified (xxxxxxx0b) rather than right-justified. 127 All of the other SMBus controller drivers require left-justified 128 slave addresses, so this change makes all the drivers provide the 129 same interface. 130 13120090201: 132 INET6 statistics (struct ip6stat) was updated. 133 netstat(1) needs to be recompiled. 134 13520090119: 136 NTFS has been removed from GENERIC kernel on amd64 to match 137 GENERIC on i386. Should not cause any issues since mount_ntfs(8) 138 will load ntfs.ko module automatically when NTFS support is 139 actually needed, unless ntfs.ko is not installed or security 140 level prohibits loading kernel modules. If either is the case, 141 "options NTFS" has to be added into kernel config. 142 14320090115: 144 TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 145 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 146 800061. User space tools that rely on the size of struct tcpcb in 147 tcp_var.h (e.g. sockstat) need to be recompiled. 148 14920081225: 150 ng_tty(4) module updated to match the new TTY subsystem. 151 Due to API change, user-level applications must be updated. 152 New API support added to mpd5 CVS and expected to be present 153 in next mpd5.3 release. 154 15520081219: 156 With __FreeBSD_version 800060 the makefs tool is part of 157 the base system (it was a port). 158 15920081216: 160 The afdata and ifnet locks have been changed from mutexes to 161 rwlocks, network modules will need to be re-compiled. 162 16320081214: 164 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 165 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 166 The new code reduced struct rtentry{} by 16 bytes on 32-bit 167 architecture and 40 bytes on 64-bit architecture. The userland 168 applications "arp" and "ndp" have been updated accordingly. 169 The output from "netstat -r" shows only routing entries and 170 none of the L2 information. 171 17220081130: 173 __FreeBSD_version 800057 marks the switchover from the 174 binary ath hal to source code. Users must add the line: 175 176 options AH_SUPPORT_AR5416 177 178 to their kernel config files when specifying: 179 180 device ath_hal 181 182 The ath_hal module no longer exists; the code is now compiled 183 together with the driver in the ath module. It is now 184 possible to tailor chip support (i.e. reduce the set of chips 185 and thereby the code size); consult ath_hal(4) for details. 186 18720081121: 188 __FreeBSD_version 800054 adds memory barriers to 189 <machine/atomic.h>, new interfaces to ifnet to facilitate 190 multiple hardware transmit queues for cards that support 191 them, and a lock-less ring-buffer implementation to 192 enable drivers to more efficiently manage queueing of 193 packets. 194 19520081117: 196 A new version of ZFS (version 13) has been merged to -HEAD. 197 This version has zpool attribute "listsnapshots" off by 198 default, which means "zfs list" does not show snapshots, 199 and is the same as Solaris behavior. 200 20120081028: 202 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 203 20420081009: 205 The uhci, ohci, ehci and slhci USB Host controller drivers have 206 been put into separate modules. If you load the usb module 207 separately through loader.conf you will need to load the 208 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 209 controller add the following to loader.conf: 210 211 uhci_load="YES" 212 ehci_load="YES" 213 21420081009: 215 The ABI used by the PMC toolset has changed. Please keep 216 userland (libpmc(3)) and the kernel module (hwpmc(4)) in 217 sync. 218 21920080820: 220 The TTY subsystem of the kernel has been replaced by a new 221 implementation, which provides better scalability and an 222 improved driver model. Most common drivers have been migrated to 223 the new TTY subsystem, while others have not. The following 224 drivers have not yet been ported to the new TTY layer: 225 226 PCI/ISA: 227 cy, digi, rc, rp, sio 228 229 USB: 230 ubser, ucycom 231 232 Line disciplines: 233 ng_h4, ng_tty, ppp, sl, snp 234 235 Adding these drivers to your kernel configuration file shall 236 cause compilation to fail. 237 23820080818: 239 ntpd has been upgraded to 4.2.4p5. 240 24120080801: 242 OpenSSH has been upgraded to 5.1p1. 243 244 For many years, FreeBSD's version of OpenSSH preferred DSA 245 over RSA for host and user authentication keys. With this 246 upgrade, we've switched to the vendor's default of RSA over 247 DSA. This may cause upgraded clients to warn about unknown 248 host keys even for previously known hosts. Users should 249 follow the usual procedure for verifying host keys before 250 accepting the RSA key. 251 252 This can be circumvented by setting the "HostKeyAlgorithms" 253 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 254 command line. 255 256 Please note that the sequence of keys offered for 257 authentication has been changed as well. You may want to 258 specify IdentityFile in a different order to revert this 259 behavior. 260 26120080713: 262 The sio(4) driver has been removed from the i386 and amd64 263 kernel configuration files. This means uart(4) is now the 264 default serial port driver on those platforms as well. 265 266 To prevent collisions with the sio(4) driver, the uart(4) driver 267 uses different names for its device nodes. This means the 268 onboard serial port will now most likely be called "ttyu0" 269 instead of "ttyd0". You may need to reconfigure applications to 270 use the new device names. 271 272 When using the serial port as a boot console, be sure to update 273 /boot/device.hints and /etc/ttys before booting the new kernel. 274 If you forget to do so, you can still manually specify the hints 275 at the loader prompt: 276 277 set hint.uart.0.at="isa" 278 set hint.uart.0.port="0x3F8" 279 set hint.uart.0.flags="0x10" 280 set hint.uart.0.irq="4" 281 boot -s 282 28320080609: 284 The gpt(8) utility has been removed. Use gpart(8) to partition 285 disks instead. 286 28720080603: 288 The version that Linuxulator emulates was changed from 2.4.2 289 to 2.6.16. If you experience any problems with Linux binaries 290 please try to set sysctl compat.linux.osrelease to 2.4.2 and 291 if it fixes the problem contact emulation mailing list. 292 29320080525: 294 ISDN4BSD (I4B) was removed from the src tree. You may need to 295 update a your kernel configuration and remove relevant entries. 296 29720080509: 298 I have checked in code to support multiple routing tables. 299 See the man pages setfib(1) and setfib(2). 300 This is a hopefully backwards compatible version, 301 but to make use of it you need to compile your kernel 302 with options ROUTETABLES=2 (or more up to 16). 303 30420080420: 305 The 802.11 wireless support was redone to enable multi-bss 306 operation on devices that are capable. The underlying device 307 is no longer used directly but instead wlanX devices are 308 cloned with ifconfig. This requires changes to rc.conf files. 309 For example, change: 310 ifconfig_ath0="WPA DHCP" 311 to 312 wlans_ath0=wlan0 313 ifconfig_wlan0="WPA DHCP" 314 see rc.conf(5) for more details. In addition, mergemaster of 315 /etc/rc.d is highly recommended. Simultaneous update of userland 316 and kernel wouldn't hurt either. 317 318 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 319 modules were merged into the base wlan module. All references 320 to these modules (e.g. in kernel config files) must be removed. 321 32220080408: 323 psm(4) has gained write(2) support in native operation level. 324 Arbitrary commands can be written to /dev/psm%d and status can 325 be read back from it. Therefore, an application is responsible 326 for status validation and error recovery. It is a no-op in 327 other operation levels. 328 32920080312: 330 Support for KSE threading has been removed from the kernel. To 331 run legacy applications linked against KSE libmap.conf may 332 be used. The following libmap.conf may be used to ensure 333 compatibility with any prior release: 334 335 libpthread.so.1 libthr.so.1 336 libpthread.so.2 libthr.so.2 337 libkse.so.3 libthr.so.3 338 33920080301: 340 The layout of struct vmspace has changed. This affects libkvm 341 and any executables that link against libkvm and use the 342 kvm_getprocs() function. In particular, but not exclusively, 343 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 344 The effects are minimal, but it's advisable to upgrade world 345 nonetheless. 346 34720080229: 348 The latest em driver no longer has support in it for the 349 82575 adapter, this is now moved to the igb driver. The 350 split was done to make new features that are incompatible 351 with older hardware easier to do. 352 35320080220: 354 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 355 likewise the kernel option is now GEOM_LINUX_LVM. 356 35720080211: 358 The default NFS mount mode has changed from UDP to TCP for 359 increased reliability. If you rely on (insecurely) NFS 360 mounting across a firewall you may need to update your 361 firewall rules. 362 36320080208: 364 Belatedly note the addition of m_collapse for compacting 365 mbuf chains. 366 36720080126: 368 The fts(3) structures have been changed to use adequate 369 integer types for their members and so to be able to cope 370 with huge file trees. The old fts(3) ABI is preserved 371 through symbol versioning in libc, so third-party binaries 372 using fts(3) should still work, although they will not take 373 advantage of the extended types. At the same time, some 374 third-party software might fail to build after this change 375 due to unportable assumptions made in its source code about 376 fts(3) structure members. Such software should be fixed 377 by its vendor or, in the worst case, in the ports tree. 378 FreeBSD_version 800015 marks this change for the unlikely 379 case that a portable fix is impossible. 380 38120080123: 382 To upgrade to -current after this date, you must be running 383 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 384 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 385 38620071128: 387 The ADAPTIVE_GIANT kernel option has been retired because its 388 functionality is the default now. 389 39020071118: 391 The AT keyboard emulation of sunkbd(4) has been turned on 392 by default. In order to make the special symbols of the Sun 393 keyboards driven by sunkbd(4) work under X these now have 394 to be configured the same way as Sun USB keyboards driven 395 by ukbd(4) (which also does AT keyboard emulation), f.e.: 396 397 Option "XkbLayout" "us" 398 Option "XkbRules" "xorg" 399 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 400 40120071024: 402 It has been decided that it is desirable to provide ABI 403 backwards compatibility to the FreeBSD 4/5/6 versions of the 404 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 405 broken with the introduction of PCI domain support (see the 406 20070930 entry). Unfortunately, this required the ABI of 407 PCIOCGETCONF to be broken again in order to be able to 408 provide backwards compatibility to the old version of that 409 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 410 again. As for prominent ports this affects neither pciutils 411 nor xorg-server this time, the hal port needs to be rebuilt 412 however. 413 41420071020: 415 The misnamed kthread_create() and friends have been renamed 416 to kproc_create() etc. Many of the callers already 417 used kproc_start().. 418 I will return kthread_create() and friends in a while 419 with implementations that actually create threads, not procs. 420 Renaming corresponds with version 800002. 421 42220071010: 423 RELENG_7 branched. 424 42520071009: 426 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 427 WITHOUT_LIBTHR are set. 428 42920070930: 430 The PCI code has been made aware of PCI domains. This means that 431 the location strings as used by pciconf(8) etc are now in the 432 following format: pci<domain>:<bus>:<device>[:<function>]. It 433 also means that consumers of <sys/pciio.h> potentially need to 434 be recompiled; this includes the hal and xorg-server ports. 435 43620070928: 437 The caching daemon (cached) was renamed to nscd. nscd.conf 438 configuration file should be used instead of cached.conf and 439 nscd_enable, nscd_pidfile and nscd_flags options should be used 440 instead of cached_enable, cached_pidfile and cached_flags in 441 rc.conf. 442 44320070921: 444 The getfacl(1) utility now prints owning user and group name 445 instead of owning uid and gid in the three line comment header. 446 This is the same behavior as getfacl(1) on Solaris and Linux. 447 44820070704: 449 The new IPsec code is now compiled in using the IPSEC option. The 450 IPSEC option now requires "device crypto" be defined in your kernel 451 configuration. The FAST_IPSEC kernel option is now deprecated. 452 45320070702: 454 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 455 note the changed syntax - keep state is now on by default. Also 456 note the fact that ftp-proxy(8) has been changed from bottom up and 457 has been moved from libexec to usr/sbin. Changes in the ALTQ 458 handling also affect users of IPFW's ALTQ capabilities. 459 46020070701: 461 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 462 only IPsec supported by FreeBSD. The new IPsec stack 463 supports both IPv4 and IPv6. The kernel option will change 464 after the code changes have settled in. For now the kernel 465 option IPSEC is deprecated and FAST_IPSEC is the only option, that 466 will change after some settling time. 467 46820070701: 469 The wicontrol(8) utility has been removed from the base system. wi(4) 470 cards should be configured using ifconfig(8), see the man page for more 471 information. 472 47320070612: 474 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 475 instead of the nve(4) driver. Please update your configuration 476 accordingly. 477 47820070612: 479 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 480 database if it is missing or older than the aliases file. If 481 desired, set the new rc.conf option sendmail_rebuild_aliases 482 to "YES" to restore that functionality. 483 48420070612: 485 The IPv4 multicast socket code has been considerably modified, and 486 moved to the file sys/netinet/in_mcast.c. Initial support for the 487 RFC 3678 Source-Specific Multicast Socket API has been added to 488 the IPv4 network stack. 489 490 Strict multicast and broadcast reception is now the default for 491 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 492 has now been removed. 493 494 The RFC 1724 hack for interface selection has been removed; the use 495 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 496 been added to replace it. Consumers such as routed will soon be 497 updated to reflect this. 498 499 These changes affect users who are running routed(8) or rdisc(8) 500 from the FreeBSD base system on point-to-point or unnumbered 501 interfaces. 502 50320070610: 504 The net80211 layer has changed significantly and all wireless 505 drivers that depend on it need to be recompiled. Further these 506 changes require that any program that interacts with the wireless 507 support in the kernel be recompiled; this includes: ifconfig, 508 wpa_supplicant, hostapd, and wlanstats. Users must also, for 509 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 510 if they use modules for wireless support. These modules implement 511 scanning support for station and ap modes, respectively. Failure 512 to load the appropriate module before marking a wireless interface 513 up will result in a message to the console and the device not 514 operating properly. 515 51620070610: 517 The pam_nologin(8) module ceases to provide an authentication 518 function and starts providing an account management function. 519 Consequent changes to /etc/pam.d should be brought in using 520 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 521 need manual editing as follows. Locate this line (or similar): 522 523 auth required pam_nologin.so no_warn 524 525 and change it according to this example: 526 527 account required pam_nologin.so no_warn 528 529 That is, the first word needs to be changed from "auth" to 530 "account". The new line can be moved to the account section 531 within the file for clarity. Not updating pam.conf(5) files 532 will result in nologin(5) ignored by the respective services. 533 53420070529: 535 The ether_ioctl() function has been synchronized with ioctl(2) 536 and ifnet.if_ioctl. Due to that, the size of one of its arguments 537 has changed on 64-bit architectures. All kernel modules using 538 ether_ioctl() need to be rebuilt on such architectures. 539 54020070516: 541 Improved INCLUDE_CONFIG_FILE support has been introduced to the 542 config(8) utility. In order to take advantage of this new 543 functionality, you are expected to recompile and install 544 src/usr.sbin/config. If you don't rebuild config(8), and your 545 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 546 build will be broken because of a missing "kernconfstring" 547 symbol. 548 54920070513: 550 Symbol versioning is enabled by default. To disable it, use 551 option WITHOUT_SYMVER. It is not advisable to attempt to 552 disable symbol versioning once it is enabled; your installworld 553 will break because a symbol version-less libc will get installed 554 before the install tools. As a result, the old install tools, 555 which previously had symbol dependencies to FBSD_1.0, will fail 556 because the freshly installed libc will not have them. 557 558 The default threading library (providing "libpthread") has been 559 changed to libthr. If you wish to have libkse as your default, 560 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 561 56220070423: 563 The ABI breakage in sendmail(8)'s libmilter has been repaired 564 so it is no longer necessary to recompile mail filters (aka, 565 milters). If you recompiled mail filters after the 20070408 566 note, it is not necessary to recompile them again. 567 56820070417: 569 The new trunk(4) driver has been renamed to lagg(4) as it better 570 reflects its purpose. ifconfig will need to be recompiled. 571 57220070408: 573 sendmail(8) has been updated to version 8.14.1. Mail filters 574 (aka, milters) compiled against the libmilter included in the 575 base operating system should be recompiled. 576 57720070302: 578 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 579 In order to use them one must agree to the respective LICENSE in 580 share/doc/legal and define legal.intel_<name>.license_ack=1 via 581 loader.conf(5) or kenv(1). Make sure to deinstall the now 582 deprecated modules from the respective firmware ports. 583 58420070228: 585 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 586 were removed from FreeBSD's libc. These originally came from INRIA 587 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 588 deprecated in previous releases. 589 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 590 replace it as a more portable (and re-entrant) API. 591 59220070224: 593 To support interrupt filtering a modification to the newbus API 594 has occurred, ABI was broken and __FreeBSD_version was bumped 595 to 700031. Please make sure that your kernel and modules are in 596 sync. For more info: 597 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 598 59920070224: 600 The IPv6 multicast forwarding code may now be loaded into GENERIC 601 kernels by loading the ip_mroute.ko module. This is built into the 602 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 603 set; see src.conf(5) for more information. 604 60520070214: 606 The output of netstat -r has changed. Without -n, we now only 607 print a "network name" without the prefix length if the network 608 address and mask exactly match a Class A/B/C network, and an entry 609 exists in the nsswitch "networks" map. 610 With -n, we print the full unabbreviated CIDR network prefix in 611 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 612 This change is in preparation for changes such as equal-cost 613 multipath, and to more generally assist operational deployment 614 of FreeBSD as a modern IPv4 router. 615 61620070210: 617 PIM has been turned on by default in the IPv4 multicast 618 routing code. The kernel option 'PIM' has now been removed. 619 PIM is now built by default if option 'MROUTING' is specified. 620 It may now be loaded into GENERIC kernels by loading the 621 ip_mroute.ko module. 622 62320070207: 624 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 625 has been removed. Its functionality may be achieved by explicitly 626 configuring gif(4) interfaces and using the 'phyint' keyword in 627 mrouted.conf. 628 XORP does not support source-routed IPv4 multicast tunnels nor the 629 integrated IPIP tunneling, therefore it is not affected by this 630 change. The __FreeBSD_version macro has been bumped to 700030. 631 63220061221: 633 Support for PCI Message Signalled Interrupts has been 634 re-enabled in the bge driver, only for those chips which are 635 believed to support it properly. If there are any problems, 636 MSI can be disabled completely by setting the 637 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 638 in the loader. 639 64020061214: 641 Support for PCI Message Signalled Interrupts has been 642 disabled again in the bge driver. Many revisions of the 643 hardware fail to support it properly. Support can be 644 re-enabled by removing the #define of BGE_DISABLE_MSI in 645 "src/sys/dev/bge/if_bge.c". 646 64720061214: 648 Support for PCI Message Signalled Interrupts has been added 649 to the bge driver. If there are any problems, MSI can be 650 disabled completely by setting the 'hw.pci.enable_msi' and 651 'hw.pci.enable_msix' tunables to 0 in the loader. 652 65320061205: 654 The removal of several facets of the experimental Threading 655 system from the kernel means that the proc and thread structures 656 have changed quite a bit. I suggest all kernel modules that might 657 reference these structures be recompiled.. Especially the 658 linux module. 659 66020061126: 661 Sound infrastructure has been updated with various fixes and 662 improvements. Most of the changes are pretty much transparent, 663 with exceptions of followings: 664 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 665 moved to their own dev sysctl nodes, for example: 666 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 667 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 668 own chardev in the form of "dsp%d.<function>%d", where <function> 669 is p = playback, r = record and v = virtual, respectively. Users 670 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 671 This does not affect those who are using "/dev/dsp". 672 67320061122: 674 geom(4)'s gmirror(8) class metadata structure has been 675 rev'd from v3 to v4. If you update across this point and 676 your metadata is converted for you, you will not be easily 677 able to downgrade since the /boot/kernel.old/geom_mirror.ko 678 kernel module will be unable to read the v4 metadata. You 679 can resolve this by doing from the loader(8) prompt: 680 681 set vfs.root.mountfrom="ufs:/dev/XXX" 682 683 where XXX is the root slice of one of the disks that composed 684 the mirror (i.e.: /dev/ad0s1a). You can then rebuild 685 the array the same way you built it originally. 686 68720061122: 688 The following binaries have been disconnected from the build: 689 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 690 and mount_std. The functionality of these programs has been 691 moved into the mount program. For example, to mount a devfs 692 filesystem, instead of using mount_devfs, use: "mount -t devfs". 693 This does not affect entries in /etc/fstab, since entries in 694 /etc/fstab are always processed with "mount -t fstype". 695 69620061113: 697 Support for PCI Message Signalled Interrupts on i386 and amd64 698 has been added to the kernel and various drivers will soon be 699 updated to use MSI when it is available. If there are any problems, 700 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 701 and 'hw.pci.enable_msix' tunables to 0 in the loader. 702 70320061110: 704 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 705 The lockmgr object layout has been changed as a result of having 706 a lock_object embedded in it. As a consequence all file system 707 kernel modules must be re-compiled. The mutex profiling man page 708 has not yet been updated to reflect this change. 709 71020061026: 711 KSE in the kernel has now been made optional and turned on by 712 default. Use 'nooption KSE' in your kernel config to turn it 713 off. All kernel modules *must* be recompiled after this change. 714 There-after, modules from a KSE kernel should be compatible with 715 modules from a NOKSE kernel due to the temporary padding fields 716 added to 'struct proc'. 717 71820060929: 719 mrouted and its utilities have been removed from the base system. 720 72120060927: 722 Some ioctl(2) command codes have changed. Full backward ABI 723 compatibility is provided if the "options COMPAT_FREEBSD6" is 724 present in the kernel configuration file. Make sure to add 725 this option to your kernel config file, or recompile X.Org 726 and the rest of ports; otherwise they may refuse to work. 727 72820060924: 729 tcpslice has been removed from the base system. 730 73120060913: 732 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 733 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 734 systat needs to be rebuilt. 735 73620060903: 737 libpcap updated to v0.9.4 and tcpdump to v3.9.4 738 73920060816: 740 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 741 for IPFIREWALL_FORWARD is now as it was before when it was first 742 committed and for years after. The behaviour is now ON. 743 74420060725: 745 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 746 Now it can decrypt files created from different architectures. 747 Unfortunately, it is no longer able to decrypt a cipher text 748 generated with an older version on 64 bit architectures. 749 If you have such a file, you need old utility to decrypt it. 750 75120060709: 752 The interface version of the i4b kernel part has changed. So 753 after updating the kernel sources and compiling a new kernel, 754 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 755 be rebuilt, and vice versa. 756 75720060627: 758 The XBOX kernel now defaults to the nfe(4) driver instead of 759 the nve(4) driver. Please update your configuration 760 accordingly. 761 76220060514: 763 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 764 PCnet family of NICs has been removed. The new le(4) driver serves 765 as an equivalent but cross-platform replacement with the pcn(4) 766 driver still providing performance-optimized support for the subset 767 of AMD Am79C971 PCnet-FAST and greater chips as before. 768 76920060511: 770 The machdep.* sysctls and the adjkerntz utility have been 771 modified a bit. The new adjkerntz utility uses the new 772 sysctl names and sysctlbyname() calls, so it may be impossible 773 to run an old /sbin/adjkerntz utility in single-user mode 774 with a new kernel. Replace the `adjkerntz -i' step before 775 `make installworld' with: 776 777 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 778 779 and proceed as usual with the rest of the installworld-stage 780 steps. Otherwise, you risk installing binaries with their 781 timestamp set several hours in the future, especially if 782 you are running with local time set to GMT+X hours. 783 78420060412: 785 The ip6fw utility has been removed. The behavior provided by 786 ip6fw has been in ipfw2 for a good while and the rc.d scripts 787 have been updated to deal with it. There are some rules that 788 might not migrate cleanly. Use rc.firewall6 as a template to 789 rewrite rules. 790 79120060428: 792 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 793 attachments have been removed. Make sure to configure scc(4) 794 on sparc64. Note also that by default puc(4) will use uart(4) 795 and not sio(4) for serial ports because interrupt handling has 796 been optimized for multi-port serial cards and only uart(4) 797 implements the interface to support it. 798 79920060330: 800 The scc(4) driver replaces puc(4) for Serial Communications 801 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 802 Z8530. On sparc64, it is advised to add scc(4) to the kernel 803 configuration to make sure that the serial ports remain 804 functional. 805 80620060317: 807 Most world/kernel related NO_* build options changed names. 808 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 809 after FreeBSD ports) and should be set in /etc/src.conf 810 (the src.conf(5) manpage is provided). Full backwards 811 compatibility is maintained for the time being though it's 812 highly recommended to start moving old options out of the 813 system-wide /etc/make.conf file into the new /etc/src.conf 814 while also properly renaming them. More conversions will 815 likely follow. Posting to current@: 816 817 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 818 81920060305: 820 The NETSMBCRYPTO kernel option has been retired because its 821 functionality is always included in NETSMB and smbfs.ko now. 822 82320060303: 824 The TDFX_LINUX kernel option was retired and replaced by the 825 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 826 kernel module. Loading it alone should suffice to get 3dfx support 827 for Linux apps because it will pull in 3dfx.ko and linux.ko through 828 its dependencies. 829 83020060204: 831 The 'audit' group was added to support the new auditing functionality 832 in the base system. Be sure to follow the directions for updating, 833 including the requirement to run mergemaster -p. 834 83520060201: 836 The kernel ABI to file system modules was changed on i386. 837 Please make sure that your kernel and modules are in sync. 838 83920060118: 840 This actually occured some time ago, but installing the kernel 841 now also installs a bunch of symbol files for the kernel modules. 842 This increases the size of /boot/kernel to about 67Mbytes. You 843 will need twice this if you will eventually back this up to kernel.old 844 on your next install. 845 If you have a shortage of room in your root partition, you should add 846 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 847 to your /etc/make.conf. 848 84920060113: 850 libc's malloc implementation has been replaced. This change has the 851 potential to uncover application bugs that previously went unnoticed. 852 See the malloc(3) manual page for more details. 853 85420060112: 855 The generic netgraph(4) cookie has been changed. If you upgrade 856 kernel passing this point, you also need to upgrade userland 857 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 858 85920060106: 860 si(4)'s device files now contain the unit number. 861 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 862 86320060106: 864 The kernel ABI was mostly destroyed due to a change in the size 865 of struct lock_object which is nested in other structures such 866 as mutexes which are nested in all sorts of other structures. 867 Make sure your kernel and modules are in sync. 868 86920051231: 870 The page coloring algorithm in the VM subsystem was converted 871 from tuning with kernel options to autotuning. Please remove 872 any PQ_* option except PQ_NOOPT from your kernel config. 873 87420051211: 875 The net80211-related tools in the tools/tools/ath directory 876 have been moved to tools/tools/net80211 and renamed with a 877 "wlan" prefix. Scripts that use them should be adjusted 878 accordingly. 879 88020051202: 881 Scripts in the local_startup directories (as defined in 882 /etc/defaults/rc.conf) that have the new rc.d semantics will 883 now be run as part of the base system rcorder. If there are 884 errors or problems with one of these local scripts, it could 885 cause boot problems. If you encounter such problems, boot in 886 single user mode, remove that script from the */rc.d directory. 887 Please report the problem to the port's maintainer, and the 888 freebsd-ports@freebsd.org mailing list. 889 89020051129: 891 The nodev mount option was deprecated in RELENG_6 (where it 892 was a no-op), and is now unsupported. If you have nodev or dev listed 893 in /etc/fstab, remove it, otherwise it will result in a mount error. 894 89520051129: 896 ABI between ipfw(4) and ipfw(8) has been changed. You need 897 to rebuild ipfw(8) when rebuilding kernel. 898 89920051108: 900 rp(4)'s device files now contain the unit number. 901 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 902 90320051029: 904 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 905 Its /etc/rc.conf.d configuration file has been `ppp' from 906 the beginning, and hence there is no need to touch it. 907 90820051014: 909 Now most modules get their build-time options from the kernel 910 configuration file. A few modules still have fixed options 911 due to their non-conformant implementation, but they will be 912 corrected eventually. You may need to review the options of 913 the modules in use, explicitly specify the non-default options 914 in the kernel configuration file, and rebuild the kernel and 915 modules afterwards. 916 91720051001: 918 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 919 to turn polling(4) on your interfaces. 920 92120050927: 922 The old bridge(4) implementation was retired. The new 923 if_bridge(4) serves as a full functional replacement. 924 92520050722: 926 The ai_addrlen of a struct addrinfo was changed to a socklen_t 927 to conform to POSIX-2001. This change broke an ABI 928 compatibility on 64 bit architecture. You have to recompile 929 userland programs that use getaddrinfo(3) on 64 bit 930 architecture. 931 93220050711: 933 RELENG_6 branched here. 934 93520050629: 936 The pccard_ifconfig rc.conf variable has been removed and a new 937 variable, ifconfig_DEFAULT has been introduced. Unlike 938 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 939 do not have ifconfig_ifn entries rather than just those in 940 removable_interfaces. 941 94220050616: 943 Some previous versions of PAM have permitted the use of 944 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 945 to third party PAM modules in /usr/local/lib. A change has been 946 made to require the use of absolute paths in order to avoid 947 ambiguity and dependence on library path configuration, which may 948 affect existing configurations. 949 95020050610: 951 Major changes to network interface API. All drivers must be 952 recompiled. Drivers not in the base system will need to be 953 updated to the new APIs. 954 95520050609: 956 Changes were made to kinfo_proc in sys/user.h. Please recompile 957 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 958 will not behave correctly. 959 960 The API and ABI for hwpmc(4) have changed with the addition 961 of sampling support. Please recompile lib/libpmc(3) and 962 usr.sbin/{pmcstat,pmccontrol}. 963 96420050606: 965 The OpenBSD dhclient was imported in place of the ISC dhclient 966 and the network interface configuration scripts were updated 967 accordingly. If you use DHCP to configure your interfaces, you 968 must now run devd. Also, DNS updating was lost so you will need 969 to find a workaround if you use this feature. 970 971 The '_dhcp' user was added to support the OpenBSD dhclient. Be 972 sure to run mergemaster -p (like you are supposed to do every time 973 anyway). 974 97520050605: 976 if_bridge was added to the tree. This has changed struct ifnet. 977 Please recompile userland and all network related modules. 978 97920050603: 980 The n_net of a struct netent was changed to an uint32_t, and 981 1st argument of getnetbyaddr() was changed to an uint32_t, to 982 conform to POSIX-2001. These changes broke an ABI 983 compatibility on 64 bit architecture. With these changes, 984 shlib major of libpcap was bumped. You have to recompile 985 userland programs that use getnetbyaddr(3), getnetbyname(3), 986 getnetent(3) and/or libpcap on 64 bit architecture. 987 98820050528: 989 Kernel parsing of extra options on '#!' first lines of shell 990 scripts has changed. Lines with multiple options likely will 991 fail after this date. For full details, please see 992 http://people.freebsd.org/~gad/Updating-20050528.txt 993 99420050503: 995 The packet filter (pf) code has been updated to OpenBSD 3.7 996 Please note the changed anchor syntax and the fact that 997 authpf(8) now needs a mounted fdescfs(5) to function. 998 99920050415: 1000 The NO_MIXED_MODE kernel option has been removed from the i386 1001 amd64 platforms as its use has been superceded by the new local 1002 APIC timer code. Any kernel config files containing this option 1003 should be updated. 1004 100520050227: 1006 The on-disk format of LC_CTYPE files was changed to be machine 1007 independent. Please make sure NOT to use NO_CLEAN buildworld 1008 when crossing this point. Crossing this point also requires 1009 recompile or reinstall of all locale depended packages. 1010 101120050225: 1012 The ifi_epoch member of struct if_data has been changed to 1013 contain the uptime at which the interface was created or the 1014 statistics zeroed rather then the wall clock time because 1015 wallclock time may go backwards. This should have no impact 1016 unless an snmp implementation is using this value (I know of 1017 none at this point.) 1018 101920050224: 1020 The acpi_perf and acpi_throttle drivers are now part of the 1021 acpi(4) main module. They are no longer built separately. 1022 102320050223: 1024 The layout of struct image_params has changed. You have to 1025 recompile all compatibility modules (linux, svr4, etc) for use 1026 with the new kernel. 1027 102820050223: 1029 The p4tcc driver has been merged into cpufreq(4). This makes 1030 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 1031 compile in "device cpufreq" to restore this functionality. 1032 103320050220: 1034 The responsibility of recomputing the file system summary of 1035 a SoftUpdates-enabled dirty volume has been transferred to the 1036 background fsck. A rebuild of fsck(8) utility is recommended 1037 if you have updated the kernel. 1038 1039 To get the old behavior (recompute file system summary at mount 1040 time), you can set vfs.ffs.compute_summary_at_mount=1 before 1041 mounting the new volume. 1042 104320050206: 1044 The cpufreq import is complete. As part of this, the sysctls for 1045 acpi(4) throttling have been removed. The power_profile script 1046 has been updated, so you can use performance/economy_cpu_freq in 1047 rc.conf(5) to set AC on/offline cpu frequencies. 1048 104920050206: 1050 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 1051 requires recompiling libnetgraph and userland netgraph utilities. 1052 105320050114: 1054 Support for abbreviated forms of a number of ipfw options is 1055 now deprecated. Warnings are printed to stderr indicating the 1056 correct full form when a match occurs. Some abbreviations may 1057 be supported at a later date based on user feedback. To be 1058 considered for support, abbreviations must be in use prior to 1059 this commit and unlikely to be confused with current key words. 1060 106120041221: 1062 By a popular demand, a lot of NOFOO options were renamed 1063 to NO_FOO (see bsd.compat.mk for a full list). The old 1064 spellings are still supported, but will cause annoying 1065 warnings on stderr. Make sure you upgrade properly (see 1066 the COMMON ITEMS: section later in this file). 1067 106820041219: 1069 Auto-loading of ancillary wlan modules such as wlan_wep has 1070 been temporarily disabled; you need to statically configure 1071 the modules you need into your kernel or explicitly load them 1072 prior to use. Specifically, if you intend to use WEP encryption 1073 with an 802.11 device load/configure wlan_wep; if you want to 1074 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 1075 and wlan_xauth as required. 1076 107720041213: 1078 The behaviour of ppp(8) has changed slightly. If lqr is enabled 1079 (``enable lqr''), older versions would revert to LCP ECHO mode on 1080 negotiation failure. Now, ``enable echo'' is required for this 1081 behaviour. The ppp version number has been bumped to 3.4.2 to 1082 reflect the change. 1083 108420041201: 1085 The wlan support has been updated to split the crypto support 1086 into separate modules. For static WEP you must configure the 1087 wlan_wep module in your system or build and install the module 1088 in place where it can be loaded (the kernel will auto-load 1089 the module when a wep key is configured). 1090 109120041201: 1092 The ath driver has been updated to split the tx rate control 1093 algorithm into a separate module. You need to include either 1094 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 1095 109620041116: 1097 Support for systems with an 80386 CPU has been removed. Please 1098 use FreeBSD 5.x or earlier on systems with an 80386. 1099 110020041110: 1101 We have had a hack which would mount the root filesystem 1102 R/W if the device were named 'md*'. As part of the vnode 1103 work I'm doing I have had to remove this hack. People 1104 building systems which use preloaded MD root filesystems 1105 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 1106 their /etc/rc scripts. 1107 110820041104: 1109 FreeBSD 5.3 shipped here. 1110 111120041102: 1112 The size of struct tcpcb has changed again due to the removal 1113 of RFC1644 T/TCP. You have to recompile userland programs that 1114 read kmem for tcp sockets directly (netstat, sockstat, etc.) 1115 111620041022: 1117 The size of struct tcpcb has changed. You have to recompile 1118 userland programs that read kmem for tcp sockets directly 1119 (netstat, sockstat, etc.) 1120 112120041016: 1122 RELENG_5 branched here. For older entries, please see updating 1123 in the RELENG_5 branch. 1124 1125COMMON ITEMS: 1126 1127 General Notes 1128 ------------- 1129 Avoid using make -j when upgrading. From time to time in the 1130 past there have been problems using -j with buildworld and/or 1131 installworld. This is especially true when upgrading between 1132 "distant" versions (eg one that cross a major release boundary 1133 or several minor releases, or when several months have passed 1134 on the -current branch). 1135 1136 Sometimes, obscure build problems are the result of environment 1137 poisoning. This can happen because the make utility reads its 1138 environment when searching for values for global variables. 1139 To run your build attempts in an "environmental clean room", 1140 prefix all make commands with 'env -i '. See the env(1) manual 1141 page for more details. 1142 1143 When upgrading from one major version to another it is generally 1144 best to upgrade to the latest code in the currently installed branch 1145 first, then do an upgrade to the new branch. This is the best-tested 1146 upgrade path, and has the highest probability of being successful. 1147 Please try this approach before reporting problems with a major 1148 version upgrade. 1149 1150 To build a kernel 1151 ----------------- 1152 If you are updating from a prior version of FreeBSD (even one just 1153 a few days old), you should follow this procedure. It is the most 1154 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1155 1156 make kernel-toolchain 1157 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1158 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1159 1160 To test a kernel once 1161 --------------------- 1162 If you just want to boot a kernel once (because you are not sure 1163 if it works, or if you want to boot a known bad kernel to provide 1164 debugging information) run 1165 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1166 nextboot -k testkernel 1167 1168 To just build a kernel when you know that it won't mess you up 1169 -------------------------------------------------------------- 1170 This assumes you are already running a 5.X system. Replace 1171 ${arch} with the architecture of your machine (e.g. "i386", 1172 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 1173 1174 cd src/sys/${arch}/conf 1175 config KERNEL_NAME_HERE 1176 cd ../compile/KERNEL_NAME_HERE 1177 make depend 1178 make 1179 make install 1180 1181 If this fails, go to the "To build a kernel" section. 1182 1183 To rebuild everything and install it on the current system. 1184 ----------------------------------------------------------- 1185 # Note: sometimes if you are running current you gotta do more than 1186 # is listed here if you are upgrading from a really old current. 1187 1188 <make sure you have good level 0 dumps> 1189 make buildworld 1190 make kernel KERNCONF=YOUR_KERNEL_HERE 1191 [1] 1192 <reboot in single user> [3] 1193 mergemaster -p [5] 1194 make installworld 1195 make delete-old 1196 mergemaster [4] 1197 <reboot> 1198 1199 1200 To cross-install current onto a separate partition 1201 -------------------------------------------------- 1202 # In this approach we use a separate partition to hold 1203 # current's root, 'usr', and 'var' directories. A partition 1204 # holding "/", "/usr" and "/var" should be about 2GB in 1205 # size. 1206 1207 <make sure you have good level 0 dumps> 1208 <boot into -stable> 1209 make buildworld 1210 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1211 <maybe newfs current's root partition> 1212 <mount current's root partition on directory ${CURRENT_ROOT}> 1213 make installworld DESTDIR=${CURRENT_ROOT} 1214 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1215 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1216 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1217 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1218 <reboot into current> 1219 <do a "native" rebuild/install as described in the previous section> 1220 <maybe install compatibility libraries from ports/misc/compat*> 1221 <reboot> 1222 1223 1224 To upgrade in-place from 5.x-stable to current 1225 ---------------------------------------------- 1226 <make sure you have good level 0 dumps> 1227 make buildworld [9] 1228 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1229 [1] 1230 <reboot in single user> [3] 1231 mergemaster -p [5] 1232 make installworld 1233 make delete-old 1234 mergemaster -i [4] 1235 <reboot> 1236 1237 Make sure that you've read the UPDATING file to understand the 1238 tweaks to various things you need. At this point in the life 1239 cycle of current, things change often and you are on your own 1240 to cope. The defaults can also change, so please read ALL of 1241 the UPDATING entries. 1242 1243 Also, if you are tracking -current, you must be subscribed to 1244 freebsd-current@freebsd.org. Make sure that before you update 1245 your sources that you have read and understood all the recent 1246 messages there. If in doubt, please track -stable which has 1247 much fewer pitfalls. 1248 1249 [1] If you have third party modules, such as vmware, you 1250 should disable them at this point so they don't crash your 1251 system on reboot. 1252 1253 [3] From the bootblocks, boot -s, and then do 1254 fsck -p 1255 mount -u / 1256 mount -a 1257 cd src 1258 adjkerntz -i # if CMOS is wall time 1259 Also, when doing a major release upgrade, it is required that 1260 you boot into single user mode to do the installworld. 1261 1262 [4] Note: This step is non-optional. Failure to do this step 1263 can result in a significant reduction in the functionality of the 1264 system. Attempting to do it by hand is not recommended and those 1265 that pursue this avenue should read this file carefully, as well 1266 as the archives of freebsd-current and freebsd-hackers mailing lists 1267 for potential gotchas. 1268 1269 [5] Usually this step is a noop. However, from time to time 1270 you may need to do this if you get unknown user in the following 1271 step. It never hurts to do it all the time. You may need to 1272 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1273 install) after the buildworld before this step if you last updated 1274 from current before 20020224 or from -stable before 20020408. 1275 1276 [8] In order to have a kernel that can run the 4.x binaries 1277 needed to do an installworld, you must include the COMPAT_FREEBSD4 1278 option in your kernel. Failure to do so may leave you with a system 1279 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 1280 is required to run the 5.x binaries on more recent kernels. 1281 1282 Make sure that you merge any new devices from GENERIC since the 1283 last time you updated your kernel config file. 1284 1285 [9] When checking out sources, you must include the -P flag to have 1286 cvs prune empty directories. 1287 1288 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1289 "?=" instead of the "=" assignment operator, so that buildworld can 1290 override the CPUTYPE if it needs to. 1291 1292 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1293 not on the command line, or in /etc/make.conf. buildworld will 1294 warn if it is improperly defined. 1295FORMAT: 1296 1297This file contains a list, in reverse chronological order, of major 1298breakages in tracking -current. Not all things will be listed here, 1299and it only starts on October 16, 2004. Updating files can found in 1300previous releases if your system is older than this. 1301 1302Copyright information: 1303 1304Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 1305 1306Redistribution, publication, translation and use, with or without 1307modification, in full or in part, in any form or format of this 1308document are permitted without further permission from the author. 1309 1310THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1311IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1312WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1313DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1314INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1315(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1316SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1317HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1318STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1319IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1320POSSIBILITY OF SUCH DAMAGE. 1321 1322If you find this document useful, and you want to, you may buy the 1323author a beer. 1324 1325Contact Warner Losh if you have any questions about your use of 1326this document. 1327 1328$FreeBSD: head/UPDATING 189602 2009-03-09 22:43:00Z thompsa $ 1329