User Tools

Site Tools


distros:opensuse_tumbleweed_gnome

Table of Contents

Information

  • openSUSE 1)
  • Tumbleweed 2)
  • GNOME 3)

Download

DVD-x86_64-Current.iso

http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso

Hashes

Installation Notes

  • EFI/opensuse/grubx64.efi 4)
  • XFS, no separate /home, separate swap partition enlarged to RAM for suspend

Repositories

PackMan

  • Repository Priority: 98
  • Provides extended multimedia support
sudo rpm --import 'http://packman.inode.at/suse/openSUSE_Tumbleweed/repodata/repomd.xml.key' && sudo zypper addrepo --gpgcheck-strict --priority '98' 'http://packman.inode.at/suse/openSUSE_Tumbleweed/packman.repo'

Keybase

  • TODO: I believe this works but needs re-testing; I think the entire repo is unsigned or something weird
  • Repository Priority: 98
  • Provides Keybase
sudo rpm --import 'https://keybase.io/docs/server_security/code_signing_key.asc' && sudo zypper addrepo --gpgcheck --refresh 'http://prerelease.keybase.io/rpm/$basearch' 'Keybase' && sudo zypper mr -p 98 'Keybase'

Software

List

Disable USB Source

sudo zypper modifyrepo --disable --medium-type 'hd'

Update

sudo zypper clean --all && sudo zypper refresh --force --services && sudo zypper dist-upgrade --details --allow-downgrade --allow-name-change --allow-arch-change --allow-vendor-change && sync

Remove

Software

sudo zypper remove --clean-deps gnome-software PackageKit

Locks

sudo zypper addlock PackageKit gnome-software

GNU nano

  • Installs nano
  • Sets VISUAL and EDITOR to nano via environment variable
  • Sets nowrap for current user
sudo zypper install 'nano' && export 'VISUAL=nano' && export 'EDITOR=nano' && echo -e 'export VISUAL=nano\nexport EDITOR=nano' | sudo tee '/etc/profile.d/editor-nano.sh' > '/dev/null' && cat '/etc/profile.d/editor-nano.sh' && mkdir -p ~/'.config/nano' && echo 'set nowrap' | tee ~/'.config/nano/nanorc' > '/dev/null' && cat ~/'.config/nano/nanorc'

General

  • cpupower provides x86_energy_perf_policy
sudo zypper install filezilla keepassxc p7zip-full unar aria2 gimp hdparm nano htop wget irqbalance cpupower

GNOME

rhythmbox gnome-session-wayland libsecret-tools

Packman

  • gstreamer-plugins-libav and gstreamer-plugins-ugly are needed to generate video thumbnails for more media
  • youtube-dl in the past needed ffmpeg to correct DASH containers or something like that
mpv ffmpeg gstreamer-plugins-libav gstreamer-plugins-ugly youtube-dl

VA-API

  • For GPUs using the intel kernel module
intel-vaapi-driver gstreamer-plugins-vaapi libva-utils

Keybase

Wine

  • winetricks is included within the wine package and isn't a separate install
wine-staging libpulse0-32bit
wine-staging-nine Mesa-libd3d Mesa-libd3d-32bit libpulse0-32bit

Tor Browser

torbrowser-launcher

Google Chrome

sudo rpm --import 'https://dl-ssl.google.com/linux/linux_signing_key.pub' && sudo zypper install 'https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm'

Settings

Keyboard Shortcuts

  • gnome-shell --replace doesn't work on Wayland session
gnome-terminal
bash -c "secret-tool lookup 'keepass' 'default' | keepassxc --pw-stdin ~/'Documents/keepass.kdbx'"
gnome-terminal --command "bash -c 'sudo zypper clean --all && sudo zypper refresh --force --services && sudo zypper dist-upgrade --details --allow-downgrade --allow-name-change --allow-arch-change --allow-vendor-change && sync && sudo rm -Rf '/usr/lib64/firefox/browser/features/'* && sudo wget -O '/etc/hosts' 'https://scripttiger.github.io/hosts-packages/alternates/fakenews-gambling/hosts' && sync && sudo zypper ps -s && read -n '1' -s -r -p 'Done''"

Keys

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

gedit

  • 4 Tab width
  • Insert Spaces for Tab mode

Network

UncensoredDNS

89.233.43.71
2a01:3a0:53:53::

VPN.AC

Nautilus

  • Sort folders before files
  • 4096 MB File Previews

Rhythmbox

GRUB

Modern Standby

  • Fixes suspend on a Dell XPS 13 (9360) 5)
mem_sleep_default='s2idle'

