diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 17:14:45 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 17:14:45 +0000 |
commit | 43e8530e93493bb978c446a2023134bdd4277e50 (patch) | |
tree | e8c0d3c0c394b17381f48fb2d288f166b4f22440 /INSTALL | |
parent | Initial commit. (diff) | |
download | smartmontools-43e8530e93493bb978c446a2023134bdd4277e50.tar.xz smartmontools-43e8530e93493bb978c446a2023134bdd4277e50.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-- | INSTALL | 521 |
1 files changed, 521 insertions, 0 deletions
@@ -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 |