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