fwts - a firmware test suite to identify firmware bugs.
fwts [options] [test(s)]
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).
fwts options are as follow:
run all the tests.
run the non-interactive batch tests. Batch tests require no user
run only batch experimental tests.
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.
specify the full path and filename to the the dmidecode binary.
specify DSDT file rather than reading it from the ACPI table on
the machine. Deprecated.
extracts firmware data and dumps it into log files. This
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
creates a new results log file, rather than just appending to
any existing one (default).
enable the internal debugger. This dumps debug information to
outputs the internal help page.
--iasl specify the full path and filename to the the iasl binary.
run the interactive tests. These tests require user interaction.
run only interactive experimental tests.
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.
show the available log filtering fields. Specifying these fields
with --log-filter to select which fields one wants to log.
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
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): "
specify the full path and filename to the the lspci binary.
do not run the S3 suspend/resume tests
do not run the S4 hibernate/resume tests
run S3 and S4 power state tests (s3, s4 tests)
no pretty printing of horizontal separators in the results log
specify the results output log file. One can also specify
stdout and stderr to redirect to these output streams.
time to be added onto delay between each S3 iteration.
minimum time between S3 iterations.
maximum time between S3 iterations.
specified the number of multiple S3 suspend/resume tests to run.
The default is 2 tests.
specified the number of multiple S4 hibernate/resume tests to
run. The default is 2 tests.
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.
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.
output SUCCESS or FAILED to stdout at end of tests.
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
output version number and build date of the fwts tool.
specify the width in characters of the output logfile. The
default is 130.
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
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
sudo fwts -i --log-filter=RES,INF,SUM
Dump all the interesting firmware information into log files for
sudo fwts --dump
View kernel and ACPI driver version and BIOS information:
sudo fwts -w 80 -r stdout version bios_info --log-filter=INF
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
iasl(1), acpixtract(1), acpidump(1), dmidecode(8), lspci(8)
fwts was written by Colin King <firstname.lastname@example.org> with a lot of
the original test code derived from the Intel Linux Firmware test kit.
This manual page was written by Colin King <email@example.com>,
for the Ubuntu project (but may be used by others).
July 8, 2010