Programmatically get Dell service tag on Linux
sudo dmidecode -s system-serial-number
sudo dmidecode -s system-serial-number
Apparently, it is quite common for AMD GPUs to show screen artifacts on Linux.
Most of the times it is related to power management settings. These settings
can be adjusted via amdgpu kernel module options. The parameters are different
for different GPUs. In my case, I have a Dell laptop with AMD Radeon 890M GPU.
To fix the screen artifacts, run the following commands:
sudo grubby --update-kernel=ALL --args="amdgpu.dcdebugmask=0x410"
Reboot your system.
Dell laptops come with a different fingerprint readers. Some of them work out of the box in Fedora and that was my expierince with Precision series. However, my new Dell Pro Max 16 MC16255 came with a different unsupported fingerprint.
Find your fingerprint reader
sudo lsusb
You should see something like this:
Bus 003 Device 002: ID 0a5c:5865 Broadcom Corp. 58200
Where 5865 is the model of the fingerprint reader. There are some copr repositories
around that provide support for some of the models, but not for 5865.
There is a good article on Reddit that explains how to get it working.
The solution is to manually install the released driver from Dell for Ubuntu.
Go to Dell support site
and download the latest libfprint-2-tod1-broadcom-cv3plus orig package.
Extract it and move:
../usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod-1-broadcom-cv3plus.so
to
../usr/lib64/libfprint-2/tod-1/libfprint-2-tod-1-broadcom-cv3plus.so
One-liner:
mkdir -p ../usr/lib64/libfprint-2/tod-1/ && mv ../usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod-1-broadcom-cv3plus.so $_
Run the included install script:
sudo ./install.sh
Replace libfprint package:
sudo dnf copr enable quantt/libfprint-tod -y
sudo dnf swap libfprint libfprint-tod -y
Programmatically add your fingerprint:
sudo setenforce 0
sudo systemctl restart fprintd
fprintd-enroll
sudo ausearch -m avc,user_avc,selinux_err -ts today | sudo audit2allow -M fprintd_SELinux
sudo semodule -i fprintd_SELinux.pp
sudo setenforce 1
To enable fingerptint authentication:
sudo authselect enable-feature with-fingerprint
sudo authselect apply-changes
Fingerprint configuration should be also available in GNOME Settings under “Users”.
Tilix configuration:
[/]
accelerators-enabled=true
enable-wide-handle=true
prompt-on-close=true
prompt-on-close-process=false
quake-specific-monitor=0
terminal-title-style='none'
theme-variant='dark'
unsafe-paste-alert=false
window-style='normal'
[keybindings]
app-new-session='F2'
app-new-window='<Shift><Ctrl>N'
app-preferences='disabled'
app-shortcuts='disabled'
nautilus-open='<Ctrl><Alt>t'
session-add-auto='F1'
session-add-down='<Shift>F2'
session-add-right='<Primary>F2'
win-reorder-next-session='<Primary><Alt>Page_Up'
win-reorder-previous-session='<Primary><Alt>Page_Down'
win-switch-to-next-session='<Primary>Right'
win-switch-to-previous-session='<Primary>Left'
[profiles/2b7c4080-0ddd-46c5-8f23-563fd3ba789d]
background-color='#1C1C1F'
badge-color-set=false
bold-color-set=false
cursor-colors-set=false
foreground-color='#FFFFFF'
highlight-colors-set=false
palette=['#241F31', '#C01C28', '#2EC27E', '#F5C211', '#1E78E4', '#9841BB', '#0AB9DC', '#C0BFBC', '#5E5C64', '#ED333B', '#57E389', '#F8E45C', '#51A1FF', '#C061CB', '#4FD2FD', '#F6F5F4']
use-theme-colors=false
visible-name='Default'
To apply this configuration, save it to a file and import like so:
dconf load /com/gexperts/Tilix/ < tilix-settings.conf
Install all good (the ones that work) video codecs for AMD GPU:
# Enable RPM Fusion repositories
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
# Install hardware acceleration libraries for AMD
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
# Switch to full ffmpeg package
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
# Install additional codecs
sudo dnf group update multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf group update sound-and-video
sudo dnf install gstreamer1-plugin-openh264 mozilla-openh264
sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1
Modern font configuration for Linux:
gsettings set org.gnome.desktop.interface font-name "Adwaita Sans 11"
gsettings set org.gnome.desktop.interface document-font-name "Adwaita Sans 11"
gsettings set org.gnome.desktop.interface monospace-font-name "Noto Sans Mono 11"
Adwaita Sans is the new default font for GNOME desktop environment. It looks
great and modern. Noto Sans Mono is a great monospaced font for programming.
To install Noto fonts on Fedora, run:
sudo dnf install google-noto-sans-fonts
Should you replace your SSD drive? Here is a simple way to check the health status of your SSD drive.
sudo dnf install -y nvme-cli
sudo nvme smart-log /dev/nvme0
This will show you the following information:
Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning : 0
temperature : 43 °C (316 K)
available_spare : 100%
available_spare_threshold : 50%
percentage_used : 1%
endurance group critical warning summary: 0
Data Units Read : 10,529,778 (5.39 TB)
Data Units Written : 36,729,164 (18.81 TB)
host_read_commands : 179,044,182
host_write_commands : 689,140,626
controller_busy_time : 1,040
power_cycles : 386
power_on_hours : 6,494
unsafe_shutdowns : 60
media_errors : 0
num_err_log_entries : 0
Warning Temperature Time : 0
Critical Composite Temperature Time : 0
Temperature Sensor 1 : 43 °C (316 K)
Temperature Sensor 2 : 44 °C (317 K)
Thermal Management T1 Trans Count : 0
Thermal Management T2 Trans Count : 0
Thermal Management T1 Total Time : 0
Thermal Management T2 Total Time : 0
available_spare - shows the percentage of spare memory blocks available on your SSD.
available_spare_threshold - is the critical threshold, expressed as a percentage.
When your available_spare drops below this threshold, it’s a warning sign that
your drive is nearing the end of its life.
percentage_used - indicates the percentage of the drive’s total estimated lifespan
that has been used up.
In this guide, we will add git status to the command line prompt without any extra dependencies.
Our new prompt has the following additional functionality:
✘127.user@hostname (should prevent the user from executing commands on the wrong host).Open your ~/.bashrc file and add the following snippet:
function git_status_prompt() {
local git_info=""
if git rev-parse --is-inside-work-tree &>/dev/null; then
# Define colors
local branch_color="\033[0;33m" # Yellow for branch name
local reset_color="\033[0m" # Reset to default color
local untracked_color="\033[1;33m" # Bold yellow for untracked
local staged_color="\033[1;32m" # Bold green for staged
local unstaged_color="\033[1;31m" # Bold red for unstaged
# Show branch name if on a branch, otherwise show commit hash
local branch_name=$(git symbolic-ref --short -q HEAD 2>/dev/null)
if [[ -n "$branch_name" ]]; then
git_info+="[${branch_color}${branch_name}${reset_color}"
else
git_info+="[${branch_color}@$(git rev-parse --short HEAD)${reset_color}"
fi
# Add additional status indicators with respective colors
[[ -n $(git ls-files --others --exclude-standard) ]] && git_info+=" ${untracked_color}?${reset_color}"
! git diff --cached --quiet && git_info+=" ${staged_color}+${reset_color}"
! git diff --quiet && git_info+=" ${unstaged_color}!${reset_color}"
# Ahead/behind of upstream
local ahead=$(git rev-list --count @{u}..HEAD 2>/dev/null)
local behind=$(git rev-list --count HEAD..@{u} 2>/dev/null)
[[ $ahead -gt 0 ]] && git_info+=" ⇡$ahead"
[[ $behind -gt 0 ]] && git_info+=" ⇣$behind"
# Close the square bracket
git_info+="]"
fi
echo -e "$git_info"
}
PS1='$(if [ $? -ne 0 ]; then echo "\[\e[0;31m\]✘$? \[\e[0m\] "; fi)\[\e[01;32m\]\u@\h\[\e[0m\] \[\e[01;34m\]\w\[\e[0m\] $(git_status_prompt)\n\$ '
Apply the changes by running:
source ~/.bashrc
In Europe, Logitech only sells keyboards with ISO layout. This means that there is an additional key between the left shift and Z. This key is often in the way if you are used to the US layout (ANSI layout). Solaar does not allow you to remap this key.
sudo dnf install evtest
sudo evtest
evtest will output all available devices. For example:
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Sleep Button
/dev/input/event1: Power Button
...
/dev/input/event27: solaar-keyboard
/dev/input/event3: Logitech USB Receiver
/dev/input/event4: Logitech USB Receiver Mouse
/dev/input/event5: Logitech USB Receiver Consumer Control
/dev/input/event6: Logitech USB Receiver System Control
The keyboard is solaar-keyboard. However, it is connected via the USB receiver.
This means that the device is /dev/input/event3.
Event: time 1692951945.797570, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70064
Event: time 1692951945.797570, type 1 (EV_KEY), code 86 (KEY_102ND), value 1
If you selected
solaar-keyboardas the device,evtestwon’t record any key
sudo vim /etc/udev/hwdb.d/mx-keys.hwdb
Add the following content:
evdev:name:Logitech USB Receiver:*
KEYBOARD_KEY_70064=leftshift
sudo systemd-hwdb update
sudo udevadm trigger
Make sure your current system is up to date:
sudo dnf upgrade --refresh
Reboot:
reboot
Install dnf plugin which updates OS:
sudo dnf install dnf-plugin-system-upgrade
Download and prepare packages for upgrade:
sudo dnf system-upgrade download --releasever=40
Reboot and start upgrade process
sudo dnf system-upgrade reboot