Annotation of embedaddon/smartmontools/INSTALL, revision 1.1.1.1

1.1       misho       1: Smartmontools installation instructions
                      2: =======================================
                      3: 
                      4: $Id: INSTALL 3414 2011-09-09 21:07:55Z chrfranke $
                      5: 
                      6: Please also see the smartmontools home page:
                      7: http://smartmontools.sourceforge.net/
                      8: 
                      9: Table of contents:
                     10: 
                     11: [1] System requirements
                     12: [2] Installing from SVN
                     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: 
                     29:     A) Linux
                     30: 
                     31:     Any Linux distribution will support smartmontools if it has a
                     32:     kernel version greater than or equal to 2.2.14. So any recent
                     33:     Linux distribution should support smartmontools.
                     34: 
                     35:     There are two parts of smartmontools that may require a patched or
                     36:     nonstandard kernel:
                     37: 
                     38:     (1) To get the ATA RETURN SMART STATUS command, the kernel needs
                     39:     to support the HDIO_DRIVE_TASK ioctl().
                     40: 
                     41:     (2) To run Selective Self-tests, the kernel needs to support the
                     42:     HDIO_DRIVE_TASKFILE ioctl().
                     43: 
                     44:     If your kernel does not support one or both of these ioctls, then
                     45:     smartmontools will "mostly" work.  The things that don't work will
                     46:     give you harmless warning messages.
                     47: 
                     48:     For item (1) above, any 2.4 or 2.6 series kernel will provide
                     49:     HDIO_DRIVE_TASK support.  Some 2.2.20 and later kernels also
                     50:     provide this support IF they're properly patched and
                     51:     configured. [Andre Hedrick's IDE patches may be found at
                     52:     http://www.nic.funet.fi/pub/linux/kernel/people/hedrick/ide-2.2.20/
                     53:     or are available from your local kernel.org mirror.  They are not
                     54:     updated for 2.2.21 or later, and may contain a few bugs.].
                     55:     If the configuration option CONFIG_IDE_TASK_IOCTL
                     56:     exists in your 2.2.X kernel source code tree, then your 2.2.X
                     57:     kernel will probably support this ioctl. [Note that this kernel
                     58:     configuration option does NOT need to be enabled. Its presence
                     59:     merely indicates that the required HDIO_DRIVE_TASK ioctl() is
                     60:     supported.]
                     61: 
                     62:     For item (2) above, your kernel must be configured with the kernel
                     63:     configuration option CONFIG_IDE_TASKFILE_IO enabled.  This
                     64:     configuration option is present in all 2.4 and 2.6 series
                     65:     kernels. Some 2.2.20 and later kernels also provide this support
                     66:     IF they're properly patched and configured as described above.
                     67: 
                     68:     Please see FAQ section of the URL above for additional details.
                     69: 
                     70:     If you are using 3ware controllers, for full functionality you
                     71:     must either use version 1.02.00.037 or greater of the 3w-xxxx
                     72:     driver, or patch earlier 3ware 3w-xxxx drivers.  See
                     73:     http://smartmontools.sourceforge.net/3w-xxxx.txt
                     74:     for the patch.  The version 1.02.00.037 3w-xxxx.c driver was
                     75:     incorporated into kernel 2.4.23-bk2 on 3 December 2003 and into
                     76:     kernel 2.6.0-test5-bk11 on 23 September 2003.
                     77: 
                     78:     B) FreeBSD
                     79: 
                     80:     For FreeBSD support, a 5-current kernel that includes ATAng is
                     81:     required in order to support ATA drives.  Even current versions of
                     82:     ATAng will not support 100% operation, as the SMART status can not
                     83:     be reliably retrieved.  There is patch pending approval of the
                     84:     ATAng driver maintainer that will address this issue.
                     85: 
                     86:     C) Solaris
                     87: 
                     88:     The SCSI code has been tested on a variety of Solaris 8 and 9
                     89:     systems.  ATA/IDE code only works on SPARC platform.  All tested
                     90:     kernels worked correctly.
                     91: 
                     92:     D) NetBSD/OpenBSD
                     93: 
                     94:     The code was tested on a 1.6ZG (i.e., 1.6-current) system. It should
                     95:     also function under 1.6.1 and later releases (unverified).  Currently
                     96:     it doesn't support ATA devices on 3ware RAID controllers.
                     97: 
                     98:     E) Cygwin
                     99: 
                    100:     The code was tested on Cygwin 1.7.7-1. It should also work on other
                    101:     recent releases.
                    102: 
                    103:     Both Cygwin and Windows versions of smartmontools share the same code
                    104:     to access the IDE/ATA or SCSI devices. The information in the "Windows"
                    105:     section below also applies to the Cygwin version.
                    106: 
                    107:     F) Windows
                    108: 
                    109:     The code was tested on Windows 98SE, ME, NT4(SP5,SP6), 2000(SP4),
                    110:     XP(up to SP3), 2003, Vista and Windows 7.
                    111: 
                    112:     -- Windows 9x/ME
                    113: 
                    114:     On 9x/ME, only standard (legacy) IDE/ATA devices 0-3 are supported.
                    115:     The driver SMARTVSD.VXD must be present in WINDOWS\SYSTEM\IOSUBSYS
                    116:     to get loaded at Windows startup. The default location in a new
                    117:     installation of some versions of Windows is the WINDOWS\SYSTEM folder.
                    118:     In this case, move SMARTVSD.VXD to WINDOWS\SYSTEM\IOSUBSYS and reboot
                    119:     (http://support.microsoft.com/kb/265854/en-us).
                    120: 
                    121:     SMARTVSD.VXD relies on the standard IDE port driver ESDI_506.PDR.
                    122:     If the system uses a vendor specific driver, access of SMART data
                    123:     is not possible.
                    124: 
                    125:     Some ATA controllers (e.g. Promise) provided a custom SMARTVSD.VXD
                    126:     for their Win9x/ME driver. To access SMART data from both the legacy
                    127:     (/dev/h[a-d]) and this additional (/dev/hd[e-h]) controller, rename
                    128:     this file to SMARTVSE.VXD. Open the file with a hex editor and replace
                    129:     all occurrences of the string "SMARTVSD" with "SMARTVSE". Then reinstall
                    130:     the original Windows SMARTVSD.VXD.
                    131: 
                    132:     To access SCSI and USB devices, an installed ASPI interface (WNASPI32.DLL)
                    133:     is required. The code was tested with Adaptec Windows ASPI drivers 4.71.2.
                    134:     (http://www.adaptec.com/en-US/support/_eol/scsi_sw/ASPI-4.70/)
                    135:     Links to other ASPI drivers can be found at http://www.nu2.nu/aspi/.
                    136: 
                    137:     -- Windows NT4/2000/XP/2003/Vista/Win7
                    138: 
                    139:     ATA or SATA devices are supported if the device driver implements
                    140:     the SMART IOCTLs or IOCTL_IDE_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH.
                    141:     The ATA SMART READ LOG command (smartctl -l, --log, -a, --all) is not
                    142:     supported if only the SMART IOCTLs are implemented.
                    143: 
                    144:     SCSI and USB devices are accessed through SPTI. Special driver support
                    145:     is not required.
                    146: 
                    147:     3ware 9000 RAID controllers are supported using features available
                    148:     in the Windows driver release 9.4.0 (3wareDrv.sys 3.0.2.70) or later.
                    149:     Older drivers provide SMART access to the first physical drive (port)
                    150:     of each logical drive (unit). If driver support is not available
                    151:     (7000/8000 series, 9000 on XP 64), smartctl can be used to parse SMART
                    152:     data output from CLI or 3DM.
                    153: 
                    154:     G) MacOS/Darwin
                    155: 
                    156:     The code was tested on MacOS 10.3.4.  It should work from 10.3
                    157:     forwards.  It doesn't support 10.2.
                    158: 
                    159:     It's important to know that on 10.3.x, some things don't work
                    160:     (see WARNINGS): due to bugs in the libraries used, you cannot run
                    161:     a short test or switch SMART support off on a drive; if you try,
                    162:     you will just run an extended test or switch SMART support on.  So
                    163:     don't panic when your "short" test seems to be taking hours.
                    164: 
                    165:     It's also not possible at present to control when the offline
                    166:     routine runs. If your drive doesn't have it running automatically by
                    167:     default, you can't run it at all.
                    168: 
                    169:     SCSI devices are not currently supported.  Detecting the power
                    170:     status of a drive is also not currently supported.
                    171: 
                    172:     To summarize this, from another point of view, the things that
                    173:     are not supported fall into two categories:
                    174: 
                    175:    * Can't be implemented easily without more kernel-level support,
                    176:      so far as I know:
                    177:      - running immediate offline, conveyance, or selective tests
                    178:      - running any test in captive mode
                    179:      - aborting tests
                    180:      - switching automatic offline testing on or off
                    181:      - support for SCSI
                    182:      - checking the power mode [-n Directive of smartd] (this is not
                    183:        completely impossible, but not by using a documented API)
                    184: 
                    185:    * Work on 10.4 and later, but not on 10.3:
                    186:      - switching off SMART (switching *on* works fine)
                    187:      - switching off auto-save (but why would you want to?)
                    188:      - running the short test (that leaves you with only the extended test)
                    189: 
                    190:     However, some things do work well.  For ATA devices, all the
                    191:     informational output is available, unless you want something that only
                    192:     an offline test updates.  On many newer Mac OS systems, the
                    193:     hard drive comes with the offline test switched on by default, so
                    194:     even that works.
                    195: 
                    196:     H) OS/2, eComStation
                    197: 
                    198:     The code was tested on eComStation 1.1, but it should work on all versions
                    199:     of OS/2.
                    200:     Innotek LibC 0.5 runtime is required.
                    201:     Currently only ATA disks are supported, SCSI support will be added.
                    202: 
                    203: [2] Installing from SVN
                    204: =======================
                    205: 
                    206:     Get the sources from the SVN repository:
                    207:     svn co https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk/smartmontools smartmontools
                    208: 
                    209:     Then type:
                    210:     ./autogen.sh
                    211:     and continue with step [3] below, skipping the "unpack the tarball" step.
                    212: 
                    213:     The autogen.sh command is ONLY required when installing from
                    214:     SVN. You need GNU Autoconf (version 2.50 or greater), GNU Automake
                    215:     (version 1.7 or greater) and their dependencies installed in order
                    216:     to run it.  You can get these here:
                    217:     http://directory.fsf.org/project/autoconf/
                    218:     http://directory.fsf.org/project/automake/
                    219: 
                    220: [3] Installing from the source tarball
                    221: ======================================
                    222: 
                    223:     If you are NOT installing from SVN, then unpack the tarball:
                    224:     tar zxvf smartmontools-5.VERSION.tar.gz
                    225: 
                    226:     Then:
                    227:     ./configure
                    228:     make
                    229:     make install (you may need to be root to do this)
                    230: 
                    231:     As shown (with no options to ./configure) this defaults to the
                    232:     following set of installation directories:
                    233:     --prefix=/usr/local
                    234:     --sbindir=/usr/local/sbin
                    235:     --sysconfdir=/usr/local/etc
                    236:     --mandir=/usr/local/share/man
                    237:     --docdir=/usr/local/share/doc/smartmontools
                    238:     --with-exampledir=/usr/local/share/doc/smartmontools/examplescripts
                    239:     --with-drivedbdir=/usr/local/share/smartmontools
                    240:     --with-initscriptdir=auto
                    241:     --with-systemdsystemunitdir=auto
                    242:     --enable-drivedb
                    243:     --disable-attributelog
                    244:     --disable-sample
                    245:     --disable-savestates
                    246:     --with-libcap-ng=auto
                    247:     --without-selinux
                    248: 
                    249:     These will usually not overwrite existing "distribution" installations on
                    250:     Linux Systems since the FHS reserves this area for use by the system
                    251:     administrator.
                    252: 
                    253:     For different installation locations or distributions, simply add
                    254:     arguments to ./configure as shown in [4] below.
                    255: 
                    256:     If you wish to alter the default C++ compiler flags, set an
                    257:     environment variable CXXFLAGS='your options' before doing
                    258:     ./configure, or else do:
                    259:     make CXXFLAGS='your options'
                    260: 
                    261:     The first output line of smartctl and smartd provides information
                    262:     about release number, last SVN checkin date and revison, platform,
                    263:     and package. The latter defaults to "(local build)" and can be
                    264:     changed by the variable BUILD_INFO, for example:
                    265:     make BUILD_INFO='"(Debian 5.39-2)"'
                    266: 
                    267: [4] Guidelines for different Linux distributions
                    268: ================================================
                    269: 
                    270: Note: Please send corrections/additions to:
                    271: smartmontools-support@lists.sourceforge.net
                    272: 
                    273: Debian:
                    274:   If you don't want to overwrite any distribution package, use:
                    275:   ./configure
                    276: 
                    277: Filesystem Hierarchy Standard (FHS, http://www.pathname.com/fhs/):
                    278:   ./configure --sbindir=/usr/local/sbin                               \
                    279:               --sysconfdir=/usr/local/etc                             \
                    280:               --mandir=/usr/local/man                                 \
                    281:               --docdir=/usr/local/share/doc/smartmontools             \
                    282:               --with-initscriptdir=/usr/local/etc/init.d
                    283: 
                    284: Red Hat:
                    285:   ./configure --sbindir=/usr/sbin                               \
                    286:               --sysconfdir=/etc                                 \
                    287:               --mandir=/usr/share/man                           \
                    288:               --docdir=/usr/share/doc/smartmontools             \
                    289:               --with-initscriptdir=/etc/rc.d/init.d
                    290: 
                    291: Slackware:
                    292:   If you don't want to overwrite any "distribution" package, use:
                    293:   ./configure
                    294: 
                    295:   Otherwise use:
                    296:   ./configure --sbindir=/usr/sbin                               \
                    297:               --sysconfdir=/etc                                 \
                    298:               --mandir=/usr/share/man                           \
                    299:               --docdir=/usr/share/doc/smartmontools             \
                    300:               --with-initscriptdir=/etc/rc.d
                    301: 
                    302:   And
                    303:   removepkg smartmontools smartsuite (only root can do this)
                    304:   before make install
                    305: 
                    306:   The init script works on Slackware. You just have to add an entry like
                    307:   the following in /etc/rc.d/rc.M or /etc/rc.d/rc.local:
                    308: 
                    309:   if [ -x /etc/rc.d/smartd ]; then
                    310:     . /etc/rc.d/smartd start
                    311:   fi
                    312: 
                    313:   To disable it:
                    314:   chmod 644 /etc/rc.d/smartd
                    315: 
                    316:   For a list of options:
                    317:   /etc/rc.d/smartd
                    318: 
                    319: SuSE:
                    320:   ./configure --sbindir=/usr/sbin                                        \
                    321:               --sysconfdir=/etc                                          \
                    322:               --mandir=/usr/share/man                                    \
                    323:               --docdir=/usr/share/doc/packages/smartmontools-VERSION     \
                    324:               --with-initscriptdir=/etc/init.d                           \
                    325: 
                    326: [5] Guidelines for FreeBSD
                    327: ==========================
                    328:   To match the way it will installed when it becomes available as a PORT, use
                    329:   the following:
                    330: 
                    331:   ./configure --prefix=/usr/local                                      \
                    332:               --docdir=/usr/local/share/doc/smartmontools-VERSION      \
                    333:               --with-initscriptdir=/usr/local/etc/rc.d/                \
                    334:               --enable-sample
                    335: 
                    336:   NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
                    337:   be installed with the string '.sample' append to the name, so you will end
                    338:   up with the following:
                    339:         /usr/local/etc/smartd.conf.sample
                    340:         /usr/local/etc/rc.d/smartd.sample
                    341: 
                    342: 
                    343: [6] Guidelines for Darwin
                    344: =========================
                    345:   ./configure --with-initscriptdir=/Library/StartupItems
                    346: 
                    347:   If you'd like to build the i386 version on a powerpc machine, you can
                    348:   use
                    349: 
                    350:   CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
                    351:     ./configure --host=i386-apple-darwin \
                    352:                 --with-initscriptdir=/Library/StartupItems
                    353: 
                    354: [7] Guidelines for NetBSD
                    355: =========================
                    356:   ./configure --prefix=/usr/pkg                                       \
                    357:               --docdir=/usr/pkg/share/doc/smartmontools
                    358: 
                    359: [8] Guidelines for Solaris
                    360: ==========================
                    361: 
                    362:     smartmontools has been partially but not completely ported to
                    363:     Solaris.  It includes complete SCSI support but no ATA or 3ware
                    364:     support.  It can be compiled with either CC (Sun's C++ compiler)
                    365:     or GNU g++.
                    366: 
                    367:     To compile with g++:
                    368: 
                    369:     ./configure [args]
                    370:     make
                    371: 
                    372:     To compile with Sun CC:
                    373: 
                    374:     env CC=cc CXX=CC ./configure [args]
                    375:     make
                    376: 
                    377:     The correct arguments [args] to configure are:
                    378:      --sbindir=/usr/sbin                                \
                    379:      --sysconfdir=/etc                                  \
                    380:      --mandir=/usr/share/man                            \
                    381:      --docdir=/usr/share/doc/smartmontools-VERSION      \
                    382:      --with-initscriptdir=/etc/init.d
                    383: 
                    384:     To start the script automatically on bootup, create hardlinks that
                    385:     indicate when to start/stop in:
                    386:                     /etc/rc[S0123].d/
                    387:     pointing to /etc/init.d/smartd. Create:
                    388:             K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
                    389:             S<snum>smartd in rc3.d
                    390:     where <knum> is related to <snum> such that the higher snum is the
                    391:     lower knum must be.
                    392: 
                    393:     On usual configuration, '95' would be suitable for <snum> and '05'
                    394:     for <knum> respectively.  If you choose these value, you can
                    395:     create hardlinks by:
                    396: 
                    397:     cd /etc
                    398:     sh -c 'for n in S 0 1 2; do ln init.d/smartd rc$n.d/K05smartd; done'
                    399:     sh -c 'for n in 3      ; do ln init.d/smartd rc$n.d/S95smartd; done'
                    400: 
                    401: [9] Guidelines for Cygwin
                    402: =========================
                    403: 
                    404: Same as Red Hat:
                    405:   ./configure --prefix=/usr                 \
                    406:               --sysconfdir=/etc             \
                    407:               --mandir='${prefix}/share/man'
                    408: 
                    409:   OR EQUIVALENTLY
                    410:   ./configure --sbindir=/usr/sbin                               \
                    411:               --sysconfdir=/etc                                 \
                    412:               --mandir=/usr/share/man                           \
                    413:               --docdir=/usr/share/doc/smartmontools             \
                    414:               --with-initscriptdir=/etc/rc.d/init.d
                    415: 
                    416:   Using DOS text file type as default for the working directories ("textmode"
                    417:   mount option) is not recommended. Building the binaries and man pages using
                    418:   "make" is possible, but "make dist" and related targets work only with UNIX
                    419:   file type ("binmode" mount option) set. The "autogen.sh" script prints a
                    420:   warning if DOS type is selected.
                    421: 
                    422:   If installing from SVN, you may check out all files either with CR/LF
                    423:   or LF line endings. Starting with release 3.1-7, Cygwin's bash does no
                    424:   longer accept scripts with CR/LF by default. To run the initial script
                    425:   ./autogen.sh checked out with CR/LF on a "binmode" mount, type:
                    426: 
                    427:   bash -o igncr ./autogen.sh
                    428: 
                    429:   instead. This is not necessary for the generated ./configure script.
                    430: 
                    431: [10] Guidelines for Windows
                    432: ===========================
                    433: 
                    434: To compile the Windows release with MinGW gcc on MSYS, use:
                    435: 
                    436:   ./configure
                    437:   make
                    438: 
                    439:   Instead of using "make install", copy the .exe files into
                    440:   some directory in the PATH.
                    441: 
                    442: Cross-compile statically linked 32-bit version with MinGW-w64:
                    443: 
                    444:   ./configure --build=$(./config.guess) \
                    445:               --host=i686-w64-mingw32 \
                    446:               LDFLAGS=-static
                    447: 
                    448:   Tested on Cygwin and Debian Linux.
                    449: 
                    450: Cross-compile statically linked 64-bit version with MinGW-w64:
                    451: 
                    452:   ./configure --build=$(./config.guess) \
                    453:               --host=x86_64-w64-mingw32 \
                    454:               LDFLAGS=-static
                    455: 
                    456:   Tested on Cygwin and Debian Linux with MinGW-w64 from
                    457:   http://mingw-w64.sourceforge.net/.
                    458: 
                    459: WARNING: The smartmontools version for 64-bit Windows is still EXPERIMENTAL.
                    460: 
                    461: Cross-compile on Cygwin with old gcc-mingw 3.x:
                    462: 
                    463:   ./configure --build=$(./config.guess) \
                    464:               --host=i686-pc-mingw32 \
                    465:                CC='gcc-3 -mno-cygwin' \
                    466:               CXX='g++-3 -mno-cygwin' \
                    467:               CXXFLAGS='-g -O2 -Wall -W -Wno-format'
                    468: 
                    469: Cross-compile on Debian Linux with gcc-mingw32:
                    470: 
                    471:   ./configure --build=$(./config.guess) \
                    472:               --host=i586-mingw32msvc
                    473: 
                    474: 
                    475: To build the Windows binary distribution, use:
                    476: 
                    477:   make dist-win32
                    478: 
                    479:   This builds the distribution in directory
                    480: 
                    481:   ./smartmontools-VERSION.win32/
                    482: 
                    483:   and packs it into
                    484: 
                    485:   ./smartmontools-VERSION.win32.zip
                    486: 
                    487: To create a Windows installer, use:
                    488: 
                    489:   make installer-win32
                    490: 
                    491:   This builds the distribution directory and packs it into the
                    492:   self-extracting install program
                    493: 
                    494:   ./smartmontools-VERSION.win32-setup.exe
                    495: 
                    496:   The installer is build using the command "makensis" from the NSIS
                    497:   package. See http://nsis.sourceforge.net/ for documentation and
                    498:   download location.
                    499: 
                    500:   It is also possible to (cross-)build the installer on Linux.
                    501:   This was successfully tested on Debian with package "nsis".
                    502: 
                    503: To both create and run the (interactive) installer, use:
                    504: 
                    505:   make install-win32
                    506: 
                    507:   Additional make targets are distdir-win32 to build the directory
                    508:   only and cleandist-win32 for cleanup.
                    509: 
                    510:   The binary distribution includes all documentation files converted
                    511:   to DOS text file format and *.html and *.txt preformatted man pages.
                    512:   The tools unix2dos.exe (package cygutils) and zip.exe (package zip
                    513:   or a native Win32 release of Info-ZIP, http://www.info-zip.org) are
                    514:   necessary but may be not installed by Cygwin's default settings.
                    515: 
                    516:   The event message file tool syslogevt.exe (see smartd man page) is
                    517:   included in the binary distribution if message compiler (windmc)
                    518:   and resource compiler (windres) are available. This may be disabled
                    519:   by passing 'WINDMC=no' to configure.
                    520: 
                    521: To prepare os_win32 directory for MS Visual Studio C++ 2010 [Express],
                    522: use the following on MSYS or Cygwin:
                    523: 
                    524:   mkdir vctmp && cd vctmp
                    525:   ../configure [... any MinGW option set from above ...]
                    526:   make config-vc10
                    527: 
                    528:   The MSVC project files (os_win32/smartmontools_vc10.sln,
                    529:   os_win32/smart{ctl,d}_vc10.vcxproj) are included in SVN (but not in
                    530:   source tarball). The target config-vc10 from a Makefile configured
                    531:   for MinGW creates os_win32/{config,svnversion}_vc10.h from
                    532:   ./{config,svnversion}.h. The configure skript must be run outside
                    533:   of the source directory to avoid inclusion of the original config.h.
                    534: 
                    535: 
                    536: [11] Guidelines for OS/2, eComStation
                    537: =====================================
                    538: 
                    539: To compile the OS/2 code, please run
                    540: 
                    541:   ./os_os2/configure.os2
                    542:   make
                    543:   make install
                    544: 
                    545: [12] Guidelines for OpenBSD
                    546: ===========================
                    547:   To match the way it will installed when it becomes available as a PORT, use
                    548:   the following:
                    549: 
                    550:   ./configure --prefix=/usr/local                                      \
                    551:               --sysconfdir=/etc                                        \
                    552:               --docdir=/usr/local/share/doc/smartmontools-VERSION      \
                    553:               --without-initscriptdir                                  \
                    554:               --enable-sample
                    555: 
                    556:   NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
                    557:   be installed with the string '.sample' append to the name, so you will end
                    558:   up with the following:
                    559:         /etc/smartd.conf.sample
                    560: 
                    561: [13] Comments
                    562: ============
                    563: 
                    564: To compile from another directory, you can replace the step
                    565:   ./configure [options]
                    566: by the following:
                    567:   mkdir objdir
                    568:   cd objdir
                    569:   ../configure [options]
                    570: 
                    571: Man pages contents is platform-specific by default. Info specific to other
                    572: platforms may be not visible. To generate man pages with full contents use:
                    573: 
                    574:   make os_man_filter=
                    575: 
                    576: To install to another destination (used mainly by package maintainers,
                    577: or to examine the package contents without risk of modifying any
                    578: system files) you can replace the step:
                    579:   make install
                    580: with:
                    581:   make DESTDIR=/home/myself/smartmontools-package install
                    582: 
                    583: Use a full path. Paths like ./smartmontools-package may not work.
                    584: 
                    585: After installing smartmontools, you can read the man pages, and try
                    586: out the commands:
                    587:    
                    588: man smartd.conf
                    589: man smartctl
                    590: man smartd
                    591: 
                    592: /usr/sbin/smartctl -s on -o on -S on /dev/hda (only root can do this)
                    593: /usr/sbin/smartctl -a /dev/hda (only root can do this)
                    594: 
                    595: Note that the default location for the manual pages are
                    596: /usr/share/man/man5 and /usr/share/man/man8.  If "man" doesn't find
                    597: them, you may need to add /usr/share/man to your MANPATH environment
                    598: variable.
                    599: 
                    600: Source and binary packages for Windows are available at
                    601: http://sourceforge.net/projects/smartmontools/files/
                    602: 
                    603: Refer to http://sourceforge.net/apps/trac/smartmontools/wiki/Download
                    604: for any additional download and installation instructions.
                    605: 
                    606: The following files are installed if ./configure has no options:
                    607: 
                    608: /usr/local/sbin/smartctl                                [Executable command-line utility]
                    609: /usr/local/sbin/smartd                                  [Executable daemon]
                    610: /usr/local/sbin/update-smart-drivedb                    [Drive database update script]
                    611: /usr/local/etc/smartd.conf                              [Configuration file for smartd daemon]
                    612: /usr/local/etc/rc.d/init.d/smartd                       [Init/Startup script for smartd]
                    613: /usr/local/share/man/man5/smartd.conf.5                 [Manual page]
                    614: /usr/local/share/man/man8/smartctl.8                    [Manual page]
                    615: /usr/local/share/man/man8/smartd.8                      [Manual page]
                    616: /usr/local/share/doc/smartmontools/AUTHORS              [Information about the authors and developers]
                    617: /usr/local/share/doc/smartmontools/CHANGELOG            [A log of changes. Also see SVN]
                    618: /usr/local/share/doc/smartmontools/COPYING              [GNU General Public License Version 2]
                    619: /usr/local/share/doc/smartmontools/INSTALL              [Installation instructions: what you're reading!]
                    620: /usr/local/share/doc/smartmontools/NEWS                 [Significant bugs discovered in old versions]
                    621: /usr/local/share/doc/smartmontools/README               [Overview]
                    622: /usr/local/share/doc/smartmontools/TODO                 [Things that need to be done/fixed]
                    623: /usr/local/share/doc/smartmontools/WARNINGS             [Systems where lockups or other serious problems were reported]
                    624: /usr/local/share/doc/smartmontools/smartd.conf          [Example configuration file for smartd]
                    625: /usr/local/share/doc/smartmontools/examplescripts/      [Executable scripts for -M exec of smartd.conf (4 files)]
                    626: /usr/local/share/smartmontools/drivedb.h                [Drive database]
                    627: 
                    628: If /usr/local/etc/smartd.conf exists and differs from the
                    629: default then the default configuration file is installed as
                    630: /usr/local/etc/smartd.conf.sample instead.
                    631: 
                    632: The commands:
                    633: 
                    634: make htmlman
                    635: make txtman
                    636: 
                    637: may be used to build .html and .txt preformatted man pages.
                    638: These are used by the dist-win32 make target to build the Windows
                    639: distribution.
                    640: The commands also work on other operating system configurations
                    641: if suitable versions of man2html, groff and grotty are installed.
                    642: On systems without man2html, the following command should work
                    643: if groff is available:
                    644: 
                    645: make MAN2HTML='groff -man -Thtml' htmlman
                    646: 
                    647: 
                    648: Some of the source files are prepared for the documentation
                    649: generator Doxygen (http://www.doxygen.org/). If Doxygen is installed,
                    650: the command:
                    651: 
                    652: doxygen
                    653: 
                    654: creates HTML documentation in doc/html and LaTeX documentation
                    655: in doc/latex. If TeX is installed, the following command creates
                    656: a documentation file doc/latex/refman.pdf:
                    657: 
                    658: ( cd doc/latex && make pdf )
                    659: 
                    660: 
                    661: [14] Detailed description of arguments to configure command
                    662: ===========================================================
                    663: 
                    664: When you type:
                    665: ./configure [options]
                    666: there are six particularly important variables that affect where the
                    667: smartmontools software is installed.  The variables are listed here,
                    668: with their default values in square brackets, and the quantities that
                    669: they affect described following that.  This is a very wide table: please read
                    670: it in a wide window.
                    671: 
                    672: OPTIONS              DEFAULT                                      AFFECTS
                    673: -------              -------                                      -------
                    674: --prefix             /usr/local                                   Please see below
                    675: --sbindir            ${prefix}/sbin                               Directory for smartd/smartctl executables;
                    676:                                                                   Contents of smartd/smartctl man pages
                    677: --docdir             ${prefix}/share/doc/smartmontools            Location of the documentation
                    678:                                                                   (autoconf >= 2.60 only, see also --with-docdir below)
                    679: --mandir             ${prefix}/share/man                          Directory for smartctl/smartd/smartd.conf man pages
                    680: --sysconfdir         ${prefix}/etc                                Directory for smartd.conf;
                    681:                                                                   Contents of smartd executable;
                    682:                                                                   Contents of smartd/smartd.conf man pages;
                    683:                                                                   Directory for rc.d/init.d/smartd init script
                    684: --with-initscriptdir           auto                               Location of init scripts
                    685: --with-systemdsystemunitdir    auto                               Location of systemd service files
                    686: --with-docdir         ${prefix}/share/doc/smartmontools           Location of the documentation
                    687: --with-exampledir     ${docdir}/examplescripts                    Location of example scripts
                    688: --enable-sample       --disable-sample                            Adds the string '.sample' to the names of the smartd.conf file and the smartd RC file
                    689: --with-os-deps        os_<guessed>.o                              OS dependent module(s)
                    690: --with-selinux        --without-selinux                           Enables SELinux support.  If smartmontools has to create the /dev/tw[ae] device
                    691:                                                                   nodes for 3ware/AMCC controllers, this option ensures that the nodes are created
                    692:                                                                   with correct SELinux file contexts.
                    693: --with-libcap-ng      --with-libcap-ng=auto                       Enables/disables libcap-ng support. If enabled and libcap-ng is
                    694:                                                                   available, option --capabilities is added to smartd.
                    695: --disable-drivedb     --enable-drivedb                            Disables default drive database file '${drivedbdir}/drivedb.h'
                    696: --with-drivedbdir     ${prefix}/share/smartmontools               Directory for 'drivedb.h' (implies --enable-drivedb)
                    697: --enable-savestates   --disable-savestates                        Enables default smartd state files '${savestates}MODEL-SERIAL.ata.state'
                    698: --with-savestates     ${prefix}/var/lib/smartmontools/smartd.     Prefix for smartd state files (implies --enable-savestates)
                    699: --enable-attributelog --disable-attributelog                      Enables default smartd attribute log files
                    700: --with-attributelog   ${prefix}/var/lib/smartmontools/attrlog.    Prefix for smartd attribute log files (implies --enable-attributelog)
                    701: 
                    702: Please note that in previous versions of smartmontools (<= 5.39) the
                    703: default for --with-docdir was
                    704:   ${prefix}/share/doc/smartmontools-VERSION
                    705: This was changed to make it consistent with the default of the
                    706: new --docdir option added in autoconf 2.60.
                    707: 
                    708: The defaults for --with-initscriptdir and --with-systemdsystemunitdir are
                    709: guessed such that the following rules apply:
                    710: - If --prefix=/usr --sysconfdir=/etc is specified, the guessed directories
                    711:   should be the defaults used by the current OS or distribution.
                    712: - If --sysconfdir=/etc is NOT specified, the guessed directories should
                    713:   always be below ${prefix} or below ${sysconfdir}.
                    714: 
                    715: Here's an example:
                    716: If you set --prefix=/home/joe and none of the other four
                    717: variables then the different directories that are used would be:
                    718: --sbindir             /home/joe/sbin
                    719: --docdir              /home/joe/share/doc/smartmontools
                    720: --mandir              /home/joe/share/man
                    721: --sysconfdir          /home/joe/etc
                    722: --with-exampledir     /home/joe/share/doc/smartmontools/examplescripts
                    723: --with-drivedbdir     /home/joe/share/smartmontools
                    724: --with-initscriptdir         [see below]
                    725: --with-systemdsystemunitdir  [see below]
                    726: 
                    727: If systemd is present (and pkg-config reports /lib/systemd/system
                    728: as the systemdsystemunitdir):
                    729: 
                    730: --with-initscriptdir         [disabled]
                    731: --with-systemdsystemunitdir  /home/joe/lib/systemd/system
                    732: 
                    733: else if /etc/rc.d/init.d exists:
                    734: 
                    735: --with-initscriptdir         /home/joe/etc/rc.d/init.d
                    736: --with-systemdsystemunitdir  [disabled]
                    737: 
                    738: else if /etc/init.d exists:
                    739: 
                    740: --with-initscriptdir         /home/joe/etc/init.d
                    741: --with-systemdsystemunitdir  [disabled]
                    742: 
                    743: else if /etc/rc.d exists:
                    744: 
                    745: --with-initscriptdir         /home/joe/etc/rc.d
                    746: --with-systemdsystemunitdir  [disabled]
                    747: 
                    748: else
                    749: 
                    750: --with-initscriptdir         [disabled]
                    751: --with-systemdsystemunitdir  [disabled]
                    752: 
                    753: This is useful for test installs in a harmless subdirectory somewhere.
                    754: 
                    755: Here are the four possible cases for the four variables above:
                    756: 
                    757: Case 1:
                    758: --prefix not set
                    759: --variable not set
                    760: ===> VARIABLE gets default value above
                    761: 
                    762: Case 2:
                    763: --prefix set
                    764: --variable not set
                    765: ===> VARIABLE gets PREFIX/ prepended to default value above
                    766: 
                    767: Case 3:
                    768: --prefix not set
                    769: --variable set
                    770: ===> VARIABLE gets value that is set
                    771: 
                    772: Case 4:
                    773: --prefix is set
                    774: --variable is set
                    775: ===> PREFIX is IGNORED, VARIABLE gets value that is set
                    776: 
                    777: 
                    778: Here are the differences with and without --enable-sample, assuming
                    779: that initscript location is set and no other options specified 
                    780: (see above for details)
                    781: 
                    782: Case 1:
                    783: --enable-sample provided
                    784: ==> Files installed are:
                    785:         /usr/local/etc/smartd.conf.sample
                    786:         /usr/local/etc/rc.d/init.d/smartd.sample
                    787: 
                    788: Case 2:
                    789: --disable-sample provided or parameter left out
                    790: ==> Files installed are:
                    791:         /usr/local/etc/smartd.conf
                    792:         /usr/local/etc/rc.d/init.d/smartd
                    793: 
                    794: Additional information about using configure can be found here:
                    795: http://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>