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