NAME
fwts - a firmware test suite to identify firmware bugs.
SYNOPSIS
fwts [options] [test(s)]
DESCRIPTION
This manual page documents briefly the fwts firmware test suite. The
tool fwts is comprised of over thirty tests that are designed to
exercise and test different aspects of a machine's firmwarm. Many of
these tests need super user access to extract tables and interact with
the firmware and ACPI, so running fwts using sudo is required.
Running fwts with no options will run through all the batch tests that
require no user interaction. However, one can specify the tests one
wants to test and also run interactive tests (such as checking for
hotkey events, lid open/close events, etc.) if required.
By default fwts outputs the test results into the log file results.log
however a different log file name can be specified and if required,
output to stderr or stdout can be selected.
Note that there a variety of tests, including tests that can
potentially hang a machine (such as a suspend/hibernate/resume).
OPTIONS
fwts options are as follow:
-a, --all
run all the tests.
-b, --batch
run the non-interactive batch tests. Batch tests require no user
interaction.
--batch-experimental
run only batch experimental tests.
--debug-output=file
when running with --fwts-debug this option specifies where the
debug output will be written to. One can also specify stdout and
stderr to redirect to these output streams.
--dmidecode=file
specify the full path and filename to the the dmidecode binary.
--dsdt=file
specify DSDT file rather than reading it from the ACPI table on
the machine. Deprecated.
-d, --dump
extracts firmware data and dumps it into log files. This
generates:
acpidump.log - containing a hex dump of the ACPI tables (which
can be read using acpixtract).
dmesg.log - containing the current kernel log messages.
dmidecode.log - containing the output from dmidecode.
lspci.log - containing the output from lspci -vv -nn
README.txt - containing a timestamp and kernel version
information.
-f, --force-clean
creates a new results log file, rather than just appending to
any existing one (default).
--fwts-debug
enable the internal debugger. This dumps debug information to
stderr.
-h, --help
outputs the internal help page.
--iasl specify the full path and filename to the the iasl binary.
-i, --interactive
run the interactive tests. These tests require user interaction.
--interactive-experimental
run only interactive experimental tests.
--klog=file
read the kernel log from the specified file rather than from the
kernel log ring buffer. This allows one to run the kernel log
scanning tests such as klog against pre-gathered log data.
--log-fields
show the available log filtering fields. Specifying these fields
with --log-filter to select which fields one wants to log.
--log-filter
specify which particular types of log data to be output into the
log file. Each line of log data is tagged with a special marker
depending on what type of log information is being output. The
available types can be see by using --log-fields. Specify the
desired log types with comma separated list. To disable a field,
prefix the name with ~, for example:
--log-filter=RES,SUM logs just the results and summary lines.
--log-filter=ALL,~INF logs all lines except for the information
lines.
--log-format
specify the information in each log line. The following
specifiers are available:
%data - date
%time - time
%field - log-filter fields
%owner - name of the test routine
%level - test failure level
%line - log line
e.g. --log-format="%date %time [%field] (%owner): "
--lspci=path
specify the full path and filename to the the lspci binary.
--no-s3
do not run the S3 suspend/resume tests
--no-s4
do not run the S4 hibernate/resume tests
-P, --power-states
run S3 and S4 power state tests (s3, s4 tests)
--results-no-separators
no pretty printing of horizontal separators in the results log
file.
-r, --results-output=filename
specify the results output log file. One can also specify
stdout and stderr to redirect to these output streams.
--s3-delay-delta=N
time to be added onto delay between each S3 iteration.
--s3-min-delay=N
minimum time between S3 iterations.
--s3-max-delay=N
maximum time between S3 iterations.
--s3-multiple=N
specified the number of multiple S3 suspend/resume tests to run.
The default is 2 tests.
--s4-multiple=N
specified the number of multiple S4 hibernate/resume tests to
run. The default is 2 tests.
-p, --show-progress
show the progress of the tests being run. Each test will
identified as it is being run. For long tests, a percentage of
completion time will be displayed.
-s, --show-tests
show the names of all the available tests. By default will show
all tests. Use the --batch, --interactive, --batch-experimental,
--interactive-experimental options to show these specific tests.
--stdout-summary
output SUCCESS or FAILED to stdout at end of tests.
--table-path=path
specify the path containing ACPI tables. These tables need to be
named in the format: tablename.dat, for example DSDT.dat, for
example, as extracted using acpidump or fwts --dump and then
acpixtract.
-v, --version
output version number and build date of the fwts tool.
-w, --width=N
specify the width in characters of the output logfile. The
default is 130.
EXAMPLES
Run all the batch tests except for S3 and S4 tests and append the
results into the default log results.log:
sudo fwts --no-s3 --no-s4
Run all the interactive tests and start a clean results log called
interactive.log:
sudo fwts -i -f -r interactive.log
Run all the tests, interactive and batch:
sudo fwts -i -b
Run just the battery and cpufreq tests:
sudo fwts battery cpufreq
Run all the batch tests and define a new log format using just the date
and line number:
sudo fwts --log-format="%date %line: "
Run all the interative tests and log just the results, info and summary
data:
sudo fwts -i --log-filter=RES,INF,SUM
Dump all the interesting firmware information into log files for
analysis later:
sudo fwts --dump
View kernel and ACPI driver version and BIOS information:
sudo fwts -w 80 -r stdout version bios_info --log-filter=INF
--log-format=""
Show the batch and batch experimental tests:
fwts --show-tests --batch --batch-experimental
Run multiple S3 tests with delay between each test ranging from 1
second to 10 seconds with a delay delta per test of 0.2 seconds
sudo fwts s3 --s3-multiple=100 --s3-min-delay=1
--s3-max-delay=10 --s3-delay-delta=0.2
SEE ALSO
iasl(1), acpixtract(1), acpidump(1), dmidecode(8), lspci(8)
AUTHOR
fwts was written by Colin King <colin.king@canonical.com> with a lot of
the original test code derived from the Intel Linux Firmware test kit.
This manual page was written by Colin King <colin.king@canonical.com>,
for the Ubuntu project (but may be used by others).
July 8, 2010