Annotation of embedaddon/smartmontools/INSTALL, revision 1.1.1.2

1.1       misho       1: Smartmontools installation instructions
                      2: =======================================
                      3: 
1.1.1.2 ! misho       4: $Id: INSTALL 3555 2012-06-01 21:07:33Z chrfranke $
1.1       misho       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: 
1.1.1.2 ! misho     196:     The OS X SAT SMART Driver provides access to SMART data for SAT capable
        !           197:     USB and Firewire devices:
        !           198:     https://github.com/kasbert/OS-X-SAT-SMART-Driver
        !           199:     https://github.com/RJVB/OS-X-SAT-SMART-Driver
        !           200:     This does not require any smartctl -d TYPE option and should work also
        !           201:     with older smartmontools releases.
        !           202: 
1.1       misho     203:     H) OS/2, eComStation
                    204: 
                    205:     The code was tested on eComStation 1.1, but it should work on all versions
                    206:     of OS/2.
                    207:     Innotek LibC 0.5 runtime is required.
                    208:     Currently only ATA disks are supported, SCSI support will be added.
                    209: 
                    210: [2] Installing from SVN
                    211: =======================
                    212: 
                    213:     Get the sources from the SVN repository:
                    214:     svn co https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk/smartmontools smartmontools
                    215: 
                    216:     Then type:
                    217:     ./autogen.sh
                    218:     and continue with step [3] below, skipping the "unpack the tarball" step.
                    219: 
                    220:     The autogen.sh command is ONLY required when installing from
                    221:     SVN. You need GNU Autoconf (version 2.50 or greater), GNU Automake
                    222:     (version 1.7 or greater) and their dependencies installed in order
                    223:     to run it.  You can get these here:
                    224:     http://directory.fsf.org/project/autoconf/
                    225:     http://directory.fsf.org/project/automake/
                    226: 
                    227: [3] Installing from the source tarball
                    228: ======================================
                    229: 
                    230:     If you are NOT installing from SVN, then unpack the tarball:
                    231:     tar zxvf smartmontools-5.VERSION.tar.gz
                    232: 
                    233:     Then:
                    234:     ./configure
                    235:     make
                    236:     make install (you may need to be root to do this)
                    237: 
                    238:     As shown (with no options to ./configure) this defaults to the
                    239:     following set of installation directories:
                    240:     --prefix=/usr/local
                    241:     --sbindir=/usr/local/sbin
                    242:     --sysconfdir=/usr/local/etc
                    243:     --mandir=/usr/local/share/man
                    244:     --docdir=/usr/local/share/doc/smartmontools
                    245:     --with-exampledir=/usr/local/share/doc/smartmontools/examplescripts
                    246:     --with-drivedbdir=/usr/local/share/smartmontools
                    247:     --with-initscriptdir=auto
                    248:     --with-systemdsystemunitdir=auto
                    249:     --enable-drivedb
                    250:     --disable-attributelog
                    251:     --disable-sample
                    252:     --disable-savestates
                    253:     --with-libcap-ng=auto
                    254:     --without-selinux
                    255: 
                    256:     These will usually not overwrite existing "distribution" installations on
                    257:     Linux Systems since the FHS reserves this area for use by the system
                    258:     administrator.
                    259: 
                    260:     For different installation locations or distributions, simply add
                    261:     arguments to ./configure as shown in [4] below.
                    262: 
                    263:     If you wish to alter the default C++ compiler flags, set an
                    264:     environment variable CXXFLAGS='your options' before doing
                    265:     ./configure, or else do:
                    266:     make CXXFLAGS='your options'
                    267: 
                    268:     The first output line of smartctl and smartd provides information
                    269:     about release number, last SVN checkin date and revison, platform,
                    270:     and package. The latter defaults to "(local build)" and can be
                    271:     changed by the variable BUILD_INFO, for example:
                    272:     make BUILD_INFO='"(Debian 5.39-2)"'
                    273: 
                    274: [4] Guidelines for different Linux distributions
                    275: ================================================
                    276: 
                    277: Note: Please send corrections/additions to:
                    278: smartmontools-support@lists.sourceforge.net
                    279: 
                    280: Debian:
                    281:   If you don't want to overwrite any distribution package, use:
                    282:   ./configure
                    283: 
                    284: Filesystem Hierarchy Standard (FHS, http://www.pathname.com/fhs/):
                    285:   ./configure --sbindir=/usr/local/sbin                               \
                    286:               --sysconfdir=/usr/local/etc                             \
                    287:               --mandir=/usr/local/man                                 \
                    288:               --docdir=/usr/local/share/doc/smartmontools             \
                    289:               --with-initscriptdir=/usr/local/etc/init.d
                    290: 
                    291: Red Hat:
                    292:   ./configure --sbindir=/usr/sbin                               \
                    293:               --sysconfdir=/etc                                 \
                    294:               --mandir=/usr/share/man                           \
                    295:               --docdir=/usr/share/doc/smartmontools             \
                    296:               --with-initscriptdir=/etc/rc.d/init.d
                    297: 
                    298: Slackware:
                    299:   If you don't want to overwrite any "distribution" package, use:
                    300:   ./configure
                    301: 
                    302:   Otherwise use:
                    303:   ./configure --sbindir=/usr/sbin                               \
                    304:               --sysconfdir=/etc                                 \
                    305:               --mandir=/usr/share/man                           \
                    306:               --docdir=/usr/share/doc/smartmontools             \
                    307:               --with-initscriptdir=/etc/rc.d
                    308: 
                    309:   And
                    310:   removepkg smartmontools smartsuite (only root can do this)
                    311:   before make install
                    312: 
                    313:   The init script works on Slackware. You just have to add an entry like
                    314:   the following in /etc/rc.d/rc.M or /etc/rc.d/rc.local:
                    315: 
                    316:   if [ -x /etc/rc.d/smartd ]; then
                    317:     . /etc/rc.d/smartd start
                    318:   fi
                    319: 
                    320:   To disable it:
                    321:   chmod 644 /etc/rc.d/smartd
                    322: 
                    323:   For a list of options:
                    324:   /etc/rc.d/smartd
                    325: 
                    326: SuSE:
                    327:   ./configure --sbindir=/usr/sbin                                        \
                    328:               --sysconfdir=/etc                                          \
                    329:               --mandir=/usr/share/man                                    \
                    330:               --docdir=/usr/share/doc/packages/smartmontools-VERSION     \
                    331:               --with-initscriptdir=/etc/init.d                           \
                    332: 
                    333: [5] Guidelines for FreeBSD
                    334: ==========================
                    335:   To match the way it will installed when it becomes available as a PORT, use
                    336:   the following:
                    337: 
                    338:   ./configure --prefix=/usr/local                                      \
                    339:               --docdir=/usr/local/share/doc/smartmontools-VERSION      \
                    340:               --with-initscriptdir=/usr/local/etc/rc.d/                \
                    341:               --enable-sample
                    342: 
                    343:   NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
                    344:   be installed with the string '.sample' append to the name, so you will end
                    345:   up with the following:
                    346:         /usr/local/etc/smartd.conf.sample
                    347:         /usr/local/etc/rc.d/smartd.sample
                    348: 
                    349: 
                    350: [6] Guidelines for Darwin
                    351: =========================
                    352:   ./configure --with-initscriptdir=/Library/StartupItems
                    353: 
                    354:   If you'd like to build the i386 version on a powerpc machine, you can
                    355:   use
                    356: 
                    357:   CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
                    358:     ./configure --host=i386-apple-darwin \
                    359:                 --with-initscriptdir=/Library/StartupItems
                    360: 
                    361: [7] Guidelines for NetBSD
                    362: =========================
                    363:   ./configure --prefix=/usr/pkg                                       \
                    364:               --docdir=/usr/pkg/share/doc/smartmontools
                    365: 
                    366: [8] Guidelines for Solaris
                    367: ==========================
                    368: 
                    369:     smartmontools has been partially but not completely ported to
                    370:     Solaris.  It includes complete SCSI support but no ATA or 3ware
                    371:     support.  It can be compiled with either CC (Sun's C++ compiler)
                    372:     or GNU g++.
                    373: 
                    374:     To compile with g++:
                    375: 
                    376:     ./configure [args]
                    377:     make
                    378: 
                    379:     To compile with Sun CC:
                    380: 
                    381:     env CC=cc CXX=CC ./configure [args]
                    382:     make
                    383: 
                    384:     The correct arguments [args] to configure are:
                    385:      --sbindir=/usr/sbin                                \
                    386:      --sysconfdir=/etc                                  \
                    387:      --mandir=/usr/share/man                            \
                    388:      --docdir=/usr/share/doc/smartmontools-VERSION      \
                    389:      --with-initscriptdir=/etc/init.d
                    390: 
                    391:     To start the script automatically on bootup, create hardlinks that
                    392:     indicate when to start/stop in:
                    393:                     /etc/rc[S0123].d/
                    394:     pointing to /etc/init.d/smartd. Create:
                    395:             K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
                    396:             S<snum>smartd in rc3.d
                    397:     where <knum> is related to <snum> such that the higher snum is the
                    398:     lower knum must be.
                    399: 
                    400:     On usual configuration, '95' would be suitable for <snum> and '05'
                    401:     for <knum> respectively.  If you choose these value, you can
                    402:     create hardlinks by:
                    403: 
                    404:     cd /etc
                    405:     sh -c 'for n in S 0 1 2; do ln init.d/smartd rc$n.d/K05smartd; done'
                    406:     sh -c 'for n in 3      ; do ln init.d/smartd rc$n.d/S95smartd; done'
                    407: 
                    408: [9] Guidelines for Cygwin
                    409: =========================
                    410: 
                    411: Same as Red Hat:
                    412:   ./configure --prefix=/usr                 \
                    413:               --sysconfdir=/etc             \
                    414:               --mandir='${prefix}/share/man'
                    415: 
                    416:   OR EQUIVALENTLY
                    417:   ./configure --sbindir=/usr/sbin                               \
                    418:               --sysconfdir=/etc                                 \
                    419:               --mandir=/usr/share/man                           \
                    420:               --docdir=/usr/share/doc/smartmontools             \
                    421:               --with-initscriptdir=/etc/rc.d/init.d
                    422: 
                    423:   Using DOS text file type as default for the working directories ("textmode"
                    424:   mount option) is not recommended. Building the binaries and man pages using
                    425:   "make" is possible, but "make dist" and related targets work only with UNIX
                    426:   file type ("binmode" mount option) set. The "autogen.sh" script prints a
                    427:   warning if DOS type is selected.
                    428: 
1.1.1.2 ! misho     429:   Files may also be checked out with a non-Cygwin SVN client which uses CR/LF
        !           430:   for svn:eol-style=native.  The "autogen.sh" script has svn:eol-style=LF.
        !           431:   Bash option "-o igncr" is not required.
1.1       misho     432: 
                    433: [10] Guidelines for Windows
                    434: ===========================
                    435: 
                    436: To compile the Windows release with MinGW gcc on MSYS, use:
                    437: 
                    438:   ./configure
                    439:   make
                    440: 
                    441:   Instead of using "make install", copy the .exe files into
                    442:   some directory in the PATH.
                    443: 
                    444: Cross-compile statically linked 32-bit version with MinGW-w64:
                    445: 
                    446:   ./configure --build=$(./config.guess) \
                    447:               --host=i686-w64-mingw32 \
                    448:               LDFLAGS=-static
                    449: 
                    450:   Tested on Cygwin and Debian Linux.
                    451: 
                    452: Cross-compile statically linked 64-bit version with MinGW-w64:
                    453: 
                    454:   ./configure --build=$(./config.guess) \
                    455:               --host=x86_64-w64-mingw32 \
                    456:               LDFLAGS=-static
                    457: 
                    458:   Tested on Cygwin and Debian Linux with MinGW-w64 from
                    459:   http://mingw-w64.sourceforge.net/.
                    460: 
                    461: WARNING: The smartmontools version for 64-bit Windows is still EXPERIMENTAL.
                    462: 
                    463: Cross-compile on Cygwin with old gcc-mingw 3.x:
                    464: 
                    465:   ./configure --build=$(./config.guess) \
                    466:               --host=i686-pc-mingw32 \
                    467:                CC='gcc-3 -mno-cygwin' \
                    468:               CXX='g++-3 -mno-cygwin' \
                    469:               CXXFLAGS='-g -O2 -Wall -W -Wno-format'
                    470: 
                    471: Cross-compile on Debian Linux with gcc-mingw32:
                    472: 
                    473:   ./configure --build=$(./config.guess) \
                    474:               --host=i586-mingw32msvc
                    475: 
                    476: 
                    477: To build the Windows binary distribution, use:
                    478: 
                    479:   make dist-win32
                    480: 
                    481:   This builds the distribution in directory
                    482: 
                    483:   ./smartmontools-VERSION.win32/
                    484: 
                    485:   and packs it into
                    486: 
                    487:   ./smartmontools-VERSION.win32.zip
                    488: 
                    489: To create a Windows installer, use:
                    490: 
                    491:   make installer-win32
                    492: 
                    493:   This builds the distribution directory and packs it into the
                    494:   self-extracting install program
                    495: 
                    496:   ./smartmontools-VERSION.win32-setup.exe
                    497: 
                    498:   The installer is build using the command "makensis" from the NSIS
                    499:   package. See http://nsis.sourceforge.net/ for documentation and
                    500:   download location.
                    501: 
                    502:   It is also possible to (cross-)build the installer on Linux.
                    503:   This was successfully tested on Debian with package "nsis".
                    504: 
1.1.1.2 ! misho     505: To create a combined 32-/64-bit installer, use this in 32-bit build
        !           506: directory if 64-build directory is at ../build64:
        !           507: 
        !           508:   make builddir_win64=../build64 installer_win32
        !           509: 
1.1       misho     510: To both create and run the (interactive) installer, use:
                    511: 
                    512:   make install-win32
                    513: 
                    514:   Additional make targets are distdir-win32 to build the directory
                    515:   only and cleandist-win32 for cleanup.
                    516: 
                    517:   The binary distribution includes all documentation files converted
                    518:   to DOS text file format and *.html and *.txt preformatted man pages.
                    519:   The tools unix2dos.exe (package cygutils) and zip.exe (package zip
                    520:   or a native Win32 release of Info-ZIP, http://www.info-zip.org) are
                    521:   necessary but may be not installed by Cygwin's default settings.
                    522: 
                    523:   The event message file tool syslogevt.exe (see smartd man page) is
                    524:   included in the binary distribution if message compiler (windmc)
                    525:   and resource compiler (windres) are available. This may be disabled
                    526:   by passing 'WINDMC=no' to configure.
                    527: 
                    528: To prepare os_win32 directory for MS Visual Studio C++ 2010 [Express],
                    529: use the following on MSYS or Cygwin:
                    530: 
                    531:   mkdir vctmp && cd vctmp
                    532:   ../configure [... any MinGW option set from above ...]
                    533:   make config-vc10
                    534: 
                    535:   The MSVC project files (os_win32/smartmontools_vc10.sln,
                    536:   os_win32/smart{ctl,d}_vc10.vcxproj) are included in SVN (but not in
                    537:   source tarball). The target config-vc10 from a Makefile configured
                    538:   for MinGW creates os_win32/{config,svnversion}_vc10.h from
                    539:   ./{config,svnversion}.h. The configure skript must be run outside
                    540:   of the source directory to avoid inclusion of the original config.h.
                    541: 
                    542: 
                    543: [11] Guidelines for OS/2, eComStation
                    544: =====================================
                    545: 
                    546: To compile the OS/2 code, please run
                    547: 
                    548:   ./os_os2/configure.os2
                    549:   make
                    550:   make install
                    551: 
                    552: [12] Guidelines for OpenBSD
                    553: ===========================
                    554:   To match the way it will installed when it becomes available as a PORT, use
                    555:   the following:
                    556: 
                    557:   ./configure --prefix=/usr/local                                      \
                    558:               --sysconfdir=/etc                                        \
                    559:               --docdir=/usr/local/share/doc/smartmontools-VERSION      \
                    560:               --without-initscriptdir                                  \
                    561:               --enable-sample
                    562: 
                    563:   NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
                    564:   be installed with the string '.sample' append to the name, so you will end
                    565:   up with the following:
                    566:         /etc/smartd.conf.sample
                    567: 
                    568: [13] Comments
                    569: ============
                    570: 
                    571: To compile from another directory, you can replace the step
                    572:   ./configure [options]
                    573: by the following:
                    574:   mkdir objdir
                    575:   cd objdir
                    576:   ../configure [options]
                    577: 
                    578: Man pages contents is platform-specific by default. Info specific to other
                    579: platforms may be not visible. To generate man pages with full contents use:
                    580: 
                    581:   make os_man_filter=
                    582: 
                    583: To install to another destination (used mainly by package maintainers,
                    584: or to examine the package contents without risk of modifying any
                    585: system files) you can replace the step:
                    586:   make install
                    587: with:
                    588:   make DESTDIR=/home/myself/smartmontools-package install
                    589: 
                    590: Use a full path. Paths like ./smartmontools-package may not work.
                    591: 
                    592: After installing smartmontools, you can read the man pages, and try
                    593: out the commands:
                    594:    
                    595: man smartd.conf
                    596: man smartctl
                    597: man smartd
                    598: 
                    599: /usr/sbin/smartctl -s on -o on -S on /dev/hda (only root can do this)
                    600: /usr/sbin/smartctl -a /dev/hda (only root can do this)
                    601: 
                    602: Note that the default location for the manual pages are
                    603: /usr/share/man/man5 and /usr/share/man/man8.  If "man" doesn't find
                    604: them, you may need to add /usr/share/man to your MANPATH environment
                    605: variable.
                    606: 
                    607: Source and binary packages for Windows are available at
                    608: http://sourceforge.net/projects/smartmontools/files/
                    609: 
                    610: Refer to http://sourceforge.net/apps/trac/smartmontools/wiki/Download
                    611: for any additional download and installation instructions.
                    612: 
                    613: The following files are installed if ./configure has no options:
                    614: 
                    615: /usr/local/sbin/smartctl                                [Executable command-line utility]
                    616: /usr/local/sbin/smartd                                  [Executable daemon]
                    617: /usr/local/sbin/update-smart-drivedb                    [Drive database update script]
                    618: /usr/local/etc/smartd.conf                              [Configuration file for smartd daemon]
                    619: /usr/local/etc/rc.d/init.d/smartd                       [Init/Startup script for smartd]
                    620: /usr/local/share/man/man5/smartd.conf.5                 [Manual page]
                    621: /usr/local/share/man/man8/smartctl.8                    [Manual page]
                    622: /usr/local/share/man/man8/smartd.8                      [Manual page]
                    623: /usr/local/share/doc/smartmontools/AUTHORS              [Information about the authors and developers]
                    624: /usr/local/share/doc/smartmontools/CHANGELOG            [A log of changes. Also see SVN]
                    625: /usr/local/share/doc/smartmontools/COPYING              [GNU General Public License Version 2]
                    626: /usr/local/share/doc/smartmontools/INSTALL              [Installation instructions: what you're reading!]
                    627: /usr/local/share/doc/smartmontools/NEWS                 [Significant bugs discovered in old versions]
                    628: /usr/local/share/doc/smartmontools/README               [Overview]
                    629: /usr/local/share/doc/smartmontools/TODO                 [Things that need to be done/fixed]
                    630: /usr/local/share/doc/smartmontools/WARNINGS             [Systems where lockups or other serious problems were reported]
                    631: /usr/local/share/doc/smartmontools/smartd.conf          [Example configuration file for smartd]
                    632: /usr/local/share/doc/smartmontools/examplescripts/      [Executable scripts for -M exec of smartd.conf (4 files)]
                    633: /usr/local/share/smartmontools/drivedb.h                [Drive database]
                    634: 
                    635: If /usr/local/etc/smartd.conf exists and differs from the
                    636: default then the default configuration file is installed as
                    637: /usr/local/etc/smartd.conf.sample instead.
                    638: 
                    639: The commands:
                    640: 
                    641: make htmlman
                    642: make txtman
                    643: 
                    644: may be used to build .html and .txt preformatted man pages.
                    645: These are used by the dist-win32 make target to build the Windows
                    646: distribution.
                    647: The commands also work on other operating system configurations
                    648: if suitable versions of man2html, groff and grotty are installed.
                    649: On systems without man2html, the following command should work
                    650: if groff is available:
                    651: 
                    652: make MAN2HTML='groff -man -Thtml' htmlman
                    653: 
                    654: 
                    655: Some of the source files are prepared for the documentation
                    656: generator Doxygen (http://www.doxygen.org/). If Doxygen is installed,
                    657: the command:
                    658: 
                    659: doxygen
                    660: 
                    661: creates HTML documentation in doc/html and LaTeX documentation
                    662: in doc/latex. If TeX is installed, the following command creates
                    663: a documentation file doc/latex/refman.pdf:
                    664: 
                    665: ( cd doc/latex && make pdf )
                    666: 
                    667: 
                    668: [14] Detailed description of arguments to configure command
                    669: ===========================================================
                    670: 
                    671: When you type:
                    672: ./configure [options]
                    673: there are six particularly important variables that affect where the
                    674: smartmontools software is installed.  The variables are listed here,
                    675: with their default values in square brackets, and the quantities that
                    676: they affect described following that.  This is a very wide table: please read
                    677: it in a wide window.
                    678: 
                    679: OPTIONS              DEFAULT                                      AFFECTS
                    680: -------              -------                                      -------
                    681: --prefix             /usr/local                                   Please see below
                    682: --sbindir            ${prefix}/sbin                               Directory for smartd/smartctl executables;
                    683:                                                                   Contents of smartd/smartctl man pages
                    684: --docdir             ${prefix}/share/doc/smartmontools            Location of the documentation
                    685:                                                                   (autoconf >= 2.60 only, see also --with-docdir below)
                    686: --mandir             ${prefix}/share/man                          Directory for smartctl/smartd/smartd.conf man pages
                    687: --sysconfdir         ${prefix}/etc                                Directory for smartd.conf;
                    688:                                                                   Contents of smartd executable;
                    689:                                                                   Contents of smartd/smartd.conf man pages;
                    690:                                                                   Directory for rc.d/init.d/smartd init script
                    691: --with-initscriptdir           auto                               Location of init scripts
                    692: --with-systemdsystemunitdir    auto                               Location of systemd service files
                    693: --with-docdir         ${prefix}/share/doc/smartmontools           Location of the documentation
                    694: --with-exampledir     ${docdir}/examplescripts                    Location of example scripts
                    695: --enable-sample       --disable-sample                            Adds the string '.sample' to the names of the smartd.conf file and the smartd RC file
                    696: --with-os-deps        os_<guessed>.o                              OS dependent module(s)
                    697: --with-selinux        --without-selinux                           Enables SELinux support.  If smartmontools has to create the /dev/tw[ae] device
                    698:                                                                   nodes for 3ware/AMCC controllers, this option ensures that the nodes are created
                    699:                                                                   with correct SELinux file contexts.
                    700: --with-libcap-ng      --with-libcap-ng=auto                       Enables/disables libcap-ng support. If enabled and libcap-ng is
                    701:                                                                   available, option --capabilities is added to smartd.
                    702: --disable-drivedb     --enable-drivedb                            Disables default drive database file '${drivedbdir}/drivedb.h'
                    703: --with-drivedbdir     ${prefix}/share/smartmontools               Directory for 'drivedb.h' (implies --enable-drivedb)
                    704: --enable-savestates   --disable-savestates                        Enables default smartd state files '${savestates}MODEL-SERIAL.ata.state'
                    705: --with-savestates     ${prefix}/var/lib/smartmontools/smartd.     Prefix for smartd state files (implies --enable-savestates)
                    706: --enable-attributelog --disable-attributelog                      Enables default smartd attribute log files
                    707: --with-attributelog   ${prefix}/var/lib/smartmontools/attrlog.    Prefix for smartd attribute log files (implies --enable-attributelog)
                    708: 
                    709: Please note that in previous versions of smartmontools (<= 5.39) the
                    710: default for --with-docdir was
                    711:   ${prefix}/share/doc/smartmontools-VERSION
                    712: This was changed to make it consistent with the default of the
                    713: new --docdir option added in autoconf 2.60.
                    714: 
                    715: The defaults for --with-initscriptdir and --with-systemdsystemunitdir are
                    716: guessed such that the following rules apply:
                    717: - If --prefix=/usr --sysconfdir=/etc is specified, the guessed directories
                    718:   should be the defaults used by the current OS or distribution.
                    719: - If --sysconfdir=/etc is NOT specified, the guessed directories should
                    720:   always be below ${prefix} or below ${sysconfdir}.
                    721: 
                    722: Here's an example:
                    723: If you set --prefix=/home/joe and none of the other four
                    724: variables then the different directories that are used would be:
                    725: --sbindir             /home/joe/sbin
                    726: --docdir              /home/joe/share/doc/smartmontools
                    727: --mandir              /home/joe/share/man
                    728: --sysconfdir          /home/joe/etc
                    729: --with-exampledir     /home/joe/share/doc/smartmontools/examplescripts
                    730: --with-drivedbdir     /home/joe/share/smartmontools
                    731: --with-initscriptdir         [see below]
                    732: --with-systemdsystemunitdir  [see below]
                    733: 
                    734: If systemd is present (and pkg-config reports /lib/systemd/system
                    735: as the systemdsystemunitdir):
                    736: 
                    737: --with-initscriptdir         [disabled]
                    738: --with-systemdsystemunitdir  /home/joe/lib/systemd/system
                    739: 
                    740: else if /etc/rc.d/init.d exists:
                    741: 
                    742: --with-initscriptdir         /home/joe/etc/rc.d/init.d
                    743: --with-systemdsystemunitdir  [disabled]
                    744: 
                    745: else if /etc/init.d exists:
                    746: 
                    747: --with-initscriptdir         /home/joe/etc/init.d
                    748: --with-systemdsystemunitdir  [disabled]
                    749: 
                    750: else if /etc/rc.d exists:
                    751: 
                    752: --with-initscriptdir         /home/joe/etc/rc.d
                    753: --with-systemdsystemunitdir  [disabled]
                    754: 
                    755: else
                    756: 
                    757: --with-initscriptdir         [disabled]
                    758: --with-systemdsystemunitdir  [disabled]
                    759: 
                    760: This is useful for test installs in a harmless subdirectory somewhere.
                    761: 
                    762: Here are the four possible cases for the four variables above:
                    763: 
                    764: Case 1:
                    765: --prefix not set
                    766: --variable not set
                    767: ===> VARIABLE gets default value above
                    768: 
                    769: Case 2:
                    770: --prefix set
                    771: --variable not set
                    772: ===> VARIABLE gets PREFIX/ prepended to default value above
                    773: 
                    774: Case 3:
                    775: --prefix not set
                    776: --variable set
                    777: ===> VARIABLE gets value that is set
                    778: 
                    779: Case 4:
                    780: --prefix is set
                    781: --variable is set
                    782: ===> PREFIX is IGNORED, VARIABLE gets value that is set
                    783: 
                    784: 
                    785: Here are the differences with and without --enable-sample, assuming
                    786: that initscript location is set and no other options specified 
                    787: (see above for details)
                    788: 
                    789: Case 1:
                    790: --enable-sample provided
                    791: ==> Files installed are:
                    792:         /usr/local/etc/smartd.conf.sample
                    793:         /usr/local/etc/rc.d/init.d/smartd.sample
                    794: 
                    795: Case 2:
                    796: --disable-sample provided or parameter left out
                    797: ==> Files installed are:
                    798:         /usr/local/etc/smartd.conf
                    799:         /usr/local/etc/rc.d/init.d/smartd
                    800: 
                    801: Additional information about using configure can be found here:
                    802: http://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts

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