Rollout of advanced microarchitecture info continues, added AMD/Intel gfx

devices, CPU built dates, process nodes, generation (in some cases, where it
makes sense), etc.

Please note: the 3.3.16 > 17 releases require manual matching table updates. If
you think disk or ram vendor, CPU or GPU process, release date, generation, etc,
information is not correct:

* FIRST: do the research, confirm it's wrong, using wikichips, techpowerup,
wikipedia links, but also be aware, sometimes these slightly contradict each-
other, so research. Don't make me do all your work for you.

* Show the relelevant data, like cpu model/stepping, to correct the issue, or
model name string.

* There are 4 main manually updated matching tables, which use either raw regex
to generate the match based on the model name (ram, disk vendors), or vendor id
matching (ram vendors), product id matching (gpu data), or cpu family / model /
stepping id matching. Each of these has its own matching tool at:
  inxi-perl/tools/[tool-name].pl
which is used to generate either raw data used by the functions (ids for gpu
data), or which contains the master copy of the function used to generate the
regex matches (cp_cpu_arch/set_ram_vendors/set_disk_vendors).

* Please use pinxi and inxi-perl branch for this data, inxi is only released
when next stable is done, all development is done in inxi-perl branch. All
development for the data or functions these tools are made for occurs in the
tools, not in pinxi, and those results are moved into pinxi from the tools.

* Saying something "doesn't work" is not helpful, provide the required data for
the feature that needs updating, or ideally, find the correct answer yourself
and do the research and then provide the updated data for matching.

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

1. GPU/CPU process node sizes are marketing, not engineering, terms, but
work-around is to list the fab too so you at least know which set of marketing
terms you're dealing with. As of around 7nm, most of the fabs are not using nm
in their names anymore, TSMC is using n7, Intel 7, for example. While these
marketing terms do reflect changes from the previous process node, more
efficient, faster, faster per watt, and so on, and these changes are often quite
significant, 10-30%, or more, they do not reflect the size of the transistor
gate like they used to up until about 350nm. Intel will move to A20 for the node
after 4 or 5, 2nm, meaning 20 angstroms.

Intel suggested million transistors per mm^2 as an objective measure (currently
around 300+ million!! as of ~7nm), but TSMC didn't take them up on it.

GlobalFoundries (GF) stepped away from these ultra small processes at around
14nm, so you won't see GF very often in the data. AMD spun off its chip fabs to
GF aound 2009, so you don't see AMD as foundry after GF was formed. ATI always
used TSMC so GPU data for AMD/ATI is I think all TSMC. Intel has always been its
own foundry.

2. Wayland drops all its data and can't be detected if sudo or su is used to run
inxi. That's unfortunate, but goes along with their dropping support for > 1
user, which was one of the points of wayland, same reason you can do desktop
sharing or ssh desktop forwarding etc. This means inxi doesn't show wayland as
Display protocol, it is just blank, if you use su, or sudo start. This makes
some internal inxi wayland triggers then fail. Still looking to see if there is
a fix or workaround for this.

3. In sensors, a new syntax for k10-pci temp, Tctl, which unfortunately is the
only temp type present for AMD family 17h (zen) and newer cpus, but that is not
an actual cpu temp, it's:
https://www.kernel.org/doc/html/v5.12/hwmon/k10temp.html

"Tctl is the processor temperature control value, used by the platform to
control cooling systems. Tctl is a non-physical temperature on an arbitrary
scale measured in degrees. It does _not_ represent an actual physical
temperature like die or case temperature."

Even worse, it replaced Tdie, which was, correctly, temp1_input, and, somewhat
insanely, the non real cpu temp is now temp1_input, and if present, the real
Tdie cpu temp is temp2_input. I don't know how to work around this problem.

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

1. Fallback test for Intel cpu arch was not doing anything, used wrong variable
name.

2. A very old bug, thanks mrmazda for spotting this one, runlevel in case of
init 3 > init 5 showed 35, not 5. Doesn't show on systemd stuff often since it
doesn't use runlevels in this way, but this bug has been around a really long
time.

3. SensorItem::gpu_data was always logging its data, missing the if $b_log.

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

1. Fixed some disk vendor detection rules.

2. Failing to return default target for systemd/systemctl when no:
 /etc/systemd/system/default.target
file exists. Corrected to use systemctl get-default as fallback if file doesn't
exist.

3. Fixed indentation for default: runlevel, should be child of runlevel: /
target:

4. Fixed corner case where systemd has no /proc/1/comm file but is still the
init system. Added fallback check for /run/systemd/units, if that exists, safe
to assume systemd is running init.

5. Fixed subtle case, -h/--recommends/--version/--version-short should not print
to -y1 width, but rather to the original or modified widths >= 80 cols.
Corrected this in print_basic() by using max-cols-basic.

6. Forgot to add --pkg, --edid, and --gpu to debugger run_self() tool.

7. Fixed broken sandisk vendor id.

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

1. Added AMD and Intel GPU microarchitecture detections for -Gx. These are not
as easy as Nvidia because there is no one reliable data source for product ids.

2. Going with the -Ga process: .. built: item, -Ca will show process: [node] and
built: years and sometimes gen: if available. Geeky, sure, not always perfect,
or correct, but will generally be close. Due to difficultly in finding reliable
release > build end years for example, not all cpus have all this data.

Using CPU generation,where that data is available and makes sense. Like AMD
Zen+ is zen gen: 2, for example,. Because Intel microarch names are often
marketing driven, not engineering, it's too difficult to assign gen consistently
based only on model names. Shows for Core intels like: gen: core 3

That will cover most consumer Intel CPU users currently.

3. Added initial Zen 3+ and Zen 4 ids for cp_cpu_arch(). There is very little
info on these yet, so I'm going on what may prove to be incomplete or wrong
data.

4. Added GPU process, build years for -Ga.

5. Added fallback test for gpus that we don't have product IDs for yet because
dbs have not been updated. Only used for cases where it's the newest gpu series
and no prodoct IDs have been found.

6. Added AMD am386 support to cp_cpu_arch... ok ok, inxi takes 9 minutes to
execute on that, but there you have it.

7. Added unverified Hyprland wayland compositor detection.

8. By request, added --version-short/--vs, which outputs version info in one
line if used together with other options and if not short form. With any normal
line option, will output version (date) info first line, without any other
option, will output 1 line version info and exit.

9. More disk vendors, ids! Much easier with new tool disk_vendors.pl.

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

1. Deprecated --nvidia/--nv in favor of more consistent --gpu, that's easier to
work with multiple vendors for advanced gpu architecture. Note for non nvidia,
--gpu only adds codename, if available and different from arch name. For nvidia,
it adds a lot more data.

2. Changed inxi-perl/tools tool names to more clearly reflect what function they
serve.

3. Going with runlevel fixes, changed 'runlevel:' to be 'target:' if systemd.
Also changed incorrect 'target:' for 'default:'.

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

1. Updated man, help, docs/inxi-data.txt for new gpu data and tools, and to
indicate switch to more generic --gpu trigger for advanced gpu data, instead of
the now deprecated --nvidia/--nv, which probably will go down as the shortest
lasting option documented, though of course inxi always keeps legacy syntax
working, behind the scenes, it's just removed from the -h and man page in favor
of --gpu. Also updated to show AMD/Intel/Nvidia now, since the data now roughly
works for all three main gpus.

2. Updated pinxi README.txt to reflect the tools and how to use them and what
they are for.

3. --help, man, updated for target/runlevel, default: changes for init data.

4. Updated configuration html and man for --fake-data-dir.

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

1. Upgraded tools/gpu_ids.pl to handle nvidia, intel, or amd data, added data
files in tools/lists/ for amd. First changed name from ids.pl to gpu_ids.pl

2. New data files added for amd/intel pci ids, and a new tool to merge them and
prep them for gpu_ids.pl -j amd|intel handling. All work. Took a while to get
these things sorted, but don't want to get stuck in future with manual updates,
it needs to be automated as much as possible, same as with disk_vendors.pl etc,
if I'm going to try to maintain this over time.

3. Made all gpu data file names use consistent formats, and made disk data files
also follow this format.

4. Changed raw_ids.pl to gpu_raw.pl, trying to keep things easy to remember and
consistent here.

5. Refactored core gpu data logic, now all types use the same sub, and just
assign various data depending on the type.

6. Changed vendors.pl name to disk_vendors.pl

7. Big redo of array/hash handling in OutputHandler, was partially by reference,
now is completely by reference. All Items now use and return $rows array ref as
well, from start to finish, unlike previously, where @rows was copied
repeatedly.

8. Going along with 7, made most internal passing of hash/arrays use hash/array
references instead, where it makes sense, and doesn't make the code harder to
work with.

9. Refactored WeatherItem, split apart the parts from output to be more like
normal Items in terms of error handling etc.

10. Added 'ref' return option for reader() and grabber(). Only useful for very
large data sets, added also default 'arr' if no value is provided for that
argument.

11. Switched some features to use grabber/reader by ref on the off chance that
will dump some execution time.

12. A few places added qr/.../ precompiled regex, in simple form, for loops,
maybe it helps a little. I don't know.

13. Added global $fake_data_dir, this can be changed via configuration item:
FAKE_DATA_DIR or one time by --fake-data-dir.

14. Created data directory, and initial data items. cpu is the fake data used to
test CPU info. More will be added as data is checked and sanitized.
This commit is contained in:
Harald Hope 2022-06-10 12:40:18 -07:00
parent 7245e42aa2
commit 35e8a95055
3 changed files with 4440 additions and 3336 deletions

7360
inxi

File diff suppressed because it is too large Load diff

154
inxi.1
View file

@ -15,7 +15,7 @@
.\" with this program; if not, write to the Free Software Foundation, Inc., .\" with this program; if not, write to the Free Software Foundation, Inc.,
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. .\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
.\" .\"
.TH INXI 1 "2022\-05\-19" "inxi" "inxi manual" .TH INXI 1 "2022\-06\-10" "inxi" "inxi manual"
.SH NAME .SH NAME
inxi \- Command line system information script for console and IRC inxi \- Command line system information script for console and IRC
@ -31,9 +31,9 @@ inxi \- Command line system information script for console and IRC
[\fB\-v NUMBER\fR] [\fB\-W LOCATION\fR] [\fB\-v NUMBER\fR] [\fB\-W LOCATION\fR]
[\fB\-\-weather\-unit\fR {\fBm\fR|\fBi\fR|\fBmi\fR|\fBim\fR}] [\fB\-y WIDTH\fR] [\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] \fBinxi\fR [\fB\-\-edid\fR] [\fB\-\-gpu\fR] [\fB\-\-memory\-modules\fR]
[\fB\-\-memory\-short\fR] [\fB\-\-nvidia\fR] [\fB\-\-recommends\fR] [\fB\-\-memory\-short\fR] [\fB\-\-recommends\fR] [\fB\-\-sensors\-default\fR]
[\fB\-\-sensors\-default\fR] [\fB\-\-slots\fR] [\fB\-\-slots\fR]
\fBinxi\fB [\fB\-x\fR|\fB\-xx\fR|\fB\-xxx\fR|\fB\-a\fR] \fB\-OPTION(s)\fR \fBinxi\fB [\fB\-x\fR|\fB\-xx\fR|\fB\-xxx\fR|\fB\-a\fR] \fB\-OPTION(s)\fR
@ -310,6 +310,38 @@ show extra verbose options such as \fB\-d \-f \-i -J \-l \-m \-o \-p \-r \-t \-u
\-x\fR unless you use those arguments in the command, e.g.: \-x\fR unless you use those arguments in the command, e.g.:
\fBinxi \-Frmxx\fR \fBinxi \-Frmxx\fR
.TP
.B \-\-gpu\fR
Show advanced gpu data. Triggers \fB\-G\fR and \fB\-a\fR as well. Expands
existing \fBnon\-free:\fR driver (Linux and Nvidia only), and \fBarch:\fR
reports (AMD/Intel/Nvidia). Useful to help diagnose driver support issues, shows
extra data that can help diagnose/debug. Adds \fBcode:\fR item if found and not
the same as \fBarch:\fR.
.nf
\fBinxi \-\-gpu \-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
built: 2003-05
ports:
active: VGA\-1
empty: DVI\-I\-1,TV\-1
bus\-ID: 01:00.0
chip\-ID: 10de:0322
class\-ID: 0300
.fi
.TP .TP
.B \-G \fR, \fB\-\-graphics\fR .B \-G \fR, \fB\-\-graphics\fR
Show Graphic device(s) information, including details of device and display Show Graphic device(s) information, including details of device and display
@ -354,7 +386,7 @@ Shows both IPv4 and IPv6 link IP addresses.
.B \-I \fR, \fB\-\-info\fR .B \-I \fR, \fB\-\-info\fR
Show Information: processes, uptime, memory, IRC client (or shell type if run Show Information: processes, uptime, memory, IRC client (or shell type if run
in shell, not IRC), inxi version. See \fB\-Ix\fR, \fB\-Ixx\fR, and \fB\-Ia\fR in shell, not IRC), inxi version. See \fB\-Ix\fR, \fB\-Ixx\fR, and \fB\-Ia\fR
for extra information (init type/version, runlevel, packages). for extra information (init type/version, runlevel/target, packages).
Note: if \fB\-m\fR is used or triggered, the memory item will show in the main Note: if \fB\-m\fR is used or triggered, the memory item will show in the main
Memory: report of \fB\-m\fR, not in \fB\Info:\fR. Memory: report of \fB\-m\fR, not in \fB\Info:\fR.
@ -570,33 +602,8 @@ shows Bus ID, Port number.
.TP .TP
.B \-\-nvidia\fR, \fB\-\-nv\fR .B \-\-nvidia\fR, \fB\-\-nv\fR
Show advanced non\-free Nvidia driver data. Triggers \fB\-G\fR and \fB\-a\fR as .br
well. Expands existing \fBnon\-free:\fR driver report (Linux and Nvidia only). See \fB\-\-gpu\fR.
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 .TP
.B \-o \fR, \fB\-\-unmounted\fR .B \-o \fR, \fB\-\-unmounted\fR
@ -785,7 +792,13 @@ See \fB\-J\fR.
.TP .TP
.B \-V\fR, \fB\-\-version\fR .B \-V\fR, \fB\-\-version\fR
inxi version information. Prints information then exits. inxi full version and license information. Prints information then exits.
.TP
.B \-\-version\-short\fR, \fB\-\-vs\fR
inxi single line version information. Prints information if not short form
(which shows version info already). Does not exit unless used without any other
options. Can be used with normal line options.
.TP .TP
.B \-v \fR, \fB\-\-verbosity\fR .B \-v \fR, \fB\-\-verbosity\fR
@ -839,10 +852,10 @@ of optical drives.
.TP .TP
.B \-v 8 .B \-v 8
\- All system data available. Adds Nvidia non\-free driver data \- All system data available. Adds extra gpu data (\fB\-\-gpu\fR), advanced EDID
(\fB\-\-nvidia\fR), advanced EDID data (\fB\-\-edid\fR), Repos (\fB\-r\fR), PCI data (\fB\-\-edid\fR), Repos (\fB\-r\fR), PCI slots (\fB\-\-slots\fR), processes
slots (\fB\-\-slots\fR), processes (\fB\-tcm\fR), admin (\fB\-\-admin\fR). (\fB\-tcm\fR), admin (\fB\-\-admin\fR). Useful for testing output and to see
Useful for testing output and to see what data you can get from your system. what data you can get from your system.
.TP .TP
.B \-w \fR, \fB\-\-weather\fR .B \-w \fR, \fB\-\-weather\fR
@ -1267,7 +1280,7 @@ for each HCI ID.
.TP .TP
.B \-x \-G\fR .B \-x \-G\fR
\- Adds GPU micro\-architecture (if Nvidia and found). \- Adds GPU micro\-architecture (if AMD/Intel/Nvidia and detected).
\- Adds PCI/USB ID of each device. \- Adds PCI/USB ID of each device.
@ -1312,7 +1325,7 @@ With \fB\-xx\fR, shows init/rc version number, if available.
\- Adds default system gcc. With \fB\-xx\fR, also show other installed gcc \- Adds default system gcc. With \fB\-xx\fR, also show other installed gcc
versions. versions.
\- Adds current runlevel (not available with all init systems). \- Adds current runlevel/target (not available with all init systems).
\- Adds total packages discovered in system. See \fB\-xx\fR and \fB\-a\fR \- Adds total packages discovered in system. See \fB\-xx\fR and \fB\-a\fR
for per package manager types output. Moves to \fBRepos\fR if \fB\-rx\fR. for per package manager types output. Moves to \fBRepos\fR if \fB\-rx\fR.
@ -1545,8 +1558,8 @@ same. Example:
\- Adds other detected installed gcc versions (if present). \- Adds other detected installed gcc versions (if present).
\- Adds system default runlevel, if detected. Supports Systemd/Upstart/SysVinit \- Adds system default runlevel/target, if detected. Supports Systemd / Upstart
type defaults. /SysVinit type defaults.
\- Shows \fBPackages:\fR counts by discovered package manager types. In cases \- Shows \fBPackages:\fR counts by discovered package manager types. In cases
where only 1 type had results, does not show total after \fBPackages:\fR. Does where only 1 type had results, does not show total after \fBPackages:\fR. Does
@ -1824,6 +1837,11 @@ shown).
.TP .TP
.B \-a \-C\fR .B \-a \-C\fR
.br
\- Adds CPU generation, process node, and built years, if detected. For Intel,
only will show if Core generation, otherwise the arch value is enough. For AMD,
only shows Zen generation.
\- Adds CPU family, model\-id, and stepping (replaces \fBrev\fR of \fB\-Cx\fR). \- Adds CPU family, model\-id, and stepping (replaces \fBrev\fR of \fB\-Cx\fR).
Format is \fBhexadecimal (decimal)\fR if greater than 9, otherwise Format is \fBhexadecimal (decimal)\fR if greater than 9, otherwise
\fBhexadecimal\fR. \fBhexadecimal\fR.
@ -1917,6 +1935,9 @@ differences shown, like \fBcores:, \fBmin/max:\fR, etc.
bits: 64 bits: 64
type: MT MCP MCM SMP type: MT MCP MCM SMP
arch: Zen arch: Zen
gen: 1
process: GF 14nm
built: 2017-19
family:0x17 (23) family:0x17 (23)
model\-id:1 model\-id:1
stepping: 2 stepping: 2
@ -1998,24 +2019,28 @@ 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 does NOT mean it is available in the system, it's just something the kernel
knows could possibly be used instead. knows could possibly be used instead.
\- Adds (if Linux and Nvidia card) non\-free support information (if available). \- Adds (AMD/Intel/Nvidia, if available) \fBprocess: [node] built: [years]\fR
This can be useful for forum support people to determine if the card supports to \fBarch:fR item.
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. \- Adds (if Linux and Nvidia device) 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 .nf
\fBinxi \-GIaz \fBinxi \-GIaz
Graphics: Graphics:
Device\-1: NVIDIA NV34 [GeForce FX 5200] driver: nouveau v: kernel Device\-1: NVIDIA NV34 [GeForce FX 5200] driver: nouveau v: kernel
non-free: 173.14.xx status: legacy (EOL, try \-\-nv) arch: Rankine non-free: 173.14.xx status: legacy (EOL, try \-\-gpu) arch: Rankine
ports: active: VGA-1 empty: DVI\-I\-1,TV\-1 bus\-ID: 01:00.0 process: 130\-150nm built: 2003-05 ports: active: VGA-1
chip\-ID: 10de:0322 class\-ID: 0300 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 Display: x11 server: X.Org v: 21.1.3 driver: X: loaded: nouveau
unloaded: fbdev,modesetting,vesa alternate: nv,nvidia gpu: nouveau unloaded: fbdev,modesetting,vesa alternate: nv,nvidia gpu: nouveau
display\-ID: :0 screens: 1\fR display\-ID: :0 screens: 1\fR
.fi .fi
For extended non free Nvidia legacy informatin, use For extended non free Nvidia legacy informatin, use \fB\-\-gpu\fR.
\fB\-\-nvidia\fR/\fB\-\-nv\fR.
\- Adds PCIe generation, and, if different than running PCIe generation, speed \- Adds PCIe generation, and, if different than running PCIe generation, speed
or lanes, \fBlink\-max: gen: speed: lanes:\fR (only items different from primary or lanes, \fBlink\-max: gen: speed: lanes:\fR (only items different from primary
@ -2049,11 +2074,11 @@ Wayland sample, with Sway/swaymsg:
.nf .nf
\fBinxi \aGz \fBinxi \aGz
Graphics: Graphics:
Device\-1: Advanced Micro Devices [AMD/ATI] Cedar [Radeon HD Device-1: AMD Cedar [Radeon HD 5000/6000/7350/8350 Series] vendor: XFX Pine
5000/6000/7350/8350 Series] vendor: XFX Pine driver: radeon v: kernel alternate: amdgpu arch: TeraScale 2
driver: radeon v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 16 ports: process: TSMC 32\-40nm pcie: gen: 1 speed: 2.5 GT/s lanes: 16 link\-max:
active: DVI\-I\-1,VGA\-1 empty: HDMI\-A\-1 bus\-ID: 0a:00.0 chip\-ID: 1002:68f9 gen: 2 speed: 5 GT/s ports: active: DVI\-I\-1,VGA\-1 empty: HDMI\-A\-1
class\-ID: 0300 bus\-ID: 0a:00.0 chip\-ID: 1002:68f9 class\-ID: 0300
Display: wayland server: Xwayland v: 21.1.4 compositor: sway v: 1.6.1 Display: wayland server: Xwayland v: 21.1.4 compositor: sway v: 1.6.1
driver: gpu: radeon d\-rect: 2560x1024 driver: gpu: radeon d\-rect: 2560x1024
Monitor-1: DVI\-I\-1 pos: right model: SyncMaster serial: <filter> Monitor-1: DVI\-I\-1 pos: right model: SyncMaster serial: <filter>
@ -2076,9 +2101,10 @@ packages listed. Moves to \fBRepos\fR if \fB\-ra\fR.
\fBinxi \-aI \fBinxi \-aI
Info: Info:
.... ....
Init: systemd v: 245 runlevel: 5 Compilers: gcc: 9.3.0 alt: 5/6/7/8/9 Init: systemd v: 245 target: graphical.target (5) default: graphical.target
Packages: apt: 3681 lib: 2096 rpm: 0 Shell: ksh v: A_2020.0.0 default: Bash Compilers: gcc: 9.3.0 alt: 5/6/7/8/9 Packages: apt: 3681 lib: 2096 rpm: 0
v: 5.0.16 running\-in: kate inxi: 3.1.04\fR Shell: ksh v: A_2020.0.0 default: Bash v: 5.0.16 running\-in: kate
inxi: 3.1.04\fR
.fi .fi
\- Adds service control tool, tested for in the following order: \fBsystemctl \- Adds service control tool, tested for in the following order: \fBsystemctl
@ -2514,6 +2540,11 @@ Automatically uploads debugger data tar.gz file to \fIftp.smxi.org\fR, then
removes the debug data directory and the tar.gz file. removes the debug data directory and the tar.gz file.
See \fB\-\-ftp\fR for uploading to alternate locations. See \fB\-\-ftp\fR for uploading to alternate locations.
.TP
.B \-\-fake\-data\-dir\fR
Developer only: Change default location of $fake_data_dir, which is where files
are for \fB\-\-fake {item}\fR items.
.TP .TP
.B \-\-ftp [ftp.yoursite.com/incoming]\fR .B \-\-ftp [ftp.yoursite.com/incoming]\fR
For alternate ftp upload locations: Example: For alternate ftp upload locations: Example:
@ -2755,6 +2786,13 @@ X/Wayland).
\fBVIRT_TERM_COLOR_SCHEME\fR Color scheme for virtual terminal output (in \fBVIRT_TERM_COLOR_SCHEME\fR Color scheme for virtual terminal output (in
X/Wayland). X/Wayland).
.TP
.B Developer Options
These are useful only for developers.
\fBFAKE_DATA_DIR\fR - change default fake data directory location. See
\fB\-\-fake\-data\-dir\fR.
.SH BUGS .SH BUGS
Please report bugs using the following resources. Please report bugs using the following resources.

View file

@ -1,3 +1,252 @@
================================================================================
Version: 3.3.17
Patch: 01
Date: 2022-06-10
--------------------------------------------------------------------------------
RELEASE NOTES:
--------------------------------------------------------------------------------
Rollout of advanced microarchitecture info continues, added AMD/Intel gfx
devices, CPU built dates, process nodes, generation (in some cases, where it
makes sense), etc.
Please note: the 3.3.16 > 17 releases require manual matching table updates. If
you think disk or ram vendor, CPU or GPU process, release date, generation, etc,
information is not correct:
* FIRST: do the research, confirm it's wrong, using wikichips, techpowerup,
wikipedia links, but also be aware, sometimes these slightly contradict each-
other, so research. Don't make me do all your work for you.
* Show the relelevant data, like cpu model/stepping, to correct the issue, or
model name string.
* There are 4 main manually updated matching tables, which use either raw regex
to generate the match based on the model name (ram, disk vendors), or vendor id
matching (ram vendors), product id matching (gpu data), or cpu family / model /
stepping id matching. Each of these has its own matching tool at:
inxi-perl/tools/[tool-name].pl
which is used to generate either raw data used by the functions (ids for gpu
data), or which contains the master copy of the function used to generate the
regex matches (cp_cpu_arch/set_ram_vendors/set_disk_vendors).
* Please use pinxi and inxi-perl branch for this data, inxi is only released
when next stable is done, all development is done in inxi-perl branch. All
development for the data or functions these tools are made for occurs in the
tools, not in pinxi, and those results are moved into pinxi from the tools.
* Saying something "doesn't work" is not helpful, provide the required data for
the feature that needs updating, or ideally, find the correct answer yourself
and do the research and then provide the updated data for matching.
--------------------------------------------------------------------------------
KNOWN ISSUES:
1. GPU/CPU process node sizes are marketing, not engineering, terms, but
work-around is to list the fab too so you at least know which set of marketing
terms you're dealing with. As of around 7nm, most of the fabs are not using nm
in their names anymore, TSMC is using n7, Intel 7, for example. While these
marketing terms do reflect changes from the previous process node, more
efficient, faster, faster per watt, and so on, and these changes are often quite
significant, 10-30%, or more, they do not reflect the size of the transistor
gate like they used to up until about 350nm. Intel will move to A20 for the node
after 4 or 5, 2nm, meaning 20 angstroms.
Intel suggested million transistors per mm^2 as an objective measure (currently
around 300+ million!! as of ~7nm), but TSMC didn't take them up on it.
GlobalFoundries (GF) stepped away from these ultra small processes at around
14nm, so you won't see GF very often in the data. AMD spun off its chip fabs to
GF aound 2009, so you don't see AMD as foundry after GF was formed. ATI always
used TSMC so GPU data for AMD/ATI is I think all TSMC. Intel has always been its
own foundry.
2. Wayland drops all its data and can't be detected if sudo or su is used to run
inxi. That's unfortunate, but goes along with their dropping support for > 1
user, which was one of the points of wayland, same reason you can do desktop
sharing or ssh desktop forwarding etc. This means inxi doesn't show wayland as
Display protocol, it is just blank, if you use su, or sudo start. This makes
some internal inxi wayland triggers then fail. Still looking to see if there is
a fix or workaround for this.
3. In sensors, a new syntax for k10-pci temp, Tctl, which unfortunately is the
only temp type present for AMD family 17h (zen) and newer cpus, but that is not
an actual cpu temp, it's:
https://www.kernel.org/doc/html/v5.12/hwmon/k10temp.html
"Tctl is the processor temperature control value, used by the platform to
control cooling systems. Tctl is a non-physical temperature on an arbitrary
scale measured in degrees. It does _not_ represent an actual physical
temperature like die or case temperature."
Even worse, it replaced Tdie, which was, correctly, temp1_input, and, somewhat
insanely, the non real cpu temp is now temp1_input, and if present, the real
Tdie cpu temp is temp2_input. I don't know how to work around this problem.
--------------------------------------------------------------------------------
BUGS:
1. Fallback test for Intel cpu arch was not doing anything, used wrong variable
name.
2. A very old bug, thanks mrmazda for spotting this one, runlevel in case of
init 3 > init 5 showed 35, not 5. Doesn't show on systemd stuff often since it
doesn't use runlevels in this way, but this bug has been around a really long
time.
3. SensorItem::gpu_data was always logging its data, missing the if $b_log.
--------------------------------------------------------------------------------
FIXES:
1. Fixed some disk vendor detection rules.
2. Failing to return default target for systemd/systemctl when no:
/etc/systemd/system/default.target
file exists. Corrected to use systemctl get-default as fallback if file doesn't
exist.
3. Fixed indentation for default: runlevel, should be child of runlevel: /
target:
4. Fixed corner case where systemd has no /proc/1/comm file but is still the
init system. Added fallback check for /run/systemd/units, if that exists, safe
to assume systemd is running init.
5. Fixed subtle case, -h/--recommends/--version/--version-short should not print
to -y1 width, but rather to the original or modified widths >= 80 cols.
Corrected this in print_basic() by using max-cols-basic.
6. Forgot to add --pkg, --edid, and --gpu to debugger run_self() tool.
7. Fixed broken sandisk vendor id.
--------------------------------------------------------------------------------
ENHANCEMENTS:
1. Added AMD and Intel GPU microarchitecture detections for -Gx. These are not
as easy as Nvidia because there is no one reliable data source for product ids.
2. Going with the -Ga process: .. built: item, -Ca will show process: [node] and
built: years and sometimes gen: if available. Geeky, sure, not always perfect,
or correct, but will generally be close. Due to difficultly in finding reliable
release > build end years for example, not all cpus have all this data.
Using CPU generation,where that data is available and makes sense. Like AMD
Zen+ is zen gen: 2, for example,. Because Intel microarch names are often
marketing driven, not engineering, it's too difficult to assign gen consistently
based only on model names. Shows for Core intels like: gen: core 3
That will cover most consumer Intel CPU users currently.
3. Added initial Zen 3+ and Zen 4 ids for cp_cpu_arch(). There is very little
info on these yet, so I'm going on what may prove to be incomplete or wrong
data.
4. Added GPU process, build years for -Ga.
5. Added fallback test for gpus that we don't have product IDs for yet because
dbs have not been updated. Only used for cases where it's the newest gpu series
and no prodoct IDs have been found.
6. Added AMD am386 support to cp_cpu_arch... ok ok, inxi takes 9 minutes to
execute on that, but there you have it.
7. Added unverified Hyprland wayland compositor detection.
8. By request, added --version-short/--vs, which outputs version info in one
line if used together with other options and if not short form. With any normal
line option, will output version (date) info first line, without any other
option, will output 1 line version info and exit.
9. More disk vendors, ids! Much easier with new tool disk_vendors.pl.
--------------------------------------------------------------------------------
CHANGES:
1. Deprecated --nvidia/--nv in favor of more consistent --gpu, that's easier to
work with multiple vendors for advanced gpu architecture. Note for non nvidia,
--gpu only adds codename, if available and different from arch name. For nvidia,
it adds a lot more data.
2. Changed inxi-perl/tools tool names to more clearly reflect what function they
serve.
3. Going with runlevel fixes, changed 'runlevel:' to be 'target:' if systemd.
Also changed incorrect 'target:' for 'default:'.
--------------------------------------------------------------------------------
DOCUMENTATION:
1. Updated man, help, docs/inxi-data.txt for new gpu data and tools, and to
indicate switch to more generic --gpu trigger for advanced gpu data, instead of
the now deprecated --nvidia/--nv, which probably will go down as the shortest
lasting option documented, though of course inxi always keeps legacy syntax
working, behind the scenes, it's just removed from the -h and man page in favor
of --gpu. Also updated to show AMD/Intel/Nvidia now, since the data now roughly
works for all three main gpus.
2. Updated pinxi README.txt to reflect the tools and how to use them and what
they are for.
3. --help, man, updated for target/runlevel, default: changes for init data.
4. Updated configuration html and man for --fake-data-dir.
--------------------------------------------------------------------------------
CODE:
1. Upgraded tools/gpu_ids.pl to handle nvidia, intel, or amd data, added data
files in tools/lists/ for amd. First changed name from ids.pl to gpu_ids.pl
2. New data files added for amd/intel pci ids, and a new tool to merge them and
prep them for gpu_ids.pl -j amd|intel handling. All work. Took a while to get
these things sorted, but don't want to get stuck in future with manual updates,
it needs to be automated as much as possible, same as with disk_vendors.pl etc,
if I'm going to try to maintain this over time.
3. Made all gpu data file names use consistent formats, and made disk data files
also follow this format.
4. Changed raw_ids.pl to gpu_raw.pl, trying to keep things easy to remember and
consistent here.
5. Refactored core gpu data logic, now all types use the same sub, and just
assign various data depending on the type.
6. Changed vendors.pl name to disk_vendors.pl
7. Big redo of array/hash handling in OutputHandler, was partially by reference,
now is completely by reference. All Items now use and return $rows array ref as
well, from start to finish, unlike previously, where @rows was copied
repeatedly.
8. Going along with 7, made most internal passing of hash/arrays use hash/array
references instead, where it makes sense, and doesn't make the code harder to
work with.
9. Refactored WeatherItem, split apart the parts from output to be more like
normal Items in terms of error handling etc.
10. Added 'ref' return option for reader() and grabber(). Only useful for very
large data sets, added also default 'arr' if no value is provided for that
argument.
11. Switched some features to use grabber/reader by ref on the off chance that
will dump some execution time.
12. A few places added qr/.../ precompiled regex, in simple form, for loops,
maybe it helps a little. I don't know.
13. Added global $fake_data_dir, this can be changed via configuration item:
FAKE_DATA_DIR or one time by --fake-data-dir.
14. Created data directory, and initial data items. cpu is the fake data used to
test CPU info. More will be added as data is checked and sanitized.
--------------------------------------------------------------------------------
-- Harald Hope - Fri, 10 June 2022 13:05:17 -0700
================================================================================ ================================================================================
Version: 3.3.16 Version: 3.3.16
Patch: 00 Patch: 00
@ -501,6 +750,9 @@ to not break on 1 character length string matches.
concept in terms of adding a new feature during the original inxi 2.9 rewrite, concept in terms of adding a new feature during the original inxi 2.9 rewrite,
and was never actually touched after that. and was never actually touched after that.
5. Added option to reader() to return array ref, if expecting a large file can
be useful.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- Harald Hope - Thu, 24 Mar 2022 12:01:50 -0800 -- Harald Hope - Thu, 24 Mar 2022 12:01:50 -0800
@ -3464,6 +3716,16 @@ replaced all of them with 'device[s]'.
4. Subtle fix, for debugger data collectors, added -y1 support, which can be 4. Subtle fix, for debugger data collectors, added -y1 support, which can be
useful at times. useful at times.
5. Optimized PATH searches, now inxi only adds things to PATH if they exist in
the system, not blindly.
6. Added to path test /usr/X11R6/bin to defaults, that is needed, if present, by
OpenBSD and maybe other BSDs for tools like glxinfo.
7. Corrected missing PCI device data requires root message, that should have
shown PCI device, not Device, since sometimes there is USB device data also
next even if no permissions to read PCI device data tool, like in OpenBSD.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
ENHANCEMENTS: ENHANCEMENTS: