mirror of
https://github.com/smxi/inxi.git
synced 2024-11-16 08:11:39 +00:00
New version, man. Continuing development of EDID and monitor features, bug
fixes, normal fixes. -------------------------------------------------------------------------------- KNOWN ISSUES: 1. Failed to handle case for monitor positions of array type: 2-2, 3-1, 1-3, 4-4. I'm not sure what structure those are really arranged in, but might be worth adding in the x+y pos values along with the row-col values. 2. For Monitors and graphics Device ports, if using non free nvidia driver and: nvidia-drm.modeset=1 not set in grub kernel boot parameters, there will be no /sys/class/drm data for the nvidia device, and thus no ports data, and no monitor data. 3. A class of high count DP or DVI port IDs are changed by Xorg drivers to for example: DP-6 > DP-2-3. This is very difficult to handle and will in general probably fail unfortunately because that level of port ID abstraction is just reazlly hard to deal with dynamically. 4. A to-do item: add bus ID children on --slots. This will probablby be in next inxi. -------------------------------------------------------------------------------- BUGS: 1. None outside of the various fixes. -------------------------------------------------------------------------------- FIXES: 1. In sensors, failed to pull out BAT sensor data. In most cases, this would not lead to any issues, but it could have. 2. This one just slipped my mind, I'd meant to do it, but in Montitor-x:, the primary ID should have been the 'real' kernel ID, not the mapped: ID, which is the X.org ID when different from the kernel ID. So mapped should be the Xorg version when they are different from the kernel version. 3. In Graphics, monitors can show > 1 ratio, failed to set all to :, resulting in: ratio: 3:2 or 16/10 modes:. Also fixed ParseEDID to output an array of ratios, which can then be processed as wanted. 4. Monitor map fixes: * Handle case in monitors where display ID: eDP and sys ID: eDP-1, this only works if 1 monitor in array. There's a variety of this type of failure, when X.org or its drivers decide to call the port ID XYZ with no number at all. All those possible cases are now handled, like eDP > eDP-1, VGA > VGA-1, and so on. * Added fallback, if no match, and if only 1 monitor, just map them to eachother if other mappings failed. Prompted by things like: s: DP-6 > d: DP-2-3; s: eDP-1 > d: DP-4, which are just impossible to create logic to map. 5. Removed 'ati' driver from xorg drivers list, it's simply a wrapper for r128, mach64, or radeon (and maybe amdgpu), and shows as failed, unloaded, or loaded, because of this. ati basically assigns the correct driver, that is, but is not itself a driver. Thanks mrmazda for spotting this issue. 6. Typo on QDI => Quantum Data. 7. Added fallback for monitor model, now using vendor code plus product code if nothing found for vendor nice name or model. This will show as 'model-id:' instead of model: to help differentiate the two. 8. Added Monitor product_code to manufacturer if no model name is found. 9. get_pci_vendor was trimming at ' / ' if the product string also contained ' / '. Fix is to ignore 1 character 'words' in the logic. 10. In Slots, failed to remove_duplicates in the slot info field, leading to redundant output strings. See Enhancement 3 and Code 4. 11. See Change 3, finally made -S section use full key: value pair, which makes stuff more explicit, like: System: Host: yawn Kernel: 5.16.0-11.1-liquorix-amd64 arch: x86_64 bits: 64 compiler: gcc v: 11.2.0 Desktop: Xfce v: 4.16.0 tk: Gtk v: 3.24.24 info: xfce4-panel wm: xfwm v: 4.16.1 vt: 7 dm: 1: LightDM v: 1.26.0 2: SDDM note: stopped Distro: Debian GNU/Linux bookworm/sid 12. Fix for mageia and lsb distro data, force use of os-release for mageia if detected. That overrides the forced use of lsb release for mandrake/mandriva, because for some reason mageia has decided to carry ALL the legacy distro files: '/etc/lsb-release', '/etc/lsb-release.d', '/etc/mageia-release', '/etc/mandrake-release', '/etc/mandrakelinux-release', '/etc/mandriva-release', '/etc/os-release', '/etc/redhat-release', '/etc/system-release' which is really not what this stuff is intended for, if it's an actual derived distro from a living base, then yes, include the base file, but all these have the same distro id data for mageia, none for the derived distros. Also, fixed an lsb release thing to avoid using codename if codename contains release number as well. Since lsb_release is totally legacy at this point, who cares if we might miss a specific codename here and there on legacy system. -------------------------------------------------------------------------------- ENHANCEMENTS: 1. Added Color Characteristics to EDID parser, for some reason that had been left out. 2. Added advanced EDID output option --edid, that allows for showing more advanced EDID data than is appropriate for most users cases. Ihcludes errors, color characteristics chroma: (chromacity), full modes, not just min/max. 3. In --slots, added bus-ID. Also extended report quality, made more granular, got rid of single blob from Type and Designation and now get more accurate and useful data. 4. In cases with > 1 DM, check to see if one or more are stopped or disabled, = and add (stopped) if it was detected in running service as stopped. -------------------------------------------------------------------------------- CHANGES: 1. Reversed monitor ID and mapped: ID values, that was a mistake, the mapped: item was supposed to contain the X.org mapped name, and the primary ID was supposed to be the actual real ID the kernel uses. Not a huge deal either way, but there it is. 2. Include disabled but connected Monitors. This works around nvidia bug showing monitors disabled when they are enabled, but also allows for showing connected monitors, though without as much data. 3. Made the last holdout -S > -Sa use strict full key: value pair output, like Desktop: XFCE v: 4.14.12 and so on. -------------------------------------------------------------------------------- DOCUMENTATION: 1. Added help/man for --edid info. -------------------------------------------------------------------------------- CODE: 1. In ParseEDID: made new key: edid_error, which contains an array ref of 1 or more edid errors. The previous version did a poor job and returned only the first error found, so there could have been > 1 error, and you'd never know it. This changes check_parsed_edid to _check_parsed_edid(). and adds a utility tool _edid_error, which grabs the message from main::message, giving better output integration. This also allows for future error handling expansion quite easily. 2. In map_monitor_ids() fixed matching pattern, made more robust and explicit, to catch things like s: eDP-1 d: eDP or eDP-1-1, both have been seen. Also added fallback for single monitor, just map them to eachother if mapping failed. 3. get_pci_vendor() added test for using anything that is 1 character length, to not break on 1 character length string matches. 4. Fully refactored --slots, that was originally written purely as a proof of concept in terms of adding a new feature during the original inxi 2.9 rewrite, and was never actually touched after that.
This commit is contained in:
parent
7ba2e0220f
commit
b3cdcd979a
33
inxi.1
33
inxi.1
|
@ -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\-02\-22" "inxi" "inxi manual"
|
||||
.TH INXI 1 "2022\-03\-24" "inxi" "inxi manual"
|
||||
|
||||
.SH NAME
|
||||
inxi \- Command line system information script for console and IRC
|
||||
|
@ -31,8 +31,9 @@ inxi \- Command line system information script for console and IRC
|
|||
[\fB\-v NUMBER\fR] [\fB\-W LOCATION\fR]
|
||||
[\fB\-\-weather\-unit\fR {\fBm\fR|\fBi\fR|\fBmi\fR|\fBim\fR}] [\fB\-y WIDTH\fR]
|
||||
|
||||
\fBinxi\fR [\fB\-\-memory\-modules\fR] [\fB\-\-memory\-short\fR]
|
||||
[\fB\-\-recommends\fR] [\fB\-\-sensors\-default\fR] [\fB\-\-slots\fR]
|
||||
\fBinxi\fR [\fB\-\-edid\fR] [\fB\-\-memory\-modules\fR]
|
||||
[\fB\-\-memory\-short\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
|
||||
|
||||
|
@ -253,6 +254,17 @@ or
|
|||
|
||||
\fBrfkill unblock bluetooth\fR
|
||||
|
||||
.TP
|
||||
.B \-\-edid\fR
|
||||
.br
|
||||
Triggers full \fBEDID\fR data in Graphics, activates \fB\-G\fR and \fB\-a\fR.
|
||||
|
||||
\- Adds monitor chromacity (\fBchroma: red:..green:...blue:...white:\fR).
|
||||
|
||||
\- Shows all available monitor modes if > 2 present, in comma separated list.
|
||||
|
||||
\- Shows \fBEDID\fR errors and warnings if any present.
|
||||
|
||||
.TP
|
||||
.B \-\-filter\fR, \fB\-z\fR
|
||||
.br
|
||||
|
@ -295,7 +307,8 @@ Xvesa); for Wayland: GBM/EGL data (not implemented).
|
|||
Compositor information will show if detected using \fB\-xx\fR option or always
|
||||
if detected and Wayland since the compositor is the server with Wayland.
|
||||
|
||||
\fB\-Gxx\fR shows monitor data as well, if detected.
|
||||
\fB\-Gxx\fR shows monitor data as well, if detected. \fB\-\-edid\fR shows
|
||||
advanced monitor data (full modes, chroma, etc.).
|
||||
|
||||
.TP
|
||||
.B \-h \fR, \fB\-\-help\fR
|
||||
|
@ -770,9 +783,10 @@ of optical drives.
|
|||
|
||||
.TP
|
||||
.B \-v 8
|
||||
\- All system data available. Adds 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 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
|
||||
|
@ -1317,6 +1331,11 @@ distributions for this feature. Due to the complexity of distribution
|
|||
identification, these will only be added as relatively solid methods are
|
||||
found for each distribution system base detection.
|
||||
|
||||
.TP
|
||||
.B \-x \-\-slots\fR
|
||||
\- Adds \fBbus\-ID:\fR. Note that this bus ID does not unfortunately appear to
|
||||
be readily detected as the source bus ID for any particular device bus ID.
|
||||
|
||||
.TP
|
||||
.B \-x \-t\fR (\fB\-\-processes\fR)
|
||||
\- Adds memory use output to CPU (\fB\-xt c\fR), and CPU use to memory
|
||||
|
|
190
inxi.changelog
190
inxi.changelog
|
@ -1,3 +1,193 @@
|
|||
================================================================================
|
||||
Version: 3.3.14
|
||||
Patch: 00
|
||||
Date: 2022-03-24
|
||||
--------------------------------------------------------------------------------
|
||||
RELEASE NOTES:
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
New version, man. Continuing development of EDID and monitor features, bug
|
||||
fixes, normal fixes.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
KNOWN ISSUES:
|
||||
|
||||
1. Failed to handle case for monitor positions of array type: 2-2, 3-1, 1-3,
|
||||
4-4. I'm not sure what structure those are really arranged in, but might be
|
||||
worth adding in the x+y pos values along with the row-col values.
|
||||
|
||||
2. For Monitors and graphics Device ports, if using non free nvidia driver and:
|
||||
nvidia-drm.modeset=1 not set in grub kernel boot parameters, there will be no
|
||||
/sys/class/drm data for the nvidia device, and thus no ports data, and no
|
||||
monitor data.
|
||||
|
||||
3. A class of high count DP or DVI port IDs are changed by Xorg drivers to for
|
||||
example: DP-6 > DP-2-3. This is very difficult to handle and will in general
|
||||
probably fail unfortunately because that level of port ID abstraction is just
|
||||
reazlly hard to deal with dynamically.
|
||||
|
||||
4. A to-do item: add bus ID children on --slots. This will probablby be in next
|
||||
inxi.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
BUGS:
|
||||
|
||||
1. None outside of the various fixes.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
FIXES:
|
||||
|
||||
1. In sensors, failed to pull out BAT sensor data. In most cases, this would not
|
||||
lead to any issues, but it could have.
|
||||
|
||||
2. This one just slipped my mind, I'd meant to do it, but in Montitor-x:, the
|
||||
primary ID should have been the 'real' kernel ID, not the mapped: ID, which is
|
||||
the X.org ID when different from the kernel ID. So mapped should be the Xorg
|
||||
version when they are different from the kernel version.
|
||||
|
||||
3. In Graphics, monitors can show > 1 ratio, failed to set all to :, resulting
|
||||
in: ratio: 3:2 or 16/10 modes:. Also fixed ParseEDID to output an array of
|
||||
ratios, which can then be processed as wanted.
|
||||
|
||||
4. Monitor map fixes:
|
||||
* Handle case in monitors where display ID: eDP and sys ID: eDP-1, this only
|
||||
works if 1 monitor in array. There's a variety of this type of failure, when
|
||||
X.org or its drivers decide to call the port ID XYZ with no number at all. All
|
||||
those possible cases are now handled, like eDP > eDP-1, VGA > VGA-1, and so on.
|
||||
|
||||
* Added fallback, if no match, and if only 1 monitor, just map them to eachother
|
||||
if other mappings failed. Prompted by things like: s: DP-6 > d: DP-2-3;
|
||||
s: eDP-1 > d: DP-4, which are just impossible to create logic to map.
|
||||
|
||||
5. Removed 'ati' driver from xorg drivers list, it's simply a wrapper for r128,
|
||||
mach64, or radeon (and maybe amdgpu), and shows as failed, unloaded, or loaded,
|
||||
because of this. ati basically assigns the correct driver, that is, but is not
|
||||
itself a driver. Thanks mrmazda for spotting this issue.
|
||||
|
||||
6. Typo on QDI => Quantum Data.
|
||||
|
||||
7. Added fallback for monitor model, now using vendor code plus product code
|
||||
if nothing found for vendor nice name or model. This will show as 'model-id:'
|
||||
instead of model: to help differentiate the two.
|
||||
|
||||
8. Added Monitor product_code to manufacturer if no model name is found.
|
||||
|
||||
9. get_pci_vendor was trimming at ' / ' if the product string also contained
|
||||
' / '. Fix is to ignore 1 character 'words' in the logic.
|
||||
|
||||
10. In Slots, failed to remove_duplicates in the slot info field, leading to
|
||||
redundant output strings. See Enhancement 3 and Code 4.
|
||||
|
||||
11. See Change 3, finally made -S section use full key: value pair, which makes
|
||||
stuff more explicit, like:
|
||||
|
||||
System:
|
||||
Host: yawn
|
||||
Kernel: 5.16.0-11.1-liquorix-amd64
|
||||
arch: x86_64
|
||||
bits: 64
|
||||
compiler: gcc
|
||||
v: 11.2.0
|
||||
Desktop: Xfce
|
||||
v: 4.16.0
|
||||
tk: Gtk
|
||||
v: 3.24.24
|
||||
info: xfce4-panel
|
||||
wm: xfwm
|
||||
v: 4.16.1
|
||||
vt: 7
|
||||
dm:
|
||||
1: LightDM
|
||||
v: 1.26.0
|
||||
2: SDDM
|
||||
note: stopped
|
||||
Distro: Debian GNU/Linux bookworm/sid
|
||||
|
||||
12. Fix for mageia and lsb distro data, force use of os-release for mageia if
|
||||
detected. That overrides the forced use of lsb release for mandrake/mandriva,
|
||||
because for some reason mageia has decided to carry ALL the legacy distro files:
|
||||
'/etc/lsb-release',
|
||||
'/etc/lsb-release.d',
|
||||
'/etc/mageia-release',
|
||||
'/etc/mandrake-release',
|
||||
'/etc/mandrakelinux-release',
|
||||
'/etc/mandriva-release',
|
||||
'/etc/os-release',
|
||||
'/etc/redhat-release',
|
||||
'/etc/system-release'
|
||||
which is really not what this stuff is intended for, if it's an actual derived
|
||||
distro from a living base, then yes, include the base file, but all these have
|
||||
the same distro id data for mageia, none for the derived distros.
|
||||
|
||||
Also, fixed an lsb release thing to avoid using codename if codename contains
|
||||
release number as well. Since lsb_release is totally legacy at this point, who
|
||||
cares if we might miss a specific codename here and there on legacy system.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ENHANCEMENTS:
|
||||
|
||||
1. Added Color Characteristics to EDID parser, for some reason that had been
|
||||
left out.
|
||||
|
||||
2. Added advanced EDID output option --edid, that allows for showing more
|
||||
advanced EDID data than is appropriate for most users cases. Ihcludes errors,
|
||||
color characteristics chroma: (chromacity), full modes, not just min/max.
|
||||
|
||||
3. In --slots, added bus-ID.
|
||||
|
||||
Also extended report quality, made more granular, got rid of single blob from
|
||||
Type and Designation and now get more accurate and useful data.
|
||||
|
||||
4. In cases with > 1 DM, check to see if one or more are stopped or disabled, =
|
||||
and add (stopped) if it was detected in running service as stopped.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
CHANGES:
|
||||
|
||||
1. Reversed monitor ID and mapped: ID values, that was a mistake, the mapped:
|
||||
item was supposed to contain the X.org mapped name, and the primary ID was
|
||||
supposed to be the actual real ID the kernel uses. Not a huge deal either way,
|
||||
but there it is.
|
||||
|
||||
2. Include disabled but connected Monitors. This works around nvidia bug showing
|
||||
monitors disabled when they are enabled, but also allows for showing connected
|
||||
monitors, though without as much data.
|
||||
|
||||
3. Made the last holdout -S > -Sa use strict full key: value pair output, like
|
||||
Desktop: XFCE v: 4.14.12 and so on.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
DOCUMENTATION:
|
||||
|
||||
1. Added help/man for --edid info.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
CODE:
|
||||
|
||||
1. In ParseEDID: made new key: edid_error, which contains an array ref of 1 or
|
||||
more edid errors. The previous version did a poor job and returned only the
|
||||
first error found, so there could have been > 1 error, and you'd never know it.
|
||||
|
||||
This changes check_parsed_edid to _check_parsed_edid(). and adds a utility tool
|
||||
_edid_error, which grabs the message from main::message, giving better output
|
||||
integration.
|
||||
|
||||
This also allows for future error handling expansion quite easily.
|
||||
|
||||
2. In map_monitor_ids() fixed matching pattern, made more robust and explicit,
|
||||
to catch things like s: eDP-1 d: eDP or eDP-1-1, both have been seen. Also added
|
||||
fallback for single monitor, just map them to eachother if mapping failed.
|
||||
|
||||
3. get_pci_vendor() added test for using anything that is 1 character length,
|
||||
to not break on 1 character length string matches.
|
||||
|
||||
4. Fully refactored --slots, that was originally written purely as a proof of
|
||||
concept in terms of adding a new feature during the original inxi 2.9 rewrite,
|
||||
and was never actually touched after that.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Harald Hope - Thu, 24 Mar 2022 12:01:50 -0800
|
||||
|
||||
================================================================================
|
||||
Version: 3.3.13
|
||||
Patch: 00
|
||||
|
|
Loading…
Reference in a new issue