With yet another last minute fix, #inxi 3.0.26 goes live, that took way too long, and I think I'll step away from active dev for a while now barring new bugs or issues.
Found a case where #TimeShift system restore tool mounts its backup partition in hidden mode, which I've never seen before, that's a udiskd mount, not sure why it's hidden, but it is is.
Rather than mess with the complex cross architecture code for df processing in #inxi, I am just reusing some lsblk data to detect these partitions, then using the new raw size output option from --admin to show the raw size, along with <root required> message for size and used items, which are not available to non root.
I just learned that #inxi 3.0.24 made it into Ubuntu main 18-10 release, though 3.0.25, just released now, didn't, but that's fine.
3.0.25 ended up having a silly amount of new features, --admin -p/-P/-d, --partition-sort [sort type], totally refactored Device/USB data generators, #ARM / #MIPS support extended, #OpenWRT basic support working, the list is way too long for my taste.
Sometimes I worry that too many features are added that are really just for a few users, but I can't know who uses what.
New #pinxi dev output option for --admin -P, show swap swappiness and vfs cache pressure.
Useful in fringe admin type cases, for example, #liquorix tells me that if users or distros have altered these two default values, that can trigger hard to figure out bugs in the kernel. At least kernels with some configuration focuses like #liquorix.
Turns out the method I was going to use for #inxi --admin -p to determine block size was wrong, but found a standard linux tool that will give the partition logical and physical block sizes, so this feature is now working.
Added the /sys based block size report for -d disks as well, since I already had the logic, figured might as well.
This makes the upcoming inxi, as seems to the norm, filled with features and new tricks and gadgets.
--admin now actually does more than just -C cpu data, which is nice.
Adding in raw partition size to #inxi to squeeze that long requested feature in before 3.0.25 is released. Raw size is the size of the partition including the partition table and extra data the file system uses, but which is not available as storage size to end user.
All the internal device handlers in #inxi started getting redundant, so I ended up refactoring all of it into a new package/class, DeviceData, this pulls together lspci, pciconf, pcidump, eventually pcictl, and SOC /sys data constructors.
To go along with this, I also refactored USB data generators into class USBData, which integrates lsusb, usbdevs, and /sys USB generators.
Testing an #openwrt system with #pinxi on #manjaro forums, didn't expect to get MIPS response, but that's why it never hurts to ask. openwrt is presenting problems, it appears to have an ultra stripped down busybox, and more packages have to be installed to even get inxi running, and there are some real problems, but it is generating relatively error free output, until a kernel thing crashes the networking. Early days.
OpenBSD's pcidump has very little pci data however, less than FreeBSD's pciconf, so I can't match the IF to the PCI NIC as with GNU/Linux and FreeBSD.
But it works. Requires root to run pcidump, which is too bad, will have to add error message for pcidump noting requires root if not root.
My goal with BSD/Unix is basically for all error handlers and null data handlers to work as expected, and to have at least OpenBSD and FreeBSD + FreeBSD variants roughly working. Given the lack of consistent tools / data sources, that's about as far as I'll go unless someone pays me for my time.
I may also look at NetBSD just because that would cover the 3 main BSDs.
I gave #openindiana a quick check for #inxi support, because of @distrotube review yesterday. After fixing a failed BSD ID, I quickly determined that SunOS/OpenSolaris/OpenIndiana aren't going to be getting much if any support beyond the null data handlers kicking in correctly, which they do.
These BSDs come from a different era, and actually expect people to learn tools and logic that applies only to that single OS. They should collaborate, create shared tools to make a more consistent BSD interface.
Re #inxi 3.0.24, for the first time, I had to use cpu steppings to differentiate between kaby lake and coffee lake cpus, they have the same model IDs, so the only way you can roughly tell them apart is through stepping number. So that brings inxi into the present re cpu architectures.
Before tagging new #inxi version, threw in an updated CPU architecture dataset, finally found a place that correctly lists the cpu family, model data and is reasonably upto date.
This brings in zen+, zen 2 amd architectures, and coffee lake, tremont, goldmont, ice lake, cannon lake intel architectures.
#inxi 3.0.24 released. Thanks anonymous Manjaro debug dataset user 'loki' for this report. This fixes the ram/memory report crash, and slightly enhances output for those corner case system boards that have memory arrays for non system memory, like video, cache, or flash.
When memory array is not system memory, now shows what its use is.
Added -Cxx cpu L1/L3 cache report as well. This requires dmidecode and sudo/root to use.
Extended system base to Parrot, but why did they change /etc/debian_version?
Bug fix for #inxi, encountered an unusual motherboard with memory arrays not related to system memory, an old laptop, this caused a break in memory output because it was expecting memory arrays where non existed.
This will be fixed in 3.0.24, which is coming soon.
Also realized I can pull in L1 and L3 cache from dmidecode if root, so added that to -Cxx output as well.