Brightness keys in XFCE

This is on Dell G15 5525’s brightness keys in Linux Mint XFCE 21.1 Vera.

The installation of the system was easy-peasy and most features worked out of box.
The missing was proprietary Nvidia-drivers which resulted in a periodic warnings and ugly freezes. The thing easy to fix – e.g. via Software Center.

Then I found that brightness function keys are dead. On a basis of the discussion

https://bbs.archlinux.org/viewtopic.php?id=282356

I did the following (in a terminal – [Ctrl]+[Alt]+[t]):

First searching a device:

$ brightnessctl --list | grep -A 2 'backlight'
Device 'nvidia_0' of class 'backlight':
Current brightness: 100 (100%)
Max brightness: 100
Device 'nvidia_wmi_ec_backlight' of class 'backlight':
Current brightness: 12 (5%)
Max brightness: 255
Device 'amdgpu_bl0' of class 'backlight':
Current brightness: 47 (18%)
Max brightness: 255

Testing:

$ sudo brightnessctl --device='amdgpu_bl0' set +5%
Updated device 'amdgpu_bl0':
Device 'amdgpu_bl0' of class 'backlight':
Current brightness: 60 (24%)
Max brightness: 255
$ sudo brightnessctl --device='amdgpu_bl0' set 5%-
Updated device 'amdgpu_bl0':
Device 'amdgpu_bl0' of class 'backlight':
Current brightness: 47 (18%)
Max brightness: 255

Giving privileges to all users by the new file

$ sudo visudo /etc/sudoers.d/brightnessctl
# 2023-07-03
ALL ALL = NOPASSWD:/usr/bin/brightnessctl

And the last thing is to create shortcuts by Settings Manager – Keyboard – Application Shortcuts:

The End

VMware/VMPlayer: ‘Skipping BTF generation’ – error

Issue

After the upgrade Mint 20.3 Una do 21.0 Vanessa VMware’s VMPlayer stopped working!
Usuaully, after every update touching a kernel when I try VMPlayer I get the warnnig-window about necesary vmnet and vmmon modues update. But this time I couldn’t pass this step.

user$ sudo vmplayer #run in "xterm"

I found the error at the latest log

root# tail /tmp/vmware-root/vmware-11046.log
2023-06-21T06:06:25.906Z In(05) host-11046 |
2023-06-21T06:06:25.906Z In(05) host-11046 In file included from ./include/linux/pci.h:43,
2023-06-21T06:06:25.906Z In(05) host-11046 from /tmp/modconfig-ogPpBF/vmnet-only/compat_netdevice.h:27,
2023-06-21T06:06:25.906Z In(05) host-11046 from /tmp/modconfig-ogPpBF/vmnet-only/bridge.c:52:
2023-06-21T06:06:25.906Z In(05) host-11046 ./include/linux/pci_ids.h:2275: note: this is the location of the previous definition
2023-06-21T06:06:25.906Z In(05) host-11046 2275 | #define PCI_DEVICE_ID_VMWARE_VMXNET3 0x07b0
2023-06-21T06:06:25.906Z In(05) host-11046 |
2023-06-21T06:06:25.906Z In(05) host-11046 Skipping BTF generation for /tmp/modconfig-ogPpBF/vmnet-only/vmnet.ko due to unavailability of vmlinux
2023-06-21T06:06:25.906Z In(05) host-11046 Unable to install all modules. See log for details.
2023-06-21T06:06:25.906Z In(05) host-11046

Solution

I found such answers for the issue:

https://communities.vmware.com/t5/VMware-Workstation-Pro/Virtual-ethernet-failed/td-p/2906720

https://communities.vmware.com/t5/VMware-Workstation-Pro/Vmware-kernal-Module-updater/td-p/2920375

and build a procedure for myself, on this basis.

As I understand README

https://github.com/mkubecek/vmware-host-modules

it’s a need to (re)build vmmon and vmnet modules for a kernel
while the rest has been upstreamed for some time.

Hands-on

$ cd #going home
$ pwd

$ git clone https://github.com/mkubecek/vmware-host-modules
Cloning into 'vmware-host-modules'…
remote: Enumerating objects: 4408, done.
remote: Counting objects: 100% (1586/1586), done.
remote: Compressing objects: 100% (351/351), done.
remote: Total 4408 (delta 1350), reused 1432 (delta 1234), pack-reused 2822
Receiving objects: 100% (4408/4408), 1.93 MiB | 3.17 MiB/s, done.
Resolving deltas: 100% (3261/3261), done.

$ cd vmware-host-modules
$ git branch -a #waht's available

* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/player
remotes/origin/player-12.5.2
remotes/origin/player-16.2.5
remotes/origin/player-16.2.x

remotes/origin/player-16.2.0
remotes/origin/player-16.2.1
remotes/origin/player-16.2.3

[q]uit

$ vmplayer --version #see what is needed
I/O warning : failed to load external entity "/etc/vmware/hostd/proxy.xml"
VMware Player 16.2.1 build-18811642

$ git checkout player-16.2.1 #switch to suitable
Branch 'player-16.2.1' set up to track remote branch 'player-16.2.1' from 'origin'.
Switched to a new branch 'player-16.2.1'

$ ls
INSTALL LICENSE Makefile README RETIRED vmmon-only vmnet-only

$ cd vmmon-only && make && cd .. #bulding vmmon module
Using kernel build system.
make -C /lib/modules/5.15.0-75-lowlatency/build/include/.. M=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-75-lowlatency'
CC [M] /home/jestem1/vmware-host-modules/vmmon-only/linux/driver.o

$ cd vmnet-only && make && cd .. #buliding vmnet module
Using kernel build system.
make -C /lib/modules/5.15.0-75-lowlatency/build/include/.. M=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-75-lowlatency'
CC [M] /home/jestem1/vmware-host-modules/vmnet-only/driver.o
CC [M] /home/jestem1/vmware-host-modules/vmnet-only/hub.o
CC [M] /home/jestem1/vmware-host-modules/vmnet-only/userif.o

$ sudo make install #installing vmmon and vmnet
----------------------------------------------------------------------------- Branch player-16.2.1 has been retired on 2022-04-04 and has not been
* receiving any updates since. Please switch to latest 16.x version
* available.
*
* Latest kernel version this branch is intended to work with is 5.17.
*-----------------------------------------------------------------------------
install -D -t /lib/modules/5.15.0-75-lowlatency/misc vmmon-only/vmmon.ko vmnet-only/vmnet.ko
strip --strip-debug /lib/modules/5.15.0-75-lowlatency/misc/vmmon.ko /lib/modules/5.15.0-75-lowlatency/misc/vmnet.ko
if test -z ""; then /sbin/depmod -a 5.15.0-75-lowlatency; fi

RESTART the system!

otherwise, re-test of a vm-entity will give an error : vmplayer could not open /dev/vmmon

seeking (linux) messages (log)

So they (a vendor) wants you to look if an application failure has a system cause?

You reported an issues on 01-11-2021 06:00. You are intersted on what happened around 6:00 A.M. that day. Raffly

# cd /var/log
# head messages #what's the oldest
Oct 31 03:06:01 apz-sagb1p rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-57.el7_9.1" x-pid="1697" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
# grep -E "^Nov\s{1,2}1 " messages | wc -l #how many records 
2873
# grep -E "^Nov\s{1,2}1 05:" messages | tail #last at 5 A.M.
Nov 1 05:37:22 the-host adclient[1870]: INFO AUDIT_TRAIL|Centrify Suite|Trusted Path|1.0|2700|Trusted path granted|5|user=the-host$@THE-DOMIAN.NET pid=1870 utc=1635741442012 centrifyEventID=23700 DASessID=N/A DAInst=N/A status=GRANTED server=ldap/vdz0dc0001.the-domian.net@THE-DOMIAN.NET
Nov 1 05:40:01 the-host systemd: Created slice User Slice of root.
Nov 1 05:40:01 the-host systemd: Started Session 236 of user root.
Nov 1 05:40:01 the-host systemd: Removed slice User Slice of root.
Nov 1 05:40:46 the-host adclient[1870]: INFO AUDIT_TRAIL|Centrify Suite|Trusted Path|1.0|2700|Trusted path granted|5|user=the-host$@THE-DOMIAN.NET pid=1870 utc=1635741646815 centrifyEventID=23700 DASessID=N/A DAInst=N/A status=GRANTED server=ldap/an-ldap-srv.the-domian.net@THE-DOMIAN.NET
Nov 1 05:50:01 the-host systemd: Created slice User Slice of root.
Nov 1 05:50:01 the-host systemd: Started Session 237 of user root.
Nov 1 05:50:01 the-host systemd: Removed slice User Slice of root.
Nov 1 05:51:01 the-host adclient[1870]: INFO AUDIT_TRAIL|Centrify Suite|Trusted Path|1.0|2700|Trusted path granted|5|user=the-host$@THE-DOMIAN.NET pid=1870 utc=1635742261852 centrifyEventID=23700 DASessID=N/A DAInst=N/A status=GRANTED server=ldap/vdz0dc0001.the-domian.net@THE-DOMIAN.NET
Nov 1 05:51:01 the-host adclient[1870]: INFO AUDIT_TRAIL|Centrify Suite|Trusted Path|1.0|2700|Trusted path granted|5|user=the-host$@THE-DOMIAN.NET pid=1870 utc=1635742261889 centrifyEventID=23700 DASessID=N/A DAInst=N/A status=GRANTED server=ldap/an-ldap-srv.the-domian.net@THE-DOMIAN.NET
# grep -E "^Nov\s{1,2}1 06:" messages | head #first at 6 A.M.
Nov 1 06:00:01 hostanme systemd: Created slice User Slice of root.
Nov 1 06:00:01 hostname systemd: Started Session 238 of user root.
Nov 1 06:00:01 hostname systemd: Removed slice User Slice of root.
Nov 1 06:00:18 hostname somethingd: CEF:0|YOUR APPLICATION....
grep -E "^Nov\s{1,2}1 06:[0-1]" messages | cut -c1-120 #first 19 minutes and cut long lines 

sed for csv debug

Instead of fancy and sophisticated thoughts lets share a daily experience 😉

You’ve collected data.csv:

field1,filed2,filed3
A,B,C
D,E,F
f,a,i,l
H,I,J
L,M,N

and while importing to a DB (sqlite in this example) you’ve got:

sqlite> .mode csv
sqlite> .import data.csv data
data.csv:4: expected 3 columns but found 4 - extras ignored

Now, how to find faulty records (while actually source csv is 5G heavy)?

$ sed -n "/\(.*,\)\{3,\}/p" data.csv
f,a,i,l 
Notice that: 
\ - are escape characters for parentheses
( ) - that are enclosing a seeking pattern .*,
{ } - sets a condition of 3 cases at least

One may ask in what circumstances it is relevant? Consider a collection of financial transactions originated from many countries and locales before a normalization – data.csv could look like:

country,currency,value
UK,GBP,1,000.00
IT,EUR,9.999,99
SE,SEK,99999,99