User Tools

Site Tools


distros:ubuntu_desktop

This is an old revision of the document!


Table of Contents

Information

  • Ubuntu 1)
  • 19.04

Download

Installation Notes

  • EFI/ubuntu/shimx64.efi 2)
  • Minimal installation

HOSTS

sudo wget -O '/etc/hosts' 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts' && sync
cat '/etc/hosts' | grep 'Date:'
sudo -e '/etc/hosts'

Repositories

Wine

  • :!: TODO: Update for 19.04
wget -O '/tmp/winehq-gpg.key' 'https://dl.winehq.org/wine-builds/Release.key' && sudo apt-key add '/tmp/winehq-gpg.key' && echo 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main' | sudo tee '/etc/apt/sources.list.d/winehq.list' > '/dev/null' && cat '/etc/apt/sources.list.d/winehq.list' && rm -f '/tmp/winehq-gpg.key' && sync

Lutris

  • :!: TODO: Update for 19.04
wget -O '/tmp/lutris-gpg.key' 'http://download.opensuse.org/repositories/home:/strycore/xUbuntu_18.04/Release.key' && sudo apt-key add '/tmp/lutris-gpg.key' && echo 'deb http://download.opensuse.org/repositories/home:/strycore/xUbuntu_18.04/ ./' | sudo tee '/etc/apt/sources.list.d/lutris.list' > '/dev/null' && cat '/etc/apt/sources.list.d/lutris.list' && rm -f '/tmp/lutris-gpg.key' && sync

ckb-next

sudo add-apt-repository 'ppa:tatokis/ckb-next'

padoka PPA

Software

Update

System

sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean && sync

Firmware

sudo fwupdmgr refresh && sudo fwupdmgr update --verbose

Snaps

sudo snap refresh

General

sudo apt install evolution filezilla gimp keepassxc mpv transmission-gtk aria2 htop unar p7zip-full mesa-utils ffmpeg libsecret-tools libreoffice rhythmbox

wl

  • For a MacBook Pro with BCM4360 wireless
bcmwl-kernel-source

OpenVPN

network-manager-openvpn-gnome

VA-API

gstreamer1.0-vaapi
i965-va-driver

ckb-next

ckb-next

Keybase

wget -O '/tmp/keybase_amd64.deb' 'https://prerelease.keybase.io/keybase_amd64.deb' && sudo dpkg --install '/tmp/keybase_amd64.deb' && sudo apt install -f && rm '/tmp/keybase_amd64.deb' && sync && run_keybase

Wine

winetricks exe-thumbnailer winbind
winehq-staging
wine-d3d9-staging

Lutris

  • Even if using Lutris's Wine runners, Wine Staging should be installed system-wide in order to satisfy dependencies
winehq-staging lutris

Tor Browser

torbrowser-launcher

Google Chrome

wget -O '/tmp/google-chrome-stable_current_amd64.deb' 'https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb' && sudo dpkg --install '/tmp/google-chrome-stable_current_amd64.deb' || sudo apt install -f && rm '/tmp/google-chrome-stable_current_amd64.deb' && sync

Settings

Keyboard Shortcuts

bash -c "secret-tool lookup 'keepass' 'default' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
gnome-terminal --command "sudo sh -c 'apt update && apt full-upgrade -y && apt clean && apt autoremove -y && sync && fwupdmgr refresh && fwupdmgr update --verbose && snap refresh && rm -Rfv '/usr/lib/firefox/browser/features' '/home/'*'/.mozilla/firefox/'*'/features' && wget -O '/etc/hosts' 'https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts' && sync && fstrim --all --verbose && sync && sleep '2''"

Keys

  • Listed respectively to above
  • Ctrl + Alt + Z
  • Pause or F7

Printer

  • Output Mode: Black Only Grayscale
  • Print Quality: High-Resolution Photo
  • Administration → Set As Server Default
socket://192.168.1.164:9100

gedit

  • 4 Tab width
  • Insert Spaces for Tab mode

Network

DNS

UncensoredDNS

89.233.43.71,91.239.100.100
2a01:3a0:53:53::,2001:67c:28a4::

OpenNIC Anycast

185.121.177.177,169.239.202.202
2a05:dfc7:5::53,2a05:dfc7:5::5353

VPN.AC

  • See VPN.AC
  • :!: If using this VPN, disable IPv6 from NetworkManager

Nautilus

  • Sort folders before files
  • 4096 MB File Previews

Rhythmbox

Terminal

  • 10-notch Transparency

Transmission

  • Blocklist
http://john.bitsurge.net/public/biglist.p2p.gz

GRUB

sudo -e '/etc/default/grub' && sudo update-grub

Old Parameters

GRUB

GRUB_TIMEOUT=1

Corsair USB Quirks

blk_mq

scsi_mod.use_blk_mq=y dm_mod.use_blk_mq=y

Reboot

  • efi is for UEFI systems
  • pci is for Legacy systems and Coreboot with SeaBIOS payload
  • There are other values possible should either of those not work
reboot=pci
reboot=efi

PCIe ASPM

pcie_aspm=force

dyntick-idle Disable

nohz=on

intel_iommu

  • Specific to Spinesnap
intel_iommu=on

i915

  • Applicable on a Lenovo T500 3)
i915.enable_fbc=1 i915.fastboot=1

amdgpu

amdgpu.deep_color=1

Overdrive

  • Allows use of Overdrive options for overclocking
amdgpu.ppfeaturemask=0xffffffff
cat '/sys/module/amdgpu/parameters/ppfeaturemask' | grep '4294967295'

Blacklist Watchdogs

  • iTCO_wdt controls watchdog on some Intel platforms
  • sp5100_tco controls watchdog on some AMD platforms
  • nowatchdog disables both soft and hard generic watchdogs
  • I don't use watchdog features and apparently this reduces power usage slightly
modprobe.blacklist=iTCO_wdt,sp5100_tco nowatchdog

Backlight

systemd.restore_state=0

DRM Debug

  • :!: This may make lower-end machines become very unresponsive; be prepared to have some safe way of rebooting
drm.debug=0xe

GNOME

Disable Wayland

cat '/etc/gdm3/custom.conf' | grep '#WaylandEnable' > '/dev/null' && sudo sed -i 's/'#WaylandEnable'/'WaylandEnable'/g' '/etc/gdm3/custom.conf' && cat '/etc/gdm3/custom.conf' | grep 'WaylandEnable'
sudo -e '/etc/gdm3/custom.conf'

Root GUI Apps in Wayland

  • Run this before running GUI applications requiring root
  • This needs re-ran after session restart
xhost +LOCAL:

Settings

All-in-one

  • Last updated: 2019/04/19
gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'false' && gsettings set 'org.gnome.desktop.peripherals.touchpad' 'send-events' 'disabled-on-external-mouse' && gsettings set 'org.gnome.desktop.peripherals.touchpad' 'natural-scroll' 'false' && gsettings set 'org.gnome.desktop.peripherals.mouse' 'accel-profile' 'flat' && gsettings set 'org.gnome.desktop.peripherals.touchpad' 'tap-to-click' 'false' && gsettings set 'org.gnome.desktop.peripherals.touchpad' 'tap-and-drag' 'false' && gsettings set 'org.gnome.desktop.peripherals.touchpad' 'disable-while-typing' 'false' && gsettings set 'org.gnome.desktop.peripherals.touchpad' 'click-method' 'areas' && gsettings set 'org.gnome.desktop.interface' 'clock-show-date' 'true' && gsettings set 'org.gnome.software' 'download-updates' 'false'

Individual

  • Last updated: 2019/04/19
gsettings set 'org.gnome.desktop.interface' 'enable-animations' 'false'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'send-events' 'disabled-on-external-mouse'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'natural-scroll' 'false'
gsettings set 'org.gnome.desktop.peripherals.mouse' 'accel-profile' 'flat'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'tap-to-click' 'false'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'tap-and-drag' 'false'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'disable-while-typing' 'false'
gsettings set 'org.gnome.desktop.peripherals.touchpad' 'click-method' 'areas'
gsettings set 'org.gnome.desktop.interface' 'clock-show-date' 'true'
gsettings set 'org.gnome.software' 'download-updates' 'false'

KeePassXC

Settings

  • General → [ ] Load previous databases on startup

Add Database Password to GNOME Keyring

secret-tool store --label='KeePass' 'keepass' 'default'

mpv

mkdir -p ~/'.config/mpv' && echo -e "profile=gpu-hq\nscale=ewa_lanczossharp\ncscale=ewa_lanczossharp\nvideo-sync=display-resample\ninterpolation\ntscale=oversample" | tee ~/'.config/mpv/mpv.conf' > '/dev/null' && cat ~/'.config/mpv/mpv.conf'

NetworkManager

  • wifi.powersave is set to 3 in /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
  • :!: ethernet.cloned-mac-address=random breaks USB Tethering with iOS/iPhones
sudo -e '/etc/NetworkManager/conf.d/99-custom.conf'
[device-mac-randomization]
wifi.scan-rand-mac-address=yes

[connection-mac-randomization]
ethernet.cloned-mac-address=random
wifi.cloned-mac-address=random

[connection]
wifi.powersave=2

Laptop Power Management

Secure Shell

Solo Key

Information

PAM

Dependencies

sudo dnf install pamu2fcfg pam-u2f

Centralized Key

pamu2fcfg > ~/'u2f_keys' && sudo mv ~/'u2f_keys' '/etc/u2f_mappings'

GDM

  • Add to line 2, under the pam_selinux_permit.so entry
sudo -e '/etc/pam.d/gdm-password'
auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue

sudo

  • Add to line 2, under the #%PAM-1.0 line
sudo -e '/etc/pam.d/sudo'
auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue

Swappiness

echo "vm.swappiness=10" | sudo tee '/etc/sysctl.d/99-swappiness.conf' > '/dev/null' && cat '/etc/sysctl.d/99-swappiness.conf'
cat '/sys/fs/cgroup/memory/memory.swappiness'

systemd

  • Log data is stored in volatile storage
  • Max log file sizes of 50MB
sudo mkdir -p '/etc/systemd/journald.conf.d' && echo -e "[Journal]\nStorage=volatile\nSystemMaxUse=50M\nRuntimeMaxUse=50M" | sudo tee '/etc/systemd/journald.conf.d/logging.conf' > '/dev/null' && cat '/etc/systemd/journald.conf.d/logging.conf'

Uncomplicated Firewall

General

sudo ufw reset && sudo ufw default deny && sudo ufw logging off && sudo ufw enable && sudo systemctl enable 'ufw'

SSH

sudo ufw reset && sudo ufw default deny && sudo ufw logging off && sudo ufw allow 'ssh' && sudo ufw enable && sudo systemctl enable 'ufw'

TRIM

Swap

  • Add discard after defaults for the swap mountpoint 4)
  • According to the swapon man page, setting this in fstab is acceptable
sudo -e '/etc/fstab'
,discard

Service

  • TODO: This may already exist in cron, verify
sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l

Wine

Computer-specific

Nightwane

Volume

alsamixer --card='1'

Fan Control

  • Expects an ASUS KCMA-D8 motherboard
  • If OpenBMC is figured out, this may be superseded
  • Answer yes to all sensors-detect prompts and reboot for fancontrol to run
sudo apt install lm-sensors fancontrol && sudo sensors-detect && sudo -e '/etc/fancontrol' && sudo systemctl enable 'fancontrol'
INTERVAL=10
DEVNAME=/sys/class/hwmon/hwmon6=w83795g

FCTEMPS=/sys/class/hwmon/hwmon6/device/pwm2=/sys/class/hwmon/hwmon6/device/temp8_input
FCFANS=/sys/class/hwmon/hwmon6/device/fan1_input+/sys/class/hwmon/hwmon6/device/fan2_input

MINTEMP=/sys/class/hwmon/hwmon6/device/pwm2=50
MAXTEMP=/sys/class/hwmon/hwmon6/device/pwm2=60

MINSTART=/sys/class/hwmon/hwmon6/device/pwm2=4000
MINSTOP=/sys/class/hwmon/hwmon6/device/pwm2=0

Custom Resolution

Generate Modeline

  • 4k@60Hz CVT-RB
  • Mostly fixes random display glitches
  • :!: The grep here confirms the expected Modeline for my usual display 5)
  • :!: This cannot be used on Wayland currently
  • :!: This expects amdgpu DDX driver to be used 6)
cvt --verbose --reduced '3840' '2160' '60' | grep 'Modeline "3840x2160R"  533.00  3840 3888 3920 4000  2160 2163 2168 2222 +hsync -vsync'

xorg.conf Snippet

  • :!: Change as-needed
sudo mkdir -p '/etc/X11/xorg.conf.d' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Monitor"
    Identifier      "HDMI-A-0"
    Modeline "3840x2160R"  533.00  3840 3888 3920 4000  2160 2163 2168 2222 +hsync -vsync
    Option          "PreferredMode" "3840x2160R"
EndSection

Deep Color

  • The lack-of quotes around 30 is intentional and required syntax
  • :!: This may cause minor issues with programs not expecting 30-bit color 7)
  • :!: May cause GNOME Settings to not work depending on the version of GNOME used
sudo mkdir -p '/etc/X11/xorg.conf.d' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Screen"
    Identifier      "Deep Color Screen"
    DefaultDepth    30
EndSection

Graphics xorg.conf

intel

sudo apt install 'xserver-xorg-video-intel' -y && sudo mkdir -p '/etc/X11/xorg.conf.d' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier      "Intel GPU"
    Driver          "intel"
    Option          "TearFree"      "disabled"
EndSection

amdgpu

sudo apt install 'xserver-xorg-video-amdgpu' -y && sudo mkdir -p '/etc/X11/xorg.conf.d' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier      "AMD GPU"
    Driver          "amdgpu"
    Option          "TearFree"      "off"
EndSection

radeon

  • Expects pre-SI GPUs 8)
  • For SI, CIK, and newer GPUs, use amdgpu, along with enabling si_support and cik_support respectively for the amdgpu kernel module 9)
sudo apt install 'xserver-xorg-video-radeon' -y && sudo mkdir -p '/etc/X11/xorg.conf.d' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier      "AMD GPU"
    Driver          "radeon"
    Option          "TearFree"      "off"
    Option          "AccelMethod"   "EXA"
EndSection

Other

  • If using Optimus or some other multi-GPU set-up with different GPU vendors and/or drivers, add the BusID option
  • TODO: How to get the BusID value
    BusID      "PCI:0:2:0"

Environment Variables

  • Enables hardware acceleration and use of WebRenderer
  • :!: WebRenderer requires the previous MOZ_ACCELERATED variable as well
echo -e 'export MOZ_ACCELERATED=1\nexport MOZ_WEBRENDER=1' | sudo tee '/etc/profile.d/firefox-hwaccel.sh' > '/dev/null' && cat '/etc/profile.d/firefox-hwaccel.sh'

Default Profile

rm -fv '/tmp/profiles.ini' && nano '/tmp/profiles.ini' && sed -i 's/'CHANGEME'/'$USER'/g' '/tmp/profiles.ini'
[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=1
Path=CHANGEME
Default=1

user.js

  • Last updated: 2019/04/05
  • :!: IPv6 is disabled in order to prevent WebRTC from grabbing a IPv6 address even though NetworkManager has it disabled…
  • :!: media.peerconnection.enabled disables WebRTC
rm -fv '/tmp/user.js' && nano '/tmp/user.js'
/***********
 * General *
 ***********/

user_pref("extensions.screenshots.disabled", true);
user_pref("reader.parse-on-load.enabled", false);

user_pref("media.mediasource.experimental.enabled", true);
user_pref("media.mediasource.ignore_codecs", true);
user_pref("media.autoplay.enabled", false);

user_pref("webgl.disabled", true);
user_pref("webgl.enable-webgl2", false);
user_pref("accessibility.force_disabled", 1);
user_pref("mousewheel.min_line_scroll_amount", 40);
user_pref("browser.tabs.drawInTitlebar", true);

/*******
 * U2F *
 *******/

user_pref("security.webauth.u2f", true);

/***********
 * Privacy *
 ***********/

user_pref("network.dns.disableIPv6", true);
user_pref("media.peerconnection.enabled", false);

/*******
 * END *
 *******/

Apply Settings

  • Path should report the current user's username, and the text Custom Stuff should be visible
ls '/tmp/profiles.ini' '/tmp/user.js' && pkill 'firefox' && rm -Rfv ~/'.mozilla' && sync && mkdir -p ~/'.mozilla/firefox/'$USER && mv '/tmp/profiles.ini' ~/'.mozilla/firefox/profiles.ini' && mv '/tmp/user.js' ~/'.mozilla/firefox/'$USER'/user.js' && sync && cat ~/'.mozilla/firefox/profiles.ini' | grep $USER && cat ~/'.mozilla/firefox/'$USER'/user.js' | grep 'Custom Stuff' && sleep '1' && sync

Extensions

Startpage.com

Download

  • Decentraleyes
  • HTTPS Everywhere
  • Privacy Badger
  • Cookie AutoDelete
  • uBlock Origin
  • CanvasBlocker
gio open 'https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/versions' && gio open 'https://www.eff.org/https-everywhere' && gio open 'https://www.eff.org/privacybadger' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/cookie-autodelete/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/versions' && gio open 'https://addons.mozilla.org/en-US/firefox/addon/canvasblocker/versions'
  • [x] Enable Automatic Cleaning? Delay Before Cleaning
  • [x] Enable Cleanup on Domain Change
  • [ ] Enable Cleanup Log and Counter
  • [ ] Show Notification After Cookie Cleanup
  • [x] Clean Cookies from Open Tabs on Startup
  • [x] Localstorage Cleanup (Firefox 58+)

uBlock Origin

Settings

  • [x] Prevent WebRTC from leaking local IP addresses

Filter lists

  • [ ] Ads → EasyList 10)
  • [ ] Privacy → EasyPrivacy 11)
  • Multipurpose → [x] Dan Pollock's hosts file
  • Multipurpose → [x] hpHost's Ad and tracking servers
  • Multipurpose → [x] MVPS HOSTS
  • Custom → [x] Import

Custom 3rd-party filters

  • Last updated: 2018/11/23
https://www.fanboy.co.nz/fanboy-problematic-sites.txt
https://www.fanboy.co.nz/r/fanboy-ultimate.txt
https://www.fanboy.co.nz/fanboy-antifacebook.txt
https://www.fanboy.co.nz/fanboy-antifonts.txt
https://www.fanboy.co.nz/fanboy-cookiemonster.txt
https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/popads-domains-list.txt
https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/fake-news.txt

Testing Sites

Notable Folders and Commands

Extract ISO

  • D is the destination you want the extracted files to go
  • x is the ISO you want to extract files from
  • No space after the -o flag is intentional
  • This is primarily useful for copying Windows ISO images to a FAT32 flash drive
sudo apt install 'p7zip-full'
7z x -o'D' -y x
7z x -o'/run/media/espionage724/1809 LTSC' -y '/home/espionage724/Downloads/en_windows_10_enterprise_ltsc_2019_x64_dvd_74865958.iso' && sync

youtube-dl

Show Formats

  • Change x to a URL
sudo apt install 'youtube-dl'
youtube-dl -F x

Download Audio-only

  • Download the m4a audio only format shown from the above command
  • The format code is likely 140
  • Change x to a URL
youtube-dl -f 140 x

Shortcuts

/usr/share/applications
~/.local/share/applications

Icons

/usr/share/icons/hicolor
~/.local/share/icons/hicolor

Repos

nano '/etc/apt/sources.list'
ls '/etc/apt/sources.list.d'

Keys

Check Keys

sudo apt-key list

Remove Keys

  • x is the last 8 characters of the pub for the specific repo
sudo apt-key del x

Re-generate Thumbnails

rm -Rf ~/'.cache/thumbnails'

List GNOME gsettings

  • Change x to schema or omit it to show all settings
gsettings list-recursively 'x'

GNOME Software Maintenance

pkcon -c '1' refresh && pkcon update

fstrim

sudo fstrim --verbose --all

Xorg Debug

journalctl -e _COMM='gdm-x-session'
gio open ~/'.local/share/xorg/Xorg.0.log'

Verify DRI3

LIBGL_DEBUG='verbose' glxinfo | grep 'libgl'

GpuTest

Execute

720p

wget -O '/tmp/GpuTest_Linux_x64.zip' 'http://www.ozone3d.net/gputest/dl/GpuTest_Linux_x64_0.7.0.zip' && unzip '/tmp/GpuTest_Linux_x64.zip' -d '/tmp' && cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='1280' /height='720'

1080p

wget -O '/tmp/GpuTest_Linux_x64.zip' 'http://www.ozone3d.net/gputest/dl/GpuTest_Linux_x64_0.7.0.zip' && unzip '/tmp/GpuTest_Linux_x64.zip' -d '/tmp' && cd '/tmp/GpuTest_Linux_x64_'* && ./GpuTest /test='fur' /width='1920' /height='1080'

Cleanup

rm -Rf '/tmp/GpuTest_Linux_'* && cd ~ && sync

Show CPU Frequency

grep 'MHz' '/proc/cpuinfo'
watch -n 0.1 grep \'cpu MHz\' '/proc/cpuinfo'

OpenSSL Supported Ciphers

openssl ciphers -v | awk '{print $2}' | sort | uniq

Partition Information

  • Both commands do the same things
df -hT
df --human-readable --print-type

Encryption Information

sudo cryptsetup -v status '/dev/dm-0'

ATA Secure Erase

  • :!: All hdparm commands below assume actions to be performed on /dev/sda

Preparation

sudo apt install 'hdparm' -y && sync
sudo hdparm -I '/dev/sda'
systemctl suspend

ATA Secure Erase

sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sync
sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sync

Quick-commands

Standard

sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sync && sudo rm -f '/sys/firmware/efi/efivars/'* || sync && sudo efibootmgr -v

Dell

sudo hdparm --user-master u --security-erase 'x' '/dev/sda' && sudo hdparm --user-master u --security-set-pass 'x' '/dev/sda' && sudo hdparm --user-master u --security-erase-enhanced 'x' '/dev/sda' && sync && sudo rm -f '/sys/firmware/efi/efivars/'* || sync && sudo efibootmgr -v

NVMe Erase

sudo apt install 'nvme-cli' -y && sync
sudo nvme format '/dev/nvme0' --reset --ses='1' --pil='0' --pi='0' --ms='0' && sync

Clean EFI Variables

  • :!: Could potentially cause a firmware brick or other issues with improper EFI implementations, use at own risk 13)
  • Safer way is to use efibootmgr to remove boot entries individually
sudo rm -f '/sys/firmware/efi/efivars/'* || sync && sudo efibootmgr -v

RAID

Controller Details

sudo mdadm --detail-platform

Create Software RAID

  • :?: Came from old notes; I assume this worked at some point, but in any case, the syntax looks nice :p
sudo mdadm --create '/dev/md0' --name='RAID' --level='0' --raid-devices='3' '/dev/sda' '/dev/sdb' '/dev/sdc' --verbose

VGA Switcheroo Power States

sudo cat '/sys/kernel/debug/vgaswitcheroo/switch'

ACPI Tables

  • In dsdt.dsl, look for _OSI values, along with Windows and Linux
  • TODO: Fix for Ubuntu
sudo dnf install 'acpica-tools'
sudo cp --force '/sys/firmware/acpi/tables/DSDT' ~/'dsdt.dat'
cd ~ && iasl -d ~/'dsdt.dat'
gio open ~/'dsdt.dsl'
sudo dnf remove 'acpica-tools' && sync

Display EDID Info

sudo apt install 'read-edid'
sudo get-edid | parse-edid

Custom Resolutions

Generate Modeline

  • Use --reduced only for LCD/Non-CRT displays, and only as-needed 14)
  • Syntax is horizontal (width), vertical (height) and refresh rate
cvt '3840' '2160' '60'
cvt --reduced '3840' '2160' '60'
--reduced

Temporarily Apply

  • Changes are lost after reboot
  • Values after --newmode are from the above generate command, and is everything after Modeline
xrandr --newmode "3840x2160R"  533.00  3840 3888 3920 4000  2160 2163 2168 2222 +hsync -vsync
xrandr --addmode 'HDMI-A-0' '3840x2160R'
xrandr --output 'HDMI-A-0' --mode '3840x2160R'

Verify

xrandr --verbose | grep *current

Permanently Apply

  • Identifier is the output port the display is connected to
  • Modeline is from the above generate command, including the text Modeline
  • PreferredMode is the custom resolution name generated
Section "Monitor"
    Identifier  "HDMI-A-0"
    Modeline x
    Option      "PreferredMode" "3840x2160R"
EndSection

Backlight

Notes

  • The following commands with an asterisk expect only one backlight controller at /sys/class/backlight
  • This was only tested on one laptop with intel_backlight
  • See Power Management notes on how to add backlight changes to a udev script
  • See backlight for more details

Controller Name

ls '/sys/class/backlight'

Query Current Brightness

cat '/sys/class/backlight/'*'/brightness'

Query Max Brightness

cat '/sys/class/backlight/'*'/max_brightness'

Set Custom Brightness

  • Change 376 to desired brightness
  • Desired brightness must be under max_brightness value
echo "376" | sudo tee '/sys/class/backlight/'*'/brightness' > '/dev/null'

Set Max Brightness

echo "$(cat '/sys/class/backlight/'*'/max_brightness')" | sudo tee '/sys/class/backlight/'*'/brightness' > '/dev/null'

Intel GuC Firmware

sudo cat '/sys/kernel/debug/dri/0/i915_guc_info'
sudo cat '/sys/kernel/debug/dri/0/i915_guc_load_status'

Hyper-threading Information

grep -e "processor" -e "core id" -e "^$" /proc/cpuinfo

Optimal GCC compiler flags

gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1 | perl -pe 's/ -mno-\S+//g; s/^.* - //g;'

Privacy

Clear Terminal History

history -cw

Create 7z Password Archive

  • Change x in x.7z to the desired archive name
  • Change CHANGEME in -pCHANGEME to the desired password
sudo apt install 'p7zip-full'
7za a 'x.7z' -p'CHANGEME'

oathtool

  • x is a secret without &digits=6
sudo apt install 'oathtool'
oathtool --totp -b 'x'

Remove EXIF data

sudo apt install 'libimage-exiftool-perl'
exiftool -all= *.* -overwrite_original
2)
EFI file to boot and in the case of (quirky) InsydeH2O UEFI implementations, add to SecureBoot trust; doesn't matter if SecureBoot is enabled or not
3)
Spinesnap
4)
defaults,discard
5)
if grep reports nothing, use whatever is reported instead
6)
modesetting has a 4K RB resolution without any settings on Xorg
7)
GpuTest's fur ring doesn't render right, RS's NXT client's splash screen is gray
8)
HD6000 series and lower, and non-SI HD7000 series
9)
see modinfo -p amdgpu
10) , 11)
uncheck; included in Fanboy Ultimate List
12)
Removes the first security-set-pass since this needs to be set ahead of time from firmware settings
13)
personally tested fine on several Acer and Dell computers
14)
useful for reducing amount of bandwidth over cables, particularly in-case of unstable 4k@60Hz set-ups
/var/www/wiki/data/attic/distros/ubuntu_desktop.1571745036.txt.gz · Last modified: 2019/10/22 07:50 by Sean Rhone