Skip to content
Snippets Groups Projects
Commit a4adb690 authored by (no author)'s avatar (no author)
Browse files

This commit was manufactured by cvs2svn to create branch

'unlabeled-1.106.2'.

git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/branches/unlabeled-1.106.2@1295 4ea69e1a-61f1-4043-bf83-b5c94c648137
parent b19cf629
No related branches found
No related tags found
No related merge requests found
# The "checkoutlist" file is used to support additional version controlled
# administrative files in $CVSROOT/CVSROOT, such as template files.
#
# The first entry on a line is a filename which will be checked out from
# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
# The remainder of the line is an error message to use if the file cannot
# be checked out.
#
# File format:
#
# [<whitespace>]<filename><whitespace><error message><end-of-line>
#
# comment lines begin with '#'
# The "commitinfo" file is used to control pre-commit checks.
# The filter on the right is invoked with the repository and a list
# of files to check. A non-zero exit of the filter program will
# cause the commit to be aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT. For the first match that is found, then the remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# Set this to "no" if pserver shouldn't check system users/passwords
#SystemAuth=no
# Put CVS lock files in this directory rather than directly in the repository.
#LockDir=/var/lock/cvs
# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
# level of the new working directory when using the `cvs checkout'
# command.
#TopLevelAdmin=no
# Set `LogHistory' to `all' or `TOFEWGCMAR' to log all transactions to the
# history file, or a subset as needed (ie `TMAR' logs all write operations)
#LogHistory=TOFEWGCMAR
# This file affects handling of files based on their names.
#
# The -t/-f options allow one to treat directories of files
# as a single file, or to transform a file in other ways on
# its way in and out of CVS.
#
# The -m option specifies whether CVS attempts to merge files.
#
# The -k option specifies keyword expansion (e.g. -kb for binary).
#
# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
#
# wildcard [option value][option value]...
#
# where option is one of
# -f from cvs filter value: path to filter
# -t to cvs filter value: path to filter
# -m update methodology value: MERGE or COPY
# -k expansion mode value: b, o, kkv, &c
#
# and value is a single-quote delimited value.
# For example:
#*.gif -k 'b'
# The "editinfo" file is used to allow verification of logging
# information. It works best when a template (as specified in the
# rcsinfo file) is provided for the logging procedure. Given a
# template with locations for, a bug-id number, a list of people who
# reviewed the code before it can be checked in, and an external
# process to catalog the differences that were code reviewed, the
# following test can be applied to the code:
#
# Making sure that the entered bug-id number is correct.
# Validating that the code that was reviewed is indeed the code being
# checked in (using the bug-id number or a seperate review
# number to identify this particular code set.).
#
# If any of the above test failed, then the commit would be aborted.
#
# Actions such as mailing a copy of the report to each reviewer are
# better handled by an entry in the loginfo file.
#
# One thing that should be noted is the the ALL keyword is not
# supported. There can be only one entry that matches a given
# repository.
# The "loginfo" file controls where "cvs commit" log information
# is sent. The first entry on a line is a regular expression which must match
# the directory that the change is being made to, relative to the
# $CVSROOT. If a match is found, then the remainder of the line is a filter
# program that should expect log information on its standard input.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name ALL appears as a regular expression it is always used
# in addition to the first matching regex or DEFAULT.
#
# You may specify a format string as part of the
# filter. The string is composed of a `%' followed
# by a single format character, or followed by a set of format
# characters surrounded by `{' and `}' as separators. The format
# characters are:
#
# s = file name
# V = old version number (pre-checkin)
# v = new version number (post-checkin)
#
# For example:
#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
# or
#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
^sm5$ /cvsroot/sitedocs/CVSROOT/cvstools/syncmail -u %{sVv} smartmontools-cvs@lists.sourceforge.net
^www$ /cvsroot/sitedocs/CVSROOT/cvstools/syncmail -u %{sVv} ballen4705@users.sourceforge.net
# Three different line formats are valid:
# key -a aliases...
# key [options] directory
# key [options] directory files...
#
# Where "options" are composed of:
# -i prog Run "prog" on "cvs commit" from top-level of module.
# -o prog Run "prog" on "cvs checkout" of module.
# -e prog Run "prog" on "cvs export" of module.
# -t prog Run "prog" on "cvs rtag" of module.
# -u prog Run "prog" on "cvs update" of module.
# -d dir Place module in directory "dir" instead of module name.
# -l Top-level directory only -- do not recurse.
#
# NOTE: If you change any of the "Run" options above, you'll have to
# release and re-checkout any working directories of these modules.
#
# And "directory" is a path to a directory relative to $CVSROOT.
#
# The "-a" option specifies an alias. An alias is interpreted as if
# everything on the right of the "-a" had been typed on the command line.
#
# You can encode a module within a module by using the special '&'
# character to interpose another module into the current module. This
# can be useful for creating a module that consists of many directories
# spread out over the entire source repository.
# The "notify" file controls where notifications from watches set by
# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
# a regular expression which is tested against the directory that the
# change is being made to, relative to the $CVSROOT. If it matches,
# then the remainder of the line is a filter program that should contain
# one occurrence of %s for the user to notify, and information on its
# standard input.
#
# "ALL" or "DEFAULT" can be used in place of the regular expression.
#
# For example:
#ALL mail %s -s "CVS notification"
# The "rcsinfo" file is used to control templates with which the editor
# is invoked on commit and import.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being made to, relative to the
# $CVSROOT. For the first match that is found, then the remainder of the
# line is the name of the file that contains the template.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# The "taginfo" file is used to control pre-tag checks.
# The filter on the right is invoked with the following arguments:
#
# $1 -- tagname
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
# $3 -- repository
# $4-> file revision [file revision ...]
#
# A non-zero exit of the filter program will cause the tag to be aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT. For the first match that is found, then the remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# The "verifymsg" file is used to allow verification of logging
# information. It works best when a template (as specified in the
# rcsinfo file) is provided for the logging procedure. Given a
# template with locations for, a bug-id number, a list of people who
# reviewed the code before it can be checked in, and an external
# process to catalog the differences that were code reviewed, the
# following test can be applied to the code:
#
# Making sure that the entered bug-id number is correct.
# Validating that the code that was reviewed is indeed the code being
# checked in (using the bug-id number or a seperate review
# number to identify this particular code set.).
#
# If any of the above test failed, then the commit would be aborted.
#
# Actions such as mailing a copy of the report to each reviewer are
# better handled by an entry in the loginfo file.
#
# One thing that should be noted is the the ALL keyword is not
# supported. There can be only one entry that matches a given
# repository.
*.gz
*.o
*.rpm
*.tar.gz
*.tar.gz.asc
*~
.deps
Makefile
Makefile.in
VERSION
aclocal.m4
add
autom4te.cache
autotools.diff
build
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
core
cvs-script
depcomp
install-sh
missing
mkinstalldirs
smartctl
smartctl.8
smartd
smartd.8
smartd.conf.5
smartd.conf.sample
smartd.initd
stamp-h
stamp-h.in
stamp-h1
writelog.c
$Id: AUTHORS,v 1.7 2003/10/26 02:12:33 ballen4705 Exp $
This code was originally developed as a Senior Thesis by Michael
Cornwell at the Concurrent Systems Laboratory (now part of the Storage
Systems Research Center), Jack Baskin School of Engineering,
University of California, Santa Cruz. http://ssrc.soe.ucsc.edu/
This package is meant to be an up-to-date replacement for the
ucsc-smartsuite and smartsuite packages, and is derived from that
code.
Maintainers / Developers:
Bruce Allen <smartmontools-support@lists.sourceforge.net>
Erik Inge Bols <knan@mo.himolde.no>
Stanislav Brabec <sbrabec@suse.cz>
Peter Cassidy <pcassidy@mac.com>
Casper Dik <casper@holland.sun.com>
Guilhem Frzou <guilhem.frezou@catii.fr>
Douglas Gilbert <dougg@torque.net>
Guido Guenther <agx@sigxcpu.org>
Kai Mkisara <kai.makisara@kolumbus.fi>
Eduard Martinescu <martines@rochester.rr.com>
Frdric L. W. Meunier <http://www.pervalidus.net/contact.html>
Phil Williams <phil@subbacultcha.demon.co.uk>
This diff is collapsed.
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
Smartmontools installation instructions
=======================================
$Id: INSTALL,v 1.26 2003/10/27 13:52:32 ballen4705 Exp $
Please also see the smartmontools home page:
http://smartmontools.sourceforge.net/
Table of contents:
[1] Kernel requirements
[2] Installing from CVS
[3] Installing from source tarball
[4] Guidelines for different linux distributions
[5] Guidelines for FreeBSD
[6] Guidelines for Solaris
[7] Comments
[8] Detailed description of ./configure options
[1] Kernel requirements
=======================
A) Linux
Any recent Linux distribution should support smartmontools. Note that
smartmontools requires Linux kernel 2.2.14 or greater in order to run
at all. But to give the ATA RETURN SMART STATUS command, the kernel
needs to support the HDIO_DRIVE_TASK ioctl(). Any 2.4 series kernel
should provide this support. Some of the 2.2.20 and later kernels
also provide this support if they're properly patched and configured.
Please see FAQ section of the URL above.
B) FreeBSD
For FreeBSD support, a 5-current kernel that includes ATAng is required in
order to support ATA drives. Even current versions of ATAng will not support
100% operation, as the SMART status can not be reliably retrieved. There
is patch pending approval of the ATAng driver maintainer that will address
this issue.
[2] Installing from CVS
=======================
Get the sources from the CVS archive:
cvs -d :pserver:anonymous@cvs.smartmontools.sourceforge.net:/cvsroot/smartmontools login
cvs -d :pserver:anonymous@cvs.smartmontools.sourceforge.net:/cvsroot/smartmontools co sm5
(when prompted for a password, just press Enter)
Then type:
./autogen.sh
and continue with step [3] below, skipping the "unpack the tarball" step.
Further details of using CVS can be found at the URL above.
The autogen.sh command is ONLY required when installing from CVS. You
need GNU Autoconf (version 2.50 or greater) GNU Automake (version 1.6
or greater) and their dependencies installed in order to run it. You
can get these here:
http://www.gnu.org/directory/GNU/autoconf.html
http://www.gnu.org/directory/GNU/automake.html
[3] Installing from the source tarball
======================================
If you are NOT installing from CVS, then unpack the tarball:
tar zxvf smartmontools-5.VERSION.tar.gz
Then:
./configure
make
make install (you may need to be root to do this)
As shown (with no options to ./configure) this defaults to the
following set of installation directories:
--prefix = /usr
--sbindir = /usr/sbin
--sysconfdir = /etc
--mandir = /usr/share/man
--with-docdir = /usr/share/doc/smartmontools-VERSION
--with-initscriptdir = /etc/rc.d/init.d
--disable-sample
These will overwrite existing "distribution" installations for Red
Hat, Slackware, and some other Linux distributions.
For different installation locations or distributions, simply add
arguments to ./configure as shown in [4] below.
If you wish to alter the default C-compiler flags, set an environment
variable CFLAGS='your options' before doing ./configure, or else do
make CFLAGS='your options',
[4] Guidelines for different Linux distributions
================================================
Note: Please send corrections/additions to:
smartmontools-support@lists.sourceforge.net
Red Hat
./configure
OR EQUIVALENTLY
./configure --sbindir=/usr/sbin \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--with-initscriptdir=/etc/rc.d/init.d \
--with-docdir=/usr/share/doc/smartmontools-VERSION
Filesystem Hierarchy Standard (FHS), FreeBSD
./configure --sbindir=/usr/local/sbin \
--sysconfdir=/usr/local/etc \
--mandir=/usr/local/man \
--with-initscriptdir=/usr/local/etc/rc.d/init.d \
--with-docdir=/usr/local/share/doc/smartmontools-VERSION
SuSE
./configure [PLEASE ADD]
Debian
./configure --prefix=/usr/local
Slackware
If you don't want to overwrite any "distribution" package, use
./configure --prefix=/usr/local
Otherwise use
./configure --sbindir=/usr/sbin \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--with-initscriptdir=/etc/rc.d \
--with-docdir=/usr/share/doc/smartmontools-VERSION
And
removepkg smartmontools smartsuite (only root can do this)
before make install
The init script works on Slackware. You just have to add an entry like
the following in /etc/rc.d/rc.M or /etc/rc.d/rc.local:
if [ -x /etc/rc.d/smartd ]; then
. /etc/rc.d/smartd start
fi
To disable it:
chmod 644 /etc/rc.d/smartd
For a list of options:
/etc/rc.d/smartd
[5] Guidelines for FreeBSD
================================================
To match the way it will installed when it becomese available as a PORT, use
the following:
./configure --prefix=/usr/local \
--with-initscriptdir=/usr/local/etc/rc.d/ \
--with-docdir=/usr/local/share/doc/smartmontool \
--enable-sample
Also, it is important that you use GNU make (gmake from /usr/ports/devel/gmake)
to build smartmontools, as the default FreeBSD make doesn't know how to build
the man pages.
NOTE: --enable-sample will cause the smard.conf and smartd RC files to
be installed with the string '.sample' append to the name, so you will end
up with the following:
/usr/local/etc/smartd.conf.sample
/usr/local/etc/rc.d/smartd.sample
[6] Guidelines for Solaris
==========================
smartmontools has been partially but not completely ported to solaris.
It includes complete SCSI support but no ATA or 3ware support. It can
be compiled with either cc or gcc. To compile with gcc:
./configure [args]
make
To compile with Sun cc
export CC=cc [Note: bash syntax]
./configure [args]
make
The correct arguments [args] to configure are:
--sbindir = /usr/sbin \
--sysconfdir = /etc \
--mandir = /usr/share/man \
--with-docdir = /usr/share/doc/smartmontools-VERSION \
--with-initscriptdir = /etc/init.d
To start the script automatically on bootup, create hardlinks that
indicate when to start/stop in:
/etc/rc[S0123].d/
pointing to /etc/rc.d/smartd. Create:
K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
S<snum>smartd in rc3.d
where <knum> is related to <snum> such that the higher snum is the
lower knum must be)
[7] Comments
============
To compile from another directory, you can replace the step
./configure [options]
by the following:
mkdir objdir
cd objdir
../configure [options]
To install to another destination (used mainly by package maintainers,
or to examine the package contents without risk of modifying any
system files) you can replace the step:
make install
with:
make DESTDIR=/home/myself/smartmontools-package install
Use a full path. Paths like ~/smartmontools-package may not work.
After installing smartmontools, you can read the man pages, and try
out the commands:
man smartd.conf
man smartctl
man smartd
/usr/sbin/smartctl -s on -o on -S on /dev/hda (only root can do this)
/usr/sbin/smartctl -a /dev/hda (only root can do this)
Note that the default location for the manual pages are
/usr/share/man/man5 and /usr/share/man/man8. If "man" doesn't find
them, you may need to add /usr/share/man to your MANPATH environment
variable.
Source and binary RPM packages are available at
http://sourceforge.net/project/showfiles.php?group_id=64297
Refer to http://smartmontools.sourceforge.net/index.html#howtodownload
for any additional download and installation instructions.
The following files are installed:
/usr/sbin/smartctl [Executable command-line utility]
/usr/sbin/smartd [Executable daemon]
/etc/rc.d/init.d/smartd [Init/Startup script for smartd]
/usr/share/man/man5/smartd.conf.5 [Manual page]
/usr/share/man/man8/smartctl.8 [Manual page]
/usr/share/man/man8/smartd.8 [Manual page]
/usr/share/doc/smartmontools-5.X/AUTHORS [Information about the authors and developers]
/usr/share/doc/smartmontools-5.X/CHANGELOG [A log of changes. Also see CVS]
/usr/share/doc/smartmontools-5.X/COPYING [GNU General Public License Version 2]
/usr/share/doc/smartmontools-5.X/INSTALL [Installation instructions: what you're reading!]
/usr/share/doc/smartmontools-5.X/NEWS [Significant bugs discovered in old versions]
/usr/share/doc/smartmontools-5.X/README [Overview]
/usr/share/doc/smartmontools-5.X/TODO [Things that need to be done/fixed]
/usr/share/doc/smartmontools-5.X/WARNINGS [Systems where lockups or other serious problems reported]
/usr/share/doc/smartmontools-5.X/smartd.conf [Example configuration file for smartd]
/usr/share/doc/smartmontools-5.X/examplescripts [Executable scripts for -M exec of smartd.conf (4 files)]
[8] Detailed description of arguments to configure command
==========================================================
When you type:
./configure [options]
there are six particularly important variables that affect where the
smartmontools software is installed. The variables are listed here,
with their default values in square brackets, and the quantities that
they affect described following that. This is a very wide table: please read
it in a wide window.
OPTIONS DEFAULT AFFECTS
------- ------- -------
--prefix [NO VALUE] Please see below
--sbindir /usr/sbin Directory for smartd/smartctl executables;
Contents of smartd/smartctl man pages
--mandir /usr/share/man Directory for smartctl/smartd/smartd.conf man pages
--sysconfdir /etc Directory for smartd.conf;
Contents of smartd executable;
Contents of smartd/smartd.conf man pages;
Directory for rc.d/init.d/smartd init script
--with-initscriptdir ${sysconfdir}/init.d/rc.d Location of init scripts
--with-docdir $(prefix)/usr/share/doc/smartmontools-5.X Location of the documentation
--enable-sample --disable-sample Adds the string '.sample' to the names of the smartd.conf file and the smartd RC file
If you set --prefix and NONE of the other four variables, for example:
./configure --prefix=/home/joe
then the DEFAULT paths will ALL have prefix appended to them.
For example, if you set --prefix=/home/joe and none of the other four
variables then the different directories that are used would be:
--sbindir /home/joe/usr/sbin
--mandir /home/joe/usr/share/man
--sysconfdir /home/joe/etc
--with-initscriptdir /home/joe/etc/init.d/rc.d
--with-docdir /home/joe/usr/share/doc/smartmontools-5.X
This is useful for test installs in a harmless subdirectory somewhere.
Here are the four possible cases for the four variables above:
Case 1:
--prefix not set
--variable not set
===> VARIABLE gets default value above
Case 2:
--prefix set
--variable not set
===> VARIABLE gets PREFIX/ prepended to default value above
Case 3:
--prefix not set
--variable set
===> VARIABLE gets value that is set
Case 4:
--prefix is set
--variable is set
===> PREFIX is IGNORED, VARIABLE gets value that is set
For Filesystem Hierarchy Standard (FHS) installation locations
described in http://www.pathname.com/fhs/ please use:
--prefix=/usr/local
Here are the differences with and without --enable-sample, assuming
no other options specified (see above for details)
Case 1:
--enable-sample provided
==> Files installed are:
/etc/smartd.conf.sample
/etc/rc.d/init.d/smartd.sample
Case 2:
--disable-sample provided or parameter left out
==> Files installed are:
/etc/smartd.conf
/etc/rc.d/init.d/smartd
Additional information about using configure can be found here:
http://www.gnu.org/manual/autoconf-2.57/html_mono/autoconf.html#SEC139
## Process this file with automake to produce Makefile.in
#
# $Id: Makefile.am,v 1.38 2003/11/23 10:52:02 ballen4705 Exp $
#
@SET_MAKE@
AUTOMAKE_OPTIONS = 1.6
sbin_PROGRAMS = smartd \
smartctl
AM_CPPFLAGS = -DSYSCONFDIR=\"$(sysconfdir)\"
smartd_SOURCES = smartd.c \
smartd.h \
atacmdnames.c \
atacmdnames.h \
atacmds.c \
atacmds.h \
ataprint.c \
ataprint.h \
extern.h \
knowndrives.c \
knowndrives.h \
scsicmds.c \
scsicmds.h \
scsiprint.c \
scsiprint.h \
utility.c \
utility.h
smartd_LDADD = @os_deps@ @os_libs@
smartd_DEPENDENCIES = @os_deps@
EXTRA_smartd_SOURCES = os_linux.c \
os_linux.h \
os_freebsd.c \
os_freebsd.h \
os_solaris.c \
os_solaris.h \
os_generic.c \
os_generic.h
smartctl_SOURCES= smartctl.c \
smartctl.h \
atacmdnames.c \
atacmdnames.h \
atacmds.c \
atacmds.h \
ataprint.c \
ataprint.h \
extern.h \
knowndrives.c \
knowndrives.h \
scsicmds.c \
scsicmds.h \
scsiprint.c \
scsiprint.h \
utility.c \
utility.h
smartctl_LDADD = @os_deps@ @os_libs@
smartctl_DEPENDENCIES = @os_deps@
EXTRA_smartctl_SOURCES = os_linux.c \
os_linux.h \
os_freebsd.c \
os_freebsd.h \
os_solaris.c \
os_solaris.h \
os_generic.c \
os_generic.h
man_MANS = smartd.conf.5 \
smartctl.8 \
smartd.8
docsdir=$(docdir)
docs_DATA = AUTHORS \
CHANGELOG \
COPYING \
INSTALL \
NEWS \
README \
TODO \
WARNINGS \
smartd.conf
sysconf_DATA = smartd.conf$(smartd_suffix)
if SMARTD_SUFFIX
smartd.conf$(smartd_suffix): smartd.conf
cp smartd.conf smartd.conf$(smartd_suffix)
endif
initd_DATA = smartd.initd
EXTRA_DIST = $(man_MANS) \
smartmontools.spec \
smartd.initd.in \
smartd.initd \
smartd.8.in \
smartctl.8.in \
smartd.conf.5.in \
smartd.conf \
$(docs_DATA)
DISTCLEANFILES = smartd.conf.5 \
smartd.8 \
smartctl.8 \
smartd.initd
smartd.conf.5.in: smartd.8.in
sed '1,/STARTINCLUDE/ D;/ENDINCLUDE/,$$D' < $(srcdir)/smartd.8.in > $(top_builddir)/tmp.directives
sed '/STARTINCLUDE/,$$D' < $(srcdir)/smartd.conf.5.in > $(top_builddir)/tmp.head
sed '1,/ENDINCLUDE/D' < $(srcdir)/smartd.conf.5.in > $(top_builddir)/tmp.tail
cat $(top_builddir)/tmp.head > $(srcdir)/smartd.conf.5.in
echo '.\" STARTINCLUDE' >> $(srcdir)/smartd.conf.5.in
cat $(top_builddir)/tmp.directives >> $(srcdir)/smartd.conf.5.in
echo '.\" ENDINCLUDE' >> $(srcdir)/smartd.conf.5.in
cat $(top_builddir)/tmp.tail >> $(srcdir)/smartd.conf.5.in
rm -f $(top_builddir)/tmp.head $(top_builddir)/tmp.tail $(top_builddir)/tmp.directives
install-initdDATA: $(initd_DATA)
$(mkinstalldirs) $(DESTDIR)$(initddir)
$(INSTALL_SCRIPT) $(top_builddir)/smartd.initd $(DESTDIR)$(initddir)/smartd$(smartd_suffix)
@echo -e "\n\nTo manually start smartd on bootup, run /etc/rc.d/init.d/smartd start"
@echo "To automatically start smartd on bootup, run /sbin/chkconfig --add smartd"
@echo -e "\n\nSmartd can now use a configuration file /etc/smartd.conf. Do:\nman 8 smartd\n."
@echo -e "A sample configuration file may be found in ${docdir}.\n\n"
uninstall-initdDATA:
rm -rf $(DESTDIR)$(initddir)/smartd$(smartd_suffix)
uninstall-docsDATA:
rm -rf $(DESTDIR)$(docsdir)
smart%: $(srcdir)/smart%.in Makefile
sed "s|RELEASE|$(releaseversion)|g" $< | \
sed "s|/usr/share/man/|$(mandir)/|g" | \
sed "s|/usr/sbin/|$(sbindir)/|g" | \
sed "s|/etc/rc\\.d/init.d/|$(initddir)/|g" | \
sed "s|/usr/share/doc/smartmontools-5\\.1/|$(docsdir)/|g" | \
sed 's/"\$$\Date: //g; s/ [0-9:]* \$$"//g' | \
sed "s|/etc/smartd\\.conf|$(sysconfdir)/smartd\\.conf|g" > $@
SUBDIRS= . examplescripts
smartmontools NEWS
------------------
CVS ID: $Id: NEWS,v 1.12 2003/11/20 05:40:07 ballen4705 Exp $
The most up-to-date version of this file is:
http://cvs.sourceforge.net/viewcvs.py/smartmontools/sm5/NEWS?sortby=date&view=markup
Date: 2003-11-19
Summary: smartmontools release 5.25
-----------------------------------
This release should not hang when accessing USB devices. It provides
smartd SCSI self-test log monitoring for self-test errors, and a
larger table of known ATA drives. DEVICESCAN should work correctly
even on file systems containing XFS or JFS partitions, and on machines
that use devfs, even without traditional links.
From this time on, even numbered releases will be 'stable' ones and
odd numbered releases (like 5.25) will be unstable/testing/development
releases.
Date: 2003-10-30
Summary: smartmontools release 5.23
-----------------------------------
This release has one known problem: DEVICESCAN device scanning does
not work correctly if the disk with the /dev directory also has XFS
or JFS file systems on it.
Date: 2003-10-28
Summary: smartmontools release 5.22
-----------------------------------
Replaces flawed 5.21 release: the -T verypermissive option had to be
entered as -T verpermissive. First experimental solaris support (SCSI
only). This release had a serious flaw: smartd left open file descriptors
for devices that it couldn't monitor.
Date: 2003-10-14
Summary: smartmontools release 5.21
-----------------------------------
Preliminary support for FreeBSD added to smartmontools. For FreeBSD,
ATA support requires a 5.1-CURRENT kernel while SCSI support should
work across multiple versions (any that support CAM).
Date: 2003-10-04
Summary: smartmontools release 5.20
-----------------------------------
Replaces flawed 5.19 release (which had a zero-length man page
smartd.conf.5).
Date: 2003-10-03
Summary: smartmontools release 5.19
-----------------------------------
This is the first release of smartmontools based on autoconf/automake.
For this reason, it is a very experimental release. Please let us
know in particular about documenation errors/omissions, missing or
unneccesary files, and similar oversights. The major changes are:
[1] installation scripts based on autoconfig/automake
[2] ./configure [options] lets you set arbitrary paths
[3] supports FHS with ./configure --prefix=/usr/local
[4] correct paths are inserted into all man pages, binaries, etc.
[5] tarballs and RPMs are now GPG-signed
Date: 2003-10-02 11:35
Summary: smartd SEGV
--------------------
Some versions of smartd, including smartmontools release 5.1-18, will
SEGV if the combination of Directives in /etc/smartd.conf contains
-l error
AND/OR
-l selftest
without any Attribute monitoring Directives. This is fixed in 5.19
and above.
A good workaround is to add:
-o on
OR
-o off
to enable or disable automatic offline data collection.
Date: 2002-11-17 07:41
Summary: testunitready bug in smartd
------------------------------------
A bug in smartd prevented functioning on scsi devices.
The bug in question only affects smartd users with scsi devices.
To see if your version of smartd has the testunitready() bug, do
smartd -V
If the version of the module smartd.c in a line like:
Module: smartd.c revision: 1.66 date: 2002/11/17
has a revision greater than or equal to 1.30, and less than or
equal to 1.64, then your version of the code has this problem.
This problem affected releases starting with RELEASE_5_0_16 up to and
including RELEASE_5_0_43.
====================================================
smartmontools - S.M.A.R.T. utility toolset for Linux
====================================================
$Id: README,v 1.48 2003/10/03 14:01:47 ballen4705 Exp $
== HOME ==
The home for smartmontools is located at:
http://smartmontools.sourceforge.net/
Please see this web site for updates, documentation, and for submitting
patches and bug reports.
You will find a mailing list for support and other questions at:
http://lists.sourceforge.net/lists/listinfo/smartmontools-support
== COPYING ==
Copyright (C) 2002-3 Bruce Allen <smartmontools-support@lists.sourceforge.net>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
You should have received a copy of the GNU General Public License (for
example COPYING); if not, write to the Free Software Foundation, Inc., 675
Mass Ave, Cambridge, MA 02139, USA.
== CREDITS ==
This code was originally developed as a Senior Thesis by Michael Cornwell
at the Concurrent Systems Laboratory (now part of the Storage Systems
Research Center), Jack Baskin School of Engineering, University of
California, Santa Cruz. http://ssrc.soe.ucsc.edu/
== OVERVIEW ==
smartmontools contains utilities that control and monitor storage
devices using the Self-Monitoring, Analysis and Reporting Technology
(S.M.A.R.T.) system build into ATA and SCSI Hard Drives. This is used
to check the reliability of the hard drive and to predict drive
failures. smartmontools Version 5.x is designed to comply to the
ATA/ATAPI-5 specification (Revision 1). Future releases of
smartmontools (Versions 6.x and 7.x) will comply with the ATA/ATAPI-6
and ATA/ATAPI-7 specifications.
This package is meant to be an up-to-date replacement for the
ucsc-smartsuite and smartsuite packages, and is derived from that
code.
== CONTENTS ==
The suite contains two utilities:
smartctl is a command line utility designed to perform S.M.A.R.T. tasks
such as disk self-checks, and to report the S.M.A.R.T. status of
the disk.
smartd is a daemon that periodically monitors S.M.A.R.T. status and
reports errors and changes in S.M.A.R.T. attributes to syslog.
== OBTAINING SMARTMONTOOLS ==
Source tarballs
---------------
http://sourceforge.net/project/showfiles.php?group_id=64297
CVS
---
cvs -d:pserver:anonymous@cvs.smartmontools.sourceforge.net:/cvsroot/smartmontools login (when prompted for a password, just press Enter)
cvs -d:pserver:anonymous@cvs.smartmontools.sourceforge.net:/cvsroot/smartmontools co sm5
This will create a subdirectory called sm5/ containing the code.
To instead get the 5.1-16 release:
cvs -d:pserver:anonymous@cvs.smartmontools.sourceforge.net:/cvsroot/smartmontools co -r RELEASE_5_1_16 sm5
To update your sources to the 5.1-18 release:
cd sm5
cvs up -r RELEASE_5_1_18
To update any tagged release to the latest development code:
cd sm5
cvs up -A
You can see what the different tags are by looking at
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/smartmontools/sm5/ .
You'll see the tag names in the little scroll window where it says "Show
only files with tag".
== BUILDING/INSTALLING SMARTMONTOOLS ==
Refer to the "INSTALL" file for installation instructions.
See the "WARNINGS" file for reports of hardware where these utilities
might cause serious problems such as lockups.
TODO list for smartmontools:
$Id: TODO,v 1.39 2003/10/03 14:01:47 ballen4705 Exp $
Testing
-------
Test with SCSI, FireWire, USB, and SATA devices. Doug Gilbert is now
doing some of this.
Extensions
----------
Produce version for ATA/ATAPI-6 (support for extended error logs)
Produce version for ATA/ATAPI-7
smartctl:
---------
Handle extended error and self-test logs gracefully. Can someone tell
me a disk that supports more than ATA log pages 1 and 6? I need to
get a disk so I can test this functionality, when I add it.
Perhaps modify the -q option (quiet mode) so that it only warns of ATA
errors if they have (say) taken place in the last 168 hours (week).
Parse and print more attribute flag meanings (IBM ones, eg performance
etc).
smartd:
-------
Perhaps change <nomailer> special argument to -m to have also
<nomailer_fork> which would actually work with -M exec to run the
executable/script in the background rather than in the foreground.
But let's wait for someone to request this. At that point we should
probably use fork/exec rather than system().
Perhaps change smartd to look in /proc/ide and /proc/scsi to see what
exists? If something doesn't exit then don't try to open it? This
should probably be the default option if there is no configuration
file.
Add ability to monitor "worst" value from attributes (sometimes it
gets larger!) and to monitor the threshold value (sometimes it
changes!).
Ports
-----
Port to other platforms. One for Windows (Cygwin) is badly needed
since some people asked for it, but we need volunteers for any such
work. Bruce has some code fragments for accessing SMART data under
Windows. FreeBSD and Solaris ports are underway -- please email the
support list if you are interested.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment