UPDATING revision 191117
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 2520090415: 26 Add an llentry to struct route and struct route_in6. Modules 27 embedding a struct route will need to be recompiled. 28 Bump __FreeBSD_version to 800079. 29 3020090414: 31 The size of rt_metrics_lite and by extension rtentry has changed. 32 Networking administration apps will need to be recompiled. 33 The route command now supports show as an alias for get, weighting 34 of routes, sticky and nostick flags to alter the behavior of stateful 35 load balancing. 36 Bump __FreeBSD_version to 800078. 3720090408: 38 Do not use Giant for kbdmux(4) locking. This is wrong and 39 apparently causing more problems than it solves. This will 40 re-open the issue where interrupt handlers may race with 41 kbdmux(4) in polling mode. Typical symptoms include (but 42 not limited to) duplicated and/or missing characters when 43 low level console functions (such as gets) are used while 44 interrupts are enabled (for example geli password prompt, 45 mountroot prompt etc.). Disabling kbdmux(4) may help. 46 4720090407: 48 The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; 49 kernel modules referencing any of the above need to be recompiled. 50 Bump __FreeBSD_version to 800075. 51 5220090320: 53 GEOM_PART has become the default partition slicer for storage devices, 54 replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It 55 introduces some changes: 56 57 MSDOS/EBR: the devices created from MSDOS extended partition entries 58 (EBR) can be named differently than with GEOM_MBR and are now symlinks 59 to devices with offset-based names. fstabs may need to be modified. 60 61 BSD: the "geometry does not match label" warning is harmless in most 62 cases but it points to problems in file system misalignment with 63 disk geometry. The "c" partition is now implicit, covers the whole 64 top-level drive and cannot be (mis)used by users. 65 66 General: Kernel dumps are now not allowed to be written to devices 67 whose partition types indicate they are meant to be used for file 68 systems (or, in case of MSDOS partitions, as something else than 69 the "386BSD" type). 70 71 Most of these changes date approximately from 200812. 72 7320090319: 74 The uscanner(4) driver has been removed from the kernel. This follows 75 Linux removing theirs in 2.6 and making libusb the default interface 76 (supported by sane). 77 7820090319: 79 The multicast forwarding code has been cleaned up. netstat(1) 80 only relies on KVM now for printing bandwidth upcall meters. 81 The IPv4 and IPv6 modules are split into ip_mroute_mod and 82 ip6_mroute_mod respectively. The config(5) options for statically 83 compiling this code remain the same, i.e. 'options MROUTING'. 84 8520090315: 86 Support for the IFF_NEEDSGIANT network interface flag has been 87 removed, which means that non-MPSAFE network device drivers are no 88 longer supported. In particular, if_ar, if_sr, and network device 89 drivers from the old (legacy) USB stack can no longer be built or 90 used. 91 9220090313: 93 POSIX.1 Native Language Support (NLS) has been enabled in libc and 94 a bunch of new language catalog files have also been added. 95 This means that some common libc messages are now localized and 96 they depend on the LC_MESSAGES environmental variable. 97 9820090313: 99 The k8temp(4) driver has been renamed to amdtemp(4) since 100 support for K10 and K11 CPU families was added. 101 10220090309: 103 IGMPv3 and Source-Specific Multicast (SSM) have been merged 104 to the IPv4 stack. VIMAGE hooks are in but not yet used. 105 106 For kernel developers, the most important changes are that the 107 ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 108 and this lock has been downgraded to a non-recursive mutex. 109 110 Transport protocols (UDP, Raw IP) are now responsible for filtering 111 inbound multicast traffic according to group membership and source 112 filters. The imo_multicast_filter() KPI exists for this purpose. 113 Transports which do not use multicast (SCTP, TCP) already reject 114 multicast by default. Forwarding and receive performance may improve 115 as a mutex acquisition is no longer needed in the ip_input() 116 low-level input path. in_addmulti() and in_delmulti() are shimmed 117 to new KPIs which exist to support SSM in-kernel. 118 119 For application developers, it is recommended that loopback of 120 multicast datagrams be disabled for best performance, as this 121 will still cause the lock to be taken for each looped-back 122 datagram transmission. The net.inet.ip.mcast.loop sysctl may 123 be tuned to 0 to disable loopback by default; it defaults to 1 124 to preserve the existing behaviour. 125 126 For systems administrators, to obtain best performance with 127 multicast reception and multiple groups, it is always recommended 128 that a card with a suitably precise hash filter is used. Hash 129 collisions will still result in the lock being taken within the 130 transport protocol input path to check group membership. 131 132 If deploying FreeBSD in an environment with IGMP snooping switches, 133 it is recommended that the net.inet.igmp.sendlocal sysctl remain 134 enabled; this forces 224.0.0.0/24 group membership to be announced 135 via IGMP. 136 137 The size of 'struct igmpstat' has changed; netstat needs to be 138 recompiled to reflect this. 139 Bump __FreeBSD_version to 800070. 140 14120090309: 142 libusb20.so.1 is now installed as libusb.so.1 and the ports system 143 updated to use it. This requires a buildworld/installworld in order to 144 update the library and dependencies (usbconfig, etc). Its advisable to 145 rebuild all ports which uses libusb. More specific directions are given 146 in the ports collection UPDATING file. Any /etc/libmap.conf entries for 147 libusb are no longer required and can be removed. 148 14920090302: 150 A workaround is committed to allow the creation of System V shared 151 memory segment of size > 2 GB on the 64-bit architectures. 152 Due to a limitation of the existing ABI, the shm_segsz member 153 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 154 wrong for large segments. Note that limits must be explicitely 155 raised to allow such segments to be created. 156 15720090301: 158 The layout of struct ifnet has changed, requiring a rebuild of all 159 network device driver modules. 160 16120090227: 162 The /dev handling for the new USB stack has changed, a 163 buildworld/installworld is required for libusb20. 164 16520090223: 166 The new USB2 stack has now been permanently moved in and all kernel and 167 module names reverted to their previous values (eg, usb, ehci, ohci, 168 ums, ...). The old usb stack can be compiled in by prefixing the name 169 with the letter 'o', the old usb modules have been removed. 170 Updating entry 20090216 for xorg and 20090215 for libmap may still 171 apply. 172 17320090217: 174 The rc.conf(5) option if_up_delay has been renamed to 175 defaultroute_delay to better reflect its purpose. If you have 176 customized this setting in /etc/rc.conf you need to update it to 177 use the new name. 178 17920090216: 180 xorg 7.4 wants to configure its input devices via hald which does not 181 yet work with USB2. If the keyboard/mouse does not work in xorg then 182 add 183 Option "AllowEmptyInput" "off" 184 to your ServerLayout section. This will cause X to use the configured 185 kbd and mouse sections from your xorg.conf. 186 18720090215: 188 The GENERIC kernels for all architectures now default to the new USB2 189 stack. No kernel config options or code have been removed so if a 190 problem arises please report it and optionally revert to the old USB 191 stack. If you are loading USB kernel modules or have a custom kernel 192 that includes GENERIC then ensure that usb names are also changed over, 193 eg uftdi -> usb2_serial_ftdi. 194 195 Older programs linked against the ports libusb 0.1 need to be 196 redirected to the new stack's libusb20. /etc/libmap.conf can 197 be used for this: 198 # Map old usb library to new one for usb2 stack 199 libusb-0.1.so.8 libusb20.so.1 200 20120090203: 202 The ichsmb(4) driver has been changed to require SMBus slave 203 addresses be left-justified (xxxxxxx0b) rather than right-justified. 204 All of the other SMBus controller drivers require left-justified 205 slave addresses, so this change makes all the drivers provide the 206 same interface. 207 20820090201: 209 INET6 statistics (struct ip6stat) was updated. 210 netstat(1) needs to be recompiled. 211 21220090119: 213 NTFS has been removed from GENERIC kernel on amd64 to match 214 GENERIC on i386. Should not cause any issues since mount_ntfs(8) 215 will load ntfs.ko module automatically when NTFS support is 216 actually needed, unless ntfs.ko is not installed or security 217 level prohibits loading kernel modules. If either is the case, 218 "options NTFS" has to be added into kernel config. 219 22020090115: 221 TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 222 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 223 800061. User space tools that rely on the size of struct tcpcb in 224 tcp_var.h (e.g. sockstat) need to be recompiled. 225 22620081225: 227 ng_tty(4) module updated to match the new TTY subsystem. 228 Due to API change, user-level applications must be updated. 229 New API support added to mpd5 CVS and expected to be present 230 in next mpd5.3 release. 231 23220081219: 233 With __FreeBSD_version 800060 the makefs tool is part of 234 the base system (it was a port). 235 23620081216: 237 The afdata and ifnet locks have been changed from mutexes to 238 rwlocks, network modules will need to be re-compiled. 239 24020081214: 241 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 242 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 243 The new code reduced struct rtentry{} by 16 bytes on 32-bit 244 architecture and 40 bytes on 64-bit architecture. The userland 245 applications "arp" and "ndp" have been updated accordingly. 246 The output from "netstat -r" shows only routing entries and 247 none of the L2 information. 248 24920081130: 250 __FreeBSD_version 800057 marks the switchover from the 251 binary ath hal to source code. Users must add the line: 252 253 options AH_SUPPORT_AR5416 254 255 to their kernel config files when specifying: 256 257 device ath_hal 258 259 The ath_hal module no longer exists; the code is now compiled 260 together with the driver in the ath module. It is now 261 possible to tailor chip support (i.e. reduce the set of chips 262 and thereby the code size); consult ath_hal(4) for details. 263 26420081121: 265 __FreeBSD_version 800054 adds memory barriers to 266 <machine/atomic.h>, new interfaces to ifnet to facilitate 267 multiple hardware transmit queues for cards that support 268 them, and a lock-less ring-buffer implementation to 269 enable drivers to more efficiently manage queueing of 270 packets. 271 27220081117: 273 A new version of ZFS (version 13) has been merged to -HEAD. 274 This version has zpool attribute "listsnapshots" off by 275 default, which means "zfs list" does not show snapshots, 276 and is the same as Solaris behavior. 277 27820081028: 279 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 280 28120081009: 282 The uhci, ohci, ehci and slhci USB Host controller drivers have 283 been put into separate modules. If you load the usb module 284 separately through loader.conf you will need to load the 285 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 286 controller add the following to loader.conf: 287 288 uhci_load="YES" 289 ehci_load="YES" 290 29120081009: 292 The ABI used by the PMC toolset has changed. Please keep 293 userland (libpmc(3)) and the kernel module (hwpmc(4)) in 294 sync. 295 29620080820: 297 The TTY subsystem of the kernel has been replaced by a new 298 implementation, which provides better scalability and an 299 improved driver model. Most common drivers have been migrated to 300 the new TTY subsystem, while others have not. The following 301 drivers have not yet been ported to the new TTY layer: 302 303 PCI/ISA: 304 cy, digi, rc, rp, sio 305 306 USB: 307 ubser, ucycom 308 309 Line disciplines: 310 ng_h4, ng_tty, ppp, sl, snp 311 312 Adding these drivers to your kernel configuration file shall 313 cause compilation to fail. 314 31520080818: 316 ntpd has been upgraded to 4.2.4p5. 317 31820080801: 319 OpenSSH has been upgraded to 5.1p1. 320 321 For many years, FreeBSD's version of OpenSSH preferred DSA 322 over RSA for host and user authentication keys. With this 323 upgrade, we've switched to the vendor's default of RSA over 324 DSA. This may cause upgraded clients to warn about unknown 325 host keys even for previously known hosts. Users should 326 follow the usual procedure for verifying host keys before 327 accepting the RSA key. 328 329 This can be circumvented by setting the "HostKeyAlgorithms" 330 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 331 command line. 332 333 Please note that the sequence of keys offered for 334 authentication has been changed as well. You may want to 335 specify IdentityFile in a different order to revert this 336 behavior. 337 33820080713: 339 The sio(4) driver has been removed from the i386 and amd64 340 kernel configuration files. This means uart(4) is now the 341 default serial port driver on those platforms as well. 342 343 To prevent collisions with the sio(4) driver, the uart(4) driver 344 uses different names for its device nodes. This means the 345 onboard serial port will now most likely be called "ttyu0" 346 instead of "ttyd0". You may need to reconfigure applications to 347 use the new device names. 348 349 When using the serial port as a boot console, be sure to update 350 /boot/device.hints and /etc/ttys before booting the new kernel. 351 If you forget to do so, you can still manually specify the hints 352 at the loader prompt: 353 354 set hint.uart.0.at="isa" 355 set hint.uart.0.port="0x3F8" 356 set hint.uart.0.flags="0x10" 357 set hint.uart.0.irq="4" 358 boot -s 359 36020080609: 361 The gpt(8) utility has been removed. Use gpart(8) to partition 362 disks instead. 363 36420080603: 365 The version that Linuxulator emulates was changed from 2.4.2 366 to 2.6.16. If you experience any problems with Linux binaries 367 please try to set sysctl compat.linux.osrelease to 2.4.2 and 368 if it fixes the problem contact emulation mailing list. 369 37020080525: 371 ISDN4BSD (I4B) was removed from the src tree. You may need to 372 update a your kernel configuration and remove relevant entries. 373 37420080509: 375 I have checked in code to support multiple routing tables. 376 See the man pages setfib(1) and setfib(2). 377 This is a hopefully backwards compatible version, 378 but to make use of it you need to compile your kernel 379 with options ROUTETABLES=2 (or more up to 16). 380 38120080420: 382 The 802.11 wireless support was redone to enable multi-bss 383 operation on devices that are capable. The underlying device 384 is no longer used directly but instead wlanX devices are 385 cloned with ifconfig. This requires changes to rc.conf files. 386 For example, change: 387 ifconfig_ath0="WPA DHCP" 388 to 389 wlans_ath0=wlan0 390 ifconfig_wlan0="WPA DHCP" 391 see rc.conf(5) for more details. In addition, mergemaster of 392 /etc/rc.d is highly recommended. Simultaneous update of userland 393 and kernel wouldn't hurt either. 394 395 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 396 modules were merged into the base wlan module. All references 397 to these modules (e.g. in kernel config files) must be removed. 398 39920080408: 400 psm(4) has gained write(2) support in native operation level. 401 Arbitrary commands can be written to /dev/psm%d and status can 402 be read back from it. Therefore, an application is responsible 403 for status validation and error recovery. It is a no-op in 404 other operation levels. 405 40620080312: 407 Support for KSE threading has been removed from the kernel. To 408 run legacy applications linked against KSE libmap.conf may 409 be used. The following libmap.conf may be used to ensure 410 compatibility with any prior release: 411 412 libpthread.so.1 libthr.so.1 413 libpthread.so.2 libthr.so.2 414 libkse.so.3 libthr.so.3 415 41620080301: 417 The layout of struct vmspace has changed. This affects libkvm 418 and any executables that link against libkvm and use the 419 kvm_getprocs() function. In particular, but not exclusively, 420 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 421 The effects are minimal, but it's advisable to upgrade world 422 nonetheless. 423 42420080229: 425 The latest em driver no longer has support in it for the 426 82575 adapter, this is now moved to the igb driver. The 427 split was done to make new features that are incompatible 428 with older hardware easier to do. 429 43020080220: 431 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 432 likewise the kernel option is now GEOM_LINUX_LVM. 433 43420080211: 435 The default NFS mount mode has changed from UDP to TCP for 436 increased reliability. If you rely on (insecurely) NFS 437 mounting across a firewall you may need to update your 438 firewall rules. 439 44020080208: 441 Belatedly note the addition of m_collapse for compacting 442 mbuf chains. 443 44420080126: 445 The fts(3) structures have been changed to use adequate 446 integer types for their members and so to be able to cope 447 with huge file trees. The old fts(3) ABI is preserved 448 through symbol versioning in libc, so third-party binaries 449 using fts(3) should still work, although they will not take 450 advantage of the extended types. At the same time, some 451 third-party software might fail to build after this change 452 due to unportable assumptions made in its source code about 453 fts(3) structure members. Such software should be fixed 454 by its vendor or, in the worst case, in the ports tree. 455 FreeBSD_version 800015 marks this change for the unlikely 456 case that a portable fix is impossible. 457 45820080123: 459 To upgrade to -current after this date, you must be running 460 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 461 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 462 46320071128: 464 The ADAPTIVE_GIANT kernel option has been retired because its 465 functionality is the default now. 466 46720071118: 468 The AT keyboard emulation of sunkbd(4) has been turned on 469 by default. In order to make the special symbols of the Sun 470 keyboards driven by sunkbd(4) work under X these now have 471 to be configured the same way as Sun USB keyboards driven 472 by ukbd(4) (which also does AT keyboard emulation), f.e.: 473 474 Option "XkbLayout" "us" 475 Option "XkbRules" "xorg" 476 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 477 47820071024: 479 It has been decided that it is desirable to provide ABI 480 backwards compatibility to the FreeBSD 4/5/6 versions of the 481 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 482 broken with the introduction of PCI domain support (see the 483 20070930 entry). Unfortunately, this required the ABI of 484 PCIOCGETCONF to be broken again in order to be able to 485 provide backwards compatibility to the old version of that 486 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 487 again. As for prominent ports this affects neither pciutils 488 nor xorg-server this time, the hal port needs to be rebuilt 489 however. 490 49120071020: 492 The misnamed kthread_create() and friends have been renamed 493 to kproc_create() etc. Many of the callers already 494 used kproc_start().. 495 I will return kthread_create() and friends in a while 496 with implementations that actually create threads, not procs. 497 Renaming corresponds with version 800002. 498 49920071010: 500 RELENG_7 branched. 501 50220071009: 503 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 504 WITHOUT_LIBTHR are set. 505 50620070930: 507 The PCI code has been made aware of PCI domains. This means that 508 the location strings as used by pciconf(8) etc are now in the 509 following format: pci<domain>:<bus>:<device>[:<function>]. It 510 also means that consumers of <sys/pciio.h> potentially need to 511 be recompiled; this includes the hal and xorg-server ports. 512 51320070928: 514 The caching daemon (cached) was renamed to nscd. nscd.conf 515 configuration file should be used instead of cached.conf and 516 nscd_enable, nscd_pidfile and nscd_flags options should be used 517 instead of cached_enable, cached_pidfile and cached_flags in 518 rc.conf. 519 52020070921: 521 The getfacl(1) utility now prints owning user and group name 522 instead of owning uid and gid in the three line comment header. 523 This is the same behavior as getfacl(1) on Solaris and Linux. 524 52520070704: 526 The new IPsec code is now compiled in using the IPSEC option. The 527 IPSEC option now requires "device crypto" be defined in your kernel 528 configuration. The FAST_IPSEC kernel option is now deprecated. 529 53020070702: 531 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 532 note the changed syntax - keep state is now on by default. Also 533 note the fact that ftp-proxy(8) has been changed from bottom up and 534 has been moved from libexec to usr/sbin. Changes in the ALTQ 535 handling also affect users of IPFW's ALTQ capabilities. 536 53720070701: 538 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 539 only IPsec supported by FreeBSD. The new IPsec stack 540 supports both IPv4 and IPv6. The kernel option will change 541 after the code changes have settled in. For now the kernel 542 option IPSEC is deprecated and FAST_IPSEC is the only option, that 543 will change after some settling time. 544 54520070701: 546 The wicontrol(8) utility has been removed from the base system. wi(4) 547 cards should be configured using ifconfig(8), see the man page for more 548 information. 549 55020070612: 551 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 552 instead of the nve(4) driver. Please update your configuration 553 accordingly. 554 55520070612: 556 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 557 database if it is missing or older than the aliases file. If 558 desired, set the new rc.conf option sendmail_rebuild_aliases 559 to "YES" to restore that functionality. 560 56120070612: 562 The IPv4 multicast socket code has been considerably modified, and 563 moved to the file sys/netinet/in_mcast.c. Initial support for the 564 RFC 3678 Source-Specific Multicast Socket API has been added to 565 the IPv4 network stack. 566 567 Strict multicast and broadcast reception is now the default for 568 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 569 has now been removed. 570 571 The RFC 1724 hack for interface selection has been removed; the use 572 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 573 been added to replace it. Consumers such as routed will soon be 574 updated to reflect this. 575 576 These changes affect users who are running routed(8) or rdisc(8) 577 from the FreeBSD base system on point-to-point or unnumbered 578 interfaces. 579 58020070610: 581 The net80211 layer has changed significantly and all wireless 582 drivers that depend on it need to be recompiled. Further these 583 changes require that any program that interacts with the wireless 584 support in the kernel be recompiled; this includes: ifconfig, 585 wpa_supplicant, hostapd, and wlanstats. Users must also, for 586 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 587 if they use modules for wireless support. These modules implement 588 scanning support for station and ap modes, respectively. Failure 589 to load the appropriate module before marking a wireless interface 590 up will result in a message to the console and the device not 591 operating properly. 592 59320070610: 594 The pam_nologin(8) module ceases to provide an authentication 595 function and starts providing an account management function. 596 Consequent changes to /etc/pam.d should be brought in using 597 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 598 need manual editing as follows. Locate this line (or similar): 599 600 auth required pam_nologin.so no_warn 601 602 and change it according to this example: 603 604 account required pam_nologin.so no_warn 605 606 That is, the first word needs to be changed from "auth" to 607 "account". The new line can be moved to the account section 608 within the file for clarity. Not updating pam.conf(5) files 609 will result in nologin(5) ignored by the respective services. 610 61120070529: 612 The ether_ioctl() function has been synchronized with ioctl(2) 613 and ifnet.if_ioctl. Due to that, the size of one of its arguments 614 has changed on 64-bit architectures. All kernel modules using 615 ether_ioctl() need to be rebuilt on such architectures. 616 61720070516: 618 Improved INCLUDE_CONFIG_FILE support has been introduced to the 619 config(8) utility. In order to take advantage of this new 620 functionality, you are expected to recompile and install 621 src/usr.sbin/config. If you don't rebuild config(8), and your 622 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 623 build will be broken because of a missing "kernconfstring" 624 symbol. 625 62620070513: 627 Symbol versioning is enabled by default. To disable it, use 628 option WITHOUT_SYMVER. It is not advisable to attempt to 629 disable symbol versioning once it is enabled; your installworld 630 will break because a symbol version-less libc will get installed 631 before the install tools. As a result, the old install tools, 632 which previously had symbol dependencies to FBSD_1.0, will fail 633 because the freshly installed libc will not have them. 634 635 The default threading library (providing "libpthread") has been 636 changed to libthr. If you wish to have libkse as your default, 637 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 638 63920070423: 640 The ABI breakage in sendmail(8)'s libmilter has been repaired 641 so it is no longer necessary to recompile mail filters (aka, 642 milters). If you recompiled mail filters after the 20070408 643 note, it is not necessary to recompile them again. 644 64520070417: 646 The new trunk(4) driver has been renamed to lagg(4) as it better 647 reflects its purpose. ifconfig will need to be recompiled. 648 64920070408: 650 sendmail(8) has been updated to version 8.14.1. Mail filters 651 (aka, milters) compiled against the libmilter included in the 652 base operating system should be recompiled. 653 65420070302: 655 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 656 In order to use them one must agree to the respective LICENSE in 657 share/doc/legal and define legal.intel_<name>.license_ack=1 via 658 loader.conf(5) or kenv(1). Make sure to deinstall the now 659 deprecated modules from the respective firmware ports. 660 66120070228: 662 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 663 were removed from FreeBSD's libc. These originally came from INRIA 664 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 665 deprecated in previous releases. 666 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 667 replace it as a more portable (and re-entrant) API. 668 66920070224: 670 To support interrupt filtering a modification to the newbus API 671 has occurred, ABI was broken and __FreeBSD_version was bumped 672 to 700031. Please make sure that your kernel and modules are in 673 sync. For more info: 674 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 675 67620070224: 677 The IPv6 multicast forwarding code may now be loaded into GENERIC 678 kernels by loading the ip_mroute.ko module. This is built into the 679 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 680 set; see src.conf(5) for more information. 681 68220070214: 683 The output of netstat -r has changed. Without -n, we now only 684 print a "network name" without the prefix length if the network 685 address and mask exactly match a Class A/B/C network, and an entry 686 exists in the nsswitch "networks" map. 687 With -n, we print the full unabbreviated CIDR network prefix in 688 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 689 This change is in preparation for changes such as equal-cost 690 multipath, and to more generally assist operational deployment 691 of FreeBSD as a modern IPv4 router. 692 69320070210: 694 PIM has been turned on by default in the IPv4 multicast 695 routing code. The kernel option 'PIM' has now been removed. 696 PIM is now built by default if option 'MROUTING' is specified. 697 It may now be loaded into GENERIC kernels by loading the 698 ip_mroute.ko module. 699 70020070207: 701 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 702 has been removed. Its functionality may be achieved by explicitly 703 configuring gif(4) interfaces and using the 'phyint' keyword in 704 mrouted.conf. 705 XORP does not support source-routed IPv4 multicast tunnels nor the 706 integrated IPIP tunneling, therefore it is not affected by this 707 change. The __FreeBSD_version macro has been bumped to 700030. 708 70920061221: 710 Support for PCI Message Signalled Interrupts has been 711 re-enabled in the bge driver, only for those chips which are 712 believed to support it properly. If there are any problems, 713 MSI can be disabled completely by setting the 714 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 715 in the loader. 716 71720061214: 718 Support for PCI Message Signalled Interrupts has been 719 disabled again in the bge driver. Many revisions of the 720 hardware fail to support it properly. Support can be 721 re-enabled by removing the #define of BGE_DISABLE_MSI in 722 "src/sys/dev/bge/if_bge.c". 723 72420061214: 725 Support for PCI Message Signalled Interrupts has been added 726 to the bge driver. If there are any problems, MSI can be 727 disabled completely by setting the 'hw.pci.enable_msi' and 728 'hw.pci.enable_msix' tunables to 0 in the loader. 729 73020061205: 731 The removal of several facets of the experimental Threading 732 system from the kernel means that the proc and thread structures 733 have changed quite a bit. I suggest all kernel modules that might 734 reference these structures be recompiled.. Especially the 735 linux module. 736 73720061126: 738 Sound infrastructure has been updated with various fixes and 739 improvements. Most of the changes are pretty much transparent, 740 with exceptions of followings: 741 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 742 moved to their own dev sysctl nodes, for example: 743 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 744 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 745 own chardev in the form of "dsp%d.<function>%d", where <function> 746 is p = playback, r = record and v = virtual, respectively. Users 747 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 748 This does not affect those who are using "/dev/dsp". 749 75020061122: 751 geom(4)'s gmirror(8) class metadata structure has been 752 rev'd from v3 to v4. If you update across this point and 753 your metadata is converted for you, you will not be easily 754 able to downgrade since the /boot/kernel.old/geom_mirror.ko 755 kernel module will be unable to read the v4 metadata. You 756 can resolve this by doing from the loader(8) prompt: 757 758 set vfs.root.mountfrom="ufs:/dev/XXX" 759 760 where XXX is the root slice of one of the disks that composed 761 the mirror (i.e.: /dev/ad0s1a). You can then rebuild 762 the array the same way you built it originally. 763 76420061122: 765 The following binaries have been disconnected from the build: 766 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 767 and mount_std. The functionality of these programs has been 768 moved into the mount program. For example, to mount a devfs 769 filesystem, instead of using mount_devfs, use: "mount -t devfs". 770 This does not affect entries in /etc/fstab, since entries in 771 /etc/fstab are always processed with "mount -t fstype". 772 77320061113: 774 Support for PCI Message Signalled Interrupts on i386 and amd64 775 has been added to the kernel and various drivers will soon be 776 updated to use MSI when it is available. If there are any problems, 777 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 778 and 'hw.pci.enable_msix' tunables to 0 in the loader. 779 78020061110: 781 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 782 The lockmgr object layout has been changed as a result of having 783 a lock_object embedded in it. As a consequence all file system 784 kernel modules must be re-compiled. The mutex profiling man page 785 has not yet been updated to reflect this change. 786 78720061026: 788 KSE in the kernel has now been made optional and turned on by 789 default. Use 'nooption KSE' in your kernel config to turn it 790 off. All kernel modules *must* be recompiled after this change. 791 There-after, modules from a KSE kernel should be compatible with 792 modules from a NOKSE kernel due to the temporary padding fields 793 added to 'struct proc'. 794 79520060929: 796 mrouted and its utilities have been removed from the base system. 797 79820060927: 799 Some ioctl(2) command codes have changed. Full backward ABI 800 compatibility is provided if the "options COMPAT_FREEBSD6" is 801 present in the kernel configuration file. Make sure to add 802 this option to your kernel config file, or recompile X.Org 803 and the rest of ports; otherwise they may refuse to work. 804 80520060924: 806 tcpslice has been removed from the base system. 807 80820060913: 809 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 810 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 811 systat needs to be rebuilt. 812 81320060903: 814 libpcap updated to v0.9.4 and tcpdump to v3.9.4 815 81620060816: 817 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 818 for IPFIREWALL_FORWARD is now as it was before when it was first 819 committed and for years after. The behaviour is now ON. 820 82120060725: 822 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 823 Now it can decrypt files created from different architectures. 824 Unfortunately, it is no longer able to decrypt a cipher text 825 generated with an older version on 64 bit architectures. 826 If you have such a file, you need old utility to decrypt it. 827 82820060709: 829 The interface version of the i4b kernel part has changed. So 830 after updating the kernel sources and compiling a new kernel, 831 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 832 be rebuilt, and vice versa. 833 83420060627: 835 The XBOX kernel now defaults to the nfe(4) driver instead of 836 the nve(4) driver. Please update your configuration 837 accordingly. 838 83920060514: 840 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 841 PCnet family of NICs has been removed. The new le(4) driver serves 842 as an equivalent but cross-platform replacement with the pcn(4) 843 driver still providing performance-optimized support for the subset 844 of AMD Am79C971 PCnet-FAST and greater chips as before. 845 84620060511: 847 The machdep.* sysctls and the adjkerntz utility have been 848 modified a bit. The new adjkerntz utility uses the new 849 sysctl names and sysctlbyname() calls, so it may be impossible 850 to run an old /sbin/adjkerntz utility in single-user mode 851 with a new kernel. Replace the `adjkerntz -i' step before 852 `make installworld' with: 853 854 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 855 856 and proceed as usual with the rest of the installworld-stage 857 steps. Otherwise, you risk installing binaries with their 858 timestamp set several hours in the future, especially if 859 you are running with local time set to GMT+X hours. 860 86120060412: 862 The ip6fw utility has been removed. The behavior provided by 863 ip6fw has been in ipfw2 for a good while and the rc.d scripts 864 have been updated to deal with it. There are some rules that 865 might not migrate cleanly. Use rc.firewall6 as a template to 866 rewrite rules. 867 86820060428: 869 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 870 attachments have been removed. Make sure to configure scc(4) 871 on sparc64. Note also that by default puc(4) will use uart(4) 872 and not sio(4) for serial ports because interrupt handling has 873 been optimized for multi-port serial cards and only uart(4) 874 implements the interface to support it. 875 87620060330: 877 The scc(4) driver replaces puc(4) for Serial Communications 878 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 879 Z8530. On sparc64, it is advised to add scc(4) to the kernel 880 configuration to make sure that the serial ports remain 881 functional. 882 88320060317: 884 Most world/kernel related NO_* build options changed names. 885 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 886 after FreeBSD ports) and should be set in /etc/src.conf 887 (the src.conf(5) manpage is provided). Full backwards 888 compatibility is maintained for the time being though it's 889 highly recommended to start moving old options out of the 890 system-wide /etc/make.conf file into the new /etc/src.conf 891 while also properly renaming them. More conversions will 892 likely follow. Posting to current@: 893 894 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 895 89620060305: 897 The NETSMBCRYPTO kernel option has been retired because its 898 functionality is always included in NETSMB and smbfs.ko now. 899 90020060303: 901 The TDFX_LINUX kernel option was retired and replaced by the 902 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 903 kernel module. Loading it alone should suffice to get 3dfx support 904 for Linux apps because it will pull in 3dfx.ko and linux.ko through 905 its dependencies. 906 90720060204: 908 The 'audit' group was added to support the new auditing functionality 909 in the base system. Be sure to follow the directions for updating, 910 including the requirement to run mergemaster -p. 911 91220060201: 913 The kernel ABI to file system modules was changed on i386. 914 Please make sure that your kernel and modules are in sync. 915 91620060118: 917 This actually occured some time ago, but installing the kernel 918 now also installs a bunch of symbol files for the kernel modules. 919 This increases the size of /boot/kernel to about 67Mbytes. You 920 will need twice this if you will eventually back this up to kernel.old 921 on your next install. 922 If you have a shortage of room in your root partition, you should add 923 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 924 to your /etc/make.conf. 925 92620060113: 927 libc's malloc implementation has been replaced. This change has the 928 potential to uncover application bugs that previously went unnoticed. 929 See the malloc(3) manual page for more details. 930 93120060112: 932 The generic netgraph(4) cookie has been changed. If you upgrade 933 kernel passing this point, you also need to upgrade userland 934 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 935 93620060106: 937 si(4)'s device files now contain the unit number. 938 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 939 94020060106: 941 The kernel ABI was mostly destroyed due to a change in the size 942 of struct lock_object which is nested in other structures such 943 as mutexes which are nested in all sorts of other structures. 944 Make sure your kernel and modules are in sync. 945 94620051231: 947 The page coloring algorithm in the VM subsystem was converted 948 from tuning with kernel options to autotuning. Please remove 949 any PQ_* option except PQ_NOOPT from your kernel config. 950 95120051211: 952 The net80211-related tools in the tools/tools/ath directory 953 have been moved to tools/tools/net80211 and renamed with a 954 "wlan" prefix. Scripts that use them should be adjusted 955 accordingly. 956 95720051202: 958 Scripts in the local_startup directories (as defined in 959 /etc/defaults/rc.conf) that have the new rc.d semantics will 960 now be run as part of the base system rcorder. If there are 961 errors or problems with one of these local scripts, it could 962 cause boot problems. If you encounter such problems, boot in 963 single user mode, remove that script from the */rc.d directory. 964 Please report the problem to the port's maintainer, and the 965 freebsd-ports@freebsd.org mailing list. 966 96720051129: 968 The nodev mount option was deprecated in RELENG_6 (where it 969 was a no-op), and is now unsupported. If you have nodev or dev listed 970 in /etc/fstab, remove it, otherwise it will result in a mount error. 971 97220051129: 973 ABI between ipfw(4) and ipfw(8) has been changed. You need 974 to rebuild ipfw(8) when rebuilding kernel. 975 97620051108: 977 rp(4)'s device files now contain the unit number. 978 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 979 98020051029: 981 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 982 Its /etc/rc.conf.d configuration file has been `ppp' from 983 the beginning, and hence there is no need to touch it. 984 98520051014: 986 Now most modules get their build-time options from the kernel 987 configuration file. A few modules still have fixed options 988 due to their non-conformant implementation, but they will be 989 corrected eventually. You may need to review the options of 990 the modules in use, explicitly specify the non-default options 991 in the kernel configuration file, and rebuild the kernel and 992 modules afterwards. 993 99420051001: 995 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 996 to turn polling(4) on your interfaces. 997 99820050927: 999 The old bridge(4) implementation was retired. The new 1000 if_bridge(4) serves as a full functional replacement. 1001 100220050722: 1003 The ai_addrlen of a struct addrinfo was changed to a socklen_t 1004 to conform to POSIX-2001. This change broke an ABI 1005 compatibility on 64 bit architecture. You have to recompile 1006 userland programs that use getaddrinfo(3) on 64 bit 1007 architecture. 1008 100920050711: 1010 RELENG_6 branched here. 1011 101220050629: 1013 The pccard_ifconfig rc.conf variable has been removed and a new 1014 variable, ifconfig_DEFAULT has been introduced. Unlike 1015 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 1016 do not have ifconfig_ifn entries rather than just those in 1017 removable_interfaces. 1018 101920050616: 1020 Some previous versions of PAM have permitted the use of 1021 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 1022 to third party PAM modules in /usr/local/lib. A change has been 1023 made to require the use of absolute paths in order to avoid 1024 ambiguity and dependence on library path configuration, which may 1025 affect existing configurations. 1026 102720050610: 1028 Major changes to network interface API. All drivers must be 1029 recompiled. Drivers not in the base system will need to be 1030 updated to the new APIs. 1031 103220050609: 1033 Changes were made to kinfo_proc in sys/user.h. Please recompile 1034 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 1035 will not behave correctly. 1036 1037 The API and ABI for hwpmc(4) have changed with the addition 1038 of sampling support. Please recompile lib/libpmc(3) and 1039 usr.sbin/{pmcstat,pmccontrol}. 1040 104120050606: 1042 The OpenBSD dhclient was imported in place of the ISC dhclient 1043 and the network interface configuration scripts were updated 1044 accordingly. If you use DHCP to configure your interfaces, you 1045 must now run devd. Also, DNS updating was lost so you will need 1046 to find a workaround if you use this feature. 1047 1048 The '_dhcp' user was added to support the OpenBSD dhclient. Be 1049 sure to run mergemaster -p (like you are supposed to do every time 1050 anyway). 1051 105220050605: 1053 if_bridge was added to the tree. This has changed struct ifnet. 1054 Please recompile userland and all network related modules. 1055 105620050603: 1057 The n_net of a struct netent was changed to an uint32_t, and 1058 1st argument of getnetbyaddr() was changed to an uint32_t, to 1059 conform to POSIX-2001. These changes broke an ABI 1060 compatibility on 64 bit architecture. With these changes, 1061 shlib major of libpcap was bumped. You have to recompile 1062 userland programs that use getnetbyaddr(3), getnetbyname(3), 1063 getnetent(3) and/or libpcap on 64 bit architecture. 1064 106520050528: 1066 Kernel parsing of extra options on '#!' first lines of shell 1067 scripts has changed. Lines with multiple options likely will 1068 fail after this date. For full details, please see 1069 http://people.freebsd.org/~gad/Updating-20050528.txt 1070 107120050503: 1072 The packet filter (pf) code has been updated to OpenBSD 3.7 1073 Please note the changed anchor syntax and the fact that 1074 authpf(8) now needs a mounted fdescfs(5) to function. 1075 107620050415: 1077 The NO_MIXED_MODE kernel option has been removed from the i386 1078 amd64 platforms as its use has been superceded by the new local 1079 APIC timer code. Any kernel config files containing this option 1080 should be updated. 1081 108220050227: 1083 The on-disk format of LC_CTYPE files was changed to be machine 1084 independent. Please make sure NOT to use NO_CLEAN buildworld 1085 when crossing this point. Crossing this point also requires 1086 recompile or reinstall of all locale depended packages. 1087 108820050225: 1089 The ifi_epoch member of struct if_data has been changed to 1090 contain the uptime at which the interface was created or the 1091 statistics zeroed rather then the wall clock time because 1092 wallclock time may go backwards. This should have no impact 1093 unless an snmp implementation is using this value (I know of 1094 none at this point.) 1095 109620050224: 1097 The acpi_perf and acpi_throttle drivers are now part of the 1098 acpi(4) main module. They are no longer built separately. 1099 110020050223: 1101 The layout of struct image_params has changed. You have to 1102 recompile all compatibility modules (linux, svr4, etc) for use 1103 with the new kernel. 1104 110520050223: 1106 The p4tcc driver has been merged into cpufreq(4). This makes 1107 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 1108 compile in "device cpufreq" to restore this functionality. 1109 111020050220: 1111 The responsibility of recomputing the file system summary of 1112 a SoftUpdates-enabled dirty volume has been transferred to the 1113 background fsck. A rebuild of fsck(8) utility is recommended 1114 if you have updated the kernel. 1115 1116 To get the old behavior (recompute file system summary at mount 1117 time), you can set vfs.ffs.compute_summary_at_mount=1 before 1118 mounting the new volume. 1119 112020050206: 1121 The cpufreq import is complete. As part of this, the sysctls for 1122 acpi(4) throttling have been removed. The power_profile script 1123 has been updated, so you can use performance/economy_cpu_freq in 1124 rc.conf(5) to set AC on/offline cpu frequencies. 1125 112620050206: 1127 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 1128 requires recompiling libnetgraph and userland netgraph utilities. 1129 113020050114: 1131 Support for abbreviated forms of a number of ipfw options is 1132 now deprecated. Warnings are printed to stderr indicating the 1133 correct full form when a match occurs. Some abbreviations may 1134 be supported at a later date based on user feedback. To be 1135 considered for support, abbreviations must be in use prior to 1136 this commit and unlikely to be confused with current key words. 1137 113820041221: 1139 By a popular demand, a lot of NOFOO options were renamed 1140 to NO_FOO (see bsd.compat.mk for a full list). The old 1141 spellings are still supported, but will cause annoying 1142 warnings on stderr. Make sure you upgrade properly (see 1143 the COMMON ITEMS: section later in this file). 1144 114520041219: 1146 Auto-loading of ancillary wlan modules such as wlan_wep has 1147 been temporarily disabled; you need to statically configure 1148 the modules you need into your kernel or explicitly load them 1149 prior to use. Specifically, if you intend to use WEP encryption 1150 with an 802.11 device load/configure wlan_wep; if you want to 1151 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 1152 and wlan_xauth as required. 1153 115420041213: 1155 The behaviour of ppp(8) has changed slightly. If lqr is enabled 1156 (``enable lqr''), older versions would revert to LCP ECHO mode on 1157 negotiation failure. Now, ``enable echo'' is required for this 1158 behaviour. The ppp version number has been bumped to 3.4.2 to 1159 reflect the change. 1160 116120041201: 1162 The wlan support has been updated to split the crypto support 1163 into separate modules. For static WEP you must configure the 1164 wlan_wep module in your system or build and install the module 1165 in place where it can be loaded (the kernel will auto-load 1166 the module when a wep key is configured). 1167 116820041201: 1169 The ath driver has been updated to split the tx rate control 1170 algorithm into a separate module. You need to include either 1171 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 1172 117320041116: 1174 Support for systems with an 80386 CPU has been removed. Please 1175 use FreeBSD 5.x or earlier on systems with an 80386. 1176 117720041110: 1178 We have had a hack which would mount the root filesystem 1179 R/W if the device were named 'md*'. As part of the vnode 1180 work I'm doing I have had to remove this hack. People 1181 building systems which use preloaded MD root filesystems 1182 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 1183 their /etc/rc scripts. 1184 118520041104: 1186 FreeBSD 5.3 shipped here. 1187 118820041102: 1189 The size of struct tcpcb has changed again due to the removal 1190 of RFC1644 T/TCP. You have to recompile userland programs that 1191 read kmem for tcp sockets directly (netstat, sockstat, etc.) 1192 119320041022: 1194 The size of struct tcpcb has changed. You have to recompile 1195 userland programs that read kmem for tcp sockets directly 1196 (netstat, sockstat, etc.) 1197 119820041016: 1199 RELENG_5 branched here. For older entries, please see updating 1200 in the RELENG_5 branch. 1201 1202COMMON ITEMS: 1203 1204 General Notes 1205 ------------- 1206 Avoid using make -j when upgrading. From time to time in the 1207 past there have been problems using -j with buildworld and/or 1208 installworld. This is especially true when upgrading between 1209 "distant" versions (eg one that cross a major release boundary 1210 or several minor releases, or when several months have passed 1211 on the -current branch). 1212 1213 Sometimes, obscure build problems are the result of environment 1214 poisoning. This can happen because the make utility reads its 1215 environment when searching for values for global variables. 1216 To run your build attempts in an "environmental clean room", 1217 prefix all make commands with 'env -i '. See the env(1) manual 1218 page for more details. 1219 1220 When upgrading from one major version to another it is generally 1221 best to upgrade to the latest code in the currently installed branch 1222 first, then do an upgrade to the new branch. This is the best-tested 1223 upgrade path, and has the highest probability of being successful. 1224 Please try this approach before reporting problems with a major 1225 version upgrade. 1226 1227 To build a kernel 1228 ----------------- 1229 If you are updating from a prior version of FreeBSD (even one just 1230 a few days old), you should follow this procedure. It is the most 1231 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1232 1233 make kernel-toolchain 1234 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1235 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1236 1237 To test a kernel once 1238 --------------------- 1239 If you just want to boot a kernel once (because you are not sure 1240 if it works, or if you want to boot a known bad kernel to provide 1241 debugging information) run 1242 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1243 nextboot -k testkernel 1244 1245 To just build a kernel when you know that it won't mess you up 1246 -------------------------------------------------------------- 1247 This assumes you are already running a 5.X system. Replace 1248 ${arch} with the architecture of your machine (e.g. "i386", 1249 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 1250 1251 cd src/sys/${arch}/conf 1252 config KERNEL_NAME_HERE 1253 cd ../compile/KERNEL_NAME_HERE 1254 make depend 1255 make 1256 make install 1257 1258 If this fails, go to the "To build a kernel" section. 1259 1260 To rebuild everything and install it on the current system. 1261 ----------------------------------------------------------- 1262 # Note: sometimes if you are running current you gotta do more than 1263 # is listed here if you are upgrading from a really old current. 1264 1265 <make sure you have good level 0 dumps> 1266 make buildworld 1267 make kernel KERNCONF=YOUR_KERNEL_HERE 1268 [1] 1269 <reboot in single user> [3] 1270 mergemaster -p [5] 1271 make installworld 1272 make delete-old 1273 mergemaster [4] 1274 <reboot> 1275 1276 1277 To cross-install current onto a separate partition 1278 -------------------------------------------------- 1279 # In this approach we use a separate partition to hold 1280 # current's root, 'usr', and 'var' directories. A partition 1281 # holding "/", "/usr" and "/var" should be about 2GB in 1282 # size. 1283 1284 <make sure you have good level 0 dumps> 1285 <boot into -stable> 1286 make buildworld 1287 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1288 <maybe newfs current's root partition> 1289 <mount current's root partition on directory ${CURRENT_ROOT}> 1290 make installworld DESTDIR=${CURRENT_ROOT} 1291 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1292 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1293 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1294 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1295 <reboot into current> 1296 <do a "native" rebuild/install as described in the previous section> 1297 <maybe install compatibility libraries from ports/misc/compat*> 1298 <reboot> 1299 1300 1301 To upgrade in-place from 5.x-stable to current 1302 ---------------------------------------------- 1303 <make sure you have good level 0 dumps> 1304 make buildworld [9] 1305 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1306 [1] 1307 <reboot in single user> [3] 1308 mergemaster -p [5] 1309 make installworld 1310 make delete-old 1311 mergemaster -i [4] 1312 <reboot> 1313 1314 Make sure that you've read the UPDATING file to understand the 1315 tweaks to various things you need. At this point in the life 1316 cycle of current, things change often and you are on your own 1317 to cope. The defaults can also change, so please read ALL of 1318 the UPDATING entries. 1319 1320 Also, if you are tracking -current, you must be subscribed to 1321 freebsd-current@freebsd.org. Make sure that before you update 1322 your sources that you have read and understood all the recent 1323 messages there. If in doubt, please track -stable which has 1324 much fewer pitfalls. 1325 1326 [1] If you have third party modules, such as vmware, you 1327 should disable them at this point so they don't crash your 1328 system on reboot. 1329 1330 [3] From the bootblocks, boot -s, and then do 1331 fsck -p 1332 mount -u / 1333 mount -a 1334 cd src 1335 adjkerntz -i # if CMOS is wall time 1336 Also, when doing a major release upgrade, it is required that 1337 you boot into single user mode to do the installworld. 1338 1339 [4] Note: This step is non-optional. Failure to do this step 1340 can result in a significant reduction in the functionality of the 1341 system. Attempting to do it by hand is not recommended and those 1342 that pursue this avenue should read this file carefully, as well 1343 as the archives of freebsd-current and freebsd-hackers mailing lists 1344 for potential gotchas. 1345 1346 [5] Usually this step is a noop. However, from time to time 1347 you may need to do this if you get unknown user in the following 1348 step. It never hurts to do it all the time. You may need to 1349 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1350 install) after the buildworld before this step if you last updated 1351 from current before 20020224 or from -stable before 20020408. 1352 1353 [8] In order to have a kernel that can run the 4.x binaries 1354 needed to do an installworld, you must include the COMPAT_FREEBSD4 1355 option in your kernel. Failure to do so may leave you with a system 1356 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 1357 is required to run the 5.x binaries on more recent kernels. 1358 1359 Make sure that you merge any new devices from GENERIC since the 1360 last time you updated your kernel config file. 1361 1362 [9] When checking out sources, you must include the -P flag to have 1363 cvs prune empty directories. 1364 1365 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1366 "?=" instead of the "=" assignment operator, so that buildworld can 1367 override the CPUTYPE if it needs to. 1368 1369 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1370 not on the command line, or in /etc/make.conf. buildworld will 1371 warn if it is improperly defined. 1372FORMAT: 1373 1374This file contains a list, in reverse chronological order, of major 1375breakages in tracking -current. Not all things will be listed here, 1376and it only starts on October 16, 2004. Updating files can found in 1377previous releases if your system is older than this. 1378 1379Copyright information: 1380 1381Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 1382 1383Redistribution, publication, translation and use, with or without 1384modification, in full or in part, in any form or format of this 1385document are permitted without further permission from the author. 1386 1387THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1388IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1389WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1390DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1391INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1392(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1393SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1394HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1395STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1396IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1397POSSIBILITY OF SUCH DAMAGE. 1398 1399If you find this document useful, and you want to, you may buy the 1400author a beer. 1401 1402Contact Warner Losh if you have any questions about your use of 1403this document. 1404 1405$FreeBSD: head/UPDATING 191117 2009-04-15 20:34:19Z kmacy $ 1406