Corsair USB Quirks

usbhid.quirks='0x1b1c:0x1b3c:0x20000408,0x1b1c:0x1b38:0x20000408'
usbcore.quirks='1b1c:1b3c:g,1b1c:1b38:g'

intel_iommu

intel_iommu='on'

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
  • There are other values possible should either of those not work
reboot='efi'
reboot='pci'

i915

  • GuC firmware loading/submission requires PAVP to be enabled in BIOS
i915.enable_fbc='1' i915.fastboot='1' i915.enable_guc='3'

Spinesnap

  • enable_psr at 1 and 3 cause issues 6) 7)
i915.enable_psr='2'

amdgpu

amdgpu.deep_color='1'

radeon

radeon.deep_color='1'

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

  • This prevents systemd from restoring previous backlight value on reboot
  • This is necessary for Power Management
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'

GDM

Disable Wayland

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

GNOME

Root GUI Apps in Wayland

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

Disable Tracker

gsettings set 'org.freedesktop.Tracker.Miner.Files' 'enable-monitors' 'false' && gsettings set 'org.freedesktop.Tracker.Miner.Files' 'crawling-interval' '-2' && tracker reset --hard

Monitor Settings

  • :!: Configure monitor settings fully first through GNOME Settings, including the xorg.conf snippet and custom resolutions
sudo cp ~/'.config/monitors.xml' '/var/lib/gdm/.config' && sudo chown 'gdm':'gdm' '/var/lib/gdm/.config/monitors.xml'

Settings

All-in-one

  • Last updated: 2018/11/03
  • Run this as the currently-used user first and then as gdm
sudo su 'gdm' -s '/bin/bash'
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.freedesktop.Tracker.Miner.Files' 'enable-monitors' 'false' && gsettings set 'org.freedesktop.Tracker.Miner.Files' 'crawling-interval' '-2'

Individual

  • Last updated: 2018/11/03
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.freedesktop.Tracker.Miner.Files' 'enable-monitors' 'false'
gsettings set 'org.freedesktop.Tracker.Miner.Files' 'crawling-interval' '-2'
gsettings set 'org.gnome.software' 'download-updates' 'false'

Hostname

  • Change x to computer name
sudo hostnamectl set-hostname 'x'

KeePassXC

Add Database Password to GNOME Keyring

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

Kernel Options

  • Enables kernel.dmesg_restrict, kernel.kptr_restrict, and kernel.sysrq
  • Sets vm.swappiness to 10 and vm.vfs_cache_pressure to 50
echo -e "kernel.dmesg_restrict = 1\nkernel.kptr_restrict = 1\nkernel.sysrq = 1\nvm.swappiness = 10\nvm.vfs_cache_pressure = 50" | sudo tee '/etc/sysctl.d/99-custom.conf' > '/dev/null' && cat '/etc/sysctl.d/99-custom.conf'

mpv

VA-API Xorg

  • This sets hwdec and vo to vaapi, ao to pulse, and hwdec-codecs to all
mkdir -p ~/'.config/mpv' && echo -e "hwdec=vaapi\nhwdec-codecs=all\nvo=vaapi\nao=pulse" | tee ~/'.config/mpv/mpv.conf' > '/dev/null' && cat ~/'.config/mpv/mpv.conf'
vainfo | grep -e 'Driver version'

VA-API Wayland

  • This sets hwdec to vaapi, vo to gpu, ao to pulse, hwdec-codecs to all, and gpu-context to wayland
  • If using AMD, vaapi-copy may need to be used for hwdec instead
mkdir -p ~/'.config/mpv' && echo -e "hwdec=vaapi\nhwdec-codecs=all\nvo=gpu\nao=pulse\ngpu-context=wayland" | tee ~/'.config/mpv/mpv.conf' > '/dev/null' && cat ~/'.config/mpv/mpv.conf'
vainfo | grep -e 'Driver version'

NetworkManager

  • wifi.powersave can be 2 for disabled, or 3 for enabled
  • :!: Ethernet MAC randomization breaks USB Tethering with iOS/iPhones
sudo mkdir -p '/etc/NetworkManager/conf.d' && sudo -e '/etc/NetworkManager/conf.d/99-custom.conf'
[device-mac-randomization]
wifi.scan-rand-mac-address=yes

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

[connection]
wifi.powersave=2

Power Management

Notes

  • This expects a laptop with a battery
  • Do not use this for desktops

Testing

  • The following commands can be ran to see if they work on specific hardware
watch -n 0.1 grep \'cpu MHz\' '/proc/cpuinfo'
sudo x86_energy_perf_policy --all 'performance' --turbo-enable '1' --force
sudo x86_energy_perf_policy --all 'power' --turbo-enable '0' --force

Scripts

AC

  • Change the backlight sysfs as-needed (see backlight notes) or remove altogether
sudo mkdir -p '/etc/udev/scripts.d' && sudo -e '/etc/udev/scripts.d/ac-power.sh' && sudo chmod +x '/etc/udev/scripts.d/ac-power.sh'
#!/bin/bash
# AC
echo "$(cat '/sys/class/backlight/'*'/max_brightness')" | tee '/sys/class/backlight/'*'/brightness' > '/dev/null'
x86_energy_perf_policy --all 'balance-performance' --turbo-enable '1' --force

Battery

  • Change the backlight sysfs as-needed (see backlight notes) or remove altogether
  • Spinesnap's lowest visible brightness is 76 8)
sudo mkdir -p '/etc/udev/scripts.d' && sudo -e '/etc/udev/scripts.d/battery-power.sh' && sudo chmod +x '/etc/udev/scripts.d/battery-power.sh'
#!/bin/bash
# Battery
echo '3750' | tee '/sys/class/backlight/'*'/brightness' > '/dev/null'
x86_energy_perf_policy --all 'balance-power' --turbo-enable '0' --force

udev Rule

  • Requires the above AC and Battery scripts
sudo -e '/etc/udev/rules.d/99-power.rules' && sudo udevadm control --reload
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/etc/udev/scripts.d/ac-power.sh"
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/etc/udev/scripts.d/battery-power.sh"

PulseAudio

SoX Resampling

  • Sets resample-method to soxr-vhq for current user
echo 'resample-method = soxr-vhq' | tee ~/'.config/pulse/daemon.conf' > '/dev/null' && cat ~/'.config/pulse/daemon.conf'

Secure Shell

systemd

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

TRIM

Swap

  • Add discard after defaults for the swap mountpoint 9)
sudo -e '/etc/fstab'
,discard

Service

sudo systemctl enable 'fstrim.timer' --now && sudo systemctl start 'fstrim' && sync && sudo systemctl status 'fstrim' -l

Environment Variables

Timezone

echo 'export TZ=:/etc/localtime' | sudo tee '/etc/profile.d/tz.sh' > '/dev/null' && cat '/etc/profile.d/tz.sh'

Computer-specific

Nightwane

Custom Resolution

Generate Modeline

  • 4k@60Hz CVT-RB
  • Fixes random display glitches
  • :!: This cannot be used on Wayland currently
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 Modeline especially, and the rest as-needed
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

Graphics xorg.conf

intel

sudo zypper install 'xf86-video-intel' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier  "Intel HD Graphics"
    Driver      "intel"
    Option      "AccelMethod"   "SNA"
    Option      "DRI"           "3"
    Option      "TearFree"      "0"
EndSection

amdgpu

sudo zypper install 'xf86-video-amdgpu' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier  "AMD Polaris"
    Driver      "amdgpu"
    Option      "AccelMethod"   "glamor"
    Option      "DRI"           "3"
    Option      "TearFree"      "0"
EndSection

radeon

  • Expects pre-SI GPUs 10)
  • For SI, CIK, and newer GPUs, use amdgpu, along with enabling si_support and cik_support respectively for the amdgpu kernel module 11)
sudo zypper install 'xf86-video-ati' && sudo -e '/etc/X11/xorg.conf.d/99-graphics.conf'
Section "Device"
    Identifier  "AMD GPU"
    Driver      "radeon"
    Option      "AccelMethod"   "EXA"
    Option      "DRI"           "3"
    Option      "TearFree"      "0"
EndSection

Other

  • If using Optimus or some other multi-GPU set-up, add the BusID option
    BusID      "PCI:0:2:0"

Mozilla Firefox

  • Use Disconnect.me strict protection Block List

YouTube HTML5

Settings

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: 2018/05/07
rm -fv '/tmp/user.js' && nano '/tmp/user.js'
/******************************************************************************
 * SECTION: Custom Stuff                                                      *
 ******************************************************************************/

user_pref("mousewheel.min_line_scroll_amount", 40);
user_pref("browser.sessionstore.interval", 300000);
user_pref("extensions.pocket.enabled", false);
user_pref("reader.parse-on-load.enabled", false);
user_pref("privacy.popups.disable_from_plugins", 3);
user_pref("network.http.referer.userControlPolicy", 2);
user_pref("extensions.screenshots.system-disabled", true);
user_pref("media.autoplay.enabled", false);
user_pref("browser.tabs.drawInTitlebar", true);
user_pref("accessibility.force_disabled", 1);

/******************************************************************************
 * SECTION: GPU Acceleration                                                  *
 ******************************************************************************/

user_pref("layout.frame_rate.precise", true);
user_pref("gfx.canvas.azure.accelerated", true);
user_pref("layers.acceleration.force-enabled", true);
user_pref("browser.tabs.remote.autostart", true);
user_pref("browser.tabs.remote.force-enable", true);
user_pref("layout.css.servo.chrome.enabled", true);
user_pref("layers.omtp.enabled", true);

/******************************************************************************
 * SECTION: Privacy Settings Overrides                                        *
 ******************************************************************************/

user_pref("dom.storage.enabled",true);

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

Apply Settings

  • Path should report the current user's username, and the text Custom user.js file is present should be visible
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 'user.js'

Extensions

Download

  • 7 extensions
gio open 'https://addons.mozilla.org/en-US/firefox/addon/privacy-settings/versions' && 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'

uBlock Origin

  • Enable Advanced Mode
  • Uncheck EasyPrivacy
  • Uncheck EasyList
  • Check MVPS HOSTS
  • Check hpHost's Ad and tracking servers
  • Check Dan Pollock's hosts file

Custom 3rd-party filters

  • Last updated: 2018/02/07 12)
https://secure.fanboy.co.nz/fanboy-problematic-sites.txt
https://secure.fanboy.co.nz/r/fanboy-ultimate.txt
https://secure.fanboy.co.nz/fanboy-antifacebook.txt
https://secure.fanboy.co.nz/fanboy-antifonts.txt
https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/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
https://raw.githubusercontent.com/ryanbr/fanboy-adblock/master/enhancedstats-addon.txt

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
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
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

Zypper

Find Orphans

zypper packages --orphaned

Remove Package and Deps

sudo zypper remove --clean-deps 'x'

Show Installed Patterns

sudo zypper patterns --installed-only

Folder

ls '/etc/zypp/repos.d'

List

zypper repos --priority

GPG Keys

Check Keys

rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'

Remove Keys

sudo rpm -e 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 -v --all

Xorg Debug

journalctl -e _COMM='gdm-x-session'
gio open ~/'.local/share/xorg/Xorg.1.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

df -hT

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 zypper install 'hdparm'
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 zypper install 'nvme-cli'
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 14)
  • 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
sudo zypper install 'acpica'
sudo cp --force '/sys/firmware/acpi/tables/DSDT' ~/'dsdt.dat'
cd ~ && iasl -d ~/'dsdt.dat'
gio open ~/'dsdt.dsl'
sudo zypper remove 'acpica' && sync

Custom Resolutions

Generate Modeline

  • Use --reduced only for LCD/Non-CRT displays, and only as-needed 15)
  • 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;'

FirewallD

List Active Rules

sudo firewall-cmd --list-all

List Available Services

sudo firewall-cmd --get-service

Reload

sudo firewall-cmd --reload

Add/Remove Service

  • Add --permanent as-needed to allow the rule to persist
sudo firewall-cmd --add-service=x
sudo firewall-cmd --remove-service=x

Add/Remove Port

  • Add --permanent as-needed to allow the rule to persist
  • Change tcp to udp as-needed
sudo firewall-cmd --add-port=x/tcp
sudo firewall-cmd --remove-port=x/tcp

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 zypper install 'p7zip-full'
7za a 'x.7z' -p'CHANGEME'

Remove EXIF data

sudo zypper install 'exiftool'
exiftool -all= *.* -overwrite_original
4)
EFI file to boot and in the case of Acer laptops, add to SecureBoot trust; doesn't matter if SecureBoot is enabled or not
5)
still necessary as of 2018/09/22 on F28
6)
2 is verified working from /sys/kernel/debug/dri/0/i915_edp_psr_status
7)
3 caused some GPU hangs immediately after standby, and 1 had a few black-screen refreshes
8)
the next step down 1 turns the backlight off entirely
9)
defaults,discard
10)
HD6000 series and lower, and non-SI HD7000 series
11)
see modinfo -p amdgpu
12)
not really, but need some kind of date reference
13)
Removes the first security-set-pass since this needs to be set ahead of time from firmware settings
14)
personally tested fine on several Acer and Dell computers
15)
useful for reducing amount of bandwidth over cables, particularly in-case of unstable 4k@60Hz set-ups
distros/opensuse_tumbleweed_gnome.txt · Last modified: 2018/11/03 14:06 by Sean Rhone