1# Updating Information for DragonFly users. 2# 3# 4# This file should warn you of any pitfalls which you might need to work around 5# when trying to update your DragonFly system. The information below is 6# in reverse-time order, with the latest information at the top. 7# 8# If you discover any problem, please contact the bugs@lists.dragonflybsd.org 9# mailing list with the details. 10 11+-----------------------------------------------------------------------+ 12+ UPGRADING DRAGONFLY FROM 4.0 TO LATER VERSIONS + 13+-----------------------------------------------------------------------+ 14 15OLD USB DRIVERS REMOVED 16----------------------- 17 18The old USB stack, along with the kernel config option "device oldusb" 19and the make.conf variable "WANT_OLDUSB" have been removed. This means 20that for custom kernel configuration files which were derived from a 21GENERIC or X86_64_GENERIC file prior to making the usb4bsd stack default, 22various (old USB stack specific) devices will now complain about being 23unknown: 24 25 * oldusb (obviously) 26 * natausb (not yet ported to usb4bsd) 27 * rue (not yet ported to usb4bsd) 28 * ugen (no longer needed in usb4bsd) 29 * urio (not yet ported to usb4bsd) 30 * uscanner (no longer needed in usb4bsd) 31 32They should be removed or commented out in such custom kernel configs. 33 34+-----------------------------------------------------------------------+ 35+ UPGRADING DRAGONFLY FROM 3.8 TO LATER VERSIONS + 36+-----------------------------------------------------------------------+ 37 38SMP AND DEVICE_POLLING OPTIONS MADE UNKNOWN 39------------------------------------------- 40 41DEVICE_POLLING was replaced by IFPOLL_ENABLE and the former SMP code is 42the default now (even on single-core systems), both for, like, 21 months. 43We kept the options around as no-ops as a convenience, to allow people 44using the same config for the then current release and the then current 45master. That period is now over, so any configs still having those 46options have to be adjusted. 47 48SYSVIPC SYSCALLS MADE NON-OPTIONAL 49---------------------------------- 50 51The code related to the SYSVMSG, SYSVSEM and SYSVSHM kernel options is 52now compiled in by default. The options are no-ops for now. 53 54DEFAULT DRIVER CHANGED FOR LSI "THUNDERBOLT" SERIES RAID CONTROLLERS 55-------------------------------------------------------------------- 56 57The default driver for those controllers is now mrsas(4) due to reports 58of file system corruption using the mfi(4) driver. The whole issue (and 59how to deal with potential problems when switching) was explained here: 60 61http://lists.dragonflybsd.org/pipermail/users/2014-July/128703.html 62 63A tunable is provided for letting those controllers still attach via 64the mfi(4) driver, hw.mrsas.mfi_enable (see mrsas(4) manual page). 65 66OLDER NETWORK DRIVERS MOVED TO I386 ONLY 67---------------------------------------- 68 69The following drivers have been made i386 only: ed(4), sr(4), ng_sync_ar 70and ng_sync_sr. ed(4) used to be in X86_64_GENERIC, so it has to be 71removed in kernel configs derived from X86_64_GENERIC. 72 73+-----------------------------------------------------------------------+ 74+ UPGRADING DRAGONFLY FROM 3.6 TO LATER VERSIONS + 75+-----------------------------------------------------------------------+ 76 77UPDATE FROM MOST RECENT 3.6 78--------------------------- 79 80Versions of 3.6 built before June 25th have a bug where installworld might 81crash during installation of the new initrd. Upgrade to the latest version 82of 3.6 before updating to 3.8 or later. 83 84ATM, IPX, NCP AND NWFS SUPPORT DROPPED 85-------------------------------------- 86 87Support for the IPX and NCP network protocols and for mouting NetWare 88file systems has been dropped. Dito for ATM protocol support. 89 90INITRD IMAGES NOW INSTALLED BY DEFAULT 91-------------------------------------- 92 93An initial ramdisk image is now installed in /boot/kernel/initrd.img.gz 94 95Older images installed under the file name of initrd.img will be removed 96automatically by the make upgrade process. 97 98USB4BSD IS NOW THE DEFAULT USB STACK 99------------------------------------ 100 101To get back to the old stack, put "WANT_OLDUSB=yes" in /etc/make.conf and 102replace "device usb" with "device oldusb" in the kernel configuration. 103 104MORE ISA SUPPORT DROPPED 105------------------------ 106 107ISA support has been dropped from the following drivers: adv(4), an(4), 108ar(4), cs(4), digi(4), ed(4), ep(4), ex(4), fe(4), lnc(4), sbni(4), 109si(4), sn(4), and stg(4). 110 111+-----------------------------------------------------------------------+ 112+ UPGRADING DRAGONFLY FROM 3.4 TO LATER VERSIONS + 113+-----------------------------------------------------------------------+ 114 115ABI CHANGE 116---------- 117 118Installed third-party software (dports) will have to be rebuilt after upgrade, 119or reinstalled from binary packages. 120 121UPDATING FROM 3.4 TO 3.6 122------------------------ 123 124This only applies for this specific upgrade due to locale changes; it is 125not needed for upgrades after 3.6. Please update in this order: 126 127make buildworld 128make buildkernel 129make installworld 130make installkernel 131*reboot* 132make upgrade 133 134See this mailing list post for details: 135http://lists.dragonflybsd.org/pipermail/users/2013-September/090163.html 136 137CYRIX OPTIONS REMOVED 138--------------------- 139 140The following Cyrix related options have been removed: CPU_BTB_EN, 141CPU_CYRIX_NO_LOCK, CPU_DIRECT_MAPPED_CACHE, CPU_DISABLE_5X86_LSSER, 142CPU_FASTER_5X86_FPU, CPU_IORT, CPU_LOOP_EN, CPU_RSTK_EN, CPU_SUSP_HLT, 143CYRIX_CACHE_WORKS, and CYRIX_CACHE_REALLY_WORKS 144 145ISA SUPPORT REMOVED FROM RP(4) 146------------------------------ 147 148ISA support has been removed from the rp(4) driver. It is now PCI only. 149 150+-----------------------------------------------------------------------+ 151+ UPGRADING DRAGONFLY FROM 3.2 TO LATER VERSIONS + 152+-----------------------------------------------------------------------+ 153 154COMPAT_SUNOS OPTION REMOVED 155--------------------------- 156 157The COMPAT_SUNOS option has been removed. It was meant to provide binary 158compatibility with SunOS 4.x for the sparc32 port of 4.4BSD. 159 160ISA SOUND CARD SUPPORT REMOVED 161------------------------------ 162 163The following modules have been removed (all for ISA sound cards): 164snd_ad1816.ko, snd_ess.ko, snd_mss.ko, snd_sb8.ko, snd_sb16.ko, snd_sbc.ko 165 166GCC 4.7 167------- 168 169DragonFly has switched base compilers. GCC 4.7 is now the default 170compiler and GCC 4.4 is the alternative compiler. The "NO_GCC47" make 171variable ceases to work now. 172 173Users who wish to build only GCC 4.7 have to use NO_GCC44 in the 174/etc/make.conf to prohibit GCC 4.4 from building. However, using it is 175highly discouraged. There are a few packages in pkgsrc that do not build 176with GCC 4.7 and the new "DPorts" system uses GCC 4.4 by default. At 177this time, it is recommended to keep both compilers on the base system. 178 179SMP OPTION REMOVED 180------------------ 181 182The SMP kernel option has been made a no-op. All kernels now feature SMP 183support. If you have 'options SMP' in your kernel config, you can as well 184remove it. 185 186DEVICE_POLLING OPTION REPLACED BY IFPOLL_ENABLE OPTION, KTR_POLLING REMOVED 187--------------------------------------------------------------------------- 188 189The DEVICE_POLLING kernel option has been made a no-op and it has been 190replaced by IFPOLL_ENABLE. If you have 'options DEVICE_POLLING' in your 191kernel config, you need to change it to IFPOLL_ENABLE. 192 193Also, the KTR_POLLING kernel option has been removed, so it must be 194removed from kernel configs that have it. 195 196BUSLOGIC, CYCLADES AND STALLION ISA SUPPORT REMOVED 197--------------------------------------------------- 198 199The bt(4) driver for Buslogic SCSI adapters has been made PCI only. ISA 200cards will no longer be detected. 201 202The same has been done for Stallion multiport serial controllers. stli(4) 203has been completely removed (along with the stlload(8) and stlstty(8) 204utilities) and stl(4) was changed to support only PCI cards. Similarly, 205ISA support was removed from cy(4) too. All these drivers are i386 only. 206 207COMPAT_OLDISA OPTION GONE 208------------------------- 209 210The i386 specific COMPAT_OLDISA kernel option has been removed, since 211nothing needs it anymore. 212 213+-----------------------------------------------------------------------+ 214+ UPGRADING DRAGONFLY FROM 3.0 TO LATER VERSIONS + 215+-----------------------------------------------------------------------+ 216 217APIC_IO OPTION REMOVED 218---------------------- 219 220The APIC_IO kernel option is no longer accepted after having been without 221effect for a while. The hw.ioapic_enable tunable now serves its purpose. 222If you have 'options APIC_IO' in your kernel config, you'll have to 223remove it. 224 225WATCHDOG_ENABLE & HW_WDOG OPTIONS REMOVED 226----------------------------------------- 227 228The wdog framework is now compiled into our kernels by default, so the 229options are no longer needed. 230 231DOSCMD(1) REMOVED 232----------------- 233 234doscmd(1) has been removed. It was i386 only. The doscmd(1) specific 235NO_X make.conf option was removed too. 236 237GCC 4.7 238------- 239 240GCC 4.7 has been brought in and replaces GCC 4.1 as DragonFly's non- 241default compiler in base (default is still GCC 4.4). 242 243Users who wish to build only GCC 4.4 have to replace NO_GCC41 with 244NO_GCC47 in /etc/make.conf. 245 246USB4BSD 247------- 248 249A new USB stack (from FreeBSD) has been brought in. The following 250modules have been ported so far: usb, uhci, ohci, ehci, xhci, umass, 251usfs, uether, if_axe, if_udav, ukbd, ums, uep, uhid, usb_quirk, 252and uaudio. 253 254It is not yet the default. To activate it, WANT_USB4BSD=yes has to 255be put in make.conf and device "usb4bsd" (quotes needed) has to 256replace device usb in the kernel config. After that, a full 257build/install/upgrade cycle is needed. 258 259Note that this is experimental and incomplete, but we are interested 260in hearing about issues with it, of course. 261 262ISA SUPPORT REMOVED FROM AIC-6260/6360 DRIVER 263--------------------------------------------- 264 265ISA adapter support was dropped from the aic(4) driver. 266 267+-----------------------------------------------------------------------+ 268+ UPGRADING DRAGONFLY FROM 2.10 TO LATER VERSIONS + 269+-----------------------------------------------------------------------+ 270 271SEVERAL ISA DRIVERS REMOVED 272--------------------------- 273 274The following ISA only drivers have been removed along with a couple of 275associated userland tools: 276 277aha(4) 278asc(4) & sasc(1) 279ctx 280dgb(4) 281el(4) 282gpib 283gsc(4) & sgsc(1) 284ie(4) 285labpc(4) 286le(4) 287mse(4) 288rc(4) 289rdp(4) 290spigot 291tw(4) & xten(1) & xtend(8) 292wl(4) & wlconfig(8) 293wt(4) 294 295Note that two of these drivers (aha(4) and ie(4)) are in our GENERIC 296config and one (aha(4)) is in our X86_64_GENERIC kernel configuration 297file. 298 299If buildkernel complains about any of these drivers, just remove them 300from your kernel configuration. 301 302BINUTILS 2.20 303------------- 304Binutils 2.20 has been removed in favor of Binutils 2.22. The accepted 305values of BINUTILSVERS are now binutils221 and binutils222 (default). 306 307BUILDWORLD/-KERNEL PARALLELIZATION WORK 308--------------------------------------- 309Due to changes in the way we build with more than one make job, you 310will have to update install(1) and mkdir(1) prior to buildworld if you 311want to build with 'make -j': 312 313cd /usr/src/usr.bin/xinstall; make; make install; make clean 314cd /usr/src/bin/mkdir; make; make install; make clean 315 316DMA(8) UPGRADE 317-------------- 318dma(8) has been upgraded to v0.7 which no longer supports the 319/etc/dma/virtusertable. Some of its functionality has been replaced 320with the MASQUERADE keyword and the EMAIL environment variable (see 321the dma(8) manual page). 322 323+-----------------------------------------------------------------------+ 324+ UPGRADING DRAGONFLY FROM 2.8 TO LATER VERSIONS + 325+-----------------------------------------------------------------------+ 326 327GCC 4.4 & BINUTILS 2.21 328----------------------- 329 330GCC 4.4 has been made DragonFly's default compiler and Binutils 2.21 has 331been made DragonFly's default Binutils. 332 333That means that any settings that set CCVER to 'gcc44' are not needed 334anymore. Instead, CCVER can be set to 'gcc41' to go back to using 335GCC 4.1. 336 337It also means that 'binutils221' as a value for BINUTILSVER has no 338effect anymore. 2.17 has been removed and 'binutils220' is available 339as an option. 340 341The NO_GCC44 option has been removed and will not affect the build 342anymore. There is now a NO_GCC41 option that will prevent GCC 4.1 from 343building in a similar fashion. 344 345Note that you must do a full buildworld/buildkernel for upgrading. 346 347pkg_radd settings 348----------------- 349 350The config file for pkg_radd has moved from /etc/settings.conf to 351/etc/pkg_radd.conf. Save the contents of settings.conf before upgrading 352if this is needed. This warning only applies if /etc/settings.conf 353exists. pkg_radd will continue to work with defaults. 354 355+-----------------------------------------------------------------------+ 356+ 20100927 + 357+ UPGRADING DRAGONFLY FROM 2.6 to 2.8 or HEAD + 358+-----------------------------------------------------------------------+ 359 360OpenSSL 361-------- 362 363OpenSSL has been upgraded, and SHLIB_MAJOR was bumped for libssh and libcrypto. 364This shouldn't break any 3rd-party software, but you'll need to recompile your 3653rd-party software if you want it to link against the new version of OpenSSL. 366 367Loader 368------- 369 370A new loader (dloader) has been added which better handles booting from 371multiple kernel/module versions. 372 373To upgrade (Only for this upgrade, for post 2.8 upgrades see GENERAL below) 374 375 cd /usr/src 376 make buildworld 377 make installworld 378 make upgrade 379 make buildkernel KERNCONF=<KERNELNAME> 380 make installkernel KERNCONF=<KERNELNAME> 381 382Note that you must installworld and run the 'upgrade' target before 383installing the new kernel. 384 385BIND 386----- 387 388BIND has been removed from the base system. The ldns and drill tools have 389been added for basic functionality. Use 'drill' where you would normally 390use nslookup or dig, or install BIND from pkgsrc. It's available as 391net/bind95, net/bind96, or net/bind97 as of this writing. 392 393This only affects older systems upgrading to 2.8. New 2.8+ installs 394include BIND as a pkgsrc package. 395 396+-----------------------------------------------------------------------+ 397+ UPGRADING DRAGONFLY ON AN EXISTING DRAGONFLY SYSTEM + 398+ GENERAL + 399+-----------------------------------------------------------------------+ 400 401Instructions on how to obtain and maintain DragonFly source code using git 402are in the development(7) manual page. 403 404To upgrade a DragonFly system from sources you run the following sequence: 405 406 cd /usr/src 407 make buildworld 408 make buildkernel KERNCONF=<KERNELNAME> 409 make installkernel KERNCONF=<KERNELNAME> 410 make installworld 411 412You will also want to run the 'upgrade' target to upgrade your /etc and the 413rest of your system. The upgrade target is aware of stale files created by 414older DragonFly installations and should delete them automatically. 415 416 make upgrade 417 418See the build(7) manual page for further information. 419 420Once you've done a full build of the world and kernel you can do incremental 421upgrades of either by using the 'quickworld' and 'quickkernel' targets 422instead of 'buildworld' and 'buildkernel'. If you have any problems with 423the quick targets, try updating your repo first, and then a full buildworld 424and buildkernel as shown above, before asking for help. 425 426+-----------------------------------------------------------------------+ 427+ UPGRADING FROM DRAGONFLY <= 2.0 TO DRAGONFLY >= 2.1 + 428+-----------------------------------------------------------------------+ 429 430In 2.1 kernel and modules has moved to boot directory. For most cases 431this is handled automatically by 'make upgrade'. A few cases needs manual 432intervention: 433 434 * When installing a kernel without first doing a make buildworld, 435 installworld and upgrade to the same DESTDIR as kernel: 436 make DESTDIR/boot directory and move kernel and modules into this boot 437 directory; also move kernel.old and modules.old. 438 Typical example is vkernel(7), use (no modules used): 439 440 cd /var/vkernel 441 mkdir boot 442 chflags noschg kernel 443 mv kernel kernel.old boot 444 chflags schg boot/kernel 445 446 * When using a boot-only partition, /boot/loader.rc needs to be edited: 447 delete occurrences of '/boot/'. 448 These occurences can normally be deleted in any case, see loader(8). 449 450+-----------------------------------------------------------------------+ 451+ UPGRADING FROM DRAGONFLY <= 1.8 TO DRAGONFLY >= 1.9 + 452+-----------------------------------------------------------------------+ 453 454In 1.9 major changes to the disk management infrastructure have taken 455place. make upgrade may not catch all of your disk devices in /dev, 456so after upgrading be sure to cd /dev; ./MAKEDEV <blah> where <blah> 457are all of your disk devices. HOWEVER, from late 2.3 on we run devfs 458and MAKEDEV no longer exists. 459 460The biggest changes in 1.9 are: 461 462(1) That whole-slice devices such as da0s1 no longer share the same device 463 id as partition c devices such as da0s1c. 464 465(2) The whole-disk device (e.g. da0) is full raw access to the disk, 466 with no snooping or reserved sectors. Consequently you cannot run 467 disklabel on this device. Instead you must run disklabel on a 468 whole-slice device. 469 470(3) The 'compatibility' partitions now use slice 0 in the device name, 471 so instead of da0a you must specify da0s0a. Also, as per (1) above, 472 accessing the disklabel for the compatibility partitions must be 473 done via slice 0 (da0s0). 474 475(4) Many device drivers that used to fake up labels, such as CD, ACD, VN, 476 and CCD now run through the disk management layer and are assigned 477 real disk management devices. VN and CCD in particular do not usually 478 use a MBR and disklabels must be accessed through the compatibility 479 slice 0. Your /etc/ccd.conf file still specifies 'ccd0', though, you 480 don't name it 'ccd0s0' in the config file. 481 482Generally speaking, you have to get used to running fdisk and disklabel on 483the correctly specified device names. A lot of the wiggle, such as running 484disklabel on a partition, has been removed. 485 486+-----------------------------------------------------------------------+ 487+ UPGRADING FROM OLDER VERSIONS OF DRAGONFLY OR FREEBSD + 488+-----------------------------------------------------------------------+ 489 490> Kerberos IV 491------------- 492 493Kerberos IV (eBones) was removed from the tree, please consider moving to 494Kerberos 5 (Heimdal). 495 496> Package Management System 497--------------------------- 498 499Starting with the 1.4 release, DragonFly uses NetBSD's pkgsrc package 500management system. The necessary tools to build and maintain packages 501are provided in /usr/pkg/bin and /usr/pkg/sbin. Make sure that these 502directories are in your PATH variable. 503 504In order to obtain a reasonably current snapshot of the pkgsrc tree, use 505the tarball from NetBSD: 506 507 fetch -o /tmp/pkgsrc.tar.gz ftp://ftp.NetBSD.org/pub/NetBSD/packages/pkgsrc.tar.gz 508 cd /usr; tar -xzf /tmp/pkgsrc.tar.gz; chown -R root:wheel pkgsrc 509 510This tree can then be kept up to date with cvs update: 511 512 cd /usr/pkgsrc; cvs up 513 514NOTE! If you upgraded from a pre-1.4 system to 1.4 or later, you need to 515build and install the pkgsrc bootstrap manually: 516 517 cd /usr/pkgsrc/bootstrap 518 ./bootstrap --pkgdbdir /var/db/pkg --prefix /usr/pkg 519 520+-----------------------------------------------------------------------+ 521+ UPGRADING DRAGONFLY ON AN EXISTING DRAGONFLY SYSTEM + 522+ UPDATING FROM PRE-1.2 SYSTEMS OR FreeBSD 4.x TO + 523+ DRAGONFLY 1.3+ (EITHER PREVIEW or HEAD) + 524+-----------------------------------------------------------------------+ 525 526The compatibility shims for the build environment have been removed, you 527have to update to DragonFly 1.2 release branch first. 528 529The default PAM configuration has moved from /etc/pam.conf to /etc/pam.d/. 530The existing configuration can be converted using /etc/pam.d/convert.sh. 531Entries in /etc/pam.d/ override entries in /etc/pam.conf. In addition 532the pam_skey.so module was retired, you have to remove it manually from 533your configuration, when you convert it. 534 535> Required user and group IDs when upgrading from either FreeBSD or DragonFly 536--------------------- 537 538The following users may be missing from your password file. Use vipw and 539add any that are missing: 540 541smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin 542_pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/sbin/nologin 543 544The following groups may be missing from your group file. Use vi /etc/group 545and add any that are missing: 546 547smmsp:*:25: 548authpf:*:63: 549_pflogd:*:64: 550 551 552> Upgrading to DragonFly from FreeBSD 553--------------------- 554 555You can build the DragonFly world and DragonFly kernels on a FreeBSD-4.x or 556FreeBSD-5.x machine and then install DragonFly over FreeBSD, replacing 557FreeBSD. Note that the DragonFly buildworld target does not try to reuse 558make depend information, it starts from scratch, so no pre-cleaning of the 559object hierarchy is necessary. 560 561 # get the CVS repository (it is placed in /home/dcvs, 500MB). 562 # Please use the -h option and a mirror site to pull the 563 # initial repository, but feel free to use the main repository 564 # machine to pull updates. 565 cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile 566 # install the source from the CVS hierarchy (remove preexisting 567 # FreeBSD src first) (500MB) 568 cd /usr 569 rm -rf src 570 cvs -R -d /home/dcvs checkout -P src 571 572 # build it (500MB used in /usr/obj) 573 # 574 cd /usr/src 575 make buildworld 576 make buildkernel KERNCONF=<KERNELNAME> 577 578Once you have built DragonFly you have to install it over FreeBSD. Since 579DragonFly does not track changes made by FreeBSD to its include file 580hierarchy and include file pollution can cause all sorts of unexpected 581compilation issues to come up, it is best to wipe your include hierarchy 582prior to installing DragonFly. Note that you should not wipe any installed 583FreeBSD header files or binaries until after you have successfully completed 584the build steps above. 585 586 rm -rf /usr/include 587 mkdir /usr/include 588 make installkernel KERNCONF=<KERNELNAME> 589 make installworld 590 591Then you need to upgrade your system. DragonFly's 'make upgrade' target 592will unconditionally upgrade the /etc files that sysops do not usually 593mess around with, such as the files in /etc/rc.d. It will also remove any 594obsolete files such as utilities and manpages that have been removed from 595the system since the version you're coming from. If you are unsure we 596recommend that you make a backup of at least your /etc before applying 597this step. Note that DragonFly's RC system is basically RCNG from 598FreeBSD-5, but there are some differences in the contents of the RC files. 599 600 make upgrade 601 602NOTE! Never do a 'make upgrade' before 'make installworld' has been run. 603Doing so might leave your system in an unusable state. 604 605Finally we recommend that you do an 'ls -lta BLAH' for /bin, /sbin, /usr/bin, 606/usr/bin, and /usr/lib, and remove any stale files that you find. Please 607report these files to the DragonFly developers so that they can be added to 608the 'upgrade' target. 609 610