mirror of
https://github.com/smxi/inxi.git
synced 2024-11-16 08:11:39 +00:00
Completion of the audio fixes and improvements of 3.3.26. Added less common
sound servers like EsounD and aRts, and made state reports more accurate for ALSA. Major USB code and data upgrades/refactors. The USB changes prepare inxi for USB 4, and adds lanes and Si/IEC speeds to the report. It is important to determine what USB mode you are running in with 3.x and 4. These changes conform more closely to how the USB consortium wants USB speeds refered to. With more robust USB data, this data now appears in a similar form as pcie: data for Devices, -A, -E, -G, -N, and for -D drives, as usb: plus rev, speed, lanes, mode, with the -xx/-a options, like pcie. This has been a long standing oversight and weakness of inxi USB and Device data, but now the two are fully integrated, including for drives, which was quite tricky to get working. Added netpkg and Zenwalk support to packages and repos. Also added repos support for sbopkg and slpkg, and updated package tools for Slackware. And more distros added to system base feature, and a few more for main ID. Improved --recommends report quite a bit, now it's more granular for missing packages and package manager reports, and also fixed a long standing missing current shell + version issue. Added the final package manager type, pkgtool (Slackware), that will be supported, which makes for 4, which is enough. Note that other package managers can be added following the documentation instructions for packagers, but this is enough for out of the box pm handling. Fixed a long standing oddity with how free / /proc/meminfo report MemTotal vs the actual physical RAM. I believe this issue also showed with GPU assigned RAM, but now for all but short form, shows Memory/RAM: available: ... used: ... -------------------------------------------------------------------------------- SPECIAL THANKS: 1. To the Slackware people at linuxquestions.org forums, who helped, again, on this audio feature, even finding current or not too old systems that use some of the new / old audio servers (EsoundD) running in the wild, which I never expected to see. And also for exposing some weak spots in the USB advanced logic, and helping with the sbopkg and slpkg repo logic and tools reports. 2. To the Manjaro forum users, for providing cases that show where inxi can be improved. The audio server/api issue, the current USB 3/4 upgrade, were initiated by threads pointing to things that could be improved in inxi. So I guess the real thanks are for using inxi enough to trigger cases that show where it's weak or can be better. Note that this requires that I follow roughly their forums, however I only look at threads that seem like they might be of general interest, or which suggest a possible weak spot in inxi, and I don't follow them consistently. More reliable is to file github issues, since I will always see those. -------------------------------------------------------------------------------- KNOWN ISSUES: 1. DesktopData: at one point, BunsenLabs Debian OpenBox had XDG_CURRENT_DESKTOP set to XFCE, which it isn't, but inxi can't work around such hacks, plus I don't even know if Bunsen is around anymore anyway. 2. DesktopData: CODE 1 reminds us that the time to depend on x tools like xprop for anything re desktop/wm detections is fast drawing to a close, true Wayland will not have xprop, unless it's running on xwayland, which is not something that should be relied on. Maybe recheck Moksha/Enlightenment which depend on xprop for version detection. The list of xprop detected wm/desktops in get_env_xprop_misc_data() is almost all X only wm/desktops, so those should be safe unless one of them decides to work on a wayland comositor. 3. BSD: ongoing weaknesses in BSD data sources make maintaining feature parity impossible, but I am trying to get the BSD data as clean and consistent as possible. I wish this were not the case, but the fact is, /sys is expanding and creating excellent and reliable data sources with every major Linux kernel update, and so far nothing comparable has appeared in the BSDs. This is just reality, it's not a condemnation, but something like the /proc then /sys file systems are an excellent idea, well worth emulating. 4. For the RAM available/total clarification, there's a slight issue because free/meminfo show MemAvailable as Free for use RAM, but dmesg shows available meaning what was available to the system during boot, minus the reserved percentage. Since we needed one term, available to System offers the closest in terms of technical precision without being too verbose. Technically available in this context means: total physical minus 'kernel code' minus 'reserved'. -------------------------------------------------------------------------------- BUGS: 1. CheckRecommends: See Fix 6b, more or less a bug, but really just a fix. 2. AUDIO: for USB devices, put extra data into row 0, no matter which row the USB device is. This led to the extra data for USB being assigned to the wrong row. Sigh. 3. OptionsHandler: When show{'ram'} was set, for bsd, set use{'bsd-raid'}, which makes both show raid and ram fail for BSD. Oops. User mode RAM data only seen in OpenBSD so far. This made loading $dboot{'ram'} fail, and any raid as well, sigh, unless -m was also tripped. -------------------------------------------------------------------------------- FIXES: 1. DistroData: typo for Arch base: was ctios, was supposed to be ctlos. 2a. DesktopData: found case where xprop -root not present (Void Linux), so xfce test failed. Split to new function dedicated to xfce detection that doesn't use xprop data. Also, XFCE is working on their Wayland version, which would in theory not even have xprop by default. Also, the base version number test for xfce depended on xprop, but xprop doesn't even have that xfce version data anymore, so just checking if xfce(4|5|)-panel exist and assigning primary version based on that test. 2b. DesktopData: Also see See CODE 1a,1b for further xprop and test fixes that could have led to false positive or negative test conditions for the items that used xprop tests. These tests are all xprop agnostic now, if it's there, they will use it, if not, do the best they can. 3. PackageData: fixed legacy dpkg-query, old version did not support -f shortcut for --showformat. This made dpkg package listing fail. 4a. GRAPHICS: Added legacy XFree86.0.log to X log path detection, that was an oversight. Also added legacy module syntax _drv.o (not _drv.so). This gets X driver data now for very old systems. 4b. GRAPHICS: fixed corner case where no x driver data, running as root, was not supposed to show 'note: X driver n/a' message, that was a holdover from before driver output was cleaned up and driver: N/A shows when no drivers at all found. Just forgot to remove it when doing recent updates in the driver section, maybe? 5. REPOS/PackageData: For netpkg Zenwalk Slackware systems, showed only slackpkg repo data, empty, and showed the Slackware pm, not netpkg for pm. See Enhancements 5, 6. 6. REPOS: removed slapt_get file /etc/slapt-get/pubring.kbx, that's not a repo file. Thanks chrisreturn for pointing that out. 7a. CheckRecommends: See also CODE 6. Fixed case where > 1 package manager is detected on system, now lists them one by one for detected, and shows package install options as well. Before only picked first detected, which could lead to wrong results for Missing Package lists. 7b. CheckRecommends: Fixed glitch, forgot to update the current shell/version when ShellData was refactored, this led to no current shell + version showing up in recommends core tools report. 8. RAM: fixed speed_mapper string match to allow for older syntaxes. This is as far as known OpenBSD only, from dboot data. Matches then converts PC2700 to PC-2700 which then allows for mapping. 9. RAM/PROCESSES/INFO/SHORT: Finally tracked down a long time oddity, where for example: RAM: total: 31.28 GiB does not match 32 GiB physical installed. This is because that is the total available after kernel and system reserved RAM is deducted, and in some cases, GPU allocated RAM. There are also corner cases where the listed amount can be less due to physical RAM damage, but that's uncommon. Added explanation of why it's different, and what available is referring to in man -m/--memory. Changed -m, -tm to show: System RAM: available: 31.28 GiB used 26.23 GiB (83.9%) and -I to show: Memory: available: 31.28 GiB used 26.23 GiB (83.9%) You can get the 'reserved' and 'kernel code' data from dmesg, but since Debian made that root/sudo tool, can't count on being able to parse that out of dmesg, plus you can never count no dmesg anyway since it can get overwritten by kernel oops or wonky device etc. inxi doesn't use dmesg data for Linux for this reason. ... [ 0.000000] Memory: 32784756K/33435864K available (10252K kernel code, 1243K rwdata, 3324K rodata, 1584K init, 2280K bss, 651108K reserved, 0K cma-reserved) Also removed Raspberry Pi video RAM added back in to total now that it's clear it's what is available. This may also make systems with GPU using system RAM more correct. 9. SENSORS: sensors /sys tried to create concatenated string with $unit $value but these are not necessarily defined, that needed to be protected with defined tests. -------------------------------------------------------------------------------- ENHANCEMENTS: 1a. AUDIO: JACK: added helper nsmd (new session manager), and its recommended gui agordejo. That's the drop in replacement for non-session-manager, the dev of which apparently lost interest in that project. But the ID method will work fine for for either, since both ran as nsmd. 1b. AUDIO: PULSE: added pulseaudio-alsa plugin support for helpers. This is like pipewire-alsa plugin, just alsa config file. Only seen in Arch Linux so far, but if others use similar paths for the glob pattern, they will also work fine. Also added pulseaudio-esound-compat plugin, which is easier to detect with /usr/bin/esdcompat. Also added paman, pulseaudio manager. 1c. AUDIO: ESOUND,ARTS: added legacy esd (EsounD aka: Enlightened Sound Daemon) and aRts sound server support, with basic help/tools. These are quite old, but are still occasionally seen in the wild on newer systems, surprisingly enough. 1d. AUDIO: ALSA: added alsactl to alsa tools. Missed that one, it's an /sbin type utility. 1e. AUDIO: ALSA: First try at ALSA compiled in but inactive report, previously depended on active only state of the API. Now uses compiled in SND_ kernel switch using the /boot/config-[kernel] file, which is a big expensive parse but only will activate on Linux kernels with no /proc/asound present. This fallback fails if kernel config file not present: /boot/config-$(uname -r). 1f. AUDIO: OSS: added tool ossctl. 1g. AUDIO: NAS: added helper: audiooss which is an OSS compat layer. 2a. DistroData: added Arch base distros: ArchEX, Bridge Linux, Condres OS, Feliz, LiriOS, Magpie, Namib, Porteus, RevengeOS, SalientOS, VeltOS. None of these are verified. Some don't exist anymore. Source: https://www.slant.co/topics/7603/~arch-linux-based-distributions 2b. DistroData: added ubuntu lunar 23-4 release id. 2c. DistroData: added porteux, added porteux, zenwalk to slackware systembase 3. DesktopData/GRAPHICS: added Smithay Wayland compositor. Not verified. 4a. UsbData/UsbItem: added USB lanes (-Jxx) and mode (-Ja), to add more useful data about USB revision and mode names the USB group has created. Otherwise it's too difficult to try to explain it. Note that -Jxx lanes follows other inxi items that show PCIe lanes as an -xx item to try to keep it consistent. This also consolidates the bsd and linux data sources, see CODE 5. Note modes and lanes are Linux only because the revision number, lanes, and speed used to determine mode are only natively available in Linux as actual internal data values. If this changes BSD support will be added in the future. The BSD rev and speed data is synthesized completely by inxi using some string values, and thus is not reliable, which means that pretending inxi can get this granular with data that is not coming directly from the system itself is probably not a good idea. Following wikipedia mode names: https://en.wikipedia.org/wiki/USB4 These are the known possible combinations: rev: 1.0 mode: 1.0 lanes: 1 speed: 1.5 Mbps rev: 1.1 mode: 1.0 lanes: 1 speed: 1.5 Mbps rev: 1.1 mode: 1.1 lanes: 1 speed: 12 Mbps rev: 2.0 mode: 1.0 lanes: 1 speed: 1.5 Mbps rev: 2.0 mode: 1.1 lanes: 1 speed: 12 Mbps rev: 2.0 mode: 2.0 lanes: 1 speed: 480 Mbps rev: 2.1 mode: 2.0 lanes: 1 speed: 480 Mbps rev: 3.0 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps rev: 3.0 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps rev: 3.1 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps rev: 3.1 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps rev: 3.1 mode: 3.2 gen-2x2 lanes: 2 speed: 20 Gbps [seen this case] rev: 3.2 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps [wrong rev: seen this case] rev: 3.2 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps [wrong rev: possible case] rev: 3.2 mode: 3.2 gen-2x1 lanes: 1 speed: 10 Gbps rev: 3.2 mode: 3.2 gen-2x2 lanes: 2 speed: 20 Gbps rev: 3.2 mode: 4-v1 gen-3x2 lanes: 2 speed: 40 Gbps [not seen, but possible] rev: 4 mode: 4-v1 gen-2x1 lanes; 1 speed: 10 Gbps rev: 4 mode: 4-v1 gen-2x2 lanes: 2 speed: 20 Gbps rev: 4 mode: 4-v1 gen-3x1 lanes: 1 speed: 20 Gbps rev: 4 mode: 4-v2 gen-3x2 lanes: 2 speed: 40 Gbps rev: 4 mode: 4-v2 gen-4x1 lanes: 1 speed: 40 Gbps rev: 4 mode: 4-v2 gen-4x2 lanes: 2 speed: 80 Gbps rev: 4 mode: 4-v2 gen-4x3-asymmetric lanes: 3 up, 1 down speed:120 Gbps I believe 120Gbps takes the 2 lanes of tx/rx and converts 2 rx lanes to tx so the entire lane is dedicated to transmit. and the third lane is dedicated to rx. Includes error message for unknown usb 3/4 rev/speed match combos. These can be bad hardware self reporting or unknown other issues. 4b. USB: Added Si/IEC speeds (base 2, base 10). -Ja triggers extra IEC, base 2 Bytes (xxx [MG]iB/s). -Jx triggers basic standard Si xxx [MG]b/s base 10 bits. 5a. PackageData: added netpkg as package tool. This stores data in same location as slackpkg, but assume if exists directory /var/netpkg, then the system is using netpkg as pm, not slackpkg. 5b. PackageData: added Slackware sbopkg, sboui as tools for pkgtool and netpkg. 6a. REPOS: added netpkg (Zenwalk Slackware based pm) repo report. 6b. REPOS: added sbopkg basic repo report. This handles both value syntax types, as well as the ability of /root config file to overwrite /etc config repo. 6c. REPOS: added slpkg repo report. This handles their old and newer syntax. 7a. CheckRecommends: For Slackware users, added pkgtool missing package name, also will use netpkg so hopefully Zenwalk uses same package names. 7b. CheckRecommends: Added radeon to kernel modules checks. 8. AUDIO/BLUETOOTH/DRIVES/GRAPHICS/NETWORK: For USB, -[ADEGN]xx adds rev, speed, lanes. -[ADEGN]a adds mode. 9. RAM: Updated RAM PC DDR in speed_mapper(), which is as far as I know only used by OpenBSD, which allows for MT/s speeds as non-root user, which is nice. That list hadn't been updated in a long time, so filled out DDR 1-5 PCx-yyyy ids. -------------------------------------------------------------------------------- CHANGES: 1a. USB: For -Jxy1, speed is now a child of rev: parent. This goes along with mode: and lanes: being children of rev:. This follows how USB consortium wants to refer to USB revisions now: by speed, lanes, and modes, the latter being the technical term, the speed being the marketing term. 1b. USB: If no speed data found, show N/A. This should almost never happen except for very old Linux and rarely with BSD. 1c. USB: Device type is lower cased except for abbreviations (type-C, HID). This makes it more consistent as a value. 1d. USB: Show basic Si speed with -Jx, and adds new IEC speed with -Ja. 2. CheckRecommends: See ENHANCEMENT, CODE 6. Now showing row by row package managers and missing packages, by package manager(s). 3. DRIVES: Changed long standing redundant use of 'type': type: USB ... type: HDD to: type: USB ... tech: HDD 'tech:' means the technology used, HDD, SDD, and if we can ever figure out how to detect it, Hybrid Hard Drive (HHD), 4. AUDIO/BLUETOOTH/DRIVES/GRAPHIC/NETWORK: moved 'type: USB' pair to after driver for -A/-E/-G/-N, which allows it to be the parent of the new USB data block. Negative is it moves it a bit further back in the line. For Drives, it moves it from after /dev.. maj-min to after block-size, However, with -D/-Dx, it's last in the line, which is nice. This is the only way I could find to make it more consistent across all possible USB device/drive type reports. 5. INFO/RAM/PROCESSES: Changed -I: Memory: [total] used: to: Memory: available: [total] used: Changed -tm/-m to be consistent: Memory: RAM: total: .. used.. to: Memory: System RAM: available: ... used:.. This corrects a long standing inaccuracy where MemTotal is not actually the full system RAM, but is the RAM minus reserved stuff for system and kernel, and GPU memory in some cases. -------------------------------------------------------------------------------- DOCUMENTATION: 1a. DOCS: docs/inxi-audio.txt: ongoing updates, adding more information, more on helpers, detection methods, etc. 1b. DOCS: New: docs/inxi-usb.txt: USB info, update, added more, a work in progress. 1c. DOCS: docs/inxi-custom-recommends.txt: name in inxi comment did not match, and updated to new comment cleaned up syntax in example. Fixed inxi comment file name. 1d. DOCS: New: docs/inxi-unit-handling.txt: To document how inxi handles size/speed data internally, and ideally, to help integrate all those methods into one big tool one day, not spread across many area. 1e. DOCS: New: docs/inxi-repo-package-manager.txt: To start to document arcana and methods and commands and outputs for package managers. Since this is a late start, will take time to complete, but better late than never. 2a. MAN/OPTIONS: updated for USB -Jx, -Jxx, -Ja, adding lanes, mode, iec speed items. 2b. MAN/OPTIONS: fixed error which had USB speed as -Jxxx instead of -Jxx. Also then changed speed to be -Jx. 2c. MAN/OPTIONS: updated for repos for SBOPKG, SBOUI, SLPKG, and added SLAPT_GET, I'd forgotten that one. 2d. MAN/OPTIONS: updated for -xx[ADEGN] USB rev, speed, lanes; for -a[ADEGN] updated for USB mode. 2e. MAN/OPTIONS: updated for memory available/used changed. 3. MAN: fixed some inconsistent use of short/long form display in extra data options. -------------------------------------------------------------------------------- CODE: 1a. DesktopData: New function for xfce only detections, turns out xprop is not necessarily installed, Void Linux for example had failed ID. Old version required xprop to do the tests, which was not robust and failed in this case. Function: get_env_xfce_data(). Also made xprop data optional for all the xxx_xprop_data desktop tests, not just some of them. This will forward proof the desktops 1b. DesktopData: Fixed bad parens in test cases, was not correctly organized. if (a || b || (c || d) && e) was supposed to be: if (a || b || ((c || d) && e)) Odd how those types of glitches creep in, one fix is also to just make the lines break more reasonably so the conditions are easier to parse visually. 2a. DEBUGGER: Added /etc/X11/XF86Config-4 xorg conf file to debugger. 2b. DEBUGGER: audio_data(): added audio server versions to cover all known ones. 3. MemoryData: changed all $memory to array references, got rid of split : separators, which were clearly legacy items leftover from bash/gawk days. Also changed MemoryData::get('splits') to get('full') to reflect this change. This change should be transparent though it may introduce corner case undefined value situation but that should not happen since array values are defined first. 4. UsbData: Refactor of usb speed, rev, added lanes, mode. Refactored most of the bsd/linux rev/speed logic, merged some of bsd speed/rev into the new version_data() function, which loads all the data based on what is calling it. This helps consolidate the logic across usb data sources. 5a. GLOBAL: made functions/methods use same comment syntax for args: args: 0:...; 1:... always starting with 0, to match array index. Same syntax for return array index values. In some cases simply note a variable is passed by ref: args: $value passed by reference. 5b. GLOBAL: made all sub/functions/methods follow the same spacing syntax. This seems to be a good compromise for space/readability. Note that adding in these new lines added about 400 lines to the total length, plus the line breaks that were already there. Yes, inxi has a lot of sub routines! aka functions and sometimes aka methods. [empty line] [comments] sub [name] { Packages/classes now also all follow the same spacing rules: [empty line] [comments] { package [name]; [empty line] [comments] sub [name] { ... } } Internally, subs generally do not use any empty lines unless it makes sense to do so for some specific reason. 5c: GLOBAL: made start of sub comments be upper case, I have a bad habit of typing comments in lower case, easier to read if it's reads like a normal sentence. 6. CheckRecommends: refactored entire items logic, set global hash for test items. Made support > 1 detected package manager. 7. REPOS: cleaned up comments for package manager/repo blocks. 8. SENSORS: sensors_sys failed to reset to undefined $unit and $value, and also failed to test if they were defined before using them in concatenation.
This commit is contained in:
parent
beddf67370
commit
ed7049fcc1
156
inxi.1
156
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 "2023\-03\-28" "inxi" "inxi manual"
|
||||
.TH INXI 1 "2023\-05\-07" "inxi" "inxi manual"
|
||||
|
||||
.SH NAME
|
||||
inxi \- Command line system information script for console and IRC
|
||||
|
@ -131,8 +131,9 @@ keep things simple.
|
|||
Show Audio/sound device(s) information, including device driver. Shows active
|
||||
sound API(s) and sound server(s).
|
||||
|
||||
Supported servers/APIs: ALSA, JACK, OSS, NAS, PipeWire, PulseAudio, RoarAudio,
|
||||
sndio.
|
||||
Supported APIs: ALSA, OSS, sndio. Supported servers: aRts (artsd), Enlightened
|
||||
Sound Daemon (esound, esd), JACK, NAS (Network Audio System, nasd), PipeWire,
|
||||
PulseAudio, RoarAudio, sndiod.
|
||||
|
||||
Use \fB\-Ax\fR to show all sound APIs/servers detected, including inactive,
|
||||
\fB\-Axx\fR to see API/Server helper daemons/plugin/modules, and \fB\-Aa\fR to
|
||||
|
@ -242,7 +243,7 @@ Sample:
|
|||
|
||||
.TP
|
||||
.B \-d \fR, \fB\-\-disk\-full\fR,\fB\-\-optical\fR
|
||||
Show optical drive data as well as \fB\-D\fR hard drive data. With \fB\-x\fR,
|
||||
Show optical drive data as well as \fB\-D\fR HDD/SSD drive data. With \fB\-x\fR,
|
||||
adds a feature line to the output. Also shows floppy disks if present. Note
|
||||
that there is no current way to get any information about the floppy device
|
||||
that we are aware of, so it will simply show the floppy ID without any extra
|
||||
|
@ -250,9 +251,9 @@ data. \fB\-xx\fR adds a few more features.
|
|||
|
||||
.TP
|
||||
.B \-D \fR, \fB\-\-disk\fR
|
||||
Show Hard Disk info. Shows total disk space and used percentage. The disk used
|
||||
percentage includes space used by swap partition(s), since those are not usable
|
||||
for data storage. Also, unmounted partitions are not counted in disk use
|
||||
Show HDD/SSD drive info. Shows total drive space and used percentage. The drive
|
||||
used percentage includes space used by swap partition(s), since those are not
|
||||
usable for data storage. Also, unmounted partitions are not counted in drive use
|
||||
percentages since inxi has no access to the used amount.
|
||||
|
||||
If the system has RAID or other logical storage, and if inxi can determine
|
||||
|
@ -269,10 +270,10 @@ Without logical storage detected:
|
|||
|
||||
\fBLocal Storage: total: 2.89 TiB used: 1.51 TiB (52.3%)\fR
|
||||
|
||||
Also shows per disk information: Disk ID, type (if present), vendor (if
|
||||
detected), model, and size. See \fBExtra Data Options\fR (\fB\-x\fR options)
|
||||
and \fBAdmin Extra Data Options\fR (\fB\-\-admin\fR options) for many more
|
||||
features.
|
||||
Also shows per drive information: Disk ID, type (FireWire, Removable, USB if
|
||||
present), vendor (if detected), model, and size. See \fBExtra Data Options\fR
|
||||
(\fB\-x\fR options) and \fBAdmin Extra Data Options\fR (\fB\-\-admin\fR options)
|
||||
for many more features.
|
||||
|
||||
.TP
|
||||
.B \-E\fR, \fB\-\-bluetooth\fR
|
||||
|
@ -386,8 +387,10 @@ 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
|
||||
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
|
||||
Memory: report of \fB\-m\fR, not in \fB\Info:\fR.
|
||||
Note: if \fB\-m\fR or \fB\-tm\fR are active, the memory item will show in the
|
||||
main Memory: report of \fB\-m\fR/\fB\-tm\fR/, not in \fB\Info:\fR.
|
||||
|
||||
See \fB\-m\fR for explanation of \fBMemory: available:\fR.
|
||||
|
||||
Raspberry Pi only: uses \fBvcgencmd get_mem gpu\fR to get gpu RAM amount, if
|
||||
user is in video group and \fBvcgencmd\fR is installed. Uses this result to
|
||||
|
@ -420,6 +423,9 @@ Examples: \fBDevice\-3: 4\-3.2.1:2\fR or \fBHub: 4\-0:1\fR
|
|||
The \fBrev: 2.0\fR item refers to the USB revision number, like \fB1.0\fR or
|
||||
\fB3.1\fR.
|
||||
|
||||
Use \fB\-Jx\fR for basic Si base 10 bits/s speed, \fB\-Jxx\fR for Si and IEC
|
||||
base 2 Bytes/s speeds. \fB\-Ja\fR adds USB mode.
|
||||
|
||||
.TP
|
||||
.B \-l \fR, \fB\-\-label\fR
|
||||
Show partition labels. Use with \fB\-j\fR, \fB\-o\fR, \fB\-p\fR, and \fB\-P\fR
|
||||
|
@ -514,7 +520,7 @@ to permit dmidecode to read \fB/dev/mem\fR as user. \fBspeed\fR and
|
|||
\fBbus\-width\fR will not show if \fBNo Module Installed\fR is found in
|
||||
\fBsize\fR.
|
||||
|
||||
Note: If \fB\-m\fR is triggered RAM total/used report will appear in this
|
||||
Note: If \fB\-m\fR is triggered RAM available/used report will appear in this
|
||||
section, not in \fB\-I\fR or \fB\-tm\fR items.
|
||||
|
||||
Because \fBdmidecode\fR data is extremely unreliable, inxi will try to make
|
||||
|
@ -532,9 +538,9 @@ Under dmidecode, \fBSpeed:\fR is the expected speed of the memory
|
|||
is what the actual speed is now. To handle this, if speed and configured speed
|
||||
values are different, you will see this instead:
|
||||
|
||||
\fBspeed: spec: [specified speed] MT/S actual: [actual] MT/S\fR
|
||||
\fBspeed: spec: [specified speed] MT/s actual: [actual] MT/s\fR
|
||||
|
||||
Also, if DDR, and speed in MHz, will change to: \fBspeed: [speed] MT/S
|
||||
Also, if DDR, and speed in MHz, will change to: \fBspeed: [speed] MT/s
|
||||
([speed] MHz)\fR
|
||||
|
||||
If the detected speed is logically absurd, like 1 MT/s or 69910 MT/s, adds:
|
||||
|
@ -542,7 +548,7 @@ If the detected speed is logically absurd, like 1 MT/s or 69910 MT/s, adds:
|
|||
|
||||
.nf
|
||||
\fBMemory:
|
||||
RAM: total: 31.38 GiB used: 20.65 GiB (65.8%)
|
||||
System RAM: available: 31.38 GiB used: 20.65 GiB (65.8%)
|
||||
Array\-1: capacity: N/A slots: 4 note: check EC: N/A
|
||||
Device\-1: DIMM_A1 type: DDR3 size: 8 GiB speed: 1600 MT/s (800 MHz)
|
||||
Device\-2: DIMM_A2 type: DDR3 size: 8 GiB speed: spec: 1600 MT/s (800 MHz)
|
||||
|
@ -555,6 +561,11 @@ If the detected speed is logically absurd, like 1 MT/s or 69910 MT/s, adds:
|
|||
See \fB\-\-memory\-modules\fR and \fB\-\-memory\-short\fR if you want a
|
||||
shorter report.
|
||||
|
||||
Note: the \fBSystem Ram: available:\fR is actually the total installed RAM minus
|
||||
some reserved and kernel code RAM (and in some cases GPU assigned main system
|
||||
RAM) that is allocated on system boot, and thus is generally less than the
|
||||
actual physical RAM installed.
|
||||
|
||||
.TP
|
||||
.B \-\-memory\-modules\fR, \fB\-\-mm\fR
|
||||
Memory (RAM) data. Show only RAM arrays and modules in Memory report.
|
||||
|
@ -657,6 +668,8 @@ APT distros like PCLinuxOS or Alt\-Linux)
|
|||
|
||||
\fBEOPKG\fR (Solus)
|
||||
|
||||
\fBNETPKG\fR (Zenwalk/Slackware)
|
||||
|
||||
\fBNIX\fR (NixOS + other distros as alternate package manager)
|
||||
|
||||
\fBPACMAN\fR (Arch Linux, KaOS + derived versions)
|
||||
|
@ -671,10 +684,18 @@ APT distros like PCLinuxOS or Alt\-Linux)
|
|||
|
||||
\fBPORTS\fR (OpenBSD, FreeBSD, NetBSD + derived OS types)
|
||||
|
||||
\fBSBOPKG\fR (Slackware + derived versions)
|
||||
|
||||
\fBSBOUI\fR (Slackware + derived versions)
|
||||
|
||||
\fBSCRATCHPKG\fR (Venom + derived versions)
|
||||
|
||||
\fBSLACKPKG\fR (Slackware + derived versions)
|
||||
|
||||
\fBSLAPT_GET\fR (Slackware + derived versions)
|
||||
|
||||
\fBSLPKG\fR (Slackware + derived versions)
|
||||
|
||||
\fBTCE\fR (TinyCore)
|
||||
|
||||
\fBURPMI\fR (Mandriva, Mageia + derived versions)
|
||||
|
@ -763,6 +784,8 @@ Make sure that there is no space between letters and numbers (e.g. write as
|
|||
If the \fB\-I\fR or \fB\-m\fR lines are not triggered, will also show the
|
||||
system RAM used/total information.
|
||||
|
||||
See \fB\-m\fR for explanation of \fBRAM: total\-available:\fR.
|
||||
|
||||
.TP
|
||||
.B \-t cm\fR
|
||||
\- CPU+memory. With \fB\-x\fR, shows also CPU or memory for that process on
|
||||
|
@ -833,7 +856,7 @@ min/max speeds, if available) + \fB\-G\fR + basic Disk + \fB\-I\fR.
|
|||
.TP
|
||||
.B \-v 4
|
||||
\- Adds partition size/used data (\fB\-P\fR) for (if present): \fB/ /home /var/
|
||||
/boot\fR. Shows full disk data (\fB\-D\fR)
|
||||
/boot\fR. Shows full drive data (\fB\-D\fR)
|
||||
|
||||
.TP
|
||||
.B \-v 5
|
||||
|
@ -1286,7 +1309,7 @@ doas users: see \fBman doas.conf\fR for setup.
|
|||
|
||||
You can force use of \fBhddtemp\fR for all drives using \fB\-\-hddtemp\fR.
|
||||
|
||||
\- If free LVM volume group size detected (root required), show \fBlvm-free:\fR
|
||||
\- If free LVM volume group size detected (root required), show \fBlvm\-free:\fR
|
||||
on Local Storage line. This is how much unused space the VGs contain, that is,
|
||||
space not assigned to LVs.
|
||||
|
||||
|
@ -1366,15 +1389,21 @@ discover those.
|
|||
available.
|
||||
|
||||
.TP
|
||||
.B \-x \-j\fR, \fB\-x \-\-swap\fR
|
||||
.B \-x \-j\fR (\fB\-\-swap\fR)
|
||||
Add \fBmapper:\fR. See \fB\-x \-o\fR.
|
||||
|
||||
.TP
|
||||
.B \-x \-J\fR (\fB\-\-usb\fR)
|
||||
\- For Devices, adds driver(s).
|
||||
|
||||
\- Adds, if available, USB speed in base 10 bits/s (Si) units \fBMb/s\fR or
|
||||
\fBGb/s\fR (may be incorrect on BSDs due to non reliable data source). These are
|
||||
base 10 bits per second. This unit corresponds to the standard units the USB
|
||||
consortium uses to indicate speeds, but not to how most of the rest of your
|
||||
system reports sizes. Use \fB\-Jxx\fR to add base 2 IEC Byte/second speeds.
|
||||
|
||||
.TP
|
||||
.B \-x \-L\fR, \fB\-x \-\-logical\fR
|
||||
.B \-x \-L\fR (\fB\-\-logical\fR)
|
||||
\- Adds \fBdm: dm-x\fR to VG > LV and other Device types. This can help
|
||||
tracking down which device belongs to what.
|
||||
|
||||
|
@ -1450,6 +1479,8 @@ found for each distribution system base detection.
|
|||
|
||||
\- Adds PCIe speed and lanes item (Linux only, if detected).
|
||||
|
||||
\- Adds for USB devices USB rev, speed, lanes (lanes Linux only).
|
||||
|
||||
\- Adds \fBwith: [item] \fBstatus: [state/plugin]\fR helper daemons/plugins for
|
||||
the sound API/server.
|
||||
|
||||
|
@ -1459,9 +1490,9 @@ the sound API/server.
|
|||
|
||||
.TP
|
||||
.B \-xx \-D\fR
|
||||
\- Adds disk serial number.
|
||||
\- Adds HDD/SSD drive serial number.
|
||||
|
||||
\- Adds disk speed (if available). This is the theoretical top speed of the
|
||||
\- Adds drive speed (if available). This is the theoretical top speed of the
|
||||
device as reported. This speed may be restricted by system board limits,
|
||||
eg. a SATA 3 drive on a SATA 2 board may report SATA 2 speeds, but this is
|
||||
not completely consistent, sometimes a SATA 3 device on a SATA 2 board reports
|
||||
|
@ -1478,7 +1509,9 @@ For a PCIe 3 NVMe drive, with speed of \fB8 GT/s\fR and \fB4\fR lanes
|
|||
|
||||
\fBspeed: 31.6 Gb/s lanes: 4\fR
|
||||
|
||||
\- Adds disk duid, if available. Some BSDs have it.
|
||||
\- Adds HDD/SSD drive duid, if available. Some BSDs have it.
|
||||
|
||||
\- Adds for USB drives USB rev, speed, lanes (lanes Linux only).
|
||||
|
||||
.TP
|
||||
.B \-xx \-E\fR (\fB\-\-bluetooth\fR)
|
||||
|
@ -1490,6 +1523,8 @@ if applicable) for each device.
|
|||
\- Adds PCIe speed and lanes item (Linux only, and if PCIe bluetooth, which is
|
||||
rare).
|
||||
|
||||
\- Adds for USB devices USB rev, speed, lanes (lanes Linux only).
|
||||
|
||||
.TP
|
||||
.B \-xx \-G\fR
|
||||
Triggers much more complete Screen/Monitor output.
|
||||
|
@ -1517,6 +1552,8 @@ or more \fBMonitors\fR.
|
|||
|
||||
\- Adds PCIe speed and lanes item (Linux only, and if PCIe device and detected).
|
||||
|
||||
\- Adds for USB devices USB rev, speed, lanes (lanes Linux only).
|
||||
|
||||
\- Adds output port IDs, active, off (connected but disabled, like a closed
|
||||
laptop lid) and empty. Example:
|
||||
|
||||
|
@ -1609,8 +1646,12 @@ swap types (for \fB\-j\fR).
|
|||
.B \-xx \-J\fR (\fB\-\-usb\fR)
|
||||
\- Adds vendor:chip id.
|
||||
|
||||
\- Adds USB lanes. Uses tx (transmit) lane count for total unless rx and tx
|
||||
counts are different (eg: \fBlanes: rx: 2 tx: 4\fR). Linux only.
|
||||
See \fB\-Ja\fR for sample output.
|
||||
|
||||
.TP
|
||||
.B \-xx \-L\fR, \fB\-xx \-\-logical\fR
|
||||
.B \-xx \-L\fR (\fB\-\-logical\fR)
|
||||
\- Adds internal LVM Logical volumes, like raid image and meta data volumes.
|
||||
|
||||
\- Adds full list of Components, sub\-components, and their physical devices.
|
||||
|
@ -1647,6 +1688,8 @@ ROM size if using \fBdmidecode\fR.
|
|||
|
||||
\- Adds PCIe speed and lanes item (Linux only, and if PCIe device and detected).
|
||||
|
||||
\- Adds for USB devices USB rev, speed, lanes (lanes Linux only).
|
||||
|
||||
.TP
|
||||
.B \-xx \-r\fR
|
||||
\- Adds to \fBPackages:\fR info. See \fB\-Ixx\fR
|
||||
|
@ -1721,16 +1764,16 @@ CPU does not support SMT.
|
|||
|
||||
.TP
|
||||
.B \-xxx \-D\fR
|
||||
\- Adds disk firmware revision number (if available).
|
||||
\- Adds HDD/SSD drive firmware revision number (if available).
|
||||
|
||||
\- Adds disk partition scheme (in most cases), e.g. \fBscheme: GPT\fR.
|
||||
\- Adds drive partition scheme (in most cases), e.g. \fBscheme: GPT\fR.
|
||||
Currently not able to detect all schemes, but handles the most common, e.g.
|
||||
\fBGPT\fR or \fBMBR\fR.
|
||||
|
||||
\- Adds disk type (\fBHDD\fR/\fBSSD\fR), rotation speed (in some but not all
|
||||
cases), e.g. \fBtype: HDD rpm: 7200\fR, or \fBtype: SSD\fR if positive SSD
|
||||
\- Adds drive tech (\fBHDD\fR/\fBSSD\fR), rotation speed (in some but not all
|
||||
cases), e.g. \fBtech: HDD rpm: 7200\fR, or \fBtech: SSD\fR if positive SSD
|
||||
identification was made. If no HDD, rotation, or positive SSD ID found, shows
|
||||
\fBtype: N/A\fR. Not all HDD spinning disks report their speed, so even if they
|
||||
\fBtech: N/A\fR. Not all HDD spinning disks report their speed, so even if they
|
||||
are spinning, no rpm data will show.
|
||||
|
||||
.TP
|
||||
|
@ -1784,8 +1827,6 @@ uses the \fBwhoami\fR test.
|
|||
|
||||
\- Adds \fBinterfaces:\fR for non hub devices.
|
||||
|
||||
\- Adds, if available, USB speed in \fBMbits/s\fR or \fBGbits/s\fR.
|
||||
|
||||
\- Adds, if present, USB class ID.
|
||||
|
||||
\- Adds, if non 0, max power in mA.
|
||||
|
@ -1870,6 +1911,8 @@ shown).
|
|||
\- Adds list of detected audio server tools (\fBtools: [tools]\fR) to API/Server
|
||||
lines, like alsamixer, jack_control, pactl, pavuctl, pw-cli, sndioctl, etc.
|
||||
|
||||
\- Adds for USB devices USB mode (Linux only).
|
||||
|
||||
.TP
|
||||
.B \-a \-C\fR
|
||||
.br
|
||||
|
@ -2042,8 +2085,11 @@ any further action.
|
|||
|
||||
\- Adds, for USB or other external drives, actual model name/serial if
|
||||
available, and different from enclosure model/serial, and corrects block sizes
|
||||
if necessary. Adds in drive temperature for some drives as well, and other
|
||||
useful data.
|
||||
if necessary.
|
||||
|
||||
\- Adds for USB drives USB mode (Linux only).
|
||||
|
||||
\- Adds in drive temperature for some drives as well, and other useful data.
|
||||
|
||||
.TP
|
||||
.B \-a \-E\fR (\fB\-\-bluetooth\fR)
|
||||
|
@ -2055,6 +2101,8 @@ and Service Classes.
|
|||
or lanes, \fBlink\-max: gen: speed: lanes:\fR (only items different from primary
|
||||
shown. Bluetooth PCIe rare).
|
||||
|
||||
\- Adds for USB devices USB mode (Linux only).
|
||||
|
||||
.TP
|
||||
.B \-a \-G\fR
|
||||
\- Adds, if present, possible \fBalternate:\fR kernel modules capable of driving
|
||||
|
@ -2077,6 +2125,8 @@ Includes extended non free Nvidia legacy informatin (Linux and Nvidia only), and
|
|||
issues, shows extra data that can help diagnose/debug. Adds \fBcode:\fR item if
|
||||
found and not the same as \fBarch:\fR.
|
||||
|
||||
\- Adds for USB devices USB mode (Linux only).
|
||||
|
||||
.nf
|
||||
\fBinxi \-Gaz
|
||||
Graphics:
|
||||
|
@ -2172,6 +2222,7 @@ Graphics:
|
|||
API: GBM/EGL
|
||||
Message: Wayland GBM/EGL data currently not available.
|
||||
.fi
|
||||
|
||||
.TP
|
||||
.B \-a \-I\fR
|
||||
\- Adds to Packages number of lib packages detected per package manager. Also
|
||||
|
@ -2193,7 +2244,7 @@ rc\-service rcctl service sv /etc/rc.d /etc/init.d\fR. Can be useful to know
|
|||
which you need when using an unfamiliar machine.
|
||||
|
||||
.TP
|
||||
.B \-a \-j\fR, \fB\-a \-P\fR [swap], \fB\-a \-P\fR [swap]
|
||||
.B \-a \-j\fR (\fB\-\-swap\fR), \fB\-a \-P\fR [swap], \fB\-a \-P\fR [swap]
|
||||
\- Adds swappiness and vfs cache pressure, and a message to indicate if the
|
||||
value is the default value or not (Linux only, and only if available). If not
|
||||
the default value, shows default value as well, e.g.
|
||||
|
@ -2209,7 +2260,38 @@ For \fB\-j\fR row 1 output:
|
|||
\- Adds device kernel major:minor number (Linux only).
|
||||
|
||||
.TP
|
||||
.B \-a \-L\fR
|
||||
.B \-a \-J\fR (\fB\-\-usb)\fR
|
||||
\- Adds, if available, USB speed in IEC units \fBMiB/s\fR or \fBGiB/s\fR (may
|
||||
be incorrect on BSDs due to non reliable data source). These are base 2 Bytes
|
||||
per second.
|
||||
|
||||
\- Adds USB mode (Linux only), which is the technical terms the USB group uses
|
||||
to describe USB revisions. In cases where speed and rev are an unknown
|
||||
combination, (and probably at least one is wrong) shows message.
|
||||
|
||||
There are no granular data sources in BSDs for accurate revision/lane/speed
|
||||
information, so mode cannot be determined.
|
||||
|
||||
Sample:
|
||||
.nf
|
||||
\fB
|
||||
Hub\-1: 1\-0:1 info: hi\-speed hub with single TT ports: 14 rev: 2.0
|
||||
speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip\-ID: 1d6b:0002
|
||||
class\-ID: 0900
|
||||
Device\-1: 1-4:2 info: Wacom ET\-0405A [Graphire2 (4x5)] type: mouse
|
||||
driver: usbhid,wacom interfaces: 1 rev: 1.1 speed: 1.5 Mb/s (183 KiB/s)
|
||||
lanes: 1 mode: 1.0 power: 40mA chip\-ID: 056a:0011 class\-ID: 0301
|
||||
Hub\-2: 2\-0:1 info: Super\-speed hub ports: 8 rev: 3.1
|
||||
speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen\-2x1 chip\-ID: 1d6b:0003
|
||||
class\-ID: 0900
|
||||
Device\-1: 2\-8:5 info: SanDisk Ultra type: mass storage driver: usb\-storage
|
||||
interfaces: 1 rev: 3.0 speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen\-1x1
|
||||
power: 896mA chip\-ID: 0781:5581 class\-ID: 0806
|
||||
serial: <filter>\fR
|
||||
.fi
|
||||
|
||||
.TP
|
||||
.B \-a \-L\fR (\fB\-\-logical)
|
||||
\- Expands Component report, shows size / maj-min of components and devices, and
|
||||
mapped name for logical components. Puts each component/device on its own line.
|
||||
|
||||
|
@ -2231,6 +2313,8 @@ knows could possibly be used instead.
|
|||
or lanes, \fBlink\-max: gen: speed: lanes:\fR (only items different from primary
|
||||
shown).
|
||||
|
||||
\- Adds for USB devices USB mode (Linux only).
|
||||
|
||||
.TP
|
||||
.B \-a \-o\fR
|
||||
\- Adds device kernel major:minor number (Linux only).
|
||||
|
|
486
inxi.changelog
486
inxi.changelog
|
@ -1,3 +1,489 @@
|
|||
================================================================================
|
||||
Version: 3.3.27
|
||||
Patch: 00
|
||||
Date: 2023-05-07
|
||||
--------------------------------------------------------------------------------
|
||||
RELEASE NOTES:
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Completion of the audio fixes and improvements of 3.3.26. Added less common
|
||||
sound servers like EsounD and aRts, and made state reports more accurate for
|
||||
ALSA.
|
||||
|
||||
Major USB code and data upgrades/refactors. The USB changes prepare inxi for USB
|
||||
4, and adds lanes and Si/IEC speeds to the report. It is important to determine
|
||||
what USB mode you are running in with 3.x and 4. These changes conform more
|
||||
closely to how the USB consortium wants USB speeds refered to.
|
||||
|
||||
With more robust USB data, this data now appears in a similar form as pcie: data
|
||||
for Devices, -A, -E, -G, -N, and for -D drives, as usb: plus rev, speed, lanes,
|
||||
mode, with the -xx/-a options, like pcie. This has been a long standing
|
||||
oversight and weakness of inxi USB and Device data, but now the two are fully
|
||||
integrated, including for drives, which was quite tricky to get working.
|
||||
|
||||
Added netpkg and Zenwalk support to packages and repos. Also added repos support
|
||||
for sbopkg and slpkg, and updated package tools for Slackware.
|
||||
|
||||
And more distros added to system base feature, and a few more for main ID.
|
||||
|
||||
Improved --recommends report quite a bit, now it's more granular for missing
|
||||
packages and package manager reports, and also fixed a long standing missing
|
||||
current shell + version issue. Added the final package manager type, pkgtool
|
||||
(Slackware), that will be supported, which makes for 4, which is enough. Note
|
||||
that other package managers can be added following the documentation
|
||||
instructions for packagers, but this is enough for out of the box pm handling.
|
||||
|
||||
Fixed a long standing oddity with how free / /proc/meminfo report MemTotal vs
|
||||
the actual physical RAM. I believe this issue also showed with GPU assigned RAM,
|
||||
but now for all but short form, shows Memory/RAM: available: ... used: ...
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
SPECIAL THANKS:
|
||||
|
||||
1. To the Slackware people at linuxquestions.org forums, who helped, again, on
|
||||
this audio feature, even finding current or not too old systems that use some of
|
||||
the new / old audio servers (EsoundD) running in the wild, which I never
|
||||
expected to see. And also for exposing some weak spots in the USB advanced
|
||||
logic, and helping with the sbopkg and slpkg repo logic and tools reports.
|
||||
|
||||
2. To the Manjaro forum users, for providing cases that show where inxi can be
|
||||
improved. The audio server/api issue, the current USB 3/4 upgrade, were
|
||||
initiated by threads pointing to things that could be improved in inxi. So I
|
||||
guess the real thanks are for using inxi enough to trigger cases that show where
|
||||
it's weak or can be better. Note that this requires that I follow roughly their
|
||||
forums, however I only look at threads that seem like they might be of general
|
||||
interest, or which suggest a possible weak spot in inxi, and I don't follow them
|
||||
consistently. More reliable is to file github issues, since I will always see
|
||||
those.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
KNOWN ISSUES:
|
||||
|
||||
1. DesktopData: at one point, BunsenLabs Debian OpenBox had XDG_CURRENT_DESKTOP
|
||||
set to XFCE, which it isn't, but inxi can't work around such hacks, plus I don't
|
||||
even know if Bunsen is around anymore anyway.
|
||||
|
||||
2. DesktopData: CODE 1 reminds us that the time to depend on x tools like xprop
|
||||
for anything re desktop/wm detections is fast drawing to a close, true Wayland
|
||||
will not have xprop, unless it's running on xwayland, which is not something
|
||||
that should be relied on. Maybe recheck Moksha/Enlightenment which depend on
|
||||
xprop for version detection.
|
||||
|
||||
The list of xprop detected wm/desktops in get_env_xprop_misc_data() is almost
|
||||
all X only wm/desktops, so those should be safe unless one of them decides to
|
||||
work on a wayland comositor.
|
||||
|
||||
3. BSD: ongoing weaknesses in BSD data sources make maintaining feature parity
|
||||
impossible, but I am trying to get the BSD data as clean and consistent as
|
||||
possible. I wish this were not the case, but the fact is, /sys is expanding and
|
||||
creating excellent and reliable data sources with every major Linux kernel
|
||||
update, and so far nothing comparable has appeared in the BSDs. This is just
|
||||
reality, it's not a condemnation, but something like the /proc then /sys file
|
||||
systems are an excellent idea, well worth emulating.
|
||||
|
||||
4. For the RAM available/total clarification, there's a slight issue because
|
||||
free/meminfo show MemAvailable as Free for use RAM, but dmesg shows available
|
||||
meaning what was available to the system during boot, minus the reserved
|
||||
percentage. Since we needed one term, available to System offers the closest
|
||||
in terms of technical precision without being too verbose. Technically available
|
||||
in this context means: total physical minus 'kernel code' minus 'reserved'.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
BUGS:
|
||||
|
||||
1. CheckRecommends: See Fix 6b, more or less a bug, but really just a fix.
|
||||
|
||||
2. AUDIO: for USB devices, put extra data into row 0, no matter which row the
|
||||
USB device is. This led to the extra data for USB being assigned to the wrong
|
||||
row. Sigh.
|
||||
|
||||
3. OptionsHandler: When show{'ram'} was set, for bsd, set use{'bsd-raid'}, which
|
||||
makes both show raid and ram fail for BSD. Oops. User mode RAM data only seen in
|
||||
OpenBSD so far. This made loading $dboot{'ram'} fail, and any raid as well,
|
||||
sigh, unless -m was also tripped.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
FIXES:
|
||||
|
||||
1. DistroData: typo for Arch base: was ctios, was supposed to be ctlos.
|
||||
|
||||
2a. DesktopData: found case where xprop -root not present (Void Linux), so xfce
|
||||
test failed. Split to new function dedicated to xfce detection that doesn't use
|
||||
xprop data. Also, XFCE is working on their Wayland version, which would in
|
||||
theory not even have xprop by default.
|
||||
|
||||
Also, the base version number test for xfce depended on xprop, but
|
||||
xprop doesn't even have that xfce version data anymore, so just checking if
|
||||
xfce(4|5|)-panel exist and assigning primary version based on that test.
|
||||
|
||||
2b. DesktopData: Also see See CODE 1a,1b for further xprop and test fixes that
|
||||
could have led to false positive or negative test conditions for the items that
|
||||
used xprop tests. These tests are all xprop agnostic now, if it's there, they
|
||||
will use it, if not, do the best they can.
|
||||
|
||||
3. PackageData: fixed legacy dpkg-query, old version did not support -f shortcut
|
||||
for --showformat. This made dpkg package listing fail.
|
||||
|
||||
4a. GRAPHICS: Added legacy XFree86.0.log to X log path detection, that was an
|
||||
oversight. Also added legacy module syntax _drv.o (not _drv.so). This gets X
|
||||
driver data now for very old systems.
|
||||
|
||||
4b. GRAPHICS: fixed corner case where no x driver data, running as root, was not
|
||||
supposed to show 'note: X driver n/a' message, that was a holdover from before
|
||||
driver output was cleaned up and driver: N/A shows when no drivers at all found.
|
||||
Just forgot to remove it when doing recent updates in the driver section, maybe?
|
||||
|
||||
5. REPOS/PackageData: For netpkg Zenwalk Slackware systems, showed only slackpkg
|
||||
repo data, empty, and showed the Slackware pm, not netpkg for pm. See
|
||||
Enhancements 5, 6.
|
||||
|
||||
6. REPOS: removed slapt_get file /etc/slapt-get/pubring.kbx, that's not a repo
|
||||
file. Thanks chrisreturn for pointing that out.
|
||||
|
||||
7a. CheckRecommends: See also CODE 6. Fixed case where > 1 package manager is
|
||||
detected on system, now lists them one by one for detected, and shows package
|
||||
install options as well. Before only picked first detected, which could lead
|
||||
to wrong results for Missing Package lists.
|
||||
|
||||
7b. CheckRecommends: Fixed glitch, forgot to update the current shell/version
|
||||
when ShellData was refactored, this led to no current shell + version showing
|
||||
up in recommends core tools report.
|
||||
|
||||
8. RAM: fixed speed_mapper string match to allow for older syntaxes. This is as
|
||||
far as known OpenBSD only, from dboot data. Matches then converts PC2700 to
|
||||
PC-2700 which then allows for mapping.
|
||||
|
||||
9. RAM/PROCESSES/INFO/SHORT: Finally tracked down a long time oddity, where for
|
||||
example:
|
||||
RAM: total: 31.28 GiB
|
||||
does not match 32 GiB physical installed. This is because that is the total
|
||||
available after kernel and system reserved RAM is deducted, and in some cases,
|
||||
GPU allocated RAM. There are also corner cases where the listed amount can be
|
||||
less due to physical RAM damage, but that's uncommon.
|
||||
|
||||
Added explanation of why it's different, and what available is referring to in
|
||||
man -m/--memory.
|
||||
|
||||
Changed -m, -tm to show:
|
||||
|
||||
System RAM: available: 31.28 GiB used 26.23 GiB (83.9%)
|
||||
|
||||
and -I to show:
|
||||
|
||||
Memory: available: 31.28 GiB used 26.23 GiB (83.9%)
|
||||
|
||||
You can get the 'reserved' and 'kernel code' data from dmesg, but since Debian
|
||||
made that root/sudo tool, can't count on being able to parse that out of dmesg,
|
||||
plus you can never count no dmesg anyway since it can get overwritten by kernel
|
||||
oops or wonky device etc. inxi doesn't use dmesg data for Linux for this reason.
|
||||
|
||||
... [ 0.000000] Memory: 32784756K/33435864K available (10252K kernel code,
|
||||
1243K rwdata, 3324K rodata, 1584K init, 2280K bss, 651108K reserved, 0K
|
||||
cma-reserved)
|
||||
|
||||
Also removed Raspberry Pi video RAM added back in to total now that it's clear
|
||||
it's what is available. This may also make systems with GPU using system RAM
|
||||
more correct.
|
||||
|
||||
9. SENSORS: sensors /sys tried to create concatenated string with $unit $value
|
||||
but these are not necessarily defined, that needed to be protected with defined
|
||||
tests.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
ENHANCEMENTS:
|
||||
|
||||
1a. AUDIO: JACK: added helper nsmd (new session manager), and its recommended
|
||||
gui agordejo. That's the drop in replacement for non-session-manager, the dev of
|
||||
which apparently lost interest in that project. But the ID method will work fine
|
||||
for for either, since both ran as nsmd.
|
||||
|
||||
1b. AUDIO: PULSE: added pulseaudio-alsa plugin support for helpers. This is like
|
||||
pipewire-alsa plugin, just alsa config file. Only seen in Arch Linux so far, but
|
||||
if others use similar paths for the glob pattern, they will also work fine.
|
||||
|
||||
Also added pulseaudio-esound-compat plugin, which is easier to detect with
|
||||
/usr/bin/esdcompat.
|
||||
|
||||
Also added paman, pulseaudio manager.
|
||||
|
||||
1c. AUDIO: ESOUND,ARTS: added legacy esd (EsounD aka: Enlightened Sound Daemon)
|
||||
and aRts sound server support, with basic help/tools. These are quite old, but
|
||||
are still occasionally seen in the wild on newer systems, surprisingly enough.
|
||||
|
||||
1d. AUDIO: ALSA: added alsactl to alsa tools. Missed that one, it's an /sbin
|
||||
type utility.
|
||||
|
||||
1e. AUDIO: ALSA: First try at ALSA compiled in but inactive report, previously
|
||||
depended on active only state of the API. Now uses compiled in SND_ kernel
|
||||
switch using the /boot/config-[kernel] file, which is a big expensive parse but
|
||||
only will activate on Linux kernels with no /proc/asound present. This fallback
|
||||
fails if kernel config file not present: /boot/config-$(uname -r).
|
||||
|
||||
1f. AUDIO: OSS: added tool ossctl.
|
||||
|
||||
1g. AUDIO: NAS: added helper: audiooss which is an OSS compat layer.
|
||||
|
||||
2a. DistroData: added Arch base distros: ArchEX, Bridge Linux, Condres OS,
|
||||
Feliz, LiriOS, Magpie, Namib, Porteus, RevengeOS, SalientOS, VeltOS.
|
||||
|
||||
None of these are verified. Some don't exist anymore.
|
||||
Source: https://www.slant.co/topics/7603/~arch-linux-based-distributions
|
||||
|
||||
2b. DistroData: added ubuntu lunar 23-4 release id.
|
||||
|
||||
2c. DistroData: added porteux, added porteux, zenwalk to slackware systembase
|
||||
|
||||
3. DesktopData/GRAPHICS: added Smithay Wayland compositor. Not verified.
|
||||
|
||||
4a. UsbData/UsbItem: added USB lanes (-Jxx) and mode (-Ja), to add more useful
|
||||
data about USB revision and mode names the USB group has created. Otherwise it's
|
||||
too difficult to try to explain it. Note that -Jxx lanes follows other inxi
|
||||
items that show PCIe lanes as an -xx item to try to keep it consistent.
|
||||
|
||||
This also consolidates the bsd and linux data sources, see CODE 5.
|
||||
|
||||
Note modes and lanes are Linux only because the revision number, lanes, and
|
||||
speed used to determine mode are only natively available in Linux as actual
|
||||
internal data values. If this changes BSD support will be added in the future.
|
||||
|
||||
The BSD rev and speed data is synthesized completely by inxi using some string
|
||||
values, and thus is not reliable, which means that pretending inxi can get this
|
||||
granular with data that is not coming directly from the system itself is
|
||||
probably not a good idea.
|
||||
|
||||
Following wikipedia mode names: https://en.wikipedia.org/wiki/USB4
|
||||
|
||||
These are the known possible combinations:
|
||||
rev: 1.0 mode: 1.0 lanes: 1 speed: 1.5 Mbps
|
||||
rev: 1.1 mode: 1.0 lanes: 1 speed: 1.5 Mbps
|
||||
rev: 1.1 mode: 1.1 lanes: 1 speed: 12 Mbps
|
||||
rev: 2.0 mode: 1.0 lanes: 1 speed: 1.5 Mbps
|
||||
rev: 2.0 mode: 1.1 lanes: 1 speed: 12 Mbps
|
||||
rev: 2.0 mode: 2.0 lanes: 1 speed: 480 Mbps
|
||||
rev: 2.1 mode: 2.0 lanes: 1 speed: 480 Mbps
|
||||
rev: 3.0 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps
|
||||
rev: 3.0 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps
|
||||
rev: 3.1 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps
|
||||
rev: 3.1 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps
|
||||
rev: 3.1 mode: 3.2 gen-2x2 lanes: 2 speed: 20 Gbps [seen this case]
|
||||
rev: 3.2 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps [wrong rev: seen this case]
|
||||
rev: 3.2 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps [wrong rev: possible case]
|
||||
rev: 3.2 mode: 3.2 gen-2x1 lanes: 1 speed: 10 Gbps
|
||||
rev: 3.2 mode: 3.2 gen-2x2 lanes: 2 speed: 20 Gbps
|
||||
rev: 3.2 mode: 4-v1 gen-3x2 lanes: 2 speed: 40 Gbps [not seen, but possible]
|
||||
rev: 4 mode: 4-v1 gen-2x1 lanes; 1 speed: 10 Gbps
|
||||
rev: 4 mode: 4-v1 gen-2x2 lanes: 2 speed: 20 Gbps
|
||||
rev: 4 mode: 4-v1 gen-3x1 lanes: 1 speed: 20 Gbps
|
||||
rev: 4 mode: 4-v2 gen-3x2 lanes: 2 speed: 40 Gbps
|
||||
rev: 4 mode: 4-v2 gen-4x1 lanes: 1 speed: 40 Gbps
|
||||
rev: 4 mode: 4-v2 gen-4x2 lanes: 2 speed: 80 Gbps
|
||||
rev: 4 mode: 4-v2 gen-4x3-asymmetric lanes: 3 up, 1 down speed:120 Gbps
|
||||
|
||||
I believe 120Gbps takes the 2 lanes of tx/rx and converts 2 rx lanes to tx so
|
||||
the entire lane is dedicated to transmit. and the third lane is dedicated to rx.
|
||||
|
||||
Includes error message for unknown usb 3/4 rev/speed match combos. These can be
|
||||
bad hardware self reporting or unknown other issues.
|
||||
|
||||
4b. USB: Added Si/IEC speeds (base 2, base 10). -Ja triggers extra IEC, base 2
|
||||
Bytes (xxx [MG]iB/s). -Jx triggers basic standard Si xxx [MG]b/s base 10 bits.
|
||||
|
||||
5a. PackageData: added netpkg as package tool. This stores data in same location
|
||||
as slackpkg, but assume if exists directory /var/netpkg, then the system is
|
||||
using netpkg as pm, not slackpkg.
|
||||
|
||||
5b. PackageData: added Slackware sbopkg, sboui as tools for pkgtool and netpkg.
|
||||
|
||||
6a. REPOS: added netpkg (Zenwalk Slackware based pm) repo report.
|
||||
|
||||
6b. REPOS: added sbopkg basic repo report. This handles both value syntax types,
|
||||
as well as the ability of /root config file to overwrite /etc config repo.
|
||||
|
||||
6c. REPOS: added slpkg repo report. This handles their old and newer syntax.
|
||||
|
||||
7a. CheckRecommends: For Slackware users, added pkgtool missing package name,
|
||||
also will use netpkg so hopefully Zenwalk uses same package names.
|
||||
|
||||
7b. CheckRecommends: Added radeon to kernel modules checks.
|
||||
|
||||
8. AUDIO/BLUETOOTH/DRIVES/GRAPHICS/NETWORK: For USB, -[ADEGN]xx adds rev, speed,
|
||||
lanes. -[ADEGN]a adds mode.
|
||||
|
||||
9. RAM: Updated RAM PC DDR in speed_mapper(), which is as far as I know only
|
||||
used by OpenBSD, which allows for MT/s speeds as non-root user, which is nice.
|
||||
That list hadn't been updated in a long time, so filled out DDR 1-5 PCx-yyyy
|
||||
ids.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
CHANGES:
|
||||
|
||||
1a. USB: For -Jxy1, speed is now a child of rev: parent. This goes along with
|
||||
mode: and lanes: being children of rev:. This follows how USB consortium wants
|
||||
to refer to USB revisions now: by speed, lanes, and modes, the latter being the
|
||||
technical term, the speed being the marketing term.
|
||||
|
||||
1b. USB: If no speed data found, show N/A. This should almost never happen
|
||||
except for very old Linux and rarely with BSD.
|
||||
|
||||
1c. USB: Device type is lower cased except for abbreviations (type-C, HID). This
|
||||
makes it more consistent as a value.
|
||||
|
||||
1d. USB: Show basic Si speed with -Jx, and adds new IEC speed with -Ja.
|
||||
|
||||
2. CheckRecommends: See ENHANCEMENT, CODE 6. Now showing row by row package
|
||||
managers and missing packages, by package manager(s).
|
||||
|
||||
3. DRIVES: Changed long standing redundant use of 'type':
|
||||
type: USB ... type: HDD
|
||||
to:
|
||||
type: USB ... tech: HDD
|
||||
'tech:' means the technology used, HDD, SDD, and if we can ever figure out how
|
||||
to detect it, Hybrid Hard Drive (HHD),
|
||||
|
||||
4. AUDIO/BLUETOOTH/DRIVES/GRAPHIC/NETWORK: moved 'type: USB' pair to after
|
||||
driver for -A/-E/-G/-N, which allows it to be the parent of the new USB data
|
||||
block. Negative is it moves it a bit further back in the line.
|
||||
|
||||
For Drives, it moves it from after /dev.. maj-min to after block-size, However,
|
||||
with -D/-Dx, it's last in the line, which is nice. This is the only way I could
|
||||
find to make it more consistent across all possible USB device/drive type
|
||||
reports.
|
||||
|
||||
5. INFO/RAM/PROCESSES: Changed -I:
|
||||
|
||||
Memory: [total] used:
|
||||
to:
|
||||
Memory: available: [total] used:
|
||||
|
||||
Changed -tm/-m to be consistent:
|
||||
|
||||
Memory: RAM: total: .. used..
|
||||
to:
|
||||
Memory: System RAM: available: ... used:..
|
||||
|
||||
This corrects a long standing inaccuracy where MemTotal is not actually the full
|
||||
system RAM, but is the RAM minus reserved stuff for system and kernel, and GPU
|
||||
memory in some cases.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
DOCUMENTATION:
|
||||
|
||||
1a. DOCS: docs/inxi-audio.txt: ongoing updates, adding more information, more
|
||||
on helpers, detection methods, etc.
|
||||
|
||||
1b. DOCS: New: docs/inxi-usb.txt: USB info, update, added more, a work in
|
||||
progress.
|
||||
|
||||
1c. DOCS: docs/inxi-custom-recommends.txt: name in inxi comment did not match,
|
||||
and updated to new comment cleaned up syntax in example. Fixed inxi comment file
|
||||
name.
|
||||
|
||||
1d. DOCS: New: docs/inxi-unit-handling.txt: To document how inxi handles
|
||||
size/speed data internally, and ideally, to help integrate all those methods
|
||||
into one big tool one day, not spread across many area.
|
||||
|
||||
1e. DOCS: New: docs/inxi-repo-package-manager.txt: To start to document arcana
|
||||
and methods and commands and outputs for package managers. Since this is a late
|
||||
start, will take time to complete, but better late than never.
|
||||
|
||||
2a. MAN/OPTIONS: updated for USB -Jx, -Jxx, -Ja, adding lanes, mode, iec speed
|
||||
items.
|
||||
|
||||
2b. MAN/OPTIONS: fixed error which had USB speed as -Jxxx instead of -Jxx. Also
|
||||
then changed speed to be -Jx.
|
||||
|
||||
2c. MAN/OPTIONS: updated for repos for SBOPKG, SBOUI, SLPKG, and added
|
||||
SLAPT_GET, I'd forgotten that one.
|
||||
|
||||
2d. MAN/OPTIONS: updated for -xx[ADEGN] USB rev, speed, lanes; for -a[ADEGN]
|
||||
updated for USB mode.
|
||||
|
||||
2e. MAN/OPTIONS: updated for memory available/used changed.
|
||||
|
||||
3. MAN: fixed some inconsistent use of short/long form display in extra data
|
||||
options.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
CODE:
|
||||
|
||||
1a. DesktopData: New function for xfce only detections, turns out xprop is not
|
||||
necessarily installed, Void Linux for example had failed ID. Old version
|
||||
required xprop to do the tests, which was not robust and failed in this case.
|
||||
Function: get_env_xfce_data(). Also made xprop data optional for all the
|
||||
xxx_xprop_data desktop tests, not just some of them. This will forward proof
|
||||
the desktops
|
||||
|
||||
1b. DesktopData: Fixed bad parens in test cases, was not correctly organized.
|
||||
if (a || b || (c || d) && e)
|
||||
was supposed to be:
|
||||
if (a || b || ((c || d) && e))
|
||||
Odd how those types of glitches creep in, one fix is also to just make the lines
|
||||
break more reasonably so the conditions are easier to parse visually.
|
||||
|
||||
2a. DEBUGGER: Added /etc/X11/XF86Config-4 xorg conf file to debugger.
|
||||
|
||||
2b. DEBUGGER: audio_data(): added audio server versions to cover all known ones.
|
||||
|
||||
3. MemoryData: changed all $memory to array references, got rid of split :
|
||||
separators, which were clearly legacy items leftover from bash/gawk days. Also
|
||||
changed MemoryData::get('splits') to get('full') to reflect this change.
|
||||
|
||||
This change should be transparent though it may introduce corner case undefined
|
||||
value situation but that should not happen since array values are defined first.
|
||||
|
||||
4. UsbData: Refactor of usb speed, rev, added lanes, mode. Refactored most of
|
||||
the bsd/linux rev/speed logic, merged some of bsd speed/rev into the new
|
||||
version_data() function, which loads all the data based on what is calling it.
|
||||
This helps consolidate the logic across usb data sources.
|
||||
|
||||
5a. GLOBAL: made functions/methods use same comment syntax for args:
|
||||
args: 0:...; 1:...
|
||||
always starting with 0, to match array index. Same syntax for return array index
|
||||
values. In some cases simply note a variable is passed by ref:
|
||||
args: $value passed by reference.
|
||||
|
||||
5b. GLOBAL: made all sub/functions/methods follow the same spacing syntax. This
|
||||
seems to be a good compromise for space/readability. Note that adding in these
|
||||
new lines added about 400 lines to the total length, plus the line breaks that
|
||||
were already there. Yes, inxi has a lot of sub routines! aka functions and
|
||||
sometimes aka methods.
|
||||
|
||||
[empty line]
|
||||
[comments]
|
||||
sub [name] {
|
||||
|
||||
Packages/classes now also all follow the same spacing rules:
|
||||
|
||||
[empty line]
|
||||
[comments]
|
||||
# Package Name
|
||||
{
|
||||
package [name];
|
||||
[empty line]
|
||||
[comments]
|
||||
sub [name] {
|
||||
...
|
||||
}
|
||||
}
|
||||
|
||||
Internally, subs generally do not use any empty lines unless it makes sense to
|
||||
do so for some specific reason.
|
||||
|
||||
5c: GLOBAL: made start of sub comments be upper case, I have a bad habit of
|
||||
typing comments in lower case, easier to read if it's reads like a normal
|
||||
sentence.
|
||||
|
||||
6. CheckRecommends: refactored entire items logic, set global hash for test
|
||||
items. Made support > 1 detected package manager.
|
||||
|
||||
7. REPOS: cleaned up comments for package manager/repo blocks.
|
||||
|
||||
8. SENSORS: sensors_sys failed to reset to undefined $unit and $value, and also
|
||||
failed to test if they were defined before using them in concatenation.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Harald Hope - Sun, 7 May 2023 14:00:00 -0700
|
||||
|
||||
================================================================================
|
||||
Version: 3.3.26
|
||||
Patch: 00
|
||||
|
|
Loading…
Reference in a new issue