]> 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 fcffe649b81983d3980fc9430fefd39699c787e4..7a6fb6e363970c9e6eb7ff77e251f9a139a2806e 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,10 +1,10 @@
 Smartmontools installation instructions
 =======================================
 
-$Id: INSTALL 4574 2017-10-29 15:41:13Z chrfranke $
+$Id: INSTALL 4880 2018-12-29 20:27:01Z chrfranke $
 
 Please also see the smartmontools home page:
-http://www.smartmontools.org/
+https://www.smartmontools.org/
 
 Table of contents:
 
@@ -26,6 +26,9 @@ 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
@@ -42,29 +45,28 @@ 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 2.9.0-3 x86 and x86_64. It should also
+    The code was tested on Cygwin 2.11.* x86 and x86_64.  It should also
     work on other recent releases.
 
     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 XP SP3, 2003, Vista, Windows 7, 8, 8.1
-    and Windows 10 up to 1709.  Support von Windows 9x/ME and NT4 was
+    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
@@ -77,13 +79,18 @@ Table of contents:
     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.
@@ -92,32 +99,7 @@ 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:
@@ -137,9 +119,10 @@ Table of contents:
 =======================
 
     Get the sources from the SVN repository:
-    svn co http://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools smartmontools
+    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.
 
@@ -152,7 +135,7 @@ Table of contents:
 ======================================
 
     If you are NOT installing from SVN, then unpack the tarball:
-    tar zxvf smartmontools-5.VERSION.tar.gz
+    tar xvf smartmontools-VERSION.tar.gz
 
     Then:
     ./configure
@@ -172,26 +155,31 @@ Table of contents:
     --mandir='${datarootdir}/man'
     --docdir='${datarootdir}/doc/smartmontools'
     --disable-sample
-    --with-systemdsystemunitdir=auto
-    --with-systemdenvfile=auto
-    --with-initscriptdir=auto
+    --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='/bin:/usr/bin'
+    --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
-    --without-nvme-devicescan
+    --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-working-snprintf (Windows: guessed)
+    --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
@@ -200,11 +188,8 @@ 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, add
-    CXXFLAGS='your options' to ./configure command.
-
     The first output line of smartctl and smartd provides information
-    about release number, last SVN checkin date and revison, platform,
+    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)"'
@@ -215,17 +200,6 @@ Table of contents:
 Note: Please send corrections/additions to:
 smartmontools-support@listi.jpberlin.de
 
-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                                 \
-              --docdir=/usr/local/share/doc/smartmontools             \
-              --with-initscriptdir=/usr/local/etc/init.d
-
 Red Hat:
   ./configure --sbindir=/usr/sbin                               \
               --sysconfdir=/etc                                 \
@@ -287,6 +261,7 @@ SuSE:
 
 [6] Guidelines for Darwin
 =========================
+
   ./configure --with-initscriptdir=/Library/StartupItems
 
   If you'd like to build the i386 version on a powerpc machine, you can
@@ -298,6 +273,7 @@ SuSE:
 
 [7] Guidelines for NetBSD
 =========================
+
   ./configure --prefix=/usr/pkg                                       \
               --docdir=/usr/pkg/share/doc/smartmontools
 
@@ -305,7 +281,7 @@ SuSE:
 ==========================
 
     smartmontools has been partially but not completely ported to
-    Solaris.  It includes complete SCSI support but no ATA or 3ware
+    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++.
 
@@ -326,48 +302,13 @@ SuSE:
      --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                           \
-              --docdir=/usr/share/doc/smartmontools             \
               --with-initscriptdir=/etc/rc.d/init.d
 
-  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.
-
-  Files may also be checked out with a non-Cygwin SVN client which uses CR/LF
-  for svn:eol-style=native.  The "autogen.sh" script has svn:eol-style=LF.
-  Bash option "-o igncr" is not required.
-
 [10] Guidelines for Windows
 ===========================
 
@@ -387,22 +328,10 @@ Cross-compile statically linked 32-bit and 64-bit versions with MinGW-w64:
   ./configure --build=$(./config.guess) \
               --host=x86_64-w64-mingw32
 
-  Tested on Cygwin, Debian and Fedora.
-
-
-To build the Windows binary distribution, use:
-
-  make dist-win32
-
-  This builds the distribution in directory
+  Tested on Cygwin, Debian, Fedora and Ubuntu.
 
-  ./smartmontools-VERSION.win32/
 
-  and packs it into
-
-  ./smartmontools-VERSION.win32.zip
-
-To create a Windows installer, use:
+To create the Windows installer, use:
 
   make installer-win32
 
@@ -412,12 +341,7 @@ 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.
-
-  It is also possible to (cross-)build the installer on Linux.
-  This was successfully tested on Debian and Fedora with package
-  "nsis".
+  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:
@@ -432,7 +356,7 @@ 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.
+  to DOS text file format and *.html and *.pdf preformatted man pages.
 
 To prepare os_win32/vc14 directory for MS Visual Studio C++ 2015 builds,
 use the following on MSYS or Cygwin:
@@ -444,8 +368,10 @@ use the following on MSYS or Cygwin:
   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 skript must be run outside of the source directory to
+  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
@@ -459,13 +385,13 @@ To compile the OS/2 code, please run
 
 [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                                        \
               --docdir=/usr/local/share/doc/smartmontools-VERSION      \
-              --without-initscriptdir                                  \
               --enable-sample
 
   NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
@@ -504,18 +430,12 @@ man smartd.conf
 man smartctl
 man smartd
 
-/usr/sbin/smartctl -s on -o on -S on /dev/sda (only root can do this)
-/usr/sbin/smartctl -a /dev/sda (only root can do this)
-
-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.
+sudo /usr/sbin/smartctl -x /dev/sda
 
 Source and binary packages for Windows are available at
-http://sourceforge.net/projects/smartmontools/files/
+https://sourceforge.net/projects/smartmontools/files/
 
-Refer to http://www.smartmontools.org/wiki/Download for any additional
+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:
@@ -524,7 +444,7 @@ The following files are installed if ./configure has no options:
 /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_warning.sh                        [Warning skript for smartd daemon]
+/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]
@@ -535,18 +455,14 @@ The following files are installed if ./configure has no options:
 /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                 [Things that need to be done/fixed]
+/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' and '--with-initscriptdir=auto',
-one of the following files may also be installed:
+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]
-/usr/local/etc/rc.d/init.d/smartd                       [Init/Startup script for smartd]
-/usr/local/etc/init.d/smartd                            [Init/Startup script for smartd]
-/usr/local/etc/rc.d/smartd                              [Init/Startup script for smartd]
 
 If /usr/local/etc/smartd.conf exists and differs from the
 default then the default configuration file is installed as
@@ -569,19 +485,6 @@ if groff is available:
 make MAN2HTML='groff -man -Thtml' htmlman
 
 
-Some of the source files are prepared for the documentation
-generator Doxygen (http://www.doxygen.org/). If Doxygen is installed,
-the command:
-
-doxygen
-
-creates HTML documentation in doc/html and LaTeX documentation
-in doc/latex. If TeX is installed, the following command creates
-a documentation file doc/latex/refman.pdf:
-
-( cd doc/latex && make pdf )
-
-
 [14] Detailed description of arguments to configure command
 ===========================================================
 
@@ -601,15 +504,10 @@ Old option                 Replacement
 --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
 
 
-The defaults for --with-initscriptdir and --with-systemdsystemunitdir are
-guessed such that the following rules apply:
-- If --prefix=/usr --sysconfdir=/etc is specified, the guessed directories
-  should be the defaults used by the current OS or distribution.
-- If --sysconfdir=/etc is NOT specified, the guessed directories should
-  always be below ${prefix} or below ${sysconfdir}.
-
 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:
@@ -619,51 +517,18 @@ variables then the different directories that are used would be:
 --sysconfdir          /home/joe/etc
 --with-exampledir     /home/joe/share/doc/smartmontools/examplescripts
 --with-drivedbdir     /home/joe/share/smartmontools
---with-initscriptdir         [see below]
+--with-initscriptdir         [disabled]
 --with-systemdsystemunitdir  [see below]
 
 If systemd is present (and pkg-config reports /lib/systemd/system
 as the systemdsystemunitdir):
 
---with-initscriptdir         [disabled]
 --with-systemdsystemunitdir  /home/joe/lib/systemd/system
 
-else if /etc/rc.d/init.d exists:
-
---with-initscriptdir         /home/joe/etc/rc.d/init.d
---with-systemdsystemunitdir  [disabled]
-
-else if /etc/init.d exists:
-
---with-initscriptdir         /home/joe/etc/init.d
---with-systemdsystemunitdir  [disabled]
-
-else if /etc/rc.d exists:
-
---with-initscriptdir         /home/joe/etc/rc.d
---with-systemdsystemunitdir  [disabled]
-
 else
 
---with-initscriptdir         [disabled]
 --with-systemdsystemunitdir  [disabled]
 
 
-Here are the differences with and without --enable-sample, assuming
-that initscript location is set and no other options specified 
-(see above for details)
-
-Case 1:
---enable-sample provided
-==> Files installed are:
-        /usr/local/etc/smartd.conf.sample
-        /usr/local/etc/rc.d/init.d/smartd.sample
-
-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:
 https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts