A nice release, some good corner case bug and glitch fixes, along with some much

needed documentation fixes to bring inxi-values.txt up to date for changes that
have been evolving steadily. And a useful option for nvidia legacy card info.

I'm hoping that will help support people and users as nvidia open source driver
gets more usable in the future, since that will never support legacy cards, only
the current series supported by 510/515 drivers.

Also, in inxi-perl/tools, new tools and data so you can reproduce certain arcane
data assembly features like disk vendors and nvidia product ids.

--------------------------------------------------------------------------------
KNOWN ISSUES:

1. Not known yet if you can get Wayland display drivers along with kernel gpu
drivers. In other words, is a similar use of kernel/display driver as in Xorg
found with Wayland? Hard to dig up actual answers to questions like this.

2. Similarly, unknown if it's possible to get current active xorg display
driver, not just the list from Xorg.0.log file. No idea how to discover that,
there are cases where past use of Xorg leaves log file present, but drivers are
not used with Wayland, leading to confusing driver reports. Issues 1 and 2 are
similar but probably have similar solutions.

--------------------------------------------------------------------------------
BUGS:

1. Very subtle failure caused by odd mount point in partitions: a too loose
regex rule designed to capture spaces in device names was running loose to the
end of the string, where it was triggered by a number in the mount point.

Fix was to make rule much more strict, now needs to match 3 number space in a
row after the initial part, and then a number%

2. Bug in corner case, with Monitors, if > 2 connected monitors, and 1 disabled,
inxi was trying to test numeric position values for the disabled monitor, which
with xrandr, has no position values, thus tripping undefined pos-x and pos-y
errors. Thanks to fourtysixandtwo for spotting this corner case.

3. Bug in wan IP, if dig failed, set_dowloader() is not set unless other
parameters were used, which results in failing to set parameters for downloader,
which leads to screen errors spraying out. Thanks to Manjaro user exaveal for
posting this issue, with error outputs, which helped pinpoint the cause.

--------------------------------------------------------------------------------
FIXES:

1. More absurd xorg port ID variations: DP-1 kernel, DP1-1 X driver. Wny?
Trying to add in XX-?\d+-\d+ variation, which I think will be safe, made the
first - optional, though it's just idiotic for this amount of randomness to be
allowed to exist in the 21st century. If this reflects other discipline failures
in Xorg, it starts to get somewhat more obvious why Wayland was considered as
the only forward path, though that's just as chaotic and disorganized... but in
different ways.

2. Removed darwin distro version detection, which of course broke, and using
standard fallback for BSD made out of uname array bits. If it works, it works,
if not, who cares. This should handle issue #267 hopefully.

3. Trying for more monitor matches, now in cases where 1 monitor display ID
remained unmatched, and 1 sys kms id remains unused, assume the remaining
nonitor ID is a match and overwrite the unmatched message for that ID. This
will cover basically all single monitor match failure cases, and many multi
monitor failures with only 1 out of x monitor ids unmatched. While guessing a
bit, it's not a bad guess, and will slightly expand the number of matched
monitor ids. This extends the previous guess where if single monitor and
unmatched, use it to cover > 1 monitors, with 1 unmatched.

4. LINES_MAX configuration item did not assign to right variable when -1 value.
Used non-existing $size{'output-block'} instead of correct $use{'output-block'}

5. Forgot to add pkg to --force, goes with --pkg.

6. Finally! Added in busybox shell detection, it's not of course reliable if
they change internal light shells, but all the docs say they use ash, so now
it will show shell: ash (busybox) to make it clear. Hurray!! This means that
tinycore users will get this long awaited feature! Ok, ok, long awaited by
probably only me, but since I package inxi for busybox, it was on my todo list.

7. Cleaned up and re-organized many disk vendor matching rules, made them easier
to read and debug, going along with Code 3, vendors.pl development and release.

--------------------------------------------------------------------------------
ENHANCEMENTS:

1. New feature: in -Ga, if Nvidia card, shows last supported nvidia legacy
series driver (like 304.xx), status, microarch. If --nvidia and EOL, shows
last-supported: kernel: xorg: info. This should be useful for support people,
we'll see.

-Gx shows nvidia microarchitecture, if it was found. This is based on matching
tables so will go out of date if you have non current inxi's, but that's life.

If --nvidia or --nv shortcut is used instead, triggers -Ga and shows much more
nvidia driver data for legacy, and for EOL drivers, last supported kernel, xorg,
and last release version. --nvidia also adds process node if available.

More important perhaps is the fact that as of May 2022, nvidia is starting the
process of open sourcing its current latest driver (515, but Turning, Ampere
architectures only so far), which will only support non legacy nvidia cards,
making detection of legacy cards even more important to support people and end
users, since that will be a common question support people will have: does my
card support the open source driver?"

Read about the new open sourcing of the 515 nvidia module:
https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/
https://github.com/NVIDIA/open-gpu-kernel-modules
https://www.phoronix.com/scan.php?page=article&item=nvidia-open-kernel&num=1

2. Going along with new and upgraded tools in Code 3, massive, huge, upgrade to
disk vendors, 100s of new matches, biggest upgrade ever for disk vendors. This
feature should work much better now with the new backend tools.

3. Added shortcuts: --mm for --memory-modules, --ms for --memory-short.

--------------------------------------------------------------------------------
CHANGES:

1. None.

--------------------------------------------------------------------------------
DOCUMENTATION:

1. Big update to docs/inxi-values.txt. This had gotten really out of date, with
incorrect hash and other internal data assignments, all updated to be current,
along with sample greps to make it easier to locate changes in the future as
well. This makes this document fairly up to date and useful again for dev
reference purposes, should such a dev ever appear, lol. Many values had not
been updated after global refactors, like switching to the %risk data for all
arm/mips/ppc platform types, and making %load, %use, %force, %fake uses more
consistent. Doing this helped expose some subtle bugs and failure cases in
inxi as well.

2. Added to -h and man -Ga Nvidia option info. Fixed some typos and glitches.
Includes new --nvidia / --nv options for full data.

--------------------------------------------------------------------------------
CODE:

1. Changed $dl{'no-ssl-opt'} to $use{'no-ssl'} and $dl{'no-ssl'}, that was a
confusing inconsistency.

2. Added comma separated list of --dbg numbers, since often > 1 is used. Saves
some debugging time, otherwise nothing changes.

3. Huge new public release of some back end tools in new section:
inxi-perl/tools
* vendors.pl - disk vendors tool, with data in lists/disks*.txt
* ids.pl - nvidia product id generator tool, with data in lists/nv_*

4. While doing vendors.pl, I noticed that the use of array ref for $vendors was
not done correctly, that's fixed now, simplifies it slightly.
This commit is contained in:
Harald Hope 2022-05-19 14:17:33 -07:00
parent f3f7dec169
commit 6023702097
3 changed files with 793 additions and 185 deletions

717
inxi

File diff suppressed because it is too large Load diff

87
inxi.1
View file

@ -15,7 +15,7 @@
.\" with this program; if not, write to the Free Software Foundation, Inc.,
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
.\"
.TH INXI 1 "2022\-04\-08" "inxi" "inxi manual"
.TH INXI 1 "2022\-05\-19" "inxi" "inxi manual"
.SH NAME
inxi \- Command line system information script for console and IRC
@ -32,8 +32,8 @@ inxi \- Command line system information script for console and IRC
[\fB\-\-weather\-unit\fR {\fBm\fR|\fBi\fR|\fBmi\fR|\fBim\fR}] [\fB\-y WIDTH\fR]
\fBinxi\fR [\fB\-\-edid\fR] [\fB\-\-memory\-modules\fR]
[\fB\-\-memory\-short\fR] [\fB\-\-recommends\fR] [\fB\-\-sensors\-default\fR]
[\fB\-\-slots\fR]
[\fB\-\-memory\-short\fR] [\fB\-\-nvidia\fR] [\fB\-\-recommends\fR]
[\fB\-\-sensors\-default\fR] [\fB\-\-slots\fR]
\fBinxi\fB [\fB\-x\fR|\fB\-xx\fR|\fB\-xxx\fR|\fB\-a\fR] \fB\-OPTION(s)\fR
@ -526,12 +526,12 @@ See \fB\-\-memory\-modules\fR and \fB\-\-memory\-short\fR if you want a
shorter report.
.TP
.B \-\-memory\-modules\fR
.B \-\-memory\-modules\fR, \fB\-\-mm\fR
Memory (RAM) data. Show only RAM arrays and modules in Memory report.
Skip empty slots. See \fB\-m\fR.
.TP
.B \-\-memory\-short\fR
.B \-\-memory\-short\fR, \fB\-\-ms\fR
Memory (RAM) data. Show a one line RAM report in Memory. See \fB\-m\fR.
Sample: \fBReport: arrays: 1 slots: 4 modules: 2 type: DDR4\fR
@ -568,6 +568,36 @@ Show Advanced Network device information in addition to that produced by
Show Network device(s) information, including device driver. With \fB\-x\fR,
shows Bus ID, Port number.
.TP
.B \-\-nvidia\fR, \fB\-\-nv\fR
Show advanced non\-free Nvidia driver data. Triggers \fB\-G\fR and \fB\-a\fR as
well. Expands existing \fBnon\-free:\fR driver report (Linux and Nvidia only).
Also shows some basic information if not legacy driver. Useful to help diagnose
driver support issues, shows extra data that can help diagnose/debug:
.nf
\fBinxi \-\-nvidia \-y1
Graphics:
Device\-1: NVIDIA NV34 [GeForce FX 5200]
driver: nouveau
v: kernel
non\-free:
series: 173.14.xx
status: legacy (EOL)
last:
kernel: 3.12
xorg: 1.15
release: 173.14.39
arch: Rankine
code: NV3x
process: 130\-150nm
ports:
active: VGA\-1
empty: DVI\-I\-1,TV\-1
bus\-ID: 01:00.0
chip\-ID: 10de:0322
class\-ID: 0300
.fi
.TP
.B \-o \fR, \fB\-\-unmounted\fR
Show unmounted partition information (includes UUID and LABEL if available).
@ -809,10 +839,10 @@ of optical drives.
.TP
.B \-v 8
\- All system data available. Adds advanced EDID data (\fB\-\-edid\fR), Repos
(\fB\-r\fR), PCI slots (\fB\-\-slots\fR), processes (\fB\-tcm\fR), admin
(\fB\-\-admin\fR). Useful for testing output and to see what data you can get
from your system.
\- All system data available. Adds Nvidia non\-free driver data
(\fB\-\-nvidia\fR), advanced EDID data (\fB\-\-edid\fR), Repos (\fB\-r\fR), PCI
slots (\fB\-\-slots\fR), processes (\fB\-tcm\fR), admin (\fB\-\-admin\fR).
Useful for testing output and to see what data you can get from your system.
.TP
.B \-w \fR, \fB\-\-weather\fR
@ -1237,6 +1267,8 @@ for each HCI ID.
.TP
.B \-x \-G\fR
\- Adds GPU micro\-architecture (if Nvidia and found).
\- Adds PCI/USB ID of each device.
\- Adds (if available and/or relevant) \fBvendor:\fR item, which shows
@ -1966,6 +1998,25 @@ non\-driver modules found, shows nothing. NOTE: just because it lists a module
does NOT mean it is available in the system, it's just something the kernel
knows could possibly be used instead.
\- Adds (if Linux and Nvidia card) non\-free support information (if available).
This can be useful for forum support people to determine if the card supports
current active legacy Nvidia driver branches, or if the card nonfree driver is
EOL or active. Note that if card is current, shows basic series and status.
.nf
\fBinxi \-GIaz
Graphics:
Device\-1: NVIDIA NV34 [GeForce FX 5200] driver: nouveau v: kernel
non-free: 173.14.xx status: legacy (EOL, try \-\-nv) arch: Rankine
ports: active: VGA-1 empty: DVI\-I\-1,TV\-1 bus\-ID: 01:00.0
chip\-ID: 10de:0322 class\-ID: 0300
Display: x11 server: X.Org v: 21.1.3 driver: X: loaded: nouveau
unloaded: fbdev,modesetting,vesa alternate: nv,nvidia gpu: nouveau
display\-ID: :0 screens: 1\fR
.fi
For extended non free Nvidia legacy informatin, use
\fB\-\-nvidia\fR/\fB\-\-nv\fR.
\- Adds PCIe generation, and, if different than running PCIe generation, speed
or lanes, \fBlink\-max: gen: speed: lanes:\fR (only items different from primary
shown).
@ -2199,8 +2250,8 @@ Force inxi to use Curl, Fetch, Perl, or Wget for downloads.
.TP
.B \-\-force [colors|dmidecode|hddtemp|lsusb|pkg|usb-sys|wayland|vmstat|wmctrl]\fR
Various force options to allow users to override defaults. Values be given as a
comma separated list:
Various force options to allow users to override defaults. Values can be given
as a comma separated list:
\fBinxi \-MJ --force dmidecode,lsusb\fR
@ -2416,15 +2467,15 @@ Shortcut. See \fB\-\-force wmctl\fR.
.SH DEBUGGING OPTIONS
.TP
.B \-\-dbg 1\fR
\- Debug downloader failures. Turns off silent/quiet mode for curl, wget, and
fetch. Shows more downloader action information. Shows some more information
.B \-\-dbg {[1\-x][,[1\-x]]}\fR
Accepts one or more comma separated dbg specific debugging numbers.
\fB1\fR \- Debug downloader failures. Turns off silent/quiet mode for curl, wget,
and fetch. Shows more downloader action information. Shows some more information
for Perl downloader.
.TP
.B \-\-dbg [2\-xx]\fR
\- See github \fBinxi-perl/docs/inxi-values.txt\fR for specific specialized
debugging options.
\fB1\-xx\fR \- See github \fBinxi\-perl/docs/inxi\-values.txt\fR for specific
specialized debugging options. There are a lot.
.TP
.B \-\-debug [1\-3]\fR

View file

@ -1,3 +1,167 @@
================================================================================
Version: 3.3.16
Patch: 00
Date: 2022-05-19
--------------------------------------------------------------------------------
RELEASE NOTES:
--------------------------------------------------------------------------------
A nice release, some good corner case bug and glitch fixes, along with some much
needed documentation fixes to bring inxi-values.txt up to date for changes that
have been evolving steadily. And a useful option for nvidia legacy card info.
I'm hoping that will help support people and users as nvidia open source driver
gets more usable in the future, since that will never support legacy cards, only
the current series supported by 510/515 drivers.
Also, in inxi-perl/tools, new tools and data so you can reproduce certain arcane
data assembly features like disk vendors and nvidia product ids.
--------------------------------------------------------------------------------
KNOWN ISSUES:
1. Not known yet if you can get Wayland display drivers along with kernel gpu
drivers. In other words, is a similar use of kernel/display driver as in Xorg
found with Wayland? Hard to dig up actual answers to questions like this.
2. Similarly, unknown if it's possible to get current active xorg display
driver, not just the list from Xorg.0.log file. No idea how to discover that,
there are cases where past use of Xorg leaves log file present, but drivers are
not used with Wayland, leading to confusing driver reports. Issues 1 and 2 are
similar but probably have similar solutions.
--------------------------------------------------------------------------------
BUGS:
1. Very subtle failure caused by odd mount point in partitions: a too loose
regex rule designed to capture spaces in device names was running loose to the
end of the string, where it was triggered by a number in the mount point.
Fix was to make rule much more strict, now needs to match 3 number space in a
row after the initial part, and then a number%
2. Bug in corner case, with Monitors, if > 2 connected monitors, and 1 disabled,
inxi was trying to test numeric position values for the disabled monitor, which
with xrandr, has no position values, thus tripping undefined pos-x and pos-y
errors. Thanks to fourtysixandtwo for spotting this corner case.
3. Bug in wan IP, if dig failed, set_dowloader() is not set unless other
parameters were used, which results in failing to set parameters for downloader,
which leads to screen errors spraying out. Thanks to Manjaro user exaveal for
posting this issue, with error outputs, which helped pinpoint the cause.
--------------------------------------------------------------------------------
FIXES:
1. More absurd xorg port ID variations: DP-1 kernel, DP1-1 X driver. Wny?
Trying to add in XX-?\d+-\d+ variation, which I think will be safe, made the
first - optional, though it's just idiotic for this amount of randomness to be
allowed to exist in the 21st century. If this reflects other discipline failures
in Xorg, it starts to get somewhat more obvious why Wayland was considered as
the only forward path, though that's just as chaotic and disorganized... but in
different ways.
2. Removed darwin distro version detection, which of course broke, and using
standard fallback for BSD made out of uname array bits. If it works, it works,
if not, who cares. This should handle issue #267 hopefully.
3. Trying for more monitor matches, now in cases where 1 monitor display ID
remained unmatched, and 1 sys kms id remains unused, assume the remaining
nonitor ID is a match and overwrite the unmatched message for that ID. This
will cover basically all single monitor match failure cases, and many multi
monitor failures with only 1 out of x monitor ids unmatched. While guessing a
bit, it's not a bad guess, and will slightly expand the number of matched
monitor ids. This extends the previous guess where if single monitor and
unmatched, use it to cover > 1 monitors, with 1 unmatched.
4. LINES_MAX configuration item did not assign to right variable when -1 value.
Used non-existing $size{'output-block'} instead of correct $use{'output-block'}
5. Forgot to add pkg to --force, goes with --pkg.
6. Finally! Added in busybox shell detection, it's not of course reliable if
they change internal light shells, but all the docs say they use ash, so now
it will show shell: ash (busybox) to make it clear. Hurray!! This means that
tinycore users will get this long awaited feature! Ok, ok, long awaited by
probably only me, but since I package inxi for busybox, it was on my todo list.
7. Cleaned up and re-organized many disk vendor matching rules, made them easier
to read and debug, going along with Code 3, vendors.pl development and release.
--------------------------------------------------------------------------------
ENHANCEMENTS:
1. New feature: in -Ga, if Nvidia card, shows last supported nvidia legacy
series driver (like 304.xx), status, microarch. If --nvidia and EOL, shows
last-supported: kernel: xorg: info. This should be useful for support people,
we'll see.
-Gx shows nvidia microarchitecture, if it was found. This is based on matching
tables so will go out of date if you have non current inxi's, but that's life.
If --nvidia or --nv shortcut is used instead, triggers -Ga and shows much more
nvidia driver data for legacy, and for EOL drivers, last supported kernel, xorg,
and last release version. --nvidia also adds process node if available.
More important perhaps is the fact that as of May 2022, nvidia is starting the
process of open sourcing its current latest driver (515, but Turning, Ampere
architectures only so far), which will only support non legacy nvidia cards,
making detection of legacy cards even more important to support people and end
users, since that will be a common question support people will have: does my
card support the open source driver?"
Read about the new open sourcing of the 515 nvidia module:
https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/
https://github.com/NVIDIA/open-gpu-kernel-modules
https://www.phoronix.com/scan.php?page=article&item=nvidia-open-kernel&num=1
2. Going along with new and upgraded tools in Code 3, massive, huge, upgrade to
disk vendors, 100s of new matches, biggest upgrade ever for disk vendors. This
feature should work much better now with the new backend tools.
3. Added shortcuts: --mm for --memory-modules, --ms for --memory-short.
--------------------------------------------------------------------------------
CHANGES:
1. None.
--------------------------------------------------------------------------------
DOCUMENTATION:
1. Big update to docs/inxi-values.txt. This had gotten really out of date, with
incorrect hash and other internal data assignments, all updated to be current,
along with sample greps to make it easier to locate changes in the future as
well. This makes this document fairly up to date and useful again for dev
reference purposes, should such a dev ever appear, lol. Many values had not
been updated after global refactors, like switching to the %risk data for all
arm/mips/ppc platform types, and making %load, %use, %force, %fake uses more
consistent. Doing this helped expose some subtle bugs and failure cases in
inxi as well.
2. Added to -h and man -Ga Nvidia option info. Fixed some typos and glitches.
Includes new --nvidia / --nv options for full data.
--------------------------------------------------------------------------------
CODE:
1. Changed $dl{'no-ssl-opt'} to $use{'no-ssl'} and $dl{'no-ssl'}, that was a
confusing inconsistency.
2. Added comma separated list of --dbg numbers, since often > 1 is used. Saves
some debugging time, otherwise nothing changes.
3. Huge new public release of some back end tools in new section:
inxi-perl/tools
* vendors.pl - disk vendors tool, with data in lists/disks*.txt
* ids.pl - nvidia product id generator tool, with data in lists/nv_*
4. While doing vendors.pl, I noticed that the use of array ref for $vendors was
not done correctly, that's fixed now, simplifies it slightly.
--------------------------------------------------------------------------------
-- Harald Hope - Thu, 19 May 2022 13:02:00 -0700
================================================================================
Version: 3.3.15
Patch: 00
@ -33,6 +197,16 @@ fatal failure, so fixed it. Never trips in console, only on tiny linux where no
dm is used at all. Tripped with Xvesa, seen other bug reports, but not enough
data to know for sure.
[2022-04-09 update] It turns out that basically when $DISPLAY is set, but no DM
detected, for example starting wayland sway from tty, the issue also appeared.
See Debian issue:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1009089
inxi currently has no way to detect a tty start of a wayland compositor, or of
xvesa, so this was an entire class of bug, corrected, but not actually handled.
Ideally inxi could detect a tty compositor start, though technically showing
dm: N/A is correct since there is none running, but dm: tty-start would be nicer
since it would be more informative. But do not know how to do that yet.
2. EDID errors and warnings had several bugs, errors a fatal critical bug which
made execution stop. Had forgotten to pass the $edid hash reference to the error
constructor. Also had used wrong hash key in output so would never have shown.