]> 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
 =======================================
 
 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:
 
 Please also see the smartmontools home page:
-http://smartmontools.sourceforge.net/
+https://www.smartmontools.org/
 
 Table of contents:
 
 [1] System requirements
 
 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
 [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
 =======================
 
 [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.
 
     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
     B) FreeBSD
 
     For FreeBSD support, a 5-current kernel that includes ATAng is
@@ -90,85 +45,52 @@ Table of contents:
 
     C) Solaris
 
 
     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
     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
 
 
     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.
 
     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
     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
 
 
     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.
 
 
     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
     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.
     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.
 
     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.
 
     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:
 
     Then type:
+    cd smartmontools
     ./autogen.sh
     and continue with step [3] below, skipping the "unpack the tarball" step.
 
     ./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
     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
 ======================================
 
 
 [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
 
     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
     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
     --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-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
 
     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.
 
     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:
 
 [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                               \
 
 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:
 
 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                           \
   ./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)
 
   And
   removepkg smartmontools smartsuite (only root can do this)
@@ -321,8 +239,8 @@ SuSE:
   ./configure --sbindir=/usr/sbin                                        \
               --sysconfdir=/etc                                          \
               --mandir=/usr/share/man                                    \
   ./configure --sbindir=/usr/sbin                                        \
               --sysconfdir=/etc                                          \
               --mandir=/usr/share/man                                    \
+              --docdir=/usr/share/doc/packages/smartmontools-VERSION     \
               --with-initscriptdir=/etc/init.d                           \
               --with-initscriptdir=/etc/init.d                           \
-              --with-docdir=/usr/share/doc/packages/smartmontools-VERSION
 
 [5] Guidelines for FreeBSD
 ==========================
 
 [5] Guidelines for FreeBSD
 ==========================
@@ -330,128 +248,90 @@ SuSE:
   the following:
 
   ./configure --prefix=/usr/local                                      \
   the following:
 
   ./configure --prefix=/usr/local                                      \
+              --docdir=/usr/local/share/doc/smartmontools-VERSION      \
               --with-initscriptdir=/usr/local/etc/rc.d/                \
               --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:
 
   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
 =========================
 
 
 [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
 
   ./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 \
     ./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
 
 [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
 
 
     ./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                            \
     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
 
      --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
 =========================
 
 [9] Guidelines for Cygwin
 =========================
 
-Same as Red Hat:
   ./configure --prefix=/usr                 \
               --sysconfdir=/etc             \
   ./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
 
 [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.
 
   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
 
 
   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
   ./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:
 
 
 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
   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
 
 
 [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
 
 
 To compile the OS/2 code, please run
 
-  ./os_os2/configure.os2
+  ./configure
   make
   make install
 
 [12] Guidelines for OpenBSD
   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                                      \
   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:
   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
 ============
 
 [13] Comments
 ============
@@ -534,6 +409,11 @@ by the following:
   cd objdir
   ../configure [options]
 
   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:
 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
 
 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:
 
 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
 
 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:
 
 
 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/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/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/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
 
 The commands:
 
 make htmlman
+make pdfman
 make txtman
 
 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
 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:
 
 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:
 ===========================================================
 
 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
 
 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
 --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:
 
 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