Commit graph

1500 commits

Author SHA1 Message Date
inxi-svn 91ffaca5e7 New version, new tarball. Contains a major bug fix for a regression introduced in 2.2.2
-m/-M would always show requires root for dmidecode no matter what. Also improved dmidecode
error messages/handling.

Also, a fix for no display card data, now shows as expected no card data

Most other fixes are for bsd, mostly openbsd.

1. Added a class for network devices in freebsd pciconf

2. Added -r support for openbsd

3. Fixed some cpu issues for openbsd

4. Fixed an issue in openbsd/freebsd where client version data failed to get cleaned

5. Changed inxi short form output for bsds to show OS data instead of kernel data.

6. BSDs, maybe all, different syntax in xorg.0.log made unloaded gfx drivers not show, 
   that is fixed now.
      
-p fixed file system type in -p/-P for openbsd, now shows.
      
-I / inxi short - fixed used memory, did not show in openbsd, now does.
      
-f fixed cpu flags in openbsd, now works
      
-C corrected corrupted cpu data outputs, in openbsd at least, maybe also freebsd
      
-C added an openbsd hack to sometimes show cpu L2 cache
      
-m/-M fixed/improved dmidecode error handling for all systems
      
Modified handling of dmesg.boot data, synched so gawk can parse better.
2014-09-03 19:10:11 +00:00
inxi-svn c453bbf713 New version, new tarball. This version fixes an issue with a white space at the end of lines.
Now all lines are stripped of ending whitespaces automatically.

Also a dmidecode error handler correction, that was not working right in bsd systems.

Added some debuggers for bsd systems.
2014-09-01 23:11:41 +00:00
inxi-svn 007913cf38 New version, new tarball. Some systems are showing a new xfce syntax in the xrop -root
output, like so, instead of the old quotes "XFCE4" it shows like this:

XFCE_DESKTOP_WINDOW(WINDOW): window id # 0x1000003

Updated and added a much less strict fallback test case.
2014-08-21 02:46:20 +00:00
inxi-svn 99d4b0292e A tiny change, that should impact almost nobody, this is included as 2.2.0, I changed the order
that runit/sysvinit are tested for, a test case showed up where runit had been installed
as a dependency but was not the init system, so that was wrong output. Moved runit
after sysvinit case in tests.
2014-08-19 00:26:22 +00:00
inxi-svn b4a34c0c90 forgot to set 2.2.00 to 2.2.0 2014-08-18 22:28:21 +00:00
inxi-svn f7117db9ac New version, tarball, man page. Maintainers, this is the official release of -m feature.
I have collected enough datasamples to allow for reasonably fine grained corrections, estimates,
warnings about unreliable capacity now, and have fixed all major failures. 

Also, because this stuff is filled out by people somewhere, or not, some fields often are just
empty, or contain the default values, ie, they are worthless. inxi shows N/A for those situations,
it means there is really no actual data to show you.

This feature, sadly, well never be totally reliable, because dmi data is frankly junk, especially
dmi type 5 and 16, which is what is supposed to tell you total capacity of memory array, and the
maximum module size (type 5). However, this data is totally random, often it is right, sometimes
it is wrong. Sometimes type 5 is right and type 16 is wrong, sometimes the other way. And since
type 5 is only present in some systems, it's not reliable anyway.

What is reliable and always right is the actually installed memory per device, ie, sticks. I have
not seen any errors in that, so that seems to be actually coming from the system itself. type 5 / 16
sadly are clearly entered in manually by some poorly paid engineers out there in the world, and are
often total fictions, either far too small, or far too big, or whatever.

inxi will attempt to correct all clear logic errors, and whenever it changes the listed data from 
type 5/16, it notes either (est) or (check). (est) means it is a good guess, one I am comfortable making,
(check) means it is either an unreliable guess, or that what the system is reporting is so unlikely that
even though inxi is showing it, it doubts it could actually be true, or at least, it thinks you
should check this yourself. 

-m has 3 extra data options, -x prints the part number, if found, and the max module size, if type 5
is present. inxi does NOT attempt to guess at max module size based on what is installed, it only will
correct a listed max module size if installed modules are > than listed max size. Usually part numbers,
if present, are all you need to order a new stick.

