Package: dmidecode Version: 3.6-2 Severity: minor Tags: patch * What led up to the situation?
New version of "dmidecode.8" -.- General remarks and further material, if a diff-file exist, are in the attachments. -- System Information: Debian Release: trixie/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 6.11.7-amd64 (SMP w/2 CPU threads; PREEMPT) Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: sysvinit (via /sbin/init) Versions of packages dmidecode depends on: ii libc6 2.40-3 dmidecode recommends no packages. dmidecode suggests no packages. -- no debconf information
Input file is dmidecode.8 Any program (person), that produces man pages, should check the output for defects by using (both groff and nroff) [gn]roff -mandoc -t -ww -b -z -K utf8 <man page> The same goes for man pages that are used as an input. For a style guide use mandoc -T lint -.- So any 'generator' should check its products with the above mentioned 'groff', 'mandoc', and additionally with 'nroff ...'. This is just a simple quality control measure. The 'generator' may have to be corrected to get a better man page, the source file may, and any additional file may. Common defects: Input text line longer than 80 bytes. Not removing trailing spaces (in in- and output). The reason for these trailing spaces should be found and eliminated. Not beginning each input sentence on a new line. Lines should thus be shorter. See man-pages(7), item 'semantic newline'. -.- The difference between the formatted output of the original and patched file can be seen with: nroff -mandoc <file1> > <out1> nroff -mandoc <file2> > <out2> diff -u <out1> <out2> and for groff, using "printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - " instead of 'nroff -mandoc' Add the option '-t', if the file contains a table. Read the output of 'diff -u' with 'less -R' or similar. -.-. If 'man' (man-db) is used to check the manual for warnings, the following must be set: The option "-warnings=w" The environmental variable: export MAN_KEEP_STDERR=yes (or any non-empty value) or (produce only warnings): export MANROFFOPT="-ww -b -z" export MAN_KEEP_STDERR=yes (or any non-empty value) -.-. Output from "mandoc -T lint dmidecode.8 ": (shortened list) 3 input text line longer than 80 bytes -.-. Output from "mandoc -T lint dmidecode.8 ": mandoc: dmidecode.8:288:84: STYLE: input text line longer than 80 bytes: Keywords are matched... mandoc: dmidecode.8:299:84: STYLE: input text line longer than 80 bytes: The binary dump file... mandoc: dmidecode.8:331:82: STYLE: input text line longer than 80 bytes: More often than not,... -.-. Change -- in x--y to \(em (em-dash), or, if an option, to \-\- 133:List available string keywords, which can then be passed to the \fB--string\fP 160:List available type keywords, which can then be passed to the \fB--type\fP 175:form. The generated file is suitable to pass to \fB--from-dump\fP 181:\fB--dump-bin\fP. 199:.BR --string , 200:.BR --type, 201:.BR --dump-bin " and " --oem-string 269:Keywords can be used instead of type numbers with \fB--type\fP. 290:dmidecode --type 0 --type 13 292:dmidecode --type 0,13 294:dmidecode --type bios 296:dmidecode --type BIOS 299:The binary dump files generated by \fB--dump-bin\fP and read using \fB--from-dump\fP -.-. Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-), if it is in front of a name for an option, is a symbol for standard input, is a single character used to indicate an option, or is in the NAME section (man-pages(7)). N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen (0x2010, groff \[u2010] or \[hy]) in the output. 68:.BR "-d" ", " "--dev-mem \fIFILE\fP" 71:.BR "-q" ", " "--quiet" 75:.BR " " " " "--no-quirks" 80:.BR "-s" ", " "--string \fIKEYWORD\fP" 132:.BR " " " " "--list-strings" 133:List available string keywords, which can then be passed to the \fB--string\fP 136:.BR "-t" ", " "--type \fITYPE\fP" 159:.BR " " " " "--list-types" 160:List available type keywords, which can then be passed to the \fB--type\fP 163:.BR "-H" ", " "--handle \fIHANDLE\fP" 167:.BR "-u" ", " "--dump" 173:.BR " " " " "--dump-bin \fIFILE\fP" 175:form. The generated file is suitable to pass to \fB--from-dump\fP 179:.BR " " " " "--from-dump \fIFILE\fP" 181:\fB--dump-bin\fP. 183:.BR " " " " "--no-sysfs" 187:.BR " " " " "--oem-string \fIN\fP" 192:.BR "-h" ", " "--help" 195:.BR "-V" ", " "--version" 199:.BR --string , 200:.BR --type, 201:.BR --dump-bin " and " --oem-string 269:Keywords can be used instead of type numbers with \fB--type\fP. 290:dmidecode --type 0 --type 13 292:dmidecode --type 0,13 294:dmidecode --type bios 296:dmidecode --type BIOS 299:The binary dump files generated by \fB--dump-bin\fP and read using \fB--from-dump\fP -.-. Add a comma (or \&) after "e.g." and "i.e.", or use English words (man-pages(7)). Abbreviation points should be protected against being interpreted as an end of sentence, if they are not, and that independent of the current place on the line. 114:keywords may return more than one result on some systems (e.g. -.-. Wrong distance between sentences in the input file. Separate the sentences and subordinate clauses; each begins on a new line. See man-pages(7) ("Conventions for source file layout") and "info groff" ("Input Conventions"). The best procedure is to always start a new sentence on a new line, at least, if you are typing on a computer. Remember coding: Only one command ("sentence") on each (logical) line. E-mail: Easier to quote exactly the relevant lines. Generally: Easier to edit the sentence. Patches: Less unaffected text. Search for two adjacent words is easier, when they belong to the same line, and the same phrase. The amount of space between sentences in the output can then be controlled with the ".ss" request. 15:contents in a human-readable format. This table contains a description of the 17:such as serial numbers and \s-1BIOS\s0 revision. Thanks to this table, you can 27:stands for Desktop Management Interface. Both standards are tightly related 32:will try to locate the \s-1DMI\s0 table. It will first try to read the DMI table 48:A handle. This is a unique identifier, which allows records to 49:reference each other. For example, processor records usually reference 52:A type. The \s-1SMBIOS\s0 specification defines different types of elements 53:a computer can be made of. In this example, the type is 2, which 56:A size. Each record has a 4-byte header (2 for the handle, 1 for the type, 57:1 for the size), the rest is used by the record data. This value doesn't 62:Decoded values. The information presented of course depends on the type 63:of record. Here, we learn about the board's manufacturer, model, version 72:Be less verbose. Unknown, inactive and \s-1OEM\s0-specific entries are not 73:displayed. Meta-data and handle references are hidden. 113:Not all strings may be meaningful or even defined on all systems. Some 137:Only display the entries of type \fITYPE\fP. It can be either a 170:you. The strings attached to each entry are displayed as both 171:hexadecimal and \s-1ASCII\s0. This option is mainly useful for debugging. 175:form. The generated file is suitable to pass to \fB--from-dump\fP 184:Do not attempt to read DMI data from sysfs files. This is mainly useful for 188:Only display the value of the \s-1OEM\s0 string number \fIN\fP. The first 189:\s-1OEM\s0 string has number \fB1\fP. With special value \fBcount\fP, return the 208:addition to requested data on the very top of the output. Thus informs the 264:end-of-table marker. Types 128 to 255 are for \s-1OEM\s0-specific data. 288:Keywords are matched case-insensitively. The following command lines are equivalent: 309:specification version 2.6. There was no mention of byte swapping, and RFC 4122 310:says that no byte swapping should be applied by default. However, SMBIOS 314:the specification, even though it was not mentioned. In practice, many hardware 315:vendors were not byte-swapping the UUID. So, in order to preserve 319:version is 2.6 or later. The Linux kernel follows the same logic. -.-. Split lines longer than 80 characters into two or more lines. Appropriate break points are the end of a sentence and a subordinate clause; after punctuation marks. Line 288, length 84 Keywords are matched case-insensitively. The following command lines are equivalent: Line 299, length 84 The binary dump files generated by \fB--dump-bin\fP and read using \fB--from-dump\fP Line 331, length 82 More often than not, information contained in the \s-1DMI\s0 tables is inaccurate, -.-. Split a punctuation mark from a single argument for a two-font macro 200:.BR --type, -.-. Put a parenthetical sentence, phrase on a separate line, if not part of a code. See man-pages(7), item "semantic newline". dmidecode.8:14:is a tool for dumping a computer's \s-1DMI\s0 (some say \s-1SMBIOS\s0) table dmidecode.8:28:and developed by the \s-1DMTF\s0 (Desktop Management Task Force). dmidecode.8:58:take text strings into account (these are placed at the end of the record), dmidecode.8:59:so the actual length of the record may be (and is often) greater than the dmidecode.8:69:Read memory from device \fIFILE\fP (default: \fI/dev/mem\fP) dmidecode.8:312:of the UUID should be read as little-endian numbers (byte-swapped). dmidecode.8:317:4122 (no byte swapping) when the SMBIOS version is older than 2.6, and to dmidecode.8:318:interpret the first 3 fields as little-endian (byte-swapped) when the SMBIOS -.-. Change a HYPHEN-MINUS (code 0x55, 2D) to a dash (\-, minus) if it matches "[[:alph:]]-[[:alpha:]]" in the name of an option). Facilitates the copy and paste of a) an option in UTF-8 text b) web addresses (URL). Is not needed in ordinary words like "mother-in-law", that are not copied and pasted to a command line (which needs ASCII code) 175:form. The generated file is suitable to pass to \fB--from-dump\fP 181:\fB--dump-bin\fP. 299:The binary dump files generated by \fB--dump-bin\fP and read using \fB--from-dump\fP -.-.
--- dmidecode.8 2024-11-22 13:44:14.468506013 +0000 +++ dmidecode.8.new 2024-11-22 23:51:02.941863295 +0000 @@ -11,29 +11,40 @@ dmidecode \- \s-1DMI\s0 table decoder .\" .SH DESCRIPTION .B dmidecode -is a tool for dumping a computer's \s-1DMI\s0 (some say \s-1SMBIOS\s0) table -contents in a human-readable format. This table contains a description of the -system's hardware components, as well as other useful pieces of information -such as serial numbers and \s-1BIOS\s0 revision. Thanks to this table, you can -retrieve this information without having to probe for the actual hardware. -While this is a good point in terms of report speed and safeness, this also -makes the presented information possibly unreliable. +is a tool for dumping a computer's \s-1DMI\s0 +(some say \s-1SMBIOS\s0) +table contents in a human-readable format. +This table contains a description of the system's hardware components, +as well as other useful pieces of information +such as serial numbers and \s-1BIOS\s0 revision. +Thanks to this table, +you can retrieve this information +without having to probe for the actual hardware. +While this is a good point in terms of report speed and safeness, +this also makes the presented information possibly unreliable. -The \s-1DMI\s0 table doesn't only describe what the system is currently made -of, it also can report the possible evolutions (such as the fastest supported -\s-1CPU\s0 or the maximal amount of memory supported). +The \s-1DMI\s0 table doesn't only describe +what the system is currently made of, +it also can report the possible evolutions +(such as the fastest supported \s-1CPU\s0 +or the maximal amount of memory supported). -\s-1SMBIOS\s0 stands for System Management \s-1BIOS\s0, while \s-1DMI\s0 -stands for Desktop Management Interface. Both standards are tightly related -and developed by the \s-1DMTF\s0 (Desktop Management Task Force). +\s-1SMBIOS\s0 stands for System Management \s-1BIOS\s0, +while \s-1DMI\s0 stands for Desktop Management Interface. +Both standards are tightly related +and developed by the \s-1DMTF\s0 +(Desktop Management Task Force). As you run it, .B dmidecode -will try to locate the \s-1DMI\s0 table. It will first try to read the DMI table -from sysfs, and next try reading directly from memory if sysfs access failed. +will try to locate the \s-1DMI\s0 table. +It will first try to read the DMI table from sysfs, +and next try reading directly from memory +if sysfs access failed. If .B dmidecode -succeeds in locating a valid DMI table, it will then parse this table +succeeds in locating a valid DMI table, +it will then parse this table and display a list of records like this one: Handle 0x0002, DMI type 2, 8 bytes. @@ -45,39 +56,52 @@ Base Board Information Each record has: .IP \(bu "\w'\(bu'u+1n" -A handle. This is a unique identifier, which allows records to -reference each other. For example, processor records usually reference -cache memory records using their handles. +A handle. +This is a unique identifier, +which allows records to reference each other. +For example, +processor records usually reference cache memory records +using their handles. .IP \(bu -A type. The \s-1SMBIOS\s0 specification defines different types of elements -a computer can be made of. In this example, the type is 2, which -means that the record contains "Base Board Information". +A type. +The \s-1SMBIOS\s0 specification defines different types of elements +a computer can be made of. +In this example, +the type is 2, +which means that the record contains "Base Board Information". .IP \(bu -A size. Each record has a 4-byte header (2 for the handle, 1 for the type, -1 for the size), the rest is used by the record data. This value doesn't -take text strings into account (these are placed at the end of the record), -so the actual length of the record may be (and is often) greater than the -displayed value. +A size. +Each record has a 4-byte header +(2 for the handle, 1 for the type, 1 for the size), +the rest is used by the record data. +This value doesn't take text strings into account +(these are placed at the end of the record), +so the actual length of the record may be +(and is often) +greater than the displayed value. .IP \(bu -Decoded values. The information presented of course depends on the type -of record. Here, we learn about the board's manufacturer, model, version -and serial number. +Decoded values. +The information presented of course depends on the type of record. +Here, we learn about the board's manufacturer, +model, version and serial number. .\" .SH OPTIONS .TP -.BR "-d" ", " "--dev-mem \fIFILE\fP" +.BR "\-d" ", " "\-\-dev-mem \fIFILE\fP" Read memory from device \fIFILE\fP (default: \fI/dev/mem\fP) .TP -.BR "-q" ", " "--quiet" -Be less verbose. Unknown, inactive and \s-1OEM\s0-specific entries are not -displayed. Meta-data and handle references are hidden. -.TP -.BR " " " " "--no-quirks" -Decode everything exactly as it is in the table, without trying to fix up -common mistakes or hide irrelevant fields. +.BR "\-q" ", " "\-\-quiet" +Be less verbose. +Unknown, inactive and \s-1OEM\s0-specific entries are not displayed. +Meta-data and handle references are hidden. +.TP +.BR " " " " "\-\-no-quirks" +Decode everything exactly as it is in the table, +without trying to fix up common mistakes +or hide irrelevant fields. This mode is primarily aimed at firmware developers. .TP -.BR "-s" ", " "--string \fIKEYWORD\fP" +.BR "\-s" ", " "\-\-string \fIKEYWORD\fP" Only display the value of the \s-1DMI\s0 string identified by \fIKEYWORD\fP. It must be a keyword from the following list: .nh @@ -110,33 +134,35 @@ It must be a keyword from the following .hy Each keyword corresponds to a given \s-1DMI\s0 type and a given offset within this entry type. -Not all strings may be meaningful or even defined on all systems. Some -keywords may return more than one result on some systems (e.g. +Not all strings may be meaningful or even defined on all systems. +Some keywords may return more than one result on some systems +(e.g., .nh .B processor\-version .hy on a multi-processor system). -If \fIKEYWORD\fP is not provided or not valid, a list of all valid -keywords is printed and +If \fIKEYWORD\fP is not provided or not valid, +a list of all valid keywords is printed and .B dmidecode exits with an error. This option cannot be used more than once. -Note: on Linux, most of these strings can alternatively be read directly -from +Note: on Linux, +most of these strings can alternatively be read directly from .BR sysfs , typically from files under .IR /sys/devices/virtual/dmi/id . Most of these files are even readable by regular users. .TP -.BR " " " " "--list-strings" -List available string keywords, which can then be passed to the \fB--string\fP -option. -.TP -.BR "-t" ", " "--type \fITYPE\fP" -Only display the entries of type \fITYPE\fP. It can be either a -\s-1DMI\s0 type number, or a comma-separated list of type numbers, or a -keyword from the following list: +.BR " " " " "\-\-list-strings" +List available string keywords, +which can then be passed to the \fB\-\-string\fP option. +.TP +.BR "\-t" ", " "\-\-type \fITYPE\fP" +Only display the entries of type \fITYPE\fP. +It can be either a \s-1DMI\s0 type number, +or a comma-separated list of type numbers, +or a keyword from the following list: .nh .BR bios , .BR system , @@ -149,64 +175,69 @@ keyword from the following list: .BR slot . .hy Refer to the DMI TYPES section below for details. -If this option is used more than once, the set of displayed entries will be -the union of all the given types. -If \fITYPE\fP is not provided or not valid, a list of all valid keywords -is printed and +If this option is used more than once, +the set of displayed entries will be the union of all the given types. +If \fITYPE\fP is not provided or not valid, +a list of all valid keywords is printed and .B dmidecode exits with an error. .TP -.BR " " " " "--list-types" -List available type keywords, which can then be passed to the \fB--type\fP -option. +.BR " " " " "\-\-list-types" +List available type keywords, +which can then be passed to the \fB\-\-type\fP option. .TP -.BR "-H" ", " "--handle \fIHANDLE\fP" +.BR "\-H" ", " "\-\-handle \fIHANDLE\fP" Only display the entry whose handle matches \fIHANDLE\fP. \fIHANDLE\fP is a 16-bit integer. .TP -.BR "-u" ", " "--dump" -Do not decode the entries, dump their contents as hexadecimal instead. -Note that this is still a text output, no binary data will be thrown upon -you. The strings attached to each entry are displayed as both -hexadecimal and \s-1ASCII\s0. This option is mainly useful for debugging. -.TP -.BR " " " " "--dump-bin \fIFILE\fP" -Do not decode the entries, instead dump the DMI data to a file in binary -form. The generated file is suitable to pass to \fB--from-dump\fP -later. +.BR "\-u" ", " "\-\-dump" +Do not decode the entries, +dump their contents as hexadecimal instead. +Note that this is still a text output, +no binary data will be thrown upon you. +The strings attached to each entry +are displayed as both hexadecimal and \s-1ASCII\s0. +This option is mainly useful for debugging. +.TP +.BR " " " " "\-\-dump-bin \fIFILE\fP" +Do not decode the entries, +instead dump the DMI data to a file in binary form. +The generated file is suitable to pass to \fB\-\-from-dump\fP later. \fIFILE\fP must not exist. .TP -.BR " " " " "--from-dump \fIFILE\fP" +.BR " " " " "\-\-from-dump \fIFILE\fP" Read the DMI data from a binary file previously generated using -\fB--dump-bin\fP. +\fB\-\-dump-bin\fP. .TP -.BR " " " " "--no-sysfs" -Do not attempt to read DMI data from sysfs files. This is mainly useful for -debugging. -.TP -.BR " " " " "--oem-string \fIN\fP" -Only display the value of the \s-1OEM\s0 string number \fIN\fP. The first -\s-1OEM\s0 string has number \fB1\fP. With special value \fBcount\fP, return the -number of OEM strings instead. +.BR " " " " "\-\-no-sysfs" +Do not attempt to read DMI data from sysfs files. +This is mainly useful for debugging. +.TP +.BR " " " " "\-\-oem-string \fIN\fP" +Only display the value of the \s-1OEM\s0 string number \fIN\fP. +The first \s-1OEM\s0 string has number \fB1\fP. +With special value \fBcount\fP, +return the number of OEM strings instead. .TP -.BR "-h" ", " "--help" +.BR "\-h" ", " "\-\-help" Display usage information and exit .TP -.BR "-V" ", " "--version" +.BR "\-V" ", " "\-\-version" Display the version and exit .P Options -.BR --string , -.BR --type, -.BR --dump-bin " and " --oem-string +.BR \-\-string , +.BR \-\-type , +.BR \-\-dump-bin " and " \-\-oem-string determine the output format and are mutually exclusive. .P Please note in case of .B dmidecode -is run on a system with BIOS that boasts new SMBIOS specification, which -is not supported by the tool yet, it will print out relevant message in -addition to requested data on the very top of the output. Thus informs the -output data is not reliable. +is run on a system with BIOS that boasts new SMBIOS specification, +which is not supported by the tool yet, +it will print out relevant message +in addition to requested data on the very top of the output. +Thus informs the output data is not reliable. .\" .SH "DMI TYPES" The \s-1SMBIOS\s0 specification defines the following \s-1DMI\s0 types: @@ -260,13 +291,15 @@ Type Information 42 Management Controller Host Interface .TE -Additionally, type 126 is used for disabled entries and type 127 is an -end-of-table marker. Types 128 to 255 are for \s-1OEM\s0-specific data. +Additionally, type 126 is used for disabled entries +and type 127 is an end-of-table marker. +Types 128 to 255 are for \s-1OEM\s0-specific data. .B dmidecode -will display these entries by default, but it can only decode them +will display these entries by default, +but it can only decode them when the vendors have contributed documentation or code for them. -Keywords can be used instead of type numbers with \fB--type\fP. +Keywords can be used instead of type numbers with \fB\-\-type\fP. Each keyword is equivalent to a list of type numbers: .TS @@ -285,18 +318,20 @@ connector 8 slot 9 .TE -Keywords are matched case-insensitively. The following command lines are equivalent: +Keywords are matched case-insensitively. +The following command lines are equivalent: .IP \(bu "\w'\(bu'u+1n" -dmidecode --type 0 --type 13 +dmidecode \-\-type 0 \-\-type 13 .IP \(bu -dmidecode --type 0,13 +dmidecode \-\-type 0,13 .IP \(bu -dmidecode --type bios +dmidecode \-\-type bios .IP \(bu -dmidecode --type BIOS +dmidecode \-\-type BIOS .\" .SH BINARY DUMP FILE FORMAT -The binary dump files generated by \fB--dump-bin\fP and read using \fB--from-dump\fP +The binary dump files generated by \fB\-\-dump-bin\fP +and read using \fB\-\-from-dump\fP are formatted as follows: .IP \(bu "\w'\(bu'u+1n" The SMBIOS or DMI entry point is located at offset 0x00. @@ -305,18 +340,27 @@ It is crafted to hard-code the table add The DMI table is located at offset 0x20. .\" .SH UUID FORMAT -There is some ambiguity about how to interpret the UUID fields prior to SMBIOS -specification version 2.6. There was no mention of byte swapping, and RFC 4122 -says that no byte swapping should be applied by default. However, SMBIOS -specification version 2.6 (and later) explicitly states that the first 3 fields -of the UUID should be read as little-endian numbers (byte-swapped). -Furthermore, it implies that the same was already true for older versions of -the specification, even though it was not mentioned. In practice, many hardware -vendors were not byte-swapping the UUID. So, in order to preserve -compatibility, it was decided to interpret the UUID fields according to RFC -4122 (no byte swapping) when the SMBIOS version is older than 2.6, and to -interpret the first 3 fields as little-endian (byte-swapped) when the SMBIOS -version is 2.6 or later. The Linux kernel follows the same logic. +There is some ambiguity about how to interpret the UUID fields prior to +SMBIOS specification version 2.6. +There was no mention of byte swapping, +and RFC 4122 says that no byte swapping should be applied by default. +However, SMBIOS specification version 2.6 (and later) +explicitly states +that the first 3 fields of the UUID should be read as little-endian numbers +(byte-swapped). +Furthermore, +it implies that the same was already true for older versions of the +specification, +even though it was not mentioned. +In practice, many hardware vendors were not byte-swapping the UUID. +So, in order to preserve compatibility, +it was decided to interpret the UUID fields according to RFC 4122 +(no byte swapping) +when the SMBIOS version is older than 2.6, +and to interpret the first 3 fields as little-endian +(byte-swapped) +when the SMBIOS version is 2.6 or later. +The Linux kernel follows the same logic. .\" .SH FILES .I /dev/mem @@ -328,7 +372,8 @@ version is 2.6 or later. The Linux kerne (Linux only) .\" .SH BUGS -More often than not, information contained in the \s-1DMI\s0 tables is inaccurate, +More often than not, +information contained in the \s-1DMI\s0 tables is inaccurate, incomplete or simply wrong. .\" .SH AUTHORS