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