-xx shows serial number, manufacturer (often empty, or just random alphanumeric identifiers, but sometimes
they list the actual company name, which is helpful. It also shows, if type 5 data is present, single/double
bank.

-xxx as usual shows largely useless data that may be of interest to soemone, like if ram type is synchronous, 
memory bus width data, and module voltage (type 5 data).

This feature will never be reliable I am sad to say because the source data itself is random and much
has been filled out, or not filled out, by engineering drones somewhere out there in the underpaid
world. The ranges of errors are so wide that inxi just has to check what is possible, reasonable, unlikely,
etc, to generate its numbers. In other words, this is NOT just parsing dmidecode output, that is the raw
material only, sad to say.

So this is it, for better or worse. All bug / issue reports with this MUST come with a full:
inxi -xx@14 
hardware data upload, run as root. 

Also, much to my annoyance, this feature requires root, since /dev/mem needs root to be read, and I assume
the dmi table, so that is a departure from normal inxi standards, as is the low quality input, and thus,
output, data, though I can guarantee that what inxi tells you is in most cases on average more accurate than
what dmidecode tells you, since dmidecode simply prints out what it finds in the dmi table, and nothing else,
in whatever order it finds it, from what I can see, ie, you also cannot trust the order of dmidecode output.

I had been hoping that /sys would start to contain memory data like it does mobo/system data, but it never
happened so I finally decided to just do the ram thing, require dmidecode, require root/sudo, and that's
that.

There will be issue reports, you can help them by looking up the mobo stats/specs yourself and listing them
in the issue, so I don't have to do it. I use the tool at crucial.com which is very accurate and also very 
complete in terms of all possible hardware out there. 

I would trust that tool before trusting the companies that have the least reliable data, like ASUS.

Much thanks to everyone who is contributing datasets, and the distros, particularly siduction, that really 
were very helpful in this process, by finding more and more failure cases that helped me start to tighten
the logic, and make it more and more robust. Special thanks to Mikaela, of #smxi irc.oftc.net, who came up
with two systems that both required a full redo of the logic, and thus who helped a lot in this process.
2014-08-18 22:26:25 +00:00
inxi-svn 33966eb988 New patch version, new tarball. Another error case dataset, wrong cap, wrong max mod
size, derived mod size 2gb, listed cap 8, but 2 slots, ie, 2gb x 2 == 4. Made this
retain the listed size, but adds (check) to it because either max mod size is wrong
or cap is wrong.
2014-08-18 02:42:43 +00:00
inxi-svn a19125c8c7 New version, new tarball. Fixed bad assumption, DMI type 0 is not always before other
types, in at least one case, it is last, so can't use that as trigger to start loop.

Now using: Table at .. which is always at start of dmi output.

Also, changed size output per module to be in MB GB TB instead of all mB, since modules
are sold by GB or MB, the data should show that as well. Also shortens output.
2014-08-17 19:04:20 +00:00
inxi-svn 579ba364f7 New version, new tarball. Another logic redo to handle a fringe case (dmidecode places
type 17 in front of type 16), now each array is created as a multidimenstional, 2x array,
and each device is a 3 dimensional array. This seems to clean up the problems with bad
ordering of dmidecode data.
2014-08-16 23:24:08 +00:00
inxi-svn 04b84edb24 forgot to remove debugger on switch 2014-08-15 23:55:27 +00:00
inxi-svn 718d6f9dea Small change, forgot to add -m to the debugger inxi output. 2014-08-15 23:44:32 +00:00
inxi-svn bd12b27526 New version, new tarball, new man page. This version hopefully brings inxi closer to
at least making good guesses when the data is bad for ram, and hopefully will not break
too many cases where it was actually right but seemed wrong.

Unfortunately, dmidecode data simply cannot be relied on, and is FAR inferior to the type
of data inxi tries in general to present users, ie, taken directly from the system, and,
ideally, more accurate than most other tools. But in this case, there is just no way to get
the data truly accurate no matter how many hacks I add.

But if you have bad data, then submit: inxi -xx@ 14 so I can take a look at the system,
and see if I can modify the hacks to improve that data.
2014-08-15 00:44:47 +00:00
inxi-svn 5af0c33bac New patch version, tarball. Fixed a few small oversights, more debugging added.
Will next try to handle the remaining corner cases if possible.
2014-08-14 19:24:51 +00:00
inxi-svn 38d88507da a few tests on corner cases, but the logic is too hard to get all of them, either:
capacity 1 gB wrong, actually 2 gB, deduced from 2x1gB sticks found, OR
capacity 4 gB right, but 2 x 1 4gB stick found gives 8, which is wrong.
2014-08-14 05:26:04 +00:00
inxi-svn 8da1e3bfd8 trying bug fix for corner case capacity issue 2014-08-14 05:10:52 +00:00
inxi-svn 2709f5120b patch version, trying to fix a small glitch with gawk wanting to change integers to strings.
forcing int() on relevant items.
2014-08-14 04:30:22 +00:00
inxi-svn 5f09b1555c some bug fixes, a small glitch, added debuggers 2014-08-14 04:08:54 +00:00
inxi-svn d2b254fac1 New version, new tarball. Attempting to handle bad extra data for max module size, sometimes
it is too big, and sometimes too small. Changed data gathering to use arrays, then print/process
the arrays once they are assembled.

Now it will get rid of any max module size if it's greater than the calculated capacity, and it
will generate an estimated capacity/max module size if they are clearly wrong because actual
module sizes are greater than listed max size, or capacity is less than greatest module sizes times
number of devices.

Not perfect, but it never is, this covers more cases now correctly than before.
2014-08-14 03:45:14 +00:00
inxi-svn 403bc46f6d changed EC to None from No 2014-08-13 21:13:19 +00:00
inxi-svn 2481e9f7d2 small output tweak for array line on memory 2014-08-13 21:12:02 +00:00
inxi-svn 0b8847301d New version, new man page, new tarball. Realized that I can on some systems also add
maximum supported module size, and module voltage. Most systems do not have this data,
but some do. It's Type 5 item in dmidecode.

Getting the type 6 data however is too hard, and even using type 5 assumes that the 
system only has one physical memory array, but that's fine given how few systems
probably will have this information in the first place.
2014-08-13 21:05:21 +00:00
inxi-svn a49695250b more man cleanup 2014-08-13 19:36:44 +00:00
inxi-svn 1b0bb32f24 more man, help cleanup, synching 2014-08-13 19:35:19 +00:00
inxi-svn 44c8f88a38 more man page edits 2014-08-13 19:28:44 +00:00
inxi-svn fe76bcd91f some man page edits 2014-08-13 19:26:47 +00:00
inxi-svn 9603e12645 forgot to add -m to full option listings in man and help 2014-08-13 19:22:56 +00:00
inxi-svn 013236264b New version, new man page. Fixed man page errors, improved man page explanations of -m
features. Changed output syntax to be more consistent, now each main array line starts with:

Array-X capacity: (where X is an integer, counting from 1)

and each device line starts with:
Device-X: (where X is an integer incremented by 1 for each device, and starting at 1
for each array. I have no data sets that contain > 1 physical memory array, if one appears,
I may need to patch the output to link the array handles with the device handles explicitly.

Made memory bus width output more clear, and added in a hack to correct dmidecode output errors,
sometimes total width > data width, and sometimes data width is > total width, so using always
greatest value for total if not equal to other width.

I think this will be close to it barring any user feedback or bugs, if nothing comes to
mind within a few days, I'll move the number to the new major version, 2.2.0
2014-08-13 19:17:21 +00:00
inxi-svn 54aef688bb bug fix to inxi, forgot to remove a debugger 2014-08-13 03:44:21 +00:00
inxi-svn bdecf1f08c New version, new tarball. This is closer to final release. Removed Bank/Slot separate
items and am now just generating one: Locator item, usually from Slot/DIMM locator info,
but sometimes from Bank Locator info when it is more reliable based on my data samples.

Updated help menu, updated man page, now shows working -x -xx -xxx extra data. This may
change slightly over time.

Also removed speed output when No Module Installed is returned for device size. This
also wills switch off width if both total/data are empty.

This is much closer now to live 2.2.0, but I'll leave a few more tests before putting
it at 2.2.0.
2014-08-13 03:19:55 +00:00
inxi-svn 86e68baaa0 New version, new tarball. This is a transitional version, most -x/-xx/-xxx data is now
working, but help/man does not have that yet, until I finalize the order.

Fixed dmidecode issues, showing extra data types for -m, added line length handling
so -m is properly integrated with rest of inxi re max line lengths.
2014-08-13 01:13:10 +00:00
inxi-svn 75dbb9d473 New version, new tarball, new man page. Finally, after all these years, initial memory/ram
support. This feature requires dmidecode, and usually that needs to be run as root.

Significantly improved dmidecode error handling and output, and have as 2.1.90 testing/initial
release basic ram data. 

In subsequent releases, extra info for -x and -xx and -xxx will be added as well to the output.

For those who want to jump on board early for ram data, update your repos, for those who want to
wait for the full featured version, with -x type data, wait for 2.2.0

And that's that.
2014-08-12 05:26:35 +00:00
inxi-svn 7f6caf973b No version change, this only will impact ancient systems, cleans up a data error message
and restores N/A to IF id in networking. No functional change, and won't be seen on any
non ancient systems.
2014-08-11 23:11:40 +00:00
inxi-svn 0dbe19b9d2 small bug fix for ancient networking stuff 2014-08-11 23:08:40 +00:00
inxi-svn a67aab89b1 New version, tarball. Big update/fix to -n/-i/-N. Now supports infiniband devices, which
have the odd feature in our test data of having > 1 IF id, like ib0 ib1 per pcibusid.

Added support for virtual nics as well. This required refactoring the networking functions
significantly, so hopefully nothing breaks for existing systems. It should in theory be more
robust now than it was before, with more accurate output, particularly with multiple port
devices, like two port nics etc.
2014-08-08 17:20:55 +00:00
inxi-svn ce92d41dc1 trimming off path in shell running in extra data 2014-05-22 23:46:30 +00:00
inxi-svn ef1e83fec9 freebsd only update, added file debuggers, freebsd did not work re getting clang compiler version for kernel, need to see why 2014-05-22 23:40:26 +00:00
inxi-svn 415bf24239 small update, future proofing lxqt id 2014-05-05 19:20:16 +00:00
inxi-svn 752e9c1420 new version, new tarball. Adding tentative desktop id for LXQt, but I don't think
that this method will be super long lived, I expect LXDE to change how it shows itself
to the system when the gtk variant goes away. Good for lxde by the way in dumping gtk.
2014-05-05 19:13:08 +00:00
inxi-svn 508f94e992 added root id to debugger file name 2014-05-05 17:02:30 +00:00
inxi-svn 6bdfea0ad7 bsd fixes 2014-05-02 20:37:30 +00:00
inxi-svn 7d6ed4d848 bsd cleanups 2014-05-02 20:23:48 +00:00
inxi-svn 80f6061580 bsd tests 2014-05-02 20:18:58 +00:00
inxi-svn 83ebf9a41f New version, new tarball. Should be almost no changes for linux platforms, though I
added in an abstracted kernel_compiler method, not just gcc, that may work on freebsd,
and in the future, it may also work if distros or kernel people start using either
clang or LLVM-GCC or LLVM for compiling linux kernels. I'd need some data sets to
show that however before adding that full linux kernel support, but the framework
is now there.

That continues the abstraction of certain features, like kernel compiler, init system,
display server. Display server still needs full data sets from mir/wayland, at least
wayland, and the bsd display servers as well, I have no idea how to get that data
at this point, but the starting framework is present anyway for that time I get
those datasets.

Almost all these changes are for darwin osx, and that is about all I will do for that
junky broken platform, they have no tools, they have no discipline when it comes to
following unix like conventions, they even use spaces in program names, like windows.

Given it has no native lspci or pciconf tool that I am aware of, or dmesg.boot, 
there's little point in putting more time into it. dmidecode does not run on darwin,
so there's nothing to learn there either, you can get a silly 3rd party program to
generate a dmidecode.bin data file that dmidecode can then read, but since that
requires not one, but two third party programs be installed, that's not going to
happen.

Next time an osx user calls this system 'unix' I will laugh.
2014-05-02 19:51:59 +00:00
inxi-svn 8b6730b627 bsd fixes 2014-05-02 01:12:43 +00:00
inxi-svn 1dcc122056 bsd fixes 2014-05-01 23:59:46 +00:00
inxi-svn c2b9faab04 debugger update, added distro version output files handling 2014-05-01 23:48:28 +00:00
inxi-svn 976cb2998a bsd cleanup 2014-05-01 23:25:05 +00:00
inxi-svn c11ab3fca1 bsd cruft cleanup 2014-05-01 23:23:13 +00:00
inxi-svn 488688a832 bsd fixes 2014-05-01 23:21:28 +00:00
inxi-svn b7488ca5e6 bsd fixes 2014-05-01 23:18:53 +00:00