]> git.proxmox.com Git - mirror_smartmontools-debian.git/blobdiff - INSTALL
import smartmontools 7.0
[mirror_smartmontools-debian.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 523adbe79c2df2e48ee14c21f11f193a1631e16f..7a6fb6e363970c9e6eb7ff77e251f9a139a2806e 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,15 +1,15 @@
 Smartmontools installation instructions
 =======================================
 
-$Id: INSTALL,v 1.68 2006/09/27 21:42:03 chrfranke Exp $
+$Id: INSTALL 4880 2018-12-29 20:27:01Z chrfranke $
 
 Please also see the smartmontools home page:
-http://smartmontools.sourceforge.net/
+https://www.smartmontools.org/
 
 Table of contents:
 
 [1] System requirements
-[2] Installing from CVS
+[2] Installing from SVN
 [3] Installing from source tarball
 [4] Guidelines for different Linux distributions
 [5] Guidelines for FreeBSD
@@ -26,60 +26,15 @@ Table of contents:
 [1] System requirements
 =======================
 
+    Note: Some of this info is outdated as it refers to very old OS
+    versions.
+
     A) Linux
 
     Any Linux distribution will support smartmontools if it has a
     kernel version greater than or equal to 2.2.14. So any recent
     Linux distribution should support smartmontools.
 
-    There are two parts of smartmontools that may require a patched or
-    nonstandard kernel:
-
-    (1) To get the ATA RETURN SMART STATUS command, the kernel needs
-    to support the HDIO_DRIVE_TASK ioctl().
-
-    (2) To run Selective Self-tests, the kernel needs to support the
-    HDIO_DRIVE_TASKFILE ioctl().
-
-    If your kernel does not support one or both of these ioctls, then
-    smartmontools will "mostly" work.  The things that don't work will
-    give you harmless warning messages.
-
-    Although "not officially supported" by the developers, smartmontools
-    has also been successfully build and run on a legacy Linux system
-    with kernel 2.0.33 and libc.so.5. On such systems, the restrictions
-    above apply.
-
-    For item (1) above, any 2.4 or 2.6 series kernel will provide
-    HDIO_DRIVE_TASK support.  Some 2.2.20 and later kernels also
-    provide this support IF they're properly patched and
-    configured. [Andre Hedrick's IDE patches may be found at
-    http://www.funet.fi/pub/linux/kernel/people/hedrick/ide-2.2.20/ or
-    are available from your local kernel.org mirror.  They are not
-    updated for 2.2.21 or later, and may contain a few bugs.].
-    If the configuration option CONFIG_IDE_TASK_IOCTL
-    exists in your 2.2.X kernel source code tree, then your 2.2.X
-    kernel will probably support this ioctl. [Note that this kernel
-    configuration option does NOT need to be enabled. Its presence
-    merely indicates that the required HDIO_DRIVE_TASK ioctl() is
-    supported.]
-
-    For item (2) above, your kernel must be configured with the kernel
-    configuration option CONFIG_IDE_TASKFILE_IO enabled.  This
-    configuration option is present in all 2.4 and 2.6 series
-    kernels. Some 2.2.20 and later kernels also provide this support
-    IF they're properly patched and configured as described above.
-
-    Please see FAQ section of the URL above for additional details.
-
-    If you are using 3ware controllers, for full functionality you
-    must either use version 1.02.00.037 or greater of the 3w-xxxx
-    driver, or patch earlier 3ware 3w-xxxx drivers.  See
-    http://smartmontools.sourceforge.net/3w-xxxx.txt
-    for the patch.  The version 1.02.00.037 3w-xxxx.c driver was
-    incorporated into kernel 2.4.23-bk2 on 3 December 2003 and into
-    kernel 2.6.0-test5-bk11 on 23 September 2003.
-
     B) FreeBSD
 
     For FreeBSD support, a 5-current kernel that includes ATAng is
@@ -90,85 +45,52 @@ Table of contents:
 
     C) Solaris
 
-    The SCSI code has been tested on a variety of Solaris 8 and 9
+    The SCSI code has been tested on a variety of Solaris 8 or later
     systems.  ATA/IDE code only works on SPARC platform.  All tested
     kernels worked correctly.
 
     D) NetBSD/OpenBSD
 
     The code was tested on a 1.6ZG (i.e., 1.6-current) system. It should
-    also function under 1.6.1 and later releases (unverified).  Currently
-    it doesn't support ATA devices on 3ware RAID controllers.
+    also function under 1.6.1 and later releases.
 
     E) Cygwin
 
-    The code was tested on Cygwin 1.5.7, 1.5.11 and 1.5.18. It should also
+    The code was tested on Cygwin 2.11.* x86 and x86_64.  It should also
     work on other recent releases.
 
-    Release 1.5.15 or later is recommended for Cygwin smartd. Older versions
-    do not provide syslogd support.
-
     Both Cygwin and Windows versions of smartmontools share the same code
-    to access the IDE/ATA or SCSI devices. The information in the "Windows"
-    section below also applies to the Cygwin version.
+    to access the raw devices.  The information in the "Windows" section
+    below also applies to the Cygwin version.
 
     F) Windows
 
-    The code was tested on Windows 98SE, NT4(SP5,SP6), 2000(SP4) and
-    XP(no SP,SP1a,SP2). It should also work on Windows 95(OSR2), 98,
-    ME and 2003.
-
-    On 9x/ME, only standard (legacy) IDE/ATA devices 0-3 are supported.
-    The driver SMARTVSD.VXD must be present in WINDOWS\SYSTEM\IOSUBSYS
-    to get loaded at Windows startup. The default location in a new
-    installation of some versions of Windows is the WINDOWS\SYSTEM folder.
-    In this case, move SMARTVSD.VXD to WINDOWS\SYSTEM\IOSUBSYS and reboot
-    (http://support.microsoft.com/kb/265854/en-us).
-    SMARTVSD.VXD may also be missing in a new installation
-    (http://support.microsoft.com/kb/199886/en-us).
-
-    SMARTVSD.VXD relies on the standard IDE port driver ESDI_506.PDR.
-    If the system uses a vendor specific driver, access of SMART data
-    is not possible on 9x/ME. This is the case if e.g. the optional
-    "IDE miniport driver" is installed on a system with VIA chipset.
-
-    Some ATA controllers (e.g. Promise) provided a custom SMARTVSD.VXD
-    for their Win9x/ME driver. To access SMART data from both the legacy
-    (/dev/h[a-d]) and this additional (/dev/hd[e-h]) controller, rename
-    this file to SMARTVSE.VXD. Open the file with a hex editor and replace
-    all occurrences of the string "SMARTVSD" with "SMARTVSE". Then reinstall
-    the original Windows SMARTVSD.VXD.
-
-    On NT4/2000/XP/2003, ATA or SATA devices are supported if the device
-    driver implements the SMART IOCTL.
-
-    The IDE/ATA read log command (smartctl -l, --log, -a, --all) is
-    not supported by the SMART IOCTL of NT4/2000/XP. Undocumented
-    and possibly buggy system calls are used for this purpose,
-    see WARNINGS file for details.
-
-    SCSI devices are supported on all versions of Windows. An installed
-    ASPI interface (WNASPI32.DLL) is required to access SCSI devices.
-    The code was tested with Adaptec Windows ASPI drivers 4.71.2.
-    (http://www.adaptec.com/en-US/support/scsi_soft/ASPI/ASPI-4.70/)
-    Links to other ASPI drivers can be found at http://www.nu2.nu/aspi/.
-
-    3ware 9000 RAID controllers are supported using new features added
-    to the 3ware 9000 Windows driver. These features are not implemented
-    in the latest 'Released' driver (9.3.0.6) available at the time of
-    this writing. But an 'in Engineering Phase' driver v3.00.02.061 or
-    later can be used to access SMART functionality of each individual
-    drive. Older drivers provide SMART access only to the first drive
-    (port) of each unit. The commands READ LOG and ABORT SELFTEST are
-    still unsupported due to the limitations of SMART IOCTL (see above).
+    The code was tested on Windows XP SP3, 2003, Vista, Windows 7, 8, 8.1
+    and Windows 10 up to 1809.  Support von Windows 9x/ME and NT4 was
+    removed after smartmontools 5.43.
+
+    ATA or SATA devices are supported if the device driver implements
+    the SMART IOCTLs or IOCTL_IDE_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH.
+    Only the latter provides full pass-through support which is needed
+    for all smartmontools features.
+
+    SATA devices behind a Intel RST driver are accessed through CSMI.
+
+    SCSI and USB devices are accessed through SPTI. Special driver support
+    is not required.
+
+    NVMe devices are supported with the Windows 10 NVMe driver or with
+    vendor specific drivers supporting NVME_PASS_THROUGH.
 
     G) MacOS/Darwin
 
     The code was tested on MacOS 10.3.4.  It should work from 10.3
     forwards.  It doesn't support 10.2.
 
+    Only basic SMART commands are supported for ATA devices.
+
     It's important to know that on 10.3.x, some things don't work
-    (see WARNINGS): due to bugs in the libraries used, you cannot run
+    due to bugs in the libraries used, you cannot run
     a short test or switch SMART support off on a drive; if you try,
     you will just run an extended test or switch SMART support on.  So
     don't panic when your "short" test seems to be taking hours.
@@ -177,66 +99,43 @@ Table of contents:
     routine runs. If your drive doesn't have it running automatically by
     default, you can't run it at all.
 
-    SCSI devices are not currently supported.  Detecting the power
-    status of a drive is also not currently supported.
-
-    To summarize this, from another point of view, the things that
-    are not supported fall into two categories:
-
-   * Can't be implemented easily without more kernel-level support,
-     so far as I know:
-     - running immediate offline, conveyance, or selective tests
-     - running any test in captive mode
-     - aborting tests
-     - switching automatic offline testing on or off
-     - support for SCSI
-     - checking the power mode [-n Directive of smartd] (this is not
-       completely impossible, but not by using a documented API)
-
-   * Work on 10.4 and later, but not on 10.3:
-     - switching off SMART (switching *on* works fine)
-     - switching off auto-save (but why would you want to?)
-     - running the short test (that leaves you with only the extended test)
-
-    However, some things do work well.  For ATA devices, all the
-    informational output is available, unless you want something that only
-    an offline test updates.  On many newer Mac OS systems, the
-    hard drive comes with the offline test switched on by default, so
-    even that works.
+    SCSI devices are not currently supported.
+
+    The OS X SAT SMART Driver provides access to SMART data for SAT capable
+    USB and Firewire devices:
+    https://github.com/kasbert/OS-X-SAT-SMART-Driver
+    https://github.com/RJVB/OS-X-SAT-SMART-Driver
+    This does not require any smartctl -d TYPE option and should work also
+    with older smartmontools releases.
 
     H) OS/2, eComStation
 
     The code was tested on eComStation 1.1, but it should work on all versions
     of OS/2.
     Innotek LibC 0.5 runtime is required.
-    Currently only ATA disks are supported, SCSI support will be added.
-
+    Only ATA disks are supported.
 
-[2] Installing from CVS
+[2] Installing from SVN
 =======================
-    Get the sources from the CVS repository:
-    cvs -d :pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools login
-    cvs -d :pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools co sm5
-    (when prompted for a password, just press Enter)
+
+    Get the sources from the SVN repository:
+    svn co https://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools smartmontools
 
     Then type:
+    cd smartmontools
     ./autogen.sh
     and continue with step [3] below, skipping the "unpack the tarball" step.
 
-    Further details of using CVS can be found at the URL above.
-
     The autogen.sh command is ONLY required when installing from
-    CVS. You need GNU Autoconf (version 2.50 or greater), GNU Automake
-    (version 1.6 or greater) and their dependencies installed in order
-    to run it.  You can get these here:
-    http://www.gnu.org/directory/GNU/autoconf.html
-    http://www.gnu.org/directory/GNU/automake.html
+    SVN. You need GNU Autoconf (version 2.60 or greater), GNU Automake
+    (version 1.10 or greater) and their dependencies installed in order
+    to run it.
 
 [3] Installing from the source tarball
 ======================================
 
-    If you are NOT installing from CVS, then unpack the tarball: 
-    tar zxvf smartmontools-5.VERSION.tar.gz
+    If you are NOT installing from SVN, then unpack the tarball:
+    tar xvf smartmontools-VERSION.tar.gz
 
     Then:
     ./configure
@@ -244,14 +143,43 @@ Table of contents:
     make install (you may need to be root to do this)
 
     As shown (with no options to ./configure) this defaults to the
-    following set of installation directories:   
+    following set of installation directories and other settings:
+
     --prefix=/usr/local
-    --sbindir=/usr/local/sbin
-    --sysconfdir=/usr/local/etc
-    --mandir=/usr/local/share/man
-    --with-docdir=/usr/local/share/doc/smartmontools-VERSION
-    --with-initscriptdir=/usr/local/etc/rc.d/init.d
+    --exec-prefix='${prefix}'
+    --sbindir='${exec_prefix}/sbin'
+    --sysconfdir='${prefix}/etc'
+    --localstatedir='${prefix}/var'
+    --datarootdir='${prefix}/share'
+    --datadir='${datarootdir}'
+    --mandir='${datarootdir}/man'
+    --docdir='${datarootdir}/doc/smartmontools'
     --disable-sample
+    --disable-scsi-cdb-check
+    --enable-fast-lebe
+    --without-initscriptdir
+    --with-exampledir='${docdir}/examplescripts'
+    --with-drivedbdir='${datadir}/smartmontools'
+    --with-update-smart-drivedb
+    --with-gnupg
+    --with-smartdscriptdir='${sysconfdir}'
+    --with-smartdplugindir='${smartdscriptdir}/smartd_warning.d'
+    --with-scriptpath='/usr/local/bin:/bin:/usr/bin'
+    --without-savestates
+    --without-attributelog
+    --with-os-deps='os_linux.o dev_areca.o' (platform specific)
+    --without-selinux
+    --with-libcap-ng=auto
+    --with-libsystemd=auto
+    --with-systemdsystemunitdir=auto
+    --with-systemdenvfile=auto
+    --with-nvme-devicescan (Linux, Windows: yes; Others: no)
+    --without-solaris-sparc-ata (Solaris SPARC only)
+    --with-signal-func=sigaction
+    --with-working-snprintf
+    --with-mingw-aslr=auto (Windows only)
+    --with-cxx11-option=auto
+    --without-cxx11-regex
 
     These will usually not overwrite existing "distribution" installations on
     Linux Systems since the FHS reserves this area for use by the system
@@ -260,34 +188,24 @@ Table of contents:
     For different installation locations or distributions, simply add
     arguments to ./configure as shown in [4] below.
 
-    If you wish to alter the default C compiler flags, set an
-    environment variable CFLAGS='your options' before doing
-    ./configure, or else do:
-    make CFLAGS='your options'
+    The first output line of smartctl and smartd provides information
+    about release number, last SVN checkin date and revision, platform,
+    and package. The latter defaults to "(local build)" and can be
+    changed by the variable BUILD_INFO, for example:
+    make BUILD_INFO='"(Debian 5.39-2)"'
 
 [4] Guidelines for different Linux distributions
 ================================================
 
 Note: Please send corrections/additions to:
-smartmontools-support@lists.sourceforge.net
-
-Debian:
-  If you don't want to overwrite any distribution package, use:
-  ./configure
-
-Filesystem Hierarchy Standard (FHS, http://www.pathname.com/fhs/):
-  ./configure --sbindir=/usr/local/sbin                               \
-              --sysconfdir=/usr/local/etc                             \
-              --mandir=/usr/local/man                                 \
-              --with-initscriptdir=/usr/local/etc/rc.d/init.d         \
-              --with-docdir=/usr/local/share/doc/smartmontools-VERSION
+smartmontools-support@listi.jpberlin.de
 
 Red Hat:
   ./configure --sbindir=/usr/sbin                               \
-             --sysconfdir=/etc                                 \
-             --mandir=/usr/share/man                           \
-             --with-initscriptdir=/etc/rc.d/init.d             \
-             --with-docdir=/usr/share/doc/smartmontools-VERSION
+              --sysconfdir=/etc                                 \
+              --mandir=/usr/share/man                           \
+              --docdir=/usr/share/doc/smartmontools             \
+              --with-initscriptdir=/etc/rc.d/init.d
 
 Slackware:
   If you don't want to overwrite any "distribution" package, use:
@@ -297,8 +215,8 @@ Slackware:
   ./configure --sbindir=/usr/sbin                               \
               --sysconfdir=/etc                                 \
               --mandir=/usr/share/man                           \
-              --with-initscriptdir=/etc/rc.d                    \
-              --with-docdir=/usr/share/doc/smartmontools-VERSION
+              --docdir=/usr/share/doc/smartmontools             \
+              --with-initscriptdir=/etc/rc.d
 
   And
   removepkg smartmontools smartsuite (only root can do this)
@@ -321,8 +239,8 @@ SuSE:
   ./configure --sbindir=/usr/sbin                                        \
               --sysconfdir=/etc                                          \
               --mandir=/usr/share/man                                    \
+              --docdir=/usr/share/doc/packages/smartmontools-VERSION     \
               --with-initscriptdir=/etc/init.d                           \
-              --with-docdir=/usr/share/doc/packages/smartmontools-VERSION
 
 [5] Guidelines for FreeBSD
 ==========================
@@ -330,128 +248,90 @@ SuSE:
   the following:
 
   ./configure --prefix=/usr/local                                      \
+              --docdir=/usr/local/share/doc/smartmontools-VERSION      \
               --with-initscriptdir=/usr/local/etc/rc.d/                \
-              --with-docdir=/usr/local/share/doc/smartmontools-VERSION \
-             --enable-sample
-
-  Also, it is important that you use GNU make (gmake from /usr/ports/devel/gmake)
-  to build smartmontools, as the default FreeBSD make doesn't know how to build
-  the man pages.
+              --enable-sample
 
   NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
   be installed with the string '.sample' append to the name, so you will end
   up with the following:
-       /usr/local/etc/smartd.conf.sample
-       /usr/local/etc/rc.d/smartd.sample
+        /usr/local/etc/smartd.conf.sample
+        /usr/local/etc/rc.d/smartd.sample
 
 
 [6] Guidelines for Darwin
 =========================
+
   ./configure --with-initscriptdir=/Library/StartupItems
 
   If you'd like to build the i386 version on a powerpc machine, you can
   use
 
-  CC='gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
+  CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
     ./configure --host=i386-apple-darwin \
-               --with-initscriptdir=/Library/StartupItems
+                --with-initscriptdir=/Library/StartupItems
 
-[7] Guidelines for NetBSD/OpenBSD
-=================================
-  ./configure --prefix=/usr/pkg                                       \
-             --with-docdir=/usr/pkg/share/doc/smartmontools
+[7] Guidelines for NetBSD
+=========================
 
-  On OpenBSD, it is important that you use GNU make (gmake from 
-  /usr/ports/devel/gmake) to build smartmontools, as the BSD make doesn't
-  know how to make the manpages.
+  ./configure --prefix=/usr/pkg                                       \
+              --docdir=/usr/pkg/share/doc/smartmontools
 
 [8] Guidelines for Solaris
 ==========================
 
     smartmontools has been partially but not completely ported to
-    Solaris.  It includes complete SCSI support but no ATA or 3ware
-    support.  It can be compiled with either cc or gcc. To compile
-    with gcc:
+    Solaris.  It includes complete SCSI support but no ATA or NVMe
+    support.  It can be compiled with either CC (Sun's C++ compiler)
+    or GNU g++.
+
+    To compile with g++:
 
     ./configure [args]
     make
 
-    To compile with Sun cc:
+    To compile with Sun CC:
 
-    setenv CC cc  [csh syntax], or
-    CC=cc         [sh syntax]
-    ./configure [args]
+    env CC=cc CXX=CC ./configure [args]
     make
 
     The correct arguments [args] to configure are:
      --sbindir=/usr/sbin                                \
      --sysconfdir=/etc                                  \
      --mandir=/usr/share/man                            \
-     --with-docdir=/usr/share/doc/smartmontools-VERSION \
+     --docdir=/usr/share/doc/smartmontools-VERSION      \
      --with-initscriptdir=/etc/init.d
 
-    To start the script automatically on bootup, create hardlinks that
-    indicate when to start/stop in:
-                   /etc/rc[S0123].d/
-    pointing to /etc/init.d/smartd. Create:
-           K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
-           S<snum>smartd in rc3.d
-    where <knum> is related to <snum> such that the higher snum is the
-    lower knum must be.
-
-    On usual configuration, '95' would be suitable for <snum> and '05'
-    for <knum> respectively.  If you choose these value, you can
-    create hardlinks by:
-
-    cd /etc
-    sh -c 'for n in S 0 1 2; do ln init.d/smartd rc$n.d/K05smartd; done'
-    sh -c 'for n in 3      ; do ln init.d/smartd rc$n.d/S95smartd; done'
-
 [9] Guidelines for Cygwin
 =========================
 
-Same as Red Hat:
   ./configure --prefix=/usr                 \
               --sysconfdir=/etc             \
-              --mandir='${prefix}/share/man'
-
-  OR EQUIVALENTLY
-  ./configure --sbindir=/usr/sbin                               \
-              --sysconfdir=/etc                                 \
-              --mandir=/usr/share/man                           \
-              --with-initscriptdir=/etc/rc.d/init.d             \
-              --with-docdir=/usr/share/doc/smartmontools-VERSION
-
-  Using DOS text file type as default for the working directories ("textmode"
-  mount option) is not recommended. Building the binaries and man pages using
-  "make" is possible, but "make dist" and related targets work only with UNIX
-  file type ("binmode" mount option) set. The "autogen.sh" script prints a
-  warning if DOS type is selected.
+              --with-initscriptdir=/etc/rc.d/init.d
 
 [10] Guidelines for Windows
-==========================
+===========================
 
-To compile the Windows release with MinGW, use the following on Cygwin:
+To compile statically linked Windows release with MinGW gcc on MSYS, use:
 
-  ./configure --build=mingw32
+  ./configure
   make
 
   Instead of using "make install", copy the .exe files into
   some directory in the PATH.
 
-To build the Windows binary distribution, use:
+Cross-compile statically linked 32-bit and 64-bit versions with MinGW-w64:
 
-  make dist-win32
+  ./configure --build=$(./config.guess) \
+              --host=i686-w64-mingw32
 
-  This builds the distribution in directory
+  ./configure --build=$(./config.guess) \
+              --host=x86_64-w64-mingw32
 
-  ./smartmontools-VERSION.win32/
+  Tested on Cygwin, Debian, Fedora and Ubuntu.
 
-  and packs it into
 
-  ./smartmontools-VERSION.win32.zip
-
-To create a Windows installer, use:
+To create the Windows installer, use:
 
   make installer-win32
 
@@ -461,8 +341,12 @@ To create a Windows installer, use:
   ./smartmontools-VERSION.win32-setup.exe
 
   The installer is build using the command "makensis" from the NSIS
-  package. See http://nsis.sourceforge.net/ for documentation and
-  download location. The install script was tested with NSIS 2.17.
+  package (https://nsis.sourceforge.net/).
+
+To create a combined 32-/64-bit installer, use this in 32-bit build
+directory if 64-build directory is at ../build64:
+
+  make builddir_win64=../build64 installer_win32
 
 To both create and run the (interactive) installer, use:
 
@@ -472,21 +356,22 @@ To both create and run the (interactive) installer, use:
   only and cleandist-win32 for cleanup.
 
   The binary distribution includes all documentation files converted
-  to DOS text file format and *.html and *.txt preformatted man pages.
-  The tools unix2dos.exe (package cygutils) and zip.exe (package zip
-  or a native Win32 release of Info-ZIP, http://www.info-zip.org) are
-  necessary but may be not installed by Cygwin's default settings.
+  to DOS text file format and *.html and *.pdf preformatted man pages.
 
-  It is also possible to compile smartmontools with MSVC 6.0.
-  The project files (smartmontools_vc6.dsw, smart{ctl,d}_vc6.dsp) are
-  included in CVS (but not in source tarball). The config_vc6.h is no
-  longer maintained in CVS. The command:
+To prepare os_win32/vc14 directory for MS Visual Studio C++ 2015 builds,
+use the following on MSYS or Cygwin:
 
-  make config-vc6
+  mkdir vctmp && cd vctmp
+  ../configure [... any MinGW option set from above ...]
+  make config-vc14
 
-  builds config_vc6.h from MinGW's config.h. Unlike MinGW, MSVC 6.0
-  can also be used to build the syslog message file tool syslogevt.exe.
-  See smartd man page for usage information about this tool.
+  The MSVC project files (os_win32/vc14/*) are included in SVN (but not
+  in source tarball). The target config-vc14 from a Makefile configured
+  for MinGW creates os_win32/vc14/{config.h,smart*.rc,svnversion.h}.
+  The configure script must be run outside of the source directory to
+  avoid inclusion of the original config.h.
+  Additional MSVC related make targets are clean-vc14, distclean-vc14
+  and maintainer-clean-vc14.
 
 
 [11] Guidelines for OS/2, eComStation
@@ -494,35 +379,25 @@ To both create and run the (interactive) installer, use:
 
 To compile the OS/2 code, please run
 
-  ./os_os2/configure.os2
+  ./configure
   make
   make install
 
 [12] Guidelines for OpenBSD
-==========================
+===========================
+
   To match the way it will installed when it becomes available as a PORT, use
   the following:
 
   ./configure --prefix=/usr/local                                      \
-             --sysconfdir=/etc
-              --with-initscriptdir=/usr/local/share/doc/smartmontools-VERSION \
-              --with-docdir=/usr/local/share/doc/smartmontools-VERSION \
-             --enable-sample
+              --sysconfdir=/etc                                        \
+              --docdir=/usr/local/share/doc/smartmontools-VERSION      \
+              --enable-sample
 
-  It is important that you use GNU make (gmake from /usr/ports/devel/gmake)
-  to build smartmontools, as the default OpenBSD make doesn't know how to build
-  the man pages.
-
-  NOTE1: --with-initscriptdir installs a SystemV startup script.  It really
-  should be --without-initscriptdir, but the Makefile code is incorrect and
-  trys to install the initscript (smartd) to /no.  So, an interim fix it to
-  set the initscript dir to the doc dir.
-
-  NOTE2: --enable-sample will cause the smartd.conf and smartd RC files to
+  NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
   be installed with the string '.sample' append to the name, so you will end
   up with the following:
-       /usr/local/etc/smartd.conf.sample
-       /usr/local/etc/rc.d/smartd.sample
+        /etc/smartd.conf.sample
 
 [13] Comments
 ============
@@ -534,6 +409,11 @@ by the following:
   cd objdir
   ../configure [options]
 
+Man pages contents is platform-specific by default. Info specific to other
+platforms may be not visible. To generate man pages with full contents use:
+
+  make os_man_filter=
+
 To install to another destination (used mainly by package maintainers,
 or to examine the package contents without risk of modifying any
 system files) you can replace the step:
@@ -541,7 +421,7 @@ system files) you can replace the step:
 with:
   make DESTDIR=/home/myself/smartmontools-package install
 
-Use a full path. Paths like ~/smartmontools-package may not work.
+Use a full path. Paths like ./smartmontools-package may not work.
 
 After installing smartmontools, you can read the man pages, and try
 out the commands:
@@ -550,50 +430,55 @@ man smartd.conf
 man smartctl
 man smartd
 
-/usr/sbin/smartctl -s on -o on -S on /dev/hda (only root can do this)
-/usr/sbin/smartctl -a /dev/hda (only root can do this)
+sudo /usr/sbin/smartctl -x /dev/sda
 
-Note that the default location for the manual pages are
-/usr/share/man/man5 and /usr/share/man/man8.  If "man" doesn't find
-them, you may need to add /usr/share/man to your MANPATH environment
-variable.
+Source and binary packages for Windows are available at
+https://sourceforge.net/projects/smartmontools/files/
 
-Source and binary RPM packages are available at
-http://sourceforge.net/project/showfiles.php?group_id=64297
-
-Refer to http://smartmontools.sourceforge.net/index.html#howtodownload
-for any additional download and installation instructions.
+Refer to https://www.smartmontools.org/wiki/Download for any additional
+download and installation instructions.
 
 The following files are installed if ./configure has no options:
 
-/usr/local/sbin/smartd                                  [Executable daemon]
 /usr/local/sbin/smartctl                                [Executable command-line utility]
+/usr/local/sbin/smartd                                  [Executable daemon]
+/usr/local/sbin/update-smart-drivedb                    [Drive database update script]
 /usr/local/etc/smartd.conf                              [Configuration file for smartd daemon]
-/usr/local/etc/rc.d/init.d/smartd                       [Init/Startup script for smartd]
+/usr/local/etc/smartd_warning.sh                        [Warning script for smartd daemon]
 /usr/local/share/man/man5/smartd.conf.5                 [Manual page]
 /usr/local/share/man/man8/smartctl.8                    [Manual page]
 /usr/local/share/man/man8/smartd.8                      [Manual page]
-/usr/local/share/doc/smartmontools-5.X/AUTHORS          [Information about the authors and developers]
-/usr/local/share/doc/smartmontools-5.X/CHANGELOG        [A log of changes. Also see CVS]
-/usr/local/share/doc/smartmontools-5.X/COPYING          [GNU General Public License Version 2]
-/usr/local/share/doc/smartmontools-5.X/INSTALL          [Installation instructions: what you're reading!]
-/usr/local/share/doc/smartmontools-5.X/NEWS             [Significant bugs discovered in old versions]
-/usr/local/share/doc/smartmontools-5.X/README           [Overview]
-/usr/local/share/doc/smartmontools-5.X/TODO             [Things that need to be done/fixed]
-/usr/local/share/doc/smartmontools-5.X/WARNINGS         [Systems where lockups or other serious problems were reported]
-/usr/local/share/doc/smartmontools-5.X/smartd.conf      [Example configuration file for smartd]
-/usr/local/share/doc/smartmontools-5.X/examplescripts   [Executable scripts for -M exec of smartd.conf (4 files)]
+/usr/local/share/man/man8/update-smart-drivedb.8        [Manual page]
+/usr/local/share/doc/smartmontools/AUTHORS              [Information about the authors and developers]
+/usr/local/share/doc/smartmontools/ChangeLog            [A log of changes. Also see SVN]
+/usr/local/share/doc/smartmontools/COPYING              [GNU General Public License Version 2]
+/usr/local/share/doc/smartmontools/INSTALL              [Installation instructions: what you're reading!]
+/usr/local/share/doc/smartmontools/NEWS                 [Significant enhancements and fixes]
+/usr/local/share/doc/smartmontools/README               [Overview]
+/usr/local/share/doc/smartmontools/TODO                 [No longer maintained]
+/usr/local/share/doc/smartmontools/smartd.conf          [Example configuration file for smartd]
+/usr/local/share/doc/smartmontools/examplescripts/      [Executable scripts for -M exec of smartd.conf (4 files)]
+/usr/local/share/smartmontools/drivedb.h                [Drive database]
+
+Due to checks done by '--with-systemdsystemunitdir=auto', the following file may also be installed:
+
+/usr/local/lib/systemd/system/smartd.service            [Systemd service file for smartd]
+
+If /usr/local/etc/smartd.conf exists and differs from the
+default then the default configuration file is installed as
+/usr/local/etc/smartd.conf.sample instead.
 
 The commands:
 
 make htmlman
+make pdfman
 make txtman
 
-may be used to build .html and .txt preformatted man pages.
+may be used to build .html, .pdf and .txt preformatted man pages.
 These are used by the dist-win32 make target to build the Windows
 distribution.
 The commands also work on other operating system configurations
-if suitable versions of man2html, groff and grotty are installed.
+if suitable versions of man, man2html and groff are installed.
 On systems without man2html, the following command should work
 if groff is available:
 
@@ -604,75 +489,46 @@ make MAN2HTML='groff -man -Thtml' htmlman
 ===========================================================
 
 When you type:
-./configure [options]
-there are six particularly important variables that affect where the
-smartmontools software is installed.  The variables are listed here,
-with their default values in square brackets, and the quantities that
-they affect described following that.  This is a very wide table: please read
-it in a wide window.
-
-OPTIONS              DEFAULT                                      AFFECTS
--------              -------                                      -------
---prefix             /usr/local                                   Please see below
---sbindir            ${prefix}/sbin                               Directory for smartd/smartctl executables;
-                                                                  Contents of smartd/smartctl man pages
---mandir             ${prefix}/share/man                          Directory for smartctl/smartd/smartd.conf man pages
---sysconfdir         ${prefix}/etc                                Directory for smartd.conf;
-                                                                  Contents of smartd executable;
-                                                                  Contents of smartd/smartd.conf man pages;
-                                                                  Directory for rc.d/init.d/smartd init script
---with-initscriptdir  ${sysconfdir}/init.d/rc.d                   Location of init scripts       
---with-docdir        ${prefix}/share/doc/smartmontools-5.X       Location of the documentation
---enable-sample              --disable-sample                            Adds the string '.sample' to the names of the smartd.conf file and the smartd RC file
+./configure --help
+a description of available configure options is printed
+[with defaults in square brackets].  See also section [3] above.
+
+
+The following old configure options are no longer supported:
+
+Old option                 Replacement
+--with-docdir=DIR          --docdir=DIR (autoconf >= 2.60)
+--enable-drivedb           [no option needed]
+--disable-drivedb          --without-drivedbdir
+--enable-savestates        --with-savestates[=yes]
+--disable-savestates       [no option needed]
+--enable-attrbutelog       --with-attributelog[=yes]
+--disable-savestates       [no option needed]
+--with-initscriptdir[=yes] --with-initscriptdir=DIR
+--with-initscriptdir=auto  --with-initscriptdir=DIR
+
 
 Here's an example:
 If you set --prefix=/home/joe and none of the other four
 variables then the different directories that are used would be:
 --sbindir             /home/joe/sbin
+--docdir              /home/joe/share/doc/smartmontools
 --mandir              /home/joe/share/man
 --sysconfdir          /home/joe/etc
---with-initscriptdir  /home/joe/etc/init.d/rc.d
---with-docdir        /home/joe/doc/smartmontools-5.X
-
-This is useful for test installs in a harmless subdirectory somewhere.
-
-Here are the four possible cases for the four variables above:
-
-Case 1:
---prefix not set
---variable not set
-===> VARIABLE gets default value above
-
-Case 2:
---prefix set
---variable not set
-===> VARIABLE gets PREFIX/ prepended to default value above
-
-Case 3:
---prefix not set
---variable set
-===> VARIABLE gets value that is set
+--with-exampledir     /home/joe/share/doc/smartmontools/examplescripts
+--with-drivedbdir     /home/joe/share/smartmontools
+--with-initscriptdir         [disabled]
+--with-systemdsystemunitdir  [see below]
 
-Case 4:
---prefix is set
---variable is set
-===> PREFIX is IGNORED, VARIABLE gets value that is set
+If systemd is present (and pkg-config reports /lib/systemd/system
+as the systemdsystemunitdir):
 
+--with-systemdsystemunitdir  /home/joe/lib/systemd/system
 
-Here are the differences with and without --enable-sample, assuming
-no other options specified (see above for details)
+else
 
-Case 1:
---enable-sample provided
-==> Files installed are:
-       /usr/local/etc/smartd.conf.sample
-       /usr/local/etc/rc.d/init.d/smartd.sample
+--with-systemdsystemunitdir  [disabled]
 
-Case 2:
---disable-sample provided or parameter left out
-==> Files installed are:
-       /usr/local/etc/smartd.conf
-       /usr/local/etc/rc.d/init.d/smartd
 
 Additional information about using configure can be found here:
-http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_mono/autoconf.html#SEC139
+https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts