]> git.proxmox.com Git - mirror_smartmontools-debian.git/blame - INSTALL
import smartmontools 7.0
[mirror_smartmontools-debian.git] / INSTALL
CommitLineData
832b75ed
GG
1Smartmontools installation instructions
2=======================================
3
ff28b140 4$Id: INSTALL 4880 2018-12-29 20:27:01Z chrfranke $
832b75ed
GG
5
6Please also see the smartmontools home page:
ff28b140 7https://www.smartmontools.org/
832b75ed
GG
8
9Table of contents:
10
11[1] System requirements
2127e193 12[2] Installing from SVN
832b75ed
GG
13[3] Installing from source tarball
14[4] Guidelines for different Linux distributions
15[5] Guidelines for FreeBSD
16[6] Guidelines for Darwin
17[7] Guidelines for NetBSD
18[8] Guidelines for Solaris
19[9] Guidelines for Cygwin
20[10] Guidelines for Windows
21[11] Guidelines for OS/2, eComStation
22[12] Guidelines for OpenBSD
23[13] Comments
24[14] Detailed description of ./configure options
25
26[1] System requirements
27=======================
28
ff28b140
TL
29 Note: Some of this info is outdated as it refers to very old OS
30 versions.
31
832b75ed
GG
32 A) Linux
33
34 Any Linux distribution will support smartmontools if it has a
35 kernel version greater than or equal to 2.2.14. So any recent
36 Linux distribution should support smartmontools.
37
832b75ed
GG
38 B) FreeBSD
39
40 For FreeBSD support, a 5-current kernel that includes ATAng is
41 required in order to support ATA drives. Even current versions of
42 ATAng will not support 100% operation, as the SMART status can not
43 be reliably retrieved. There is patch pending approval of the
44 ATAng driver maintainer that will address this issue.
45
46 C) Solaris
47
ff28b140 48 The SCSI code has been tested on a variety of Solaris 8 or later
832b75ed
GG
49 systems. ATA/IDE code only works on SPARC platform. All tested
50 kernels worked correctly.
51
52 D) NetBSD/OpenBSD
53
54 The code was tested on a 1.6ZG (i.e., 1.6-current) system. It should
ff28b140 55 also function under 1.6.1 and later releases.
832b75ed
GG
56
57 E) Cygwin
58
ff28b140 59 The code was tested on Cygwin 2.11.* x86 and x86_64. It should also
f9e10201 60 work on other recent releases.
832b75ed
GG
61
62 Both Cygwin and Windows versions of smartmontools share the same code
ff28b140
TL
63 to access the raw devices. The information in the "Windows" section
64 below also applies to the Cygwin version.
832b75ed
GG
65
66 F) Windows
67
a86ec89e 68 The code was tested on Windows XP SP3, 2003, Vista, Windows 7, 8, 8.1
ff28b140 69 and Windows 10 up to 1809. Support von Windows 9x/ME and NT4 was
a86ec89e 70 removed after smartmontools 5.43.
832b75ed 71
bed94269
GI
72 ATA or SATA devices are supported if the device driver implements
73 the SMART IOCTLs or IOCTL_IDE_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH.
ee38a438
GI
74 Only the latter provides full pass-through support which is needed
75 for all smartmontools features.
832b75ed 76
f9e10201
JD
77 SATA devices behind a Intel RST driver are accessed through CSMI.
78
bed94269
GI
79 SCSI and USB devices are accessed through SPTI. Special driver support
80 is not required.
4d59bff9 81
ff28b140
TL
82 NVMe devices are supported with the Windows 10 NVMe driver or with
83 vendor specific drivers supporting NVME_PASS_THROUGH.
84
832b75ed
GG
85 G) MacOS/Darwin
86
87 The code was tested on MacOS 10.3.4. It should work from 10.3
88 forwards. It doesn't support 10.2.
89
ff28b140
TL
90 Only basic SMART commands are supported for ATA devices.
91
4d59bff9 92 It's important to know that on 10.3.x, some things don't work
ff28b140 93 due to bugs in the libraries used, you cannot run
4d59bff9
GG
94 a short test or switch SMART support off on a drive; if you try,
95 you will just run an extended test or switch SMART support on. So
96 don't panic when your "short" test seems to be taking hours.
832b75ed
GG
97
98 It's also not possible at present to control when the offline
99 routine runs. If your drive doesn't have it running automatically by
100 default, you can't run it at all.
101
ff28b140 102 SCSI devices are not currently supported.
832b75ed 103
f4e463df
GI
104 The OS X SAT SMART Driver provides access to SMART data for SAT capable
105 USB and Firewire devices:
106 https://github.com/kasbert/OS-X-SAT-SMART-Driver
107 https://github.com/RJVB/OS-X-SAT-SMART-Driver
108 This does not require any smartctl -d TYPE option and should work also
109 with older smartmontools releases.
110
832b75ed
GG
111 H) OS/2, eComStation
112
113 The code was tested on eComStation 1.1, but it should work on all versions
114 of OS/2.
115 Innotek LibC 0.5 runtime is required.
a86ec89e 116 Only ATA disks are supported.
832b75ed 117
2127e193 118[2] Installing from SVN
832b75ed 119=======================
2127e193
GI
120
121 Get the sources from the SVN repository:
ff28b140 122 svn co https://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools smartmontools
832b75ed
GG
123
124 Then type:
ff28b140 125 cd smartmontools
832b75ed
GG
126 ./autogen.sh
127 and continue with step [3] below, skipping the "unpack the tarball" step.
128
832b75ed 129 The autogen.sh command is ONLY required when installing from
f9e10201
JD
130 SVN. You need GNU Autoconf (version 2.60 or greater), GNU Automake
131 (version 1.10 or greater) and their dependencies installed in order
132 to run it.
832b75ed
GG
133
134[3] Installing from the source tarball
135======================================
136
2127e193 137 If you are NOT installing from SVN, then unpack the tarball:
ff28b140 138 tar xvf smartmontools-VERSION.tar.gz
832b75ed
GG
139
140 Then:
141 ./configure
142 make
143 make install (you may need to be root to do this)
144
145 As shown (with no options to ./configure) this defaults to the
a86ec89e
GI
146 following set of installation directories and other settings:
147
832b75ed 148 --prefix=/usr/local
a86ec89e
GI
149 --exec-prefix='${prefix}'
150 --sbindir='${exec_prefix}/sbin'
151 --sysconfdir='${prefix}/etc'
152 --localstatedir='${prefix}/var'
153 --datarootdir='${prefix}/share'
154 --datadir='${datarootdir}'
155 --mandir='${datarootdir}/man'
156 --docdir='${datarootdir}/doc/smartmontools'
832b75ed 157 --disable-sample
ff28b140
TL
158 --disable-scsi-cdb-check
159 --enable-fast-lebe
160 --without-initscriptdir
a86ec89e
GI
161 --with-exampledir='${docdir}/examplescripts'
162 --with-drivedbdir='${datadir}/smartmontools'
f9e10201
JD
163 --with-update-smart-drivedb
164 --with-gnupg
a86ec89e
GI
165 --with-smartdscriptdir='${sysconfdir}'
166 --with-smartdplugindir='${smartdscriptdir}/smartd_warning.d'
ff28b140 167 --with-scriptpath='/usr/local/bin:/bin:/usr/bin'
a86ec89e
GI
168 --without-savestates
169 --without-attributelog
170 --with-os-deps='os_linux.o dev_areca.o' (platform specific)
cfbba5b9 171 --without-selinux
a86ec89e 172 --with-libcap-ng=auto
ff28b140
TL
173 --with-libsystemd=auto
174 --with-systemdsystemunitdir=auto
175 --with-systemdenvfile=auto
176 --with-nvme-devicescan (Linux, Windows: yes; Others: no)
f9e10201 177 --without-solaris-sparc-ata (Solaris SPARC only)
ff28b140
TL
178 --with-signal-func=sigaction
179 --with-working-snprintf
f9e10201
JD
180 --with-mingw-aslr=auto (Windows only)
181 --with-cxx11-option=auto
ff28b140 182 --without-cxx11-regex
832b75ed
GG
183
184 These will usually not overwrite existing "distribution" installations on
185 Linux Systems since the FHS reserves this area for use by the system
186 administrator.
187
188 For different installation locations or distributions, simply add
189 arguments to ./configure as shown in [4] below.
190
2127e193 191 The first output line of smartctl and smartd provides information
ff28b140 192 about release number, last SVN checkin date and revision, platform,
2127e193
GI
193 and package. The latter defaults to "(local build)" and can be
194 changed by the variable BUILD_INFO, for example:
195 make BUILD_INFO='"(Debian 5.39-2)"'
196
832b75ed
GG
197[4] Guidelines for different Linux distributions
198================================================
199
200Note: Please send corrections/additions to:
f9e10201 201smartmontools-support@listi.jpberlin.de
832b75ed 202
832b75ed
GG
203Red Hat:
204 ./configure --sbindir=/usr/sbin \
cfbba5b9
GI
205 --sysconfdir=/etc \
206 --mandir=/usr/share/man \
d008864d
GI
207 --docdir=/usr/share/doc/smartmontools \
208 --with-initscriptdir=/etc/rc.d/init.d
832b75ed
GG
209
210Slackware:
211 If you don't want to overwrite any "distribution" package, use:
212 ./configure
213
214 Otherwise use:
215 ./configure --sbindir=/usr/sbin \
216 --sysconfdir=/etc \
217 --mandir=/usr/share/man \
d008864d
GI
218 --docdir=/usr/share/doc/smartmontools \
219 --with-initscriptdir=/etc/rc.d
832b75ed
GG
220
221 And
222 removepkg smartmontools smartsuite (only root can do this)
223 before make install
224
225 The init script works on Slackware. You just have to add an entry like
226 the following in /etc/rc.d/rc.M or /etc/rc.d/rc.local:
227
228 if [ -x /etc/rc.d/smartd ]; then
229 . /etc/rc.d/smartd start
230 fi
231
232 To disable it:
233 chmod 644 /etc/rc.d/smartd
234
235 For a list of options:
236 /etc/rc.d/smartd
237
238SuSE:
239 ./configure --sbindir=/usr/sbin \
240 --sysconfdir=/etc \
241 --mandir=/usr/share/man \
d008864d 242 --docdir=/usr/share/doc/packages/smartmontools-VERSION \
832b75ed 243 --with-initscriptdir=/etc/init.d \
832b75ed
GG
244
245[5] Guidelines for FreeBSD
246==========================
247 To match the way it will installed when it becomes available as a PORT, use
248 the following:
249
250 ./configure --prefix=/usr/local \
d008864d 251 --docdir=/usr/local/share/doc/smartmontools-VERSION \
832b75ed 252 --with-initscriptdir=/usr/local/etc/rc.d/ \
cfbba5b9 253 --enable-sample
832b75ed 254
832b75ed
GG
255 NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
256 be installed with the string '.sample' append to the name, so you will end
257 up with the following:
cfbba5b9
GI
258 /usr/local/etc/smartd.conf.sample
259 /usr/local/etc/rc.d/smartd.sample
832b75ed
GG
260
261
262[6] Guidelines for Darwin
263=========================
ff28b140 264
832b75ed
GG
265 ./configure --with-initscriptdir=/Library/StartupItems
266
4d59bff9
GG
267 If you'd like to build the i386 version on a powerpc machine, you can
268 use
269
a37e7145 270 CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
4d59bff9 271 ./configure --host=i386-apple-darwin \
cfbba5b9 272 --with-initscriptdir=/Library/StartupItems
832b75ed 273
d008864d
GI
274[7] Guidelines for NetBSD
275=========================
ff28b140 276
832b75ed 277 ./configure --prefix=/usr/pkg \
d008864d 278 --docdir=/usr/pkg/share/doc/smartmontools
832b75ed
GG
279
280[8] Guidelines for Solaris
281==========================
282
283 smartmontools has been partially but not completely ported to
ff28b140 284 Solaris. It includes complete SCSI support but no ATA or NVMe
2127e193
GI
285 support. It can be compiled with either CC (Sun's C++ compiler)
286 or GNU g++.
287
288 To compile with g++:
832b75ed
GG
289
290 ./configure [args]
291 make
292
2127e193 293 To compile with Sun CC:
832b75ed 294
2127e193 295 env CC=cc CXX=CC ./configure [args]
832b75ed
GG
296 make
297
298 The correct arguments [args] to configure are:
299 --sbindir=/usr/sbin \
300 --sysconfdir=/etc \
301 --mandir=/usr/share/man \
d008864d 302 --docdir=/usr/share/doc/smartmontools-VERSION \
832b75ed
GG
303 --with-initscriptdir=/etc/init.d
304
832b75ed
GG
305[9] Guidelines for Cygwin
306=========================
307
832b75ed
GG
308 ./configure --prefix=/usr \
309 --sysconfdir=/etc \
d008864d 310 --with-initscriptdir=/etc/rc.d/init.d
832b75ed 311
832b75ed 312[10] Guidelines for Windows
eb07ddf2 313===========================
832b75ed 314
f9e10201 315To compile statically linked Windows release with MinGW gcc on MSYS, use:
832b75ed 316
eb07ddf2 317 ./configure
832b75ed
GG
318 make
319
320 Instead of using "make install", copy the .exe files into
321 some directory in the PATH.
322
a86ec89e 323Cross-compile statically linked 32-bit and 64-bit versions with MinGW-w64:
eb07ddf2 324
7f0798ef 325 ./configure --build=$(./config.guess) \
f9e10201 326 --host=i686-w64-mingw32
eb07ddf2 327
cfbba5b9 328 ./configure --build=$(./config.guess) \
f9e10201 329 --host=x86_64-w64-mingw32
7f0798ef 330
ff28b140 331 Tested on Cygwin, Debian, Fedora and Ubuntu.
832b75ed 332
832b75ed 333
ff28b140 334To create the Windows installer, use:
4d59bff9
GG
335
336 make installer-win32
337
338 This builds the distribution directory and packs it into the
339 self-extracting install program
340
341 ./smartmontools-VERSION.win32-setup.exe
342
343 The installer is build using the command "makensis" from the NSIS
ff28b140 344 package (https://nsis.sourceforge.net/).
7f0798ef 345
f4e463df
GI
346To create a combined 32-/64-bit installer, use this in 32-bit build
347directory if 64-build directory is at ../build64:
348
349 make builddir_win64=../build64 installer_win32
350
4d59bff9
GG
351To both create and run the (interactive) installer, use:
352
353 make install-win32
354
832b75ed
GG
355 Additional make targets are distdir-win32 to build the directory
356 only and cleandist-win32 for cleanup.
357
358 The binary distribution includes all documentation files converted
ff28b140 359 to DOS text file format and *.html and *.pdf preformatted man pages.
cfbba5b9 360
f9e10201 361To prepare os_win32/vc14 directory for MS Visual Studio C++ 2015 builds,
d008864d 362use the following on MSYS or Cygwin:
2127e193
GI
363
364 mkdir vctmp && cd vctmp
cfbba5b9 365 ../configure [... any MinGW option set from above ...]
f9e10201 366 make config-vc14
832b75ed 367
f9e10201
JD
368 The MSVC project files (os_win32/vc14/*) are included in SVN (but not
369 in source tarball). The target config-vc14 from a Makefile configured
370 for MinGW creates os_win32/vc14/{config.h,smart*.rc,svnversion.h}.
ff28b140 371 The configure script must be run outside of the source directory to
a86ec89e 372 avoid inclusion of the original config.h.
ff28b140
TL
373 Additional MSVC related make targets are clean-vc14, distclean-vc14
374 and maintainer-clean-vc14.
832b75ed 375
832b75ed
GG
376
377[11] Guidelines for OS/2, eComStation
378=====================================
379
380To compile the OS/2 code, please run
381
f9e10201 382 ./configure
832b75ed
GG
383 make
384 make install
385
386[12] Guidelines for OpenBSD
d008864d 387===========================
ff28b140 388
832b75ed
GG
389 To match the way it will installed when it becomes available as a PORT, use
390 the following:
391
392 ./configure --prefix=/usr/local \
d008864d
GI
393 --sysconfdir=/etc \
394 --docdir=/usr/local/share/doc/smartmontools-VERSION \
cfbba5b9 395 --enable-sample
832b75ed 396
d008864d 397 NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
832b75ed
GG
398 be installed with the string '.sample' append to the name, so you will end
399 up with the following:
d008864d 400 /etc/smartd.conf.sample
832b75ed
GG
401
402[13] Comments
403============
404
405To compile from another directory, you can replace the step
406 ./configure [options]
407by the following:
408 mkdir objdir
409 cd objdir
410 ../configure [options]
411
d008864d
GI
412Man pages contents is platform-specific by default. Info specific to other
413platforms may be not visible. To generate man pages with full contents use:
414
415 make os_man_filter=
416
832b75ed
GG
417To install to another destination (used mainly by package maintainers,
418or to examine the package contents without risk of modifying any
419system files) you can replace the step:
420 make install
421with:
422 make DESTDIR=/home/myself/smartmontools-package install
423
d008864d 424Use a full path. Paths like ./smartmontools-package may not work.
832b75ed
GG
425
426After installing smartmontools, you can read the man pages, and try
427out the commands:
428
429man smartd.conf
430man smartctl
431man smartd
432
ff28b140 433sudo /usr/sbin/smartctl -x /dev/sda
832b75ed 434
cfbba5b9 435Source and binary packages for Windows are available at
ff28b140 436https://sourceforge.net/projects/smartmontools/files/
832b75ed 437
ff28b140 438Refer to https://www.smartmontools.org/wiki/Download for any additional
d2e702cf 439download and installation instructions.
832b75ed
GG
440
441The following files are installed if ./configure has no options:
442
832b75ed 443/usr/local/sbin/smartctl [Executable command-line utility]
cfbba5b9
GI
444/usr/local/sbin/smartd [Executable daemon]
445/usr/local/sbin/update-smart-drivedb [Drive database update script]
832b75ed 446/usr/local/etc/smartd.conf [Configuration file for smartd daemon]
ff28b140 447/usr/local/etc/smartd_warning.sh [Warning script for smartd daemon]
832b75ed
GG
448/usr/local/share/man/man5/smartd.conf.5 [Manual page]
449/usr/local/share/man/man8/smartctl.8 [Manual page]
450/usr/local/share/man/man8/smartd.8 [Manual page]
a86ec89e 451/usr/local/share/man/man8/update-smart-drivedb.8 [Manual page]
cfbba5b9 452/usr/local/share/doc/smartmontools/AUTHORS [Information about the authors and developers]
ee38a438 453/usr/local/share/doc/smartmontools/ChangeLog [A log of changes. Also see SVN]
cfbba5b9
GI
454/usr/local/share/doc/smartmontools/COPYING [GNU General Public License Version 2]
455/usr/local/share/doc/smartmontools/INSTALL [Installation instructions: what you're reading!]
a86ec89e 456/usr/local/share/doc/smartmontools/NEWS [Significant enhancements and fixes]
cfbba5b9 457/usr/local/share/doc/smartmontools/README [Overview]
ff28b140 458/usr/local/share/doc/smartmontools/TODO [No longer maintained]
cfbba5b9
GI
459/usr/local/share/doc/smartmontools/smartd.conf [Example configuration file for smartd]
460/usr/local/share/doc/smartmontools/examplescripts/ [Executable scripts for -M exec of smartd.conf (4 files)]
461/usr/local/share/smartmontools/drivedb.h [Drive database]
462
ff28b140 463Due to checks done by '--with-systemdsystemunitdir=auto', the following file may also be installed:
a86ec89e
GI
464
465/usr/local/lib/systemd/system/smartd.service [Systemd service file for smartd]
a86ec89e 466
cfbba5b9
GI
467If /usr/local/etc/smartd.conf exists and differs from the
468default then the default configuration file is installed as
469/usr/local/etc/smartd.conf.sample instead.
832b75ed
GG
470
471The commands:
472
473make htmlman
f9e10201 474make pdfman
832b75ed
GG
475make txtman
476
f9e10201 477may be used to build .html, .pdf and .txt preformatted man pages.
832b75ed
GG
478These are used by the dist-win32 make target to build the Windows
479distribution.
480The commands also work on other operating system configurations
f9e10201 481if suitable versions of man, man2html and groff are installed.
832b75ed
GG
482On systems without man2html, the following command should work
483if groff is available:
484
485make MAN2HTML='groff -man -Thtml' htmlman
486
487
488[14] Detailed description of arguments to configure command
489===========================================================
490
491When you type:
a86ec89e
GI
492./configure --help
493a description of available configure options is printed
494[with defaults in square brackets]. See also section [3] above.
495
496
f9e10201 497The following old configure options are no longer supported:
a86ec89e
GI
498
499Old option Replacement
500--with-docdir=DIR --docdir=DIR (autoconf >= 2.60)
501--enable-drivedb [no option needed]
502--disable-drivedb --without-drivedbdir
503--enable-savestates --with-savestates[=yes]
504--disable-savestates [no option needed]
505--enable-attrbutelog --with-attributelog[=yes]
506--disable-savestates [no option needed]
ff28b140
TL
507--with-initscriptdir[=yes] --with-initscriptdir=DIR
508--with-initscriptdir=auto --with-initscriptdir=DIR
a86ec89e 509
a23d5117 510
832b75ed
GG
511Here's an example:
512If you set --prefix=/home/joe and none of the other four
513variables then the different directories that are used would be:
514--sbindir /home/joe/sbin
a7e8ffec 515--docdir /home/joe/share/doc/smartmontools
832b75ed
GG
516--mandir /home/joe/share/man
517--sysconfdir /home/joe/etc
a7e8ffec
GI
518--with-exampledir /home/joe/share/doc/smartmontools/examplescripts
519--with-drivedbdir /home/joe/share/smartmontools
ff28b140 520--with-initscriptdir [disabled]
a7e8ffec
GI
521--with-systemdsystemunitdir [see below]
522
523If systemd is present (and pkg-config reports /lib/systemd/system
524as the systemdsystemunitdir):
525
a7e8ffec
GI
526--with-systemdsystemunitdir /home/joe/lib/systemd/system
527
a7e8ffec
GI
528else
529
a7e8ffec 530--with-systemdsystemunitdir [disabled]
832b75ed 531
832b75ed 532
832b75ed 533Additional information about using configure can be found here:
f9e10201 534https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts