summaryrefslogtreecommitdiffstats
path: root/INSTALL
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 17:14:45 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 17:14:45 +0000
commit43e8530e93493bb978c446a2023134bdd4277e50 (patch)
treee8c0d3c0c394b17381f48fb2d288f166b4f22440 /INSTALL
parentInitial commit. (diff)
downloadsmartmontools-upstream.tar.xz
smartmontools-upstream.zip
Adding upstream version 7.4.upstream/7.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL521
1 files changed, 521 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..b8ec6ee
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,521 @@
+Smartmontools installation instructions
+=======================================
+
+$Id: INSTALL 5390 2022-05-26 15:27:59Z chrfranke $
+
+Please also see the smartmontools home page:
+https://www.smartmontools.org/
+
+Table of contents:
+
+[1] System requirements
+[2] Installing from SVN
+[3] Installing from source tarball
+[4] Guidelines for different Linux distributions
+[5] Guidelines for FreeBSD
+[6] Guidelines for Darwin
+[7] Guidelines for NetBSD
+[8] Guidelines for Solaris
+[9] Guidelines for Cygwin
+[10] Guidelines for Windows
+[11] Guidelines for OS/2, eComStation
+[12] Guidelines for OpenBSD
+[13] Comments
+[14] Detailed description of ./configure options
+
+[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.
+
+ B) FreeBSD
+
+ For FreeBSD support, a 5-current kernel that includes ATAng is
+ required in order to support ATA drives. Even current versions of
+ ATAng will not support 100% operation, as the SMART status can not
+ be reliably retrieved. There is patch pending approval of the
+ ATAng driver maintainer that will address this issue.
+
+ C) Solaris
+
+ The SCSI code has been tested on a variety of Solaris 8 or later
+ systems. 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.
+
+ E) Cygwin
+
+ The code was tested with Cygwin DLL 3.3.* x86 and x86_64. It should
+ also work with other recent releases.
+
+ Both Cygwin and Windows versions of smartmontools share the same code
+ 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 10 up to 21H2. It should still work on
+ older Windows versions >= XP. Support for 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
+ 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.
+
+ It's also not possible at present to control when the offline
+ 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.
+
+ 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.
+ Only ATA disks are supported.
+
+[2] Installing from SVN
+=======================
+
+ 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.
+
+ The autogen.sh command is ONLY required when installing from
+ SVN. You need GNU Autoconf (version 2.64 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 SVN, then unpack the tarball:
+ tar xvf smartmontools-VERSION.tar.gz
+
+ Then:
+ ./configure
+ make
+ 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 and other settings:
+
+ --prefix=/usr/local
+ --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'
+ --without-drivedbinstdir
+ --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)
+ --with-signal-func=sigaction
+ --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
+ administrator.
+
+ For different installation locations or distributions, simply add
+ arguments to ./configure as shown in [4] below.
+
+ 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@listi.jpberlin.de
+
+Red Hat:
+ ./configure --sbindir=/usr/sbin \
+ --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:
+ ./configure
+
+ Otherwise use:
+ ./configure --sbindir=/usr/sbin \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --docdir=/usr/share/doc/smartmontools \
+ --with-initscriptdir=/etc/rc.d
+
+ And
+ removepkg smartmontools smartsuite (only root can do this)
+ before make install
+
+ The init script works on Slackware. You just have to add an entry like
+ the following in /etc/rc.d/rc.M or /etc/rc.d/rc.local:
+
+ if [ -x /etc/rc.d/smartd ]; then
+ . /etc/rc.d/smartd start
+ fi
+
+ To disable it:
+ chmod 644 /etc/rc.d/smartd
+
+ For a list of options:
+ /etc/rc.d/smartd
+
+SuSE:
+ ./configure --sbindir=/usr/sbin \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --docdir=/usr/share/doc/packages/smartmontools-VERSION \
+ --with-initscriptdir=/etc/init.d \
+
+[5] Guidelines for FreeBSD
+==========================
+ To match the way it will installed when it becomes available as a PORT, use
+ the following:
+
+ ./configure --prefix=/usr/local \
+ --docdir=/usr/local/share/doc/smartmontools-VERSION \
+ --with-initscriptdir=/usr/local/etc/rc.d/ \
+ --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
+
+
+[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
+
+ CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
+ ./configure --host=i386-apple-darwin \
+ --with-initscriptdir=/Library/StartupItems
+
+[7] Guidelines for NetBSD
+=========================
+
+ ./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 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:
+
+ env CC=cc CXX=CC ./configure [args]
+ make
+
+ The correct arguments [args] to configure are:
+ --sbindir=/usr/sbin \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --docdir=/usr/share/doc/smartmontools-VERSION \
+ --with-initscriptdir=/etc/init.d
+
+[9] Guidelines for Cygwin
+=========================
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-initscriptdir=/etc/rc.d/init.d
+
+[10] Guidelines for Windows
+===========================
+
+To compile statically linked Windows release with MinGW gcc on MSYS, use:
+
+ ./configure
+ make
+
+ Instead of using "make install", copy the .exe files into
+ some directory in the PATH.
+
+Cross-compile statically linked 32-bit and 64-bit versions with MinGW-w64:
+
+ ./configure --build=$(./config.guess) \
+ --host=i686-w64-mingw32
+
+ ./configure --build=$(./config.guess) \
+ --host=x86_64-w64-mingw32
+
+ Tested on Cygwin, Debian, Fedora and Ubuntu.
+
+
+To create the Windows installer, use:
+
+ make installer-win32
+
+ This builds the distribution directory and packs it into the
+ self-extracting install program
+
+ ./smartmontools-VERSION.win32-setup.exe
+
+ The installer is build using the command "makensis" from the 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:
+
+ make builddir_win64=../build64 installer_win32
+
+To both create and run the (interactive) installer, use:
+
+ make install-win32
+
+ Additional make targets are distdir-win32 to build the directory
+ only and cleandist-win32 for cleanup.
+
+ The binary distribution includes all documentation files converted
+ to DOS text file format and *.html and *.pdf preformatted man pages.
+
+To prepare a os_win32/vcNN directory for MS Visual Studio C++ builds,
+use the following on Cygwin or MSYS:
+
+ mkdir vctmp && cd vctmp
+ ../configure [... any MinGW option set from above ...]
+ make [vc=NN] config-vc
+
+ If vc=NN is not specified, it defaults to the latest supported version.
+ The MSVC project files (os_win32/vcNN/*) are included in SVN (but not
+ in source tarball). The target config-vc from a Makefile configured
+ for MinGW creates os_win32/vcNN/{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-vc: Remove all files generated during build.
+ - distclean-vc: Also remove all files generated by config-vc.
+ - maintainer-clean-vc: Also remove the .vs directory (.vs/*/.suo file)
+ and the *.vcxproj.user files.
+
+
+[11] Guidelines for OS/2, eComStation
+=====================================
+
+To compile the OS/2 code, please run
+
+ ./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 \
+ --docdir=/usr/local/share/doc/smartmontools-VERSION \
+ --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:
+ /etc/smartd.conf.sample
+
+[13] Comments
+============
+
+To compile from another directory, you can replace the step
+ ./configure [options]
+by the following:
+ mkdir objdir
+ 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:
+ make install
+with:
+ make DESTDIR=/home/myself/smartmontools-package install
+
+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:
+
+man smartd.conf
+man smartctl
+man smartd
+
+sudo /usr/sbin/smartctl -x /dev/sda
+
+Source and binary packages for Windows are available at
+https://sourceforge.net/projects/smartmontools/files/
+
+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/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_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/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, .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 man, man2html and groff are installed.
+On systems without man2html, the following command should work
+if groff is available:
+
+make MAN2HTML='groff -man -Thtml' htmlman
+
+
+[14] Detailed description of arguments to configure command
+===========================================================
+
+When you type:
+./configure --help
+a description of available configure options is printed
+[with defaults in square brackets]. See also section [3] above.
+
+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-exampledir /home/joe/share/doc/smartmontools/examplescripts
+--with-drivedbdir /home/joe/share/smartmontools
+--with-initscriptdir [disabled]
+--with-systemdsystemunitdir [see below]
+
+If systemd is present (and pkg-config reports /lib/systemd/system
+as the systemdsystemunitdir):
+
+--with-systemdsystemunitdir /home/joe/lib/systemd/system
+
+else
+
+--with-systemdsystemunitdir [disabled]
+
+
+Additional information about using configure can be found here:
+https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts