'\" t
.\"     Title: nvme-wdc-vs-internal-log
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 11/21/2025
.\"    Manual: NVMe Manual
.\"    Source: NVMe
.\"  Language: English
.\"
.TH "NVME\-WDC\-VS\-INTER" "1" "11/21/2025" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nvme-wdc-vs-internal-log \- Retrieve WDC device\*(Aqs internal firmware log and save to file\&.
.SH "SYNOPSIS"
.sp
.nf
\fInvme wdc vs\-internal\-log\fR <device> [\-\-output\-file=<FILE>, \-o <FILE>]
                        [\-\-transfer\-size=<SIZE>, \-s <SIZE>]
                        [\-\-data\-area=<DATA AREA>, \-d <DATA_AREA>]
                        [\-\-file\-size=<FILE SIZE>, \-f <FILE SIZE>]
                        [\-\-offset=<OFFSET>, \-e <OFFSET>]
                        [\-\-type=<TYPE>, \-t <type>] [\-\-verbose, \-v]
.fi
.SH "DESCRIPTION"
.sp
For the NVMe device given, sends the WDC Vendor Specific Internal Log request and saves the result to a file\&.
.sp
The <device> parameter is mandatory NVMe character device (ex: /dev/nvme0)\&.
.sp
This will only work on WDC devices supporting this feature\&. Results for any other device are undefined\&.
.SH "OPTIONS"
.PP
\-o <FILE>, \-\-output\-file=<FILE>
.RS 4
Output file; defaults to device serial number followed by "\fIinternal_fw_log\fR<date>_<time>\&.bin" suffix
.RE
.PP
\-s <SIZE>, \-\-transfer\-size=<SIZE>
.RS 4
Transfer size; defaults to 0x10000 (65536 decimal) bytes
.RE
.PP
\-d <DATA AREA>, \-\-data\-area=<DATA AREA>
.RS 4
DUI data area to retrieve\&. The DUI data areas from 1 to <DATA AREA> will be retrieved\&. This parameter is currently only supported on the SN340, SN640, SN730, and SN840 devices\&.
.RE
.PP
\-f <FILE SIZE>, \-\-file\-size=<FILE SIZE>
.RS 4
Specifies the desired size of the data file starting at the passed in offset\&. This allows the user to retrieve the data in several smaller files of the passed in size\&. This parameter is currently only supported on the SN340 device\&.
.RE
.PP
\-e <OFFSET>, \-\-offset=<OFFSET>
.RS 4
Specifies the data offset at which to start retrieving the data\&. This parameter is used in combination with the file size parameter to retrieve the data in several smaller files\&. This parameter is currently only supported on the SN340 device\&.
.RE
.PP
\-t <TYPE>, \-\-type=<TYPE>
.RS 4
Specifies the telemetry type \- NONE, HOST, or CONTROLLER\&. This parameter is used to get either the host generated or controller initiated telemetry log page\&. If not specified or none is specified, the command will return the default E6 log data\&. This parameter is currently only supported on the SN640 and SN840 devices\&.
.RE
.PP
\-v <VERBOSE>, \-\-verbose=<VERBOSE>
.RS 4
Provides additional debug messages for certain drives\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Gets the internal firmware log from the device and saves to default file in current directory (e\&.g\&. STM00019F3F9_internal_fw_log_20171127_095704\&.bin):
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme wdc vs\-internal\-log /dev/nvme0
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Gets the internal firmware log from the device and saves to defined file in current directory (e\&.g\&. test\&.bin):
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme wdc vs\-internal\-log /dev/nvme0 \-o test\&.bin
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Gets the internal firmware log from the device and saves to defined file with pathname (e\&.g\&. /tmp/test):
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme wdc vs\-internal\-log /dev/nvme0 \-o /tmp/test
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Gets the internal firmware log from the device transferring the data in 64k chunks and saves to default file in current directory (e\&.g\&. STM00019F3F9_internal_fw_log_20171127_100754\&.bin):
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme wdc vs\-internal\-log /dev/nvme0 \-s 0x10000
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Gets the internal firmware log from the device transferring the data in 16k chunks and saves to default file in current directory (e\&.g\&. STM00019F3F9_internal_fw_log_20171127_100950\&.bin):
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme wdc vs\-internal\-log /dev/nvme0 \-s 16384
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Gets the internal firmware log up to data area 3 from the device in 3 files of 0x1000000 bytes:
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme wdc vs\-internal\-log /dev/nvme0 \-d 3 \-f 0x1000000 \-t 0x0000000 \-o /tmp/sn340_dui_data_1\&.bin
# nvme wdc vs\-internal\-log /dev/nvme0 \-d 3 \-f 0x1000000 \-t 0x1000000 \-o /tmp/sn340_dui_data_2\&.bin
# nvme wdc vs\-internal\-log /dev/nvme0 \-d 3 \-f 0x1000000 \-t 0x2000000 \-o /tmp/sn340_dui_data_3\&.bin
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Gets the host telemetry log page to data area 3 from the device and stores it in file host\-telem\-log\-da3\&.bin:
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme wdc vs\-internal\-log /dev/nvme1 \-t host \-o host\-telem\-log\-da3\&.bin \-d 3
.fi
.if n \{\
.RE
.\}
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Gets the controller telemetry log page to data area 3 from the device and stores it in file ctlr\-telem\-log\-da3\&.bin:
.sp
.if n \{\
.RS 4
.\}
.nf
# nvme wdc vs\-internal\-log /dev/nvme1 \-t controller \-o ctlr\-telem\-log\-da3\&.bin \-d 3
.fi
.if n \{\
.RE
.\}
.RE
.SH "NVME"
.sp
Part of the nvme\-user suite\&.
