summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2016-11-08 15:36:00 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2016-11-08 15:36:00 -0500
commit6f69f26a194a1587c32ea7ac6cda8fa220c77567 (patch)
tree97d63da222bddd5d833d7fca081804f18367767d
parent3f0ab858852e81d5e57aa14d4825db30df8a8f71 (diff)
parent6a486a5f6226f4c819b94de468f9694a9759da3b (diff)
downloadinxi-6f69f26a194a1587c32ea7ac6cda8fa220c77567.tar.bz2
inxi-6f69f26a194a1587c32ea7ac6cda8fa220c77567.tar.xz
inxi-6f69f26a194a1587c32ea7ac6cda8fa220c77567.tar.zst
Merge tag 'upstream/2.3.4'
Upstream version 2.3.4 # gpg: Signature made Tue 08 Nov 2016 03:35:58 PM EST # gpg: using RSA key 5001E1B09AA3744B # gpg: issuer "unit193@ubuntu.com" # gpg: Good signature from "Unit 193 <unit193@ubuntu.com>" [unknown] # gpg: aka "Unit 193 <unit193@gmail.com>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8DB3 E586 865D 2B4A 2B18 5A5C 5001 E1B0 9AA3 744B
-rwxr-xr-xinxi327
-rwxr-xr-xinxi.177
-rw-r--r--inxi.1.gzbin10721 -> 11062 bytes
-rwxr-xr-xinxi.changelog105
4 files changed, 433 insertions, 76 deletions
diff --git a/inxi b/inxi
index 90b1504..bf7e39a 100755
--- a/inxi
+++ b/inxi
@@ -1,8 +1,8 @@
#!/usr/bin/env bash
########################################################################
#### Script Name: inxi
-#### Version: 2.3.1
-#### Date: 2016-08-25
+#### Version: 2.3.4
+#### Date: 2016-11-03
#### Patch Number: 00
########################################################################
#### SPECIAL THANKS
@@ -186,6 +186,7 @@
#### raid mdstat: http://www-01.ibm.com/support/docview.wss?uid=isg3T1011259
#### http://www.howtoforge.com/replacing_hard_disks_in_a_raid1_array
#### https://raid.wiki.kernel.org/index.php/Mdstat
+#### dmi data: http://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.0.pdf
########################################################################
#### TESTING FLAGS
#### inxi supports advanced testing triggers to do various things, using -! <arg>
@@ -316,7 +317,7 @@ B_PCICONF='false'
B_PCICONF_SET='false'
# kde qdbus
B_QDBUS='false'
-B_PORTABLE='false'
+B_POSSIBLE_PORTABLE='false'
B_RAID_SET='false'
B_ROOT='false'
B_RUN_COLOR_SELECTOR='false'
@@ -885,7 +886,7 @@ initialize_data()
# found a case of battery existing but having nothing in it on desktop mobo
# not all laptops show the first. /proc/acpi/battery is deprecated.
if [[ -n $( ls /proc/acpi/battery 2>/dev/null ) || -n $( ls /sys/class/power_supply/ 2>/dev/null ) ]];then
- B_PORTABLE='true'
+ B_POSSIBLE_PORTABLE='true'
fi
fi
if [[ -e $FILE_CPUINFO ]]; then
@@ -1858,6 +1859,12 @@ debug_data_collector()
else
touch $debug_data_dir/clang-absent
fi
+ if type -p systemd-detect-virt &>/dev/null;then
+ systemd-detect-virt &> $debug_data_dir/systemd-detect-virt-info.txt
+ else
+ touch $debug_data_dir/systemd-detect-virt-absent
+ fi
+
cat /etc/src.conf &> $debug_data_dir/bsd-etc-src-conf.txt
cat /etc/make.conf &> $debug_data_dir/bsd-etc-make-conf.txt
cat /etc/issue &> $debug_data_dir/etc-issue.txt
@@ -3003,8 +3010,8 @@ show_options()
network tool). Same as -Nni. Not shown with -F for user security reasons, you shouldn't paste your local/wan IP."
print_lines_basic "1" "-I" "Information: processes, uptime, memory, irc client (or shell type), $SCRIPT_NAME version."
print_lines_basic "1" "-l" "$partition_string_u labels. Default: short $partition_string -P. For full -p output, use: -pl (or -plu)."
- print_lines_basic "1" "-m" "Memory (RAM) data. Physical system memory array(s), capacity, how many devices (slots) supported, and individual memory devices (sticks of memory etc). For devices, shows device locator, size, speed, type (like: DDR3). Also see -x, -xx, -xxx"
- print_lines_basic "1" "-M" "Machine data. Motherboard, Bios, and if present, System Builder (Like Lenovo). Shows UEFI/BIOS/UEFI [Legacy}. Older systems/kernels without the required /sys data can use dmidecode instead, run as root. Dmidecode can be forced with -! 33"
+ print_lines_basic "1" "-m" "Memory (RAM) data. Physical system memory array(s), capacity, how many devices (slots) supported, and individual memory devices (sticks of memory etc). For devices, shows device locator, size, speed, type (like: DDR3). If neither -I nor -tm are selected, also shows ram used/total. Also see -x, -xx, -xxx"
+ print_lines_basic "1" "-M" "Machine data. Device type (desktop, server, laptop, VM etc.), Motherboard, Bios, and if present, System Builder (Like Lenovo). Shows UEFI/BIOS/UEFI [Legacy}. Older systems/kernels without the required /sys data can use dmidecode instead, run as root. Dmidecode can be forced with -! 33"
print_lines_basic "1" "-n" "Advanced Network card information. Same as -Nn. Shows interface, speed, mac id, state, etc."
print_lines_basic "1" "-N" "Network card information. With -x, shows PCI BusID, Port number."
print_lines_basic "1" "-o" "Unmounted $partition_string information (includes UUID and LABEL if available). Shows file system type if you have file installed, if you are root OR if you have added to /etc/sudoers (sudo v. 1.7 or newer) Example:^<username>^ALL^=^NOPASSWD:^/usr/bin/file^"
@@ -5330,6 +5337,190 @@ get_de_gtk_data()
eval $LOGFE
}
+get_device_data()
+{
+ eval $LOGFS
+
+ local device='un-determined'
+ local chasis_id='' dmi_device=''
+
+ # first: linked version
+ if [[ -e /sys/class/dmi/id/chassis_type ]];then
+ chasis_id=$(cat /sys/class/dmi/id/chassis_type)
+ elif [[ -e /sys/devices/virtual/dmi/id/chassis_type ]];then
+ chasis_id=$(cat /sys/devices/virtual/dmi/id/chassis_type)
+ fi
+ # src: http://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.0.pdf
+ # https://www.404techsupport.com/2012/03/pizza-box-lunch-box-and-other-pc-case-form-factors-identified-by-wmi/
+ if [[ $chasis_id != '' ]];then
+ case $chasis_id in
+ 1)
+ device=$(get_device_vm)
+ ;;
+ 2)
+ device='unknown'
+ ;;
+ # note: 13 is all-in-one which we take as a mac type system
+ 3|4|6|7|13|15|24)
+ device='desktop'
+ ;;
+ # 5 - pizza box was a 1 U desktop enclosure, but some old laptops also id this way
+ 5)
+ device='pizza-box'
+ ;;
+ # note: lenovo T420 shows as 10, notebook, but it's not a notebook
+ 9|10|16)
+ device='laptop'
+ ;;
+ 14)
+ device='notebook'
+ ;;
+ 8|11)
+ device='portable'
+ ;;
+ 17|23|25)
+ device='server'
+ ;;
+ 27|28|29)
+ device='blade'
+ ;;
+ 12)
+ device='docking-station'
+ ;;
+ 18)
+ device='expansion-chassis'
+ ;;
+ 19)
+ device='sub-chassis'
+ ;;
+ 20)
+ device='bus-expansion'
+ ;;
+ 21)
+ device='peripheral'
+ ;;
+ 22)
+ device='RAID'
+ ;;
+ 26)
+ device='compact-PCI'
+ ;;
+ esac
+ else
+ if ! type -p dmidecode &>/dev/null;then
+ device='dmidecode-missing'
+ elif [[ $B_ROOT == 'false' ]];then
+ device='dmidecode-use-root'
+ else
+ get_dmidecode_data
+ if [[ -n $DMIDECODE_DATA ]];then
+ if [[ $DMIDECODE_DATA == 'dmidecode-error-'* ]];then
+ device='dmidecode-no-info'
+ else
+ dmi_device=$( gawk '
+ BEGIN {
+ IGNORECASE=1
+ device="test"
+ }
+ /^Chassis Information/ {
+ device= $1
+ while (getline && !/^$/ ) {
+ if ( $1 ~ /^Type/ ) {
+ sub(/Type:\s*/,"",$0)
+ device = $0
+ break
+ }
+ }
+ }
+ END {
+ print device
+ }' <<< "$DMIDECODE_DATA" )
+ if [[ -n $dmi_device ]];then
+ device=$dmi_device
+ fi
+ if [[ $device == 'Other' ]];then
+ device=$(get_device_vm)
+ fi
+ fi
+ fi
+ fi
+ fi
+ echo $device
+
+ eval $LOGFE
+}
+
+get_device_vm()
+{
+ eval $LOGFS
+
+ local vm='other-vm?' vm_data='' vm_test=''
+
+ # https://www.freedesktop.org/software/systemd/man/systemd-detect-virt.html
+ # note: unknown is how reliable this tool is
+ if type -p systemd-detect-virt &>/dev/null;then
+ vm_test=$(systemd-detect-virt 2>/dev/null | sed 's/none//' )
+ if [[ -n $vm_test && $vm_test != 'none' ]];then
+ vm=$vm_test
+ fi
+ fi
+ # some simple to detect linux vm id's
+ if [[ $vm == 'other-vm?' ]];then
+ if [[ -e /proc/vz ]];then
+ vm='openvz'
+ elif [[ -e /proc/xen ]];then
+ vm='xen'
+ elif [[ -e /dev/vzfs ]];then
+ vm='virtuozzo'
+ fi
+ fi
+ # this will catch many Linux systems and some BSDs
+ if [[ $vm == 'other-vm?' ]];then
+ vm_data=$vm_data$Lspci_v_Data
+ vm_data=$vm_data$Sysctl_a_Data
+ vm_data=$vm_data$Dmesg_Boot_Data
+ if [[ -e /dev/disk/by-id ]];then
+ vm_data=$vm_data$(ls -l /dev/disk/by-id 2>/dev/null )
+ fi
+ if [[ -n $( grep -iEs 'innotek|vbox|virtualbox' <<< $vm_data ) ]];then
+ vm='virtualbox'
+ elif [[ -n $( grep -is 'vmware' <<< $vm_data ) ]];then
+ vm='vmware'
+ elif [[ -n $( grep -is 'qemu' <<< $vm_data ) ]];then
+ vm='qemu-or-kvm'
+ elif [[ -n $( grep -s 'Virtual HD' <<< $vm_data ) ]];then
+ vm='hyper-v'
+ elif [[ -e /proc/cpuinfo && -n $( grep -is '^flags.*hypervisor' /proc/cpuinfo ) ]];then
+ vm='virtual-machine'
+ elif [[ -e /dev/vda || -e /dev/vdb || -e /dev/xvda || -e /dev/xvdb ]];then
+ vm='virtual-machine'
+ fi
+ fi
+ # this may catch some BSD and fringe Linux cases
+ if [[ $vm == 'other-vm?' && $B_ROOT == 'true' ]];then
+ if [[ -n $DMIDECODE_DATA && $DMIDECODE_DATA != 'dmidecode-error-'* ]];then
+ product_name=$(dmidecode -s system-product-name 2>/dev/null )
+ system_manufacturer=$( dmidecode -s system-manufacturer 2>/dev/null )
+ if [[ $product_name == 'VMware'* ]];then
+ vm='vmware'
+ elif [[ $product_name == 'VirtualBox'* ]];then
+ vm='virtualbox'
+ elif [[ $product_name == 'KVM'* ]];then
+ vm='kvm'
+ elif [[ $product_name == 'Bochs'* ]];then
+ vm='qemu'
+ elif [[ $system_manufacturer == 'Xen' ]];then
+ vm='xen'
+ elif [[ -n $( grep -i 'hypervisor' <<< "$DMIDECODE_DATA" ) ]];then
+ vm='virtual-machine'
+ fi
+ fi
+ fi
+
+ echo $vm
+
+ eval $LOGFE
+}
# see which dm has started if any
get_display_manager()
@@ -12570,7 +12761,7 @@ print_hard_disk_data()
hdd_temp_data=${a_hdd_working[5]}
# error handling is done in get data function
if [[ -n $hdd_temp_data ]];then
- hdd_temp_data=" ${C1}temp$SEP3${C2} ${hdd_temp_data}C"
+ hdd_temp_data="${C1}temp$SEP3${C2} ${hdd_temp_data}C "
else
hdd_temp_data=''
fi
@@ -12580,7 +12771,7 @@ print_hard_disk_data()
if [[ -z $hdd_serial ]];then
hdd_serial='N/A'
fi
- hdd_serial=" ${C1}serial$SEP3${C2} $hdd_serial"
+ hdd_serial="${C1}serial$SEP3${C2} $hdd_serial "
fi
dev_data="$dev_string${a_hdd_working[0]} "
fi
@@ -12591,61 +12782,90 @@ print_hard_disk_data()
fi
# echo "loop: $i"
hdd_name="${C1}model$SEP3${C2} $hdd_name_temp"
- hdd_string="${C1}ID-$((i+1))$SEP3${C2} $usb_data$dev_data$hdd_name$size_data$hdd_serial$hdd_temp_data"
+ hdd_string="${C1}ID-$((i+1))$SEP3${C2} $usb_data$dev_data$hdd_name$size_data"
part_1_data="$hdd_model$hdd_string "
-
+ part_2_data="$hdd_serial$hdd_temp_data"
+ ## Forcing the capacity to print on its own row, and the first drive on its own
+ ## then each disk prints on its own line, or two lines, depending on console/output width
if [[ $i -eq 0 ]];then
- if [[ $( calculate_line_length "$row_starter$part_1_data" ) -gt $COLS_INNER ]];then
+ #if [[ $( calculate_line_length "$row_starter$part_1_data" ) -gt 80 ]];then
+ if [[ -n $row_starter ]];then
hdd_data=$( create_print_line "$Line_Starter" "$row_starter" )
print_screen_output "$hdd_data"
#echo 0
Line_Starter=' '
row_starter=''
+ fi
+ if [[ $( calculate_line_length "$part_1_data$part_2_data" ) -gt $COLS_INNER ]];then
hdd_data=$( create_print_line "$Line_Starter" "$part_1_data" )
print_screen_output "$hdd_data"
part_1_data=''
- #echo 1
+ hdd_data=$( create_print_line "$Line_Starter" "$part_2_data" )
+ print_screen_output "$hdd_data"
+ part_2_data=''
else
- hdd_data=$( create_print_line "$Line_Starter" "$row_starter$part_1_data" )
+ hdd_data=$( create_print_line "$Line_Starter" "$part_1_data$part_2_data" )
print_screen_output "$hdd_data"
- Line_Starter=' '
- row_starter=''
part_1_data=''
- #echo 2
+ part_2_data=''
fi
- fi
- if [[ $( calculate_line_length "$row_starter$part_2_data$part_1_data" ) -gt $COLS_INNER ]];then
- if [[ -n $( grep -vE '^[[:space:]]*$' <<< $part_2_data ) ]];then
- hdd_data=$( create_print_line "$Line_Starter" "$row_starter$part_2_data" )
+ #echo 1
+ #else
+ # hdd_data=$( create_print_line "$Line_Starter" "$row_starter$part_1_data" )
+ # print_screen_output "$hdd_data"
+ # Line_Starter=' '
+ # row_starter=''
+ # part_1_data=''
+ #echo 2
+ #fi
+ else
+ if [[ $( calculate_line_length "$part_1_data$part_2_data" ) -gt $COLS_INNER ]];then
+ hdd_data=$( create_print_line "$Line_Starter" "$part_1_data" )
+ print_screen_output "$hdd_data"
+ part_1_data=''
+ hdd_data=$( create_print_line "$Line_Starter" "$part_2_data" )
print_screen_output "$hdd_data"
- #echo 3
- Line_Starter=' '
- row_starter=''
+ part_2_data=''
+ else
+ hdd_data=$( create_print_line "$Line_Starter" "$part_1_data$part_2_data" )
+ print_screen_output "$hdd_data"
+ part_1_data=''
part_2_data=''
fi
- hdd_data=$( create_print_line "$Line_Starter" "$row_starter$part_1_data" )
- print_screen_output "$hdd_data"
- part_1_data=''
- #echo 4
- elif [[ -n $part_2_data && \
- $( calculate_line_length "$row_starter$part_2_data$part_1_data" ) -le $COLS_INNER ]];then
- hdd_data=$( create_print_line "$Line_Starter" "$row_starter$part_2_data$part_1_data" )
- print_screen_output "$hdd_data"
- #echo 3
- Line_Starter=' '
- row_starter=''
- part_1_data=''
- part_2_data=''
- else
- part_2_data=$part_1_data
fi
+
+# if [[ $( calculate_line_length "$part_2_data$part_1_data" ) -gt $COLS_INNER ]];then
+# if [[ -n $( grep -vE '^[[:space:]]*$' <<< $part_2_data ) ]];then
+# hdd_data=$( create_print_line "$Line_Starter" "$part_2_data" )
+# print_screen_output "$hdd_data"
+# #echo 3
+# Line_Starter=' '
+# #row_starter=''
+# part_2_data=''
+# fi
+# hdd_data=$( create_print_line "$Line_Starter" "$part_1_data" )
+# print_screen_output "$hdd_data"
+# part_1_data=''
+# #echo 4
+# elif [[ -n $part_2_data && \
+# $( calculate_line_length "$part_2_data$part_1_data" ) -le $COLS_INNER ]];then
+# hdd_data=$( create_print_line "$Line_Starter" "$part_2_data$part_1_data" )
+# print_screen_output "$hdd_data"
+# #echo 3
+# Line_Starter=' '
+# #row_starter=''
+# part_1_data=''
+# part_2_data=''
+# else
+# part_2_data=$part_1_data
+# fi
done
# then print any leftover items
- if [[ -n $part_2_data ]];then
- hdd_data=$( create_print_line "$Line_Starter" "$part_2_data" )
- print_screen_output "$hdd_data"
- #echo 5
- fi
+# if [[ -n $part_2_data ]];then
+# hdd_data=$( create_print_line "$Line_Starter" "$part_2_data" )
+# print_screen_output "$hdd_data"
+# #echo 5
+# fi
fi
else
hdd_data="$row_starter"
@@ -12813,6 +13033,7 @@ print_machine_data()
local chassis_vendor='' chassis_type='' chassis_version='' chassis_serial=''
local b_skip_system='false' b_skip_chassis='false'
local sysDmiNull='No /sys/class/dmi machine data: try newer kernel, or install dmidecode'
+ local device=$(get_device_data)
# set A_MACHINE_DATA
get_machine_data
@@ -12833,7 +13054,7 @@ print_machine_data()
if [[ -z ${A_MACHINE_DATA[0]} ]];then
b_skip_system='true'
else
- if [[ $B_PORTABLE != 'true' ]];then
+ if [[ $B_POSSIBLE_PORTABLE != 'true' ]];then
# ibm / ibm can be true; dell / quantum is false, so in other words, only do this
# in case where the vendor is the same and the version is the same and not null,
# otherwise the version information is going to be different in all cases I think
@@ -12917,14 +13138,11 @@ print_machine_data()
bios_line=''
fi
if [[ $b_skip_system == 'true' ]];then
- system_line=$mobo_line
+ system_line="${C1}Device$SEP3${C2} $device $mobo_line"
mobo_line=''
else
# this has already been tested for above so we know it's not null
system_vendor=${A_MACHINE_DATA[0]}
- if [[ $B_PORTABLE == 'true' ]];then
- system_vendor="$system_vendor (portable)"
- fi
if [[ -n ${A_MACHINE_DATA[1]} ]];then
product_name=${A_MACHINE_DATA[1]}
else
@@ -12936,7 +13154,7 @@ print_machine_data()
if [[ -n ${A_MACHINE_DATA[3]} && $B_OUTPUT_FILTER != 'true' ]];then
product_serial=" ${C1}serial$SEP3${C2} ${A_MACHINE_DATA[3]} "
fi
- system_line="${C1}System$SEP3${C2} $system_vendor ${C1}product$SEP3${C2} $product_name$product_version$product_serial"
+ system_line="${C1}Device$SEP3${C2} $device ${C1}System$SEP3${C2} $system_vendor ${C1}product$SEP3${C2} $product_name$product_version$product_serial"
if [[ -n $chassis_line && $( calculate_line_length "$system_line$chassis_line" ) -lt $COLS_INNER ]];then
system_line="$system_line $chassis_line"
chassis_line=''
@@ -14018,7 +14236,7 @@ print_ram_data()
local manufacturer='' part_nu='' serial_nu='' device_speed='' configured_speed='' bus_width=
local data_width='' total_width='' device_type='' device_type_detail='' bank='' slot='' form_factor=''
local device_size='' array_use='' location='' error_correction='' max_capacity='' nu_of_devices=''
- local max_module_size='' module_voltage='' bank_connection=''
+ local max_module_size='' module_voltage='' bank_connection='' memory_info=''
get_ram_data
#echo ${#A_MEMORY_DATA[@]}
@@ -14028,6 +14246,9 @@ print_ram_data()
error_string=$( print_dmidecode_error 'default' "${A_MEMORY_DATA[0]}" )
memory_line="${C2}$error_string"
else
+ if [[ $B_SHOW_INFO == 'false' && $B_SHOW_PS_MEM_DATA == 'false' ]];then
+ memory_info="${C1}Used/Total$SEP3${C2} $( get_memory_data )"
+ fi
for (( i=0;i<${#A_MEMORY_DATA[@]};i++ ))
do
IFS=','
@@ -14045,6 +14266,12 @@ print_ram_data()
max_module_size=''
module_voltage=''
bank_connection=''
+ if [[ -n $memory_info ]];then
+ memory_line=$( create_print_line "$line_starter" "$memory_info" )
+ print_screen_output "$memory_line"
+ line_starter=''
+ memory_info=''
+ fi
# memory-array,0x0012,System Board,8 GB,4,System Memory,None,max size,moudule voltage
if [[ ${a_memory_item[0]} == 'memory-array' ]];then
if [[ -n ${a_memory_item[4]} ]];then
diff --git a/inxi.1 b/inxi.1
index dfc694b..9b97a30 100755
--- a/inxi.1
+++ b/inxi.1
@@ -1,19 +1,20 @@
-.TH INXI 1 "2016\-08\-25" inxi "inxi manual"
+.TH INXI 1 "2016\-11\-03" inxi "inxi manual"
.SH NAME
inxi \- Command line system information script for console and IRC
.SH SYNOPSIS
-.B inxi \fR \- Single line, short form. Very basic output.
+\fBinxi\fR \- Single line, short form. Very basic output.
-.B inxi \fR[\fB\-AbBCdDfFGhHiIlmMnNopPrRsSuw\fR] \fR[\fB\-c NUMBER\fR] \fR[\fB\-v NUMBER\fR]
+\fBinxi \fR[\fB\-AbBCdDfFGhHiIlmMnNopPrRsSuw\fR] \fR[\fB\-c NUMBER\fR] \fR[\fB\-v NUMBER\fR]
-.B inxi \fR[\fB\-t \fR(\fBc\fR or\fB m\fR or\fB cm\fR or\fB mc NUMBER\fR)] \fR[\fB\-x \-OPTION\fR(\fBs\fR)] \fR[\fB\-xx \-OPTION\fR(\fBs\fR)] \fR[\fB\-xxx \-OPTION\fR(\fBs\fR)]
+\fBinxi \fR[\fB\-t \fR(\fBc\fR or\fB m\fR or\fB cm\fR or\fB mc NUMBER\fR)] \fR[\fB\-x \-OPTION\fR(\fBs\fR)] \fR[\fB\-xx \-OPTION\fR(\fBs\fR)] \fR[\fB\-xxx \-OPTION\fR(\fBs\fR)]
-.B inxi \fR[\fB\-\-help\fR] \fR[\fB\-\-recommends\fR] \fR[\fB\-\-version\fR] \fR[\fB\-@ NUMBER\fR]
+\fBinxi \fR[\fB\-\-help\fR] \fR[\fB\-\-recommends\fR] \fR[\fB\-\-version\fR] \fR[\fB\-@ NUMBER\fR]
.SH DESCRIPTION
-.B inxi\fR is a command line system information script built for for console and IRC. It is also used for forum technical support, as a debugging tool, to quickly ascertain user system configuration and hardware. inxi shows system
+\fBinxi\fR is a command line system information script built for for console and IRC. It is also used for forum technical support, as a debugging tool, to quickly ascertain user system configuration and hardware. inxi shows system
hardware, CPU, drivers, Xorg, Desktop, Kernel, GCC version(s), Processes, RAM usage, and a wide variety of other
useful information.
-.B inxi\fR output varies between CLI and IRC, with some default filters and color options applied to IRC use. Script colors can
+
+\fBinxi\fR output varies between CLI and IRC, with some default filters and color options applied to IRC use. Script colors can
be turned off if desired with \fB\-c 0\fR, or changed using the \fB\-c\fR color options listed in the OPTIONS section below.
.SH PRIVACY AND SECURITY
In order to maintain basic privacy and security, inxi filters out automatically on IRC things like
@@ -30,8 +31,9 @@ together or separate them.
Letters with numbers can have no gap or a gap at your discretion unless using \fB \-t\fR.
For example:
+.B inxi
+\fB\-AG\fR or \fBinxi \-A \-G\fR or \fBinxi \-c10\fR
-.B inxi \-AG\fR or \fBinxi \-A \-G\fR or \fBinxi \-c10\fR
.SH STANDARD OPTIONS
.TP
.B \-A
@@ -59,12 +61,15 @@ example, the battery capacity is only 61% of it's original amount.
For example: \fB22.2/36.4 Wh 61%\fR
.TP
-.B \-c \fR[\fB0\fR\-\fB32\fR]
+.B \-c
+\fR[\fB0\fR\-\fB32\fR]
Available color schemes. Scheme number is required.
Supported color schemes: \fB0\-42\fR
.TP
-.B \-c \fR[\fB94\fR\-\fB99\fR]
+.B \-c
+\fR[\fB94\fR\-\fB99\fR]
+
Color selectors run a color selector option prior to inxi starting which lets
you set the config file value for the selection.
@@ -152,14 +157,25 @@ Memory (RAM) data. Does not show with \fB\-b\fR or \fB\-F\fR unless you use \
Note that \fB\-m\fR uses \fBdmidecode\fR, which must be run as root (or start \fBinxi\fR with \fBsudo\fR), unless you figure out how to set up sudo to permit dmidecode to read \fB/dev/mem\fR as user. Note that speed will not show if \fBNo Module Installed\fR is found in size. This will also turn off Bus Width data output if it is null.
-Because dmidecode data is extremely unreliable, inxi will try to make best guesses. If you see \fB(check)\fR after capacity number, you should check it for sure with specifications. \fB(est)\fR is slightly more reliable, but you should still check the real specifications before buying ram. Unfortunately there is nothing \fBinxi can do to get truly reliable data about the system ram, maybe one day the kernel devs will put this data into \fB/sys\fR, and make it real data, taken from the actual system, not dmi data. For most people, the data will be right, but a significant percentage of users will have either wron max module size, if present, or max capacity.
+If memory information was found, and if the \fB\-I\fR line or the \fB\-tm\fR item have not been triggered,
+will also print the ram used/total.
+
+Because dmidecode data is extremely unreliable, inxi will try to make best guesses. If you see \fB(check)\fR after capacity number, you should check it for sure with specifications. \fB(est)\fR is slightly more reliable, but you should still check the real specifications before buying ram. Unfortunately there is nothing \fBinxi\fR can do to get truly reliable data about the system ram, maybe one day the kernel devs will put this data into \fB/sys\fR, and make it real data, taken from the actual system, not dmi data. For most people, the data will be right, but a significant percentage of users will have either wron max module size, if present, or max capacity.
.TP
.B \-M
-Show machine data. Motherboard, Bios, and if present, System Builder (Like Lenovo).
+Show machine data. Device, Motherboard, Bios, and if present, System Builder (Like Lenovo).
Older systems/kernels without the required \fB/sys\fR data can use dmidecode instead, run as root. If using dmidecode,
may also show bios revision as well as version. \fB\-! 33\fR can force use of \fBdmidecode\fR data instead of \fB/sys\fR.
Will also attempt to show if the system was booted by BIOS, UEFI, or UEFI [Legacy]. The last one is legacy BIOS boot mode
in a systemboard using UEFI but booted as BIOS/Legacy.
+
+Device requires either /sys or dmidecode. Note that 'other-vm?' is a type that means it's usually a vm, but inxi
+failed to detect which type, or to positively confirm which vm it is. Primary vm identification is via systemd-detect-virt
+but fallback tests that should support some BSDs as well are used. Less commonly used or harder to detect VMs may not
+be correctly detected, if you get a wrong output, post an issue and we'll get it fixed if possible.
+
+Due to unreliable vendor data, device will show: desktop; laptop; notebook; server; blade plus some obscure stuff that
+inxi is unlikely to ever run on.
.TP
.B \-n
Show Advanced Network card information. Same as \fB\-Nn\fR. Shows interface, speed,
@@ -222,7 +238,8 @@ fan speeds. Gpu temp only for Fglrx/Nvidia drivers. Nvidia shows screen number f
Show System information: host name, kernel, desktop environment (if in X), distro. With \fB\-xx\fR show
dm \- or startx \- (only shows if present and running if out of X), and if in X, with \fB\-xxx\fR show more desktop info, like shell/panel etc.
.TP
-.B \-t \fR[\fBc\fR or\fB m\fR or\fB cm\fR or\fB mc NUMBER\fR]\fR
+.B \-t
+\fR[\fBc\fR or\fB m\fR or\fB cm\fR or\fB mc NUMBER\fR]\fR
Show processes. If followed by numbers \fB1\-20\fR, shows that number of processes for each type
(default: \fB5\fR; if in irc, max: \fB5\fR)
@@ -247,7 +264,7 @@ Note \- Maintainer may have disabled this function.
If inxi \fB\-h\fR has no listing for \fB\-U\fR then its disabled.
Auto\-update script. Note: if you installed as root, you must be root to update,
-otherwise user is fine. Also installs / updates this Man Page to: \fB/usr/share/man/man8\fR
+otherwise user is fine. Also installs / updates this Man Page to: \fB/usr/share/man/man1\fR
This requires that you be root to write to that directory.
.TP
.B \-V
@@ -457,7 +474,7 @@ Supports most known display managers, like xdm, gdm, kdm, slim, lightdm, or mdm.
.B \-xxx \-B
\- Adds battery chemistry (like: \fBLi-ion\fR), cycles (NOTE: there appears to be a problem with the Linux kernel
obtaining the cycle count, so this almost always shows \fB0\fR. There's nothing that can be done about this glitch, the
-data is simply not availabe as of 2016-04-18), location (only available from dmidecode derived output).
+data is simply not available as of 2016-04-18), location (only available from dmidecode derived output).
.TP
.B \-xxx \-m
\- Memory bus width: primary bus width, and if present, total width. eg: bus width: 64 bit (total: 72 bits). Note that total / data widths are mixed up sometimes in dmidecode output, so inxi will take the larger value as total if present. If no total width data is found, then inxi will not show that item.
@@ -495,8 +512,8 @@ Overrides defective or corrupted data.
Triggers debugger output. Requires debugging level \fB1\-14\fR (\fB8\-10\fR \- logging of data).
Less than 8 just triggers inxi debugger output on screen.
.TP
-.B \-@ \fR[\fB1\fR\-\fB7\fR]
-\- On screen debugger output.
+.B \-@
+\fR[\fB1\fR\-\fB7\fR] \- On screen debugger output.
.TP
.B \-@ 8
\- Basic logging. Check \fB/home/yourname/.inxi/inxi*.log
@@ -515,7 +532,8 @@ To automatically upload debugger data tar.gz file to \fIftp.techpatterns.com\fR:
For alternate ftp upload locations: Example:
-.B inxi \-! \fIftp.yourserver.com/incoming\fB \-xx@ 14\fR
+.B inxi \-!
+\fIftp.yourserver.com/incoming\fB \-xx@ 14\fR
.TP
.B \-@ 11
\- With data file of xiin read of \fB/sys
@@ -534,12 +552,16 @@ are capable of displaying either built in or external script output.
.SH RUNNING IN IRC CLIENT
To trigger inxi output in your IRC client, pick the appropriate method from the list below:
.TP
-.B Xchat, irssi \fR(and many other IRC clients)
-.B /exec \-o inxi \fR[\fBoptions\fR]
+.B Xchat, irssi
+\fR(and many other IRC clients)
+.B /exec \-o inxi
+\fR[\fBoptions\fR]
If you leave off the \fB\-o\fR, only you will see the output on your local IRC client.
.TP
.B Konversation
-.B /cmd inxi \fR[\fBoptions\fR]
+.B /cmd inxi
+\fR[\fBoptions\fR]
+
To run inxi in konversation as a native script if your distribution or inxi package did not do this for you,
create this symbolic link:
@@ -549,12 +571,15 @@ If inxi is somewhere else, change the path \fB/usr/local/bin\fR to wherever it i
Then you can start inxi directly, like this:
-.B /inxi \fR[\fBoptions\fR]
+.B /inxi
+\fR[\fBoptions\fR]
.TP
.B WeeChat
-.B NEW: /exec \-o inxi \fR[\fBoptions\fR]
+.B NEW: /exec \-o inxi
+\fR[\fBoptions\fR]
-.B OLD: /shell \-o inxi \fR[\fBoptions\fR]
+.B OLD: /shell \-o inxi
+\fR[\fBoptions\fR]
Newer (2014 and later) WeeChats work pretty much the same now as other console IRC
clients, with \fB/exec \-o inxi \fR[\fBoptions\fR]. Also, newer WeeChats have dropped
@@ -610,8 +635,8 @@ post on inxi developer forums:
.I http://techpatterns.com/forums/forum\-32.html
.TP
You can also visit
-.I irc.oftc.net \fRchannel:\fI #smxi
-to post issues.
+.I irc.oftc.net
+\fRchannel:\fI #smxi\fR to post issues.
.SH HOMEPAGE
.I https://github.com/smxi/inxi
.I http://smxi.org/
diff --git a/inxi.1.gz b/inxi.1.gz
index 0346d10..900854b 100644
--- a/inxi.1.gz
+++ b/inxi.1.gz
Binary files differ
diff --git a/inxi.changelog b/inxi.changelog
index 6352de9..fb5a5ea 100755
--- a/inxi.changelog
+++ b/inxi.changelog
@@ -1,4 +1,109 @@
=====================================================================================
+Version: 2.3.4
+Patch Version: 00
+Script Date: 2016-11-03
+-----------------------------------
+Changes:
+-----------------------------------
+Squeezing in a last change for 2.3.4, added to -m if valid output, and if no -I or -tm
+triggers used, will show system ram used/total, from the -I line.
+
+-----------------------------------
+-- Harald Hope - Thu, 03 Nov 2016 20:20:37 -0700
+
+=====================================================================================
+Version: 2.3.4
+Patch Version: 00
+Script Date: 2016-11-03
+-----------------------------------
+Changes:
+-----------------------------------
+New version, new tarball. This improves -D output, now capacity is on its own line, and
+each disk is on its own line always, this makes it easier to read and/or parse.
+
+Also, the lines now wrap nicely for extra data > console width, or -y 80 for example if
+you're trying to force most of the data to fit into 80 columns.
+
+-----------------------------------
+-- Harald Hope - Thu, 03 Nov 2016 19:39:15 -0700
+
+=====================================================================================
+Version: 2.3.3
+Patch Version: 00
+Script Date: 2016-10-25
+-----------------------------------
+Changes:
+-----------------------------------
+No version change, updated man page.
+
+This is a small syntax fix that will have essentially no impact on anyone. I've just cleaned
+up the man code to make it simple enough for roffit man to html conversion. There should be
+no real visible differences as far as I know.
+
+-----------------------------------
+-- Harald Hope - Sat, 29 Oct 2016 15:13:40 -0700
+
+=====================================================================================
+Version: 2.3.3
+Patch Version: 00
+Script Date: 2016-10-25
+-----------------------------------
+Changes:
+-----------------------------------
+New version, new tarball. Extended support and tests for vm id to include better BSD
+handling, and legacy linux. VM id will remain a work in progress, and will probably
+require a few fixes for fringe cases. Nice to have would be things like OpenBSD's
+vm which is difficult to detect. However, I believe this should handle roughly 99% of
+realworld vm id cases, except for some commercial stuff that will require more data.
+
+-----------------------------------
+-- Harald Hope - Tue, 25 Oct 2016 12:17:46 -0700
+
+=====================================================================================
+Version: 2.3.2
+Patch Version: 00
+Script Date: 2016-10-23
+-----------------------------------
+Changes:
+-----------------------------------
+version number unchanged, just added a vm possible id, will impact few users, if you care, update.
+
+-----------------------------------
+-- Harald Hope - Sun, 23 Oct 2016 21:27:23 -0700
+
+=====================================================================================
+Version: 2.3.2
+Patch Version: 00
+Script Date: 2016-10-20
+-----------------------------------
+Changes:
+-----------------------------------
+New feature, new tarball, new version number.
+
+Now -M shows device type, like desktop, laptop, notebook, server, blade, vm (and tries to get vm type).
+
+vm detection will take more work, for now I'm just going for the main ones used, but it will certainly
+miss some because it's hard to detect them in some cases unless you use root features. Also note, in
+most cases a container I believe will display as a vm, which is fine for now.
+
+For BSDs, and older linux, there is a dmidecode fallback detection as well.
+
+-----------------------------------
+-- Harald Hope - Thu, 20 Oct 2016 18:03:54 -0700
+
+=====================================================================================
+Version: 2.3.1
+Patch Version: 00
+Script Date: 2016-08-25
+-----------------------------------
+Changes:
+-----------------------------------
+Fixed typo in man page, no new version, just a fixed man page.
+
+-----------------------------------
+-- Harald Hope - Fri, 09 Sep 2016 14:53:24 -0700
+
+=====================================================================================
Version: 2.3.1
Patch Version: 00
Script Date: 2016-08-25