Skip to content

SCHOTTY.COM : THE BLOG

2024 POSTS

2024-03-20 SWAY AVAILABLE IN COPR FOR EL9

I found a complete (from what I can tell) repository in COPR that provides sway for EL9.

COPR link

sudo dnf copr enable @sway-sig/epel

2024-02-24 UPDATING ALL PIP PACKAGES

Just discovered a new (to me) tool for managing your python packages installed via pip -- pip-review. In short, to use:

    pip install --user pip-review
    # Automatically update
    pip-review --local --auto --user
    # Manually approve each update
    pip-review --local --interactive --user

Links : Pypi page for pip-review

2024-01-09 AMATEUR RADIO SECTION MASSIVELY UPDATED

Around summer of 2023 I stealthly added an amateur radio section. I had alot that was WIP that was nearly done. Well after many months, I finally got my rump in gear and finished it, cleaned it up, and then expanded upon it rather quickly. Currently its on the sidebar/hamburger menu. I am likely going to have it moved around a bit, but it will have a link where its at. So for the time being do not expect a hard link to anything there to survive for long. Main thing I wanted was to get it online, next will be getting it cleanly slotted in. The scope of the site has grown considerably over the last two decades (almost, original site was up in 2007). If anyone has any design interests, let me know. I can see what I can make happen. Otherwise worst case is it will be merged into my Documentation section.

Currently I have alot of stuff there. The landing page can be broken apart, but as of now it has links to the other pages I host and any specific external sites, such as vendor pages and the like. If there is something missing that would be of interest, send me a message. My rough to-do list is as follows:

  • Cover the main F/LOSS projects on a per task basis. Such as "I want to do FT8. Use WSJTX. I want to do APRS decoding. Use Direwolf." etc.
  • Cover specialty gadgets running on a F/LOSS stack to do nifty radio things. Anything from custom *Pi images to web suites.
  • Custom semi-complicated tasks such as creation and hosting of analog and digital nodes like ... Allstar, YSF room, DMR TG, etc.

The above are in various states of done, from stub documentation with me needing to deliniate things, all the way to done but needs last round of testing. As most regulars here would notice, I tend to upload either in an emergency (ish) situation, where the knowledge needs to be shared now, or whenever I get a bunch to clear off my WIP folder. I suspect most of this will fall in the latter unless I have a pet project that gets done sooner than I anticipate.

Also, Americans hit me up on matrix (@andrew:mmatrix.schotty.com) if you need help getting your Tech tag. This shouldn't be hard if you have any tech or math skills. Since its relatively basic, and is your gateway to the wide world of Ham radio. And opens up where I have been having an absolute blast -- VHF/UHF repeaters.

2024-01-08 MKDOCS-MINIFY-PLUGIN

Found a better cache buster. mkdocs-minify-plugin is the way to do it. Add into your mkdocs.yaml the following into your plugins section:

    plugins:
      - search
      - minify:
      cache_safe: true

Thats it! I removed mention of the other method as it was wonky, more work, and I just flat out hate it. This is much, much, much more elegant, clean, and most importantly, sane.

2023 POSTS

2023-08-30 POLYCHROMATIC RPM ISSUE AND THE RESOLUTION

With my new PC came a fresh install. And the fresh install, a re-awakening to some of the quirks with a clean install for my setup. Currently it appears there is a friendly argument over how to handle RPM signing keys. The resolution is either to brute force things, wait for a proper fix globally, or one by one deal with the nonsense in whatever way is appropriate.

I choose the following method for PolyChromatic, as it seems to be the consensus of what the devs are doing themselves and recommending. Thus undoing it for the proper fix is easier. I also add my slight touch of tweakage.

  1. sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/hardware:/razer/Fedora_$(rpm -E %fedora)/hardware:razer.repo
  2. sudo rpm -e gpg-pubkey-d6d11ce4-5418547d
  3. sudo dnf install --nogpgcheck polychromatic

Lastly my touch is to edit /etc/yum/repos.d/hardware:razer.repo to have the following parameter set to 0:

gpgcheck=0

Do remeber this last mod, as I am unaware of how anyone using OBS to handle their repo is capable of pushing .repo file updates out. Copr may, but now that I think of it, don't think so either.

RERFERENCES:

2023-07-27 GITEA ISSUE RESOLVED

A recent update from 1.19 -> 1.20 went haywire -- due to an unbeknownst to me config change.

The change is simple. Stop service/container, then edit your app.ini to move the [server] section APP_DATA_PATH=xxx to be in a new section, [lfs], as PATH=xxx

Old:

[server]
APP_DATA_PATH=/data/gitea

New:

[lfs]
PATH=/data/git/lfs

Github comment thread

2023-07-15 SITE CLEANUP

As I am getting rid of alot of mention to several outdated repos prior to removal, I purged some content here that referenced them. If there is something that you require/need/want that is no longer present, hit me up via email or matrix to get the information. Frankly this was, sofar, all RHEL7 and F20-F32 related things. If you are running RHEL7 on your workstation still, you are already aware of how to do various things, and God save you if you are still running Fedora 32 or older.

Also the keen eyed may have noticed the amateur radio section. This is in flux but the jist is to get useful information there and then start populating it with radio specific instructions or notes on getting it to work with GNU/linux (likely a heavy focus on RHEL and Fedora, with a splattering of SuSE tossed in too).

2023-05-19 PODMAN DRAMA, SIMPLE FIX ??

Updated my home podman server a few days ago, and of course rebooted to make dealing with all the container files updating be less of an issue, and its been up and running for a while -- lets just do a fresh boot.

Well, something broke podman. I saw several posts around github on the podman and systemd repos about the error code 139. Said to relabel -- its SELinux at fault (no AVC denials, but ok). So I did the

    sudo restorecon -R -v /mnt/storage/podman

Still no dice, but getting now on the container another error, 125. Ok lets see if how I am doing it is busted somehow, systemd. Yep, my old startup scripts worked fine. Except one. Hated the fact I had a shorthand image to pull. Ok. Lets explicitly state it. Fine. Ok, lets edit the unitfile. IT WORKS!!

So the fix, or at least second half of the fix is to blow out the image to include docker.io or wherever its coming from

    lscr.io/linuxserver/smokeping
    docker.io/itzg/minecraft-server:java17-graalvm-ce

Hope this helps.

2023-03-19 QUICK NOTE ABOUT BNET VIA WINE

So its been an ongoing issue with Blizzard shipping a funny qt dll with Battle.net and not woring properly (without a fix) for a while now. Here is my fix, albeit a bit forced, but a fix nonetheless.

So this comes in two stages, a shell script that fixes ALL the installed BNet agents and then launches BNet. And then the .desktop entry to execute it. And yes, I am intentionally leaving certain things in there for troubleshooting purposes. Eagle eyed readers will note them. If you are uncertain what I am talking about, don't worry.

Adjust paths accordingly, notably where your wine stuff resides. And blow out the full path everywhere, I shortened things with ~/...., this will be a source of problems otherwise.

So here is the shell script, placed in the Battle.Net folder:

#!/bin/bash

BNET_PATH="~/Games/wine/battlenet_syswine/drive_c/Program Files (x86)/Battle.net/"
BNET_WINEPREFIX="~/Games/wine/battlenet_syswine/"

cd "$BNET_PATH"
for i in $(ls -d Battle.net*/ | sort);
do
  echo "Checking $i installation :"

  setfattr -x user.DOSATTRIB ./"$i"platforms/qwindows.dll &>/dev/null

  if [ $? -eq 0 ]; then
    echo Fix applied to $i
  else echo "No need to fix $i"
  fi
done


echo "Starting Battle.net via System Wine."
cd "$BNET_PATH"
WINEPREFIX="$BNET_WINEPREFIX" wine "$BNET_PATH/Battle.net Launcher.exe"

And here is the battlenet-syswine.desktop entry, placed in ~/.local/share/applications/:

[Desktop Entry]
Type=Application
Name=Battle.net System Wine
Icon=~/Games/wine/blizzard_games/battlenet.png
Categories=Game
Exec=/usr/bin/bash "~/Games/wine/battlenet_syswine/drive_c/Program Files (x86)/Battle.net/startbnet.sh"

2022 POSTS

2022-11-18 QUICK NOTE ON FLATPAK GTK THEMES

Since I keep having to search the intarwebs for the way to install and apply a GTK3+ theme for Flatpak applications, I figured the best cheat sheet is one that is shared.

  1. Install the theme

    flatpak install org.gtk.Gtk3theme.Adwaita-dark
    
  2. Apply the theme

    flatpak --user override --env=GTK_THEME=Adwaita-dark
    
  3. Profit!

Other commands of note:

To grant permission to your user themes:

    flatpak --user override --filesystem=$HOME/.themes

2022-11-10 WINE FIX FOR BROKEN BATTLENET CLIENT

A recent-ish patch to Blizzard's Battlenet client has broken launch via wine. The fix is quite simple. Close all applications running inside the prefix. Then in a terminal head over to the following directory:

/BNET_PREFIX/drive_c/Program Files (x86)/Battle.net/Battle.net.13835/platforms

And then issue the following command:

setfattr -x user.DOSATTRIB qwindows.dll

You should then be able to launch successfully Battlenet.

2022-09-28 PYTHON ISSUE AND ITS RESOLUTION

After using pipupgrade to update my userinstall packages, there was an error. Not fatal, but an error nonetheless.

If you see :

    /usr/lib/python3.9/site-packages/requests/__init__.py:87: RequestsDependencyWarning: urllib3 (1.26.12) or chardet (5.0.0) doesn't match a supported version!
    warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

you found my issue, and thus the solution. The fix is as unintuitive as ridiculously easy it is :

    pip install -U --user requests

2022-09-21 ZDL PLUS GZDOOM FLATPAK

As I have been having, and others packages too, issues with gzdoom 4.8.x being very finicky about focus, audio, and not crashing, I decided to give the flatpak a whirl -- works great.

Now the fun part is getting zdl to work with it. Pointing your sourceport at flatpak binary or whatnot will not work. But what does is pointing it at a shell script that invokes everything.

First, save the scropt below:

#!/bin/envi bash
flatpak run org.zdoom.GZDoom %1

Second, chmod +x it.

Third, in zdl goto the "General Settings" tab -> "*" button to add and name an item -> Name it something appropriate such as "GZDoom Flatpak" -> for the file point it to where you saved aformentioned script.

You should be all set. Happy hacking & happy dooming!

2022-08-07 EVERQUEST MAPS VIDEO

Added a video showing how to add fully featured custom maps to Everquest.

Link

2022-07-03 trusdx FIRMWARE UPDATES ON FEDORA 36+ VIDEO

Added a video detailing how to update the firmware on a trusdx radio on Fedora 36.

Link

Youtube

2022-06-18 F35 -> F36 UPGRADE NOTES

I just finished up with doing the upgrade from Fedora 35 to 36 via dnf. Things, overall, were rather smooth, however, there were a few issues that I ran into.

  • openrazer needed to be removed and reinstalled. The upgrade did not like something there. I did previously (think in the F33->34 upgrade) change the repo file to be using the RELEASEVER variable. That didnt help things out

  • I needed to reinstall after the upgrade polychromatic as the application's tray applet was totally borked. A 'dnf reinstall polychromatic' did the trick.

  • For the first time, all my python userinstalls just worked out of the box, yay! This is a victory as I no longer need to keep track of what I installed and keep track of things for the upgrade in 6mo.

  • I had old, and I mean old, packages that are no longer usable. Nblood was one of them. I have been slowly working on a old school FPS copr, but I haven't gotten to this one yet. The old copr has since been removed (so no cheating with snagging that person's srpm).

  • In my case, a 80GB root partition ( / ) is apparently too small to have more than one kernel installed and do the upgrade. Genuinely surprised. dnf did indeed warn me that I was a few GB short, but still wtf do I have installed that eats up so much space? I specifically have a separate /home partition to keep the OS stuff a bit simpler to manage. Post install grunt work I suppose.

Anyway, not much to say, which is a good thing. Still need to finish migrating my RHEL systems to RHEL9. Some are still on RHEL7. On this note, I did have to migrate a CentOS 7 VPS to RHEL 8, and the convert2rhel and leapp tools did work pretty darn well. Zero issues outside of Linode having a fit with my RHEL kernels out of the blue. That took a while to resolve. I like my SELinux too much to allow for anything less than enforcing. And FWIW, if you are not aware, RHEL cannot upgrade a LUKS partition. Not sure about other distros, whether it be Fedora or SLE or OpenSUSE. But RHEL8->9 failed on one laptop that is using LUKS for the /home partition. Not the worst thing in the world, but annoying nonetheless.

2022-03-16 POTENTIAL FIX FOR EAC FAILURES IN PROTON

Apparently a number of software developers have botched the setup for Linux EAC support. Thankfully the solution is simple. The step that the keen eyed folks have discovered as the problem is Valve's step 3 :

Once that's done, download the EAC SDK and find the Linux library (\Client\Assets\Plugins\x86_64\libeasyanticheat.so) for the SDK version integrated with your game, rename it to easyanticheat_x64.so, and add it to your depot next to the Windows library (EasyAntiCheat_x64.dll)

So, there is where the problem lies, the .so is in the wrong place! The fix is to symlink it to the correct location, not move. This will preserve things during an update. There are a few interesting cases where the game has multiple .exe's and the wrong one has the linux .so, in which case symlink it to the other .exe location's folder.

Here is the Reddit thread that has some of the edge cases and specific locations that the windows binaries are that incorrectly are missing the .so file.

Sharing as I am unsure this will not be a short term issue.

2022-03-02 PROTONUP-QT

Discovered a new way to manage Steam Proton versions, along with Boxtron, Luxtorpeda and Roberta too! I went with the Flatpak of Protonup-QT. Works great with the rpm of Steam, with the caveat that although the permissions allow for both of the Valve data installations, Lutris, and Heroic, since I use a custom path (separate LVM drive pool), I needed to use Flatseal to add the directory to the allowed folders.

ProtonUp-Qt Flathub Page

ProtonUp-Qt Github Page

Flatseal Flathub Page

2022-02-21 VELOREN SERVER RETURNS

After literally giving up on my pathetic attempt at automating things in 2020, apparently most of my issues with sanely containerizing things have been resolved with the host's migration earlier in 2021 to RHEL8. Podman 3.x supports docker-compose now. The official docker-compose file works perfect, with the only modification needed being the volume mounts (containing the selinux flag of course).

The server can be found at shadow.schotty.com. Hit me up on matrix (#veloren:matrix.schotty.com) if you have any issues or want to party up.

  • Installation Page - Do use the airshipper launcher as that is the official method for keeping updated and launching the game

  • Airshipper Flatpak - I am using this to play, and have had zero issues on RHEL8, Fedora 34, and Fedora 35. If you are a linux gamer, this should be your installation method if you value simplicity and ease of effort.

2022-02-21 GITLAB REMOVED

Due to its resource heaviness and deluge of spam accounts, I have migrated things elsewhere and removed the server. Once things are squared away on the configuration side, the replacement will be made public.

2022-02-18 ROOTLESS PODMAN

Getting rootless podman running is not difficult on EL7/8. Here is the quick and dirty.

First you need to create a usernamespace value. When researching this, I noticed the docs from Red Hat stated for RHEL7 to use one set of values, and I had already setup on another RHEL8 machine another, higher (), value. Take your pick, as the docs do not specify anything else.

RHEL7:

sudo -s
echo user.max_user_namespaces=28633 > /etc/sysctl.d/userns.conf
sysctl -p /etc/sysctl.d/userns.conf

RHEL8:

sudo -s
echo user.max_user_namespaces= 127869> /etc/sysctl.d/userns.conf
sysctl -p /etc/sysctl.d/userns.conf

For me on RHEL8.4 this was all.

However, on RHEL7.9 I did not have entries for the namespace remapping. Here is how to fix that. For each user create the same line in each file.

echo user1:100000:65536 | tee /etc/subuid /etc/subgid
echo user2:100000:65536 | tee /etc/subuid /etc/subgid
grep -e user /etc/sub*id

Now you should be able to as non root:

podman run --name hw hello-world
podman rm hw
podman rmi hello-world

If that does not work, check that you have the namespaces setup correctly and the remapping files are listing that user.

2022-01-30 CSGO + FEDORA 35 FIX

There is a bug an older supplied library from CSGO to fail. The fix is to make the system one the one that CSGO uses. Place this in a shell script in your CSGO directory (steamapps/common/CSGO) and make it executable, then run it. Or you can run each line individually. I like the script idea as I know what I did in case I need to undo it.

#!/bin/bash
sudo dnf in gperftools-libs
cd bin/linux64
mv libtcmalloc_minimal.so.0 libtcmalloc_minimal.so.0.bak && mv libtcmalloc_minimal.so.4 libtcmalloc_minimal.so.4.bak
ln -s /usr/lib64/libtcmalloc_minimal.so.4 libtcmalloc_minimal.so.0
ln -s /usr/lib64/libtcmalloc_minimal.so.4 libtcmalloc_minimal.so.4

That's it!

2022-01-29 PROTONUP

Protonup is a slick tool that allows for far more easily managing your GE-proton prefixes.

To install:

    pip3 install protonup --user

Then set your install directory:

    protonup -d "~/.steam/compatibilitytools.d/"

Then you can do any of the following, amongst more:

    protonup                # Will update to the latest GE-protonup
    protonup --releases     # List available wine_releases
    protonup -t 6.5-GE-2    # Install 6.5-GE-2 release
    protonup -r 6.5-GE-2    # Remove 6.5.2-GE-2 release

2022-01-29 AMATEUR RADIO SECTION INBOUND

In the near future, I will be adding a section for amateur (ham) radio, with the focus on GNU/Linux. I am interested in getting to the point where I can take submissions on how various things are handled in the Freedom OS Loving World (tm) for various tasks on the various radios (qrp, ht, and base station). More details when I make some progress. This is not a primary focus for my spare time ATM, but things are coming ranging from writeups on doing things on the radios I do have, to certain individuals' submissions of how things work on their radios. My rough roadmap is to:

  1. Writeup on things I own
  2. Generate online schematics for devices I have the schematics for or have designed.
  3. Collate my knowledge here
  4. Writeup on things my colleagues/friends own
  5. Get a submission system implemented
  6. Take outside submissions

2022-01-29 DDGR

Well I found a slick little tool that I had to share.

ddgr. Quote from github page:

ddgr is a cmdline utility to search DuckDuckGo (html version) from the terminal. While googler is extremely popular among cmdline users, in many forums the need of a similar utility for privacy-aware DuckDuckGo came up. DuckDuckGo Bangs are super-cool too! So here's ddgr for you!

Unlike the web interface, you can specify the number of search results you would like to see per page. It's more convenient than skimming through 30-odd search results per page. The default interface is carefully designed to use minimum space without sacrificing readability.

A big advantage of ddgr over googler is DuckDuckGo works over the Tor network.

ddgr isn't affiliated to DuckDuckGo in any way.

2022 01-10 ELDER SCROLLS ONLINE VIA WINE

ESO runs rather well in wine, however there are a few things that must be done to get it to run, but run flawlessly.

First you want to use a patched wine, such as Glorious Eggroll's wine releases. Personally, I just grabbed his lutris build and use that. These releases are identical in functionality to his proton builds, but made for standalone use rather than as a proton compatibility tool.

Second you will need to Thawte CA root certificates installed on your system. If you are on Fedora or RHEL, the following script will do the job:

#!/bin/bash
# This script is for EL/Fedora based systems.
# This will install the Thawte SSL primary root CAs.
# Adjust as necessary for alternate distros.

# Get pems
wget -O thawte_Primary_Root_CA.crt https://www.thawte.com/roots/thawte_Primary_Root_CA.pem
wget -O thawte_Primary_Root_CA-G3_SHA256.crt https://www.thawte.com/roots/thawte_Primary_Root_CA-G3_SHA256.pem
wget -O thawte_Primary_Root_CA-G4_DSA.crt https://www.thawte.com/roots/thawte_Primary_Root_CA-G4_DSA.pem

# Copy files to crt dir and refresh ca-cert
sudo cp *.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

# Update routine for Debian
# sudo cp thawte_Primary_Root* /usr/share/ca-certificates
# sudo dpkg-reconfigure ca-certificates

I placed this script in my ESO wine prefix and ran it from there. Although, technically it can be run anywhere. You need to get the certs, fix the name (as done in the wget command above), and put them in the correct location. On Red Hat distributions, it needs to be in "/etc/pki/ca-trust/source/anchors". The source for my data had the last bit for Debian based distributions.

Once that is done, you can fire this up via the aforementioned patched wine.

2022-01-10 SOME i3WM VOODOO

So I recently got back into playing a few MMO's that I haven't touched in a good many years, such as ESO and EVE. With ESO in particular, I was forced to create a few tweaks to use it smoothly in i3-gaps.

Put simply the window would start in floating mode and dislike getting out of the way. If I set the window to minimize to tray things were just as bad as the tray icon was un-interactable. So here comes a few tweaks to both my i3 config and the way I made my .desktop file.

Firstly I added the following to my ~/.config/i3/config file

for_window [class="bethesda.net_launcher.exe"] floating disable

That fixed the floating problem. Now to how to load it up and fix its title, as "Launcher" is kinda vague.

To do this I fixed my .desktop file to fire up a shell script instead of the direct wine command. That wine command is now in the shell script below:

#!/bin/bash

# Start eso
WINEPREFIX="/home/andrew/Games/wine/the-elder-scrolls-online-tamriel-unlimited/" /home/andrew/Games/wine/wine_releases/lutris-ge-6.21-1-x86_64/bin/wine64 "/home/andrew/Games/wine/the-elder-scrolls-online-tamriel-unlimited/drive_c/Program Files (x86)/Zenimax Online/Launcher/Bethesda.net_Launcher.exe" &

# Wait a bit
sleep 3

# Fix title bar
xdotool search --onlyvisible --pid `pidof Bethesda.net_La` --name "\a\b\c" set_window --name "ESO Launcher"

All good now. Hate having to jury rig things, but I suppose its what it is.

2021 POSTS

2021-07-02 PKEXEC PLUS i3

I noticed, but finally got around to fixing, that i3 doesn't fire up any authentication mechanism for running an application as root. And RHEL/Fedora don't do the gksu thing. The way it's supposed to be done is via pkexec. Which fails since, in my case, the helper agent isnt running. Here is the fix:

  1. Install polkit-gnome

    sudo dnf install polkit-gnome

  2. Edit i3 config to have it start on launch

    exec --no-startup-id /usr/libexec/polkit-gnome-authentication-agent-1

With those in place you can start an application as root:

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY APPNAME

Replace APPNAME with, of course, your application of choice. You can also alias this in .bashrc, as that will simplify having to hammer that out each time.

alias pkexec="pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY"

2021-06-28 REMOVAL OF PLEX REPO

Due to the fact I no longer use, nor plan to ever use Plex, I am removing the repo. It is currently just being robotically kept up to date (I presume) at this point anyway. If you wish to have my scripts, feel free to hit me up over on Matrix (@andrew:maxtrix.schotty.com).

2021-06-02 PIPEWIRE BUG?? HERE'S THE FIX

So a few weeks back, Fedora released pipewire-0.3.26-2. Well this caused me grief, so I downgraded. Decided after a bit of no further updates to update again and see if the issues still persisted. Indeed they did...

So what issues you ask. Glad you asked. That would be the rather minor issue of NO DEVICES FOUND!!!

So to ensure that you have pipewire fully installed, you will need to install:

pipewire.i686
pipewire.x86_64
pipewire-alsa.i686
pipewire-alsa.x86_64
pipewire-gstreamer.x86_64
pipewire-jack-audio-connection-kit.i686
pipewire-jack-audio-connection-kit.x86_64
pipewire-libs.i686
pipewire-libs.x86_64
pipewire-pulseaudio

If you are prompted for conflicts with regards to pulse, jack, or alsa, you will need dnf to allow erasing.

To fix things, you will want to:

sudo mv /etc/pipewire /tmp
sudo dnf reinstall pipewire.{x86_64,i686} pipewire-alsa.{x86_64,i686} pipewire-gstreamer.x86_64 pipewire-jack-audio-connection-kit.{x86_64,i686} pipewire-libs.{x86_64,i686} pipwire-pulseaudio
systemctl --user enable pipewire pipewire-pulse
systemctl --user restart pipewire pipewire-pulse

The above should resolve things.

Source

2021-04-09 MPSYT CLI MUSIC AND VIDEO PLAYER

Found mpsyt and I love it. However, installation was not smooth. And for whatever reason, the fix is easy and NOT in the release or dev branches.

Sigh.

So here's the fix.

First install the python packages

pip3 install --user git+https://github.com/mps-youtube/mps-youtube.git
pip3 install --user youtube-dl dbus-python pygobject

Second we need to fix two python files that need one line added and fix the indentation on the rest of the code block. These blocks are easily found as there is a comment block stating that its a fix for an mpv change.

If you installed as above the files should be in the following location

cd ~/.local/lib/python3.9/site-packages/mps_youtube

So now comes to fixing the borked parts of code. So in the file mpris.py we need to fix near line 224. And change the code block to be:

                if 'data' in resp:
                    if resp.get('event') == 'property-change':
                        self.setproperty(resp['name'], resp['data'])

And that entire try: code block should now look like:

try:
            observe_full = False
            self._sendcommand(["observe_property", 1, "time-pos"])

            for line in self.socket.makefile():
                resp = json.loads(line)

                # deals with bug in mpv 0.7 - 0.7.3
                if resp.get('event') == 'property-change' and not observe_full:
                    self._sendcommand(["observe_property", 2, "volume"])
                    self._sendcommand(["observe_property", 3, "pause"])
                    self._sendcommand(["observe_property", 4, "seeking"])
                    observe_full = True

                if 'data' in resp:
                    if resp.get('event') == 'property-change':
                        self.setproperty(resp['name'], resp['data'])

                except socket.error:
                    self.socket = None
                    self.mpv = False

And the second file is going to be players/mpv.py. The code block will begin at line 187. Fix it to be:

                    if 'data' in resp:
                        if resp.get('event') == 'property-change' and resp['id'] == 1:
                            if resp['data'] is not None:
                                elapsed_s = int(resp['data'])

And the whole try: code block should now look like:

try:
                observe_full = False
                cmd = {"command": ["observe_property", 1, "time-pos"]}
                s.send(json.dumps(cmd).encode() + b'\n')
                volume_level = elapsed_s = None

                for line in s.makefile():
                    resp = json.loads(line)

                    # deals with bug in mpv 0.7 - 0.7.3
                    if resp.get('event') == 'property-change' and not observe_full:
                        cmd = {"command": ["observe_property", 2, "volume"]}
                        s.send(json.dumps(cmd).encode() + b'\n')
                        observe_full = True

                    if 'data' in resp:
                        if resp.get('event') == 'property-change' and resp['id'] == 1:
                            if resp['data'] is not None:
                                elapsed_s = int(resp['data'])

                    elif resp.get('event') == 'property-change' and resp['id'] == 2:
                        volume_level = int(resp['data'])

                    if(volume_level and volume_level != g.volume):
                        g.volume = volume_level
                    if elapsed_s:
                        self.make_status_line(elapsed_s, prefix, songlength,
                                              volume=volume_level)

So that should do it. If you have run mpsyt once prior, we need to remove the cache file:

rm ~/.config/mps-youtube/cache_py_*

Now you should be able to fire up mpsyt and view/listen to your heart's content. Take note of the fact that you may need to set a few options to non-defaults. And then to view a video (example is mine on RPM creation):

To enable non-music hits in your search queries:

set search_music False

To query:

/fedora redhat rpm creation basics

To narrow things down by user:

user theschotty

To play a specific hit:

1

2021-04-06 QUICK MOVE & RENAME COMMANDS

After trying to recall the exact way I used to manipulate a bunch of stuff that was in numerous subdirectories that I wanted to rename and put into ONE folder for its category (photos), I figured for posterity I would post the rough scheme here. Plus anyone who wants to modify it for their own needs, it's there now.

  • move all files in subdirectories to the root folder
find ./ -name '*' -exec mv -v {} ./ \;
  • rename them all stripping a string and replacing it with another
for i in *OLDSTRING*; do mv "$i" "${i/*OLDSTRING/NEWSTRING}"; done

2021-02-28 DKMS BUILD FOR ALL KERNELS

I created a simple script that will allow for creating for all installed kernels, the DKMS module(s).

Here is a sanitized version:

#!/bin/bash

#Module name
MODULE=modname
MODULE_VERSION=1.2.3

for KERNEL_LIST in /boot/vmlinuz-5*
  do
  KERNEL=${KERNEL_LIST:14}
  dkms build $MODULE/$MODULE_VERSION -k $KERNEL
done

The module name and version can be found in /var/lib/. The subdirectory will be the module name, and inside will be the various versions present.

For example:

# pwd
/var/lib/dkms/openrazer-driver
# ls
2.8.0                                  kernel-5.10.15-200.fc33.x86_64-x86_64
2.9.0                                  kernel-5.10.16-200.fc33.x86_64-x86_64
kernel-5.10.10-200.fc33.x86_64-x86_64  kernel-5.10.18-200.fc33.x86_64-x86_64
kernel-5.10.11-200.fc33.x86_64-x86_64  kernel-5.8.14-200.fc32.x86_64-x86_64
kernel-5.10.12-200.fc33.x86_64-x86_64  kernel-5.8.15-201.fc32.x86_64-x86_64
kernel-5.10.13-200.fc33.x86_64-x86_64  kernel-5.8.16-200.fc32.x86_64-x86_64
kernel-5.10.14-200.fc33.x86_64-x86_64

2021-02-14 FEDORA PLUS AMDVLK

Getting AMDVLK on Fedora 33 (or F32 for that matter) is not difficult, but is not as straightforward as it used to be.

Firstly, you will need to add in the copr repo from one of the main devs so the package is present. After that, you will need to do the not so obvious part -- set the default ICD, as autoselection for whatever reason gets broken.

    sudo dnf copr enable tkov/amdvlk
    sudo dnf install amdvlk-vulkan-driver

Pick a Vulkan driver, mesa

    echo export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json >> ~/.bashrc

or AMDVLK

    echo VK_ICD_FILENAMES=/usr/share/vulkan/implicit_layer.d/amd_icd.x86_64.json >> ~/.bashrc

Thats it. If you dont force the other, your preferred Vulkan driver will be used. Forcing is as simple as:

    VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd.x86_64.json appname
    VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json appname

Or for Steam

    VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd.x86_64.json %command%
    VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json %command%

Not hard, but not the most straightforward. If you are interested in seeing who provided your driver:

    VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd.x86_64.json vulkaninfo | grep -e "GPU id"
    VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json vulkaninfo | grep -e "GPU id"

The output will say if you are using RADV (mesa) or not (AMDVLK). Here is a snippet of what happens with my Rx590 when queried as such:

$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd.x86_64.json vulkaninfo | grep -e "GPU id"
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
        GPU id = 0 (Radeon RX 590 Series)
GPU id : 0 (Radeon RX 590 Series):

$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json vulkaninfo | grep -e "GPU id"
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
        GPU id = 0 (AMD RADV POLARIS10 (ACO))
GPU id : 0 (AMD RADV POLARIS10 (ACO)):
$ 

I hope this is of some help for anyone interested in using AMDVLK for games that actually benefit from it (Path of Exile). That said, most titles are just fine with RADV, and its edge cases that need or have a notable performance gain with going AMDVLK at the moment. But it is nice to have options.

2021-02-07 REPLICATE PIP USERINSTALLS

So you wish to replicate your pip userinstall on another or new machine. Simple! On your machine that't got everything to be replicated:

    pip freeze -U > pip-userinstalls.txt

Then you can import that file in the following fashion:

    pip install -U -r pip-userinstalls.txt

Thats it! Take note though, that you may need some systemwide packages from your repo(s). In most of my cases I did.

2021-02-03 MPOW USB BLUETOOTH PLUS FEDORA

Getting this to work was not the difficult part -- figuring it out was. Here is what you need to do.

First you will need to head on over to the download page and pick the Bluetooth USB Adapter, then download the Linux driver.

Next, unzip the contents and :

sudo cp mpow_BH519A_driver+for+Linux/20201202_LINUX_BT_DRIVER/rtkbt-firmware/lib/firmware/rtl8761bu_fw /usr/lib/firmware/rtl_bt/8761b_fw.bin
sudo chown root:root /usr/lib/firmware/rtl_bt/8761b_fw.bin
sudo chmod 644 /usr/lib/firmware/rtl_bt/8761b_fw.bin

Then finally you can insert the usb device into your computer and start connecting BT devices.

2021-01-28 UPDATE ALL PIP USERINSTALL PACKAGES

Well, mostly for me to remember, but there is a quick and dirty way to update all your pip userinstalls :

pip freeze --user | cut -d'=' -f1 | xargs pip install --user -U

Thats it. This will update just your userinstalls and leave the systemwide stuff alone. The latter is important as mucking around with systemwide installations can include those from your packages. Breakage WILL occur. Learnt that via a playground VM a while back.

2021-01-22 FIREFOX SCREEN TEARING

I finally ironed out why I have been having a nasty screen tearing issue in i3 -- it was Firefox. I noticed it was only Firefox, and searched to come up with the about:config parameter.

layers.acceleration.force-enabled = true

Fixed the parameter to the above, and no more tearing. Although, at least recently, for Ubuntu folks, there have been a need in some cases for more parameters. But on F33 + Xorg + i3-gaps I haven't needed anything more. Perhaps an issue related to the build environment or libraries -- don't know for certain. But in my case this bug has been squashed!

2021-01-17 ADDED WORLD OF WARCRAFT SECTION

I finally collated all the images for WoW Classic into its own section. Depending on how Blizzard decides to handle doing TBC Classic, I will add or modify this accordingly. But as of now, there are:

  • Flight points and their faction connections
  • Levelling Talent Builds
  • Personal Talent Builds

If you wish to contribute, contact me and I can add the tree and any associated notes. Suggestions for additional content are welcome here as well. Future plans do include farming spots, noteworthy locations, noteworthy gear, and dugeon/raid related information.

World of Warcraft Classic Documentation

2021-01-09 PYTHON MENUS & ROFI

So I decided for giggles to create an old school C64/Atari era disk menu for a few terminal apps I am constantly using. That took me a half hour or so to figure out and get working. Why not use rofi? Well, rofi had a coniption since a lib a bunch of my application use couldn't see the terminfo from Alacritty. Grr. Long story short -- "alacritty --hold -e command" is your friend. Once I did that, I was able to determine the problem and work around things via rofi and even got super lazy and made a i3 keybind ("$mod+Ctrl+Enter alacritty -e menu.py").

So how did I make the menu? There's a really slick python lib, curses-menu, that with really just a few lines of code, slaps a menu together for you. Feed it a title, entries, what to do with each entry, done. In my case its a whopping 23 lines to run one of 6 applications.

And there's technically nothing stopping you from using this as a shell for managing a podman user container(s). I did something similar with a few game servers, the management shell was the login shell for the docker user that the container started up in.

Could also, now that my brain is busy working usefully again, make a menu for common ssl clients. Or go full on and use this as a CLI based Remmina clone for initiating ssh, rdp, or spice remote connections.

Damn, this ain't gonna stay 23 lines for long .... But far more useful.

2020-01-01 REMOTELY CHECKING SSL CERT EXPIRY DATES

Here is a quick and dirty script to handle getting the expiration dates of your servers' SSL certificates. Edit the hostnames to reflect your intended targets.


#!/bin/bash

echo -e 'host1.com\nhost2.com\nhost3.com' | \
  xargs -n 1 bash -c ' \
    openssl s_client -connect $0:443 2> /dev/null | \
    openssl x509 -noout -enddate | \
    cut -d = -f 2 | \
    xargs -I {} echo {} $0 '


This will output:


# ./cert-expiry.sh
Feb  2 14:34:42 2021 GMT google.com
Aug  2 12:00:00 2021 GMT redhat.com
Mar  6 12:00:00 2021 GMT oracle.com
#

2020 POSTS

2020-12-22 KEXEC.SH

OK, I got reminded to share, and not Bogart the very nice kexec script. Here is the contents of what I am using and a link to what I think is my source. It has been a few years now, so forgiveness please!

#!/bin/bash
# Force root
[ `whoami` = root ] || { sudo "$0" "$@"; exit $?; }
latestkernel=`ls -t /boot/vmlinuz-* | sed "s/\/boot\/vmlinuz-//g" | head -n1`
echo "kernel current: $(uname -r)"
echo "kernel target:  ${latestkernel}"
echo ""
echo "Arming kexec..."
kexec -l /boot/vmlinuz-${latestkernel} --initrd=/boot/initramfs-${latestkernel}.img --reuse-cmdline
echo ""
read -p "Press [Enter] key to start new kernel..."
kexec -e

And here is the link to what I do believe is the appropriate credit to my script, Pawel Szaga's homepage:

Link

2020-12-22 I3-GAPS

As I have been absolutely addicted to i3, it's only natural to have wandered over to some of the other tiling wm's and that leads to the minor fork of i3 -- i3-gaps.

All i3-gaps adds is ... GAPS! Yep, gaps between the windows. That's it.

The thing is -- it really adds a lot of cleanliness and very clean and clear delineation between the various windows.

Here is a screenshot of me in the middle of making this post just prior to a kexec reboot, and showing Firefox on another screen.

Screenshot

i3-gaps copr repo

2020-11-21 FEDORA 33 UPGRADE

The upgrade went smoothly. Used dnf to update using the system-upgrade plugin. All I needed to do beforehand was fix my openrazer repo from 32 to 33. I did do some package culling, but none of it was necessary. As this culling happened after I booted into F33. The one thing that was annoying was I did have to reinstall a few python userinstalls.

The quick and dirty. First update system and reboot:

sudo dnf upgrade --refresh
sudo systemctl reboot

Next, pull in the updated packages and reboot to finish upgrade.

sudo dnf install dnf-plugin-system-upgrade
sudo dnf system-upgrade download --refresh --releasever=33
sudo dnf system-upgrade reboot

2020-10-31 WORLD OF WARCRAFT ADDONS UNDER LINUX

Just discovered two new native tools that will help manage and update your addons. Updated in the Battle.Net + Wine page. Both are AppImages, so download them to your system somewhere, mark them as executable, and run!

2020-09-26 WORLD OF WARCRAFT IN GAME SHOP FIX

So, if you have been following my advice of segregating the data from your wine prefix, you may be bitten by this bug in Blizzard's code that only affects GNU/Linux and MacOS users on Wine. The code has a fit when crossing FS types (NTFS causes issues) and hates symlinks.

So there are a few ways to fix this. Firstly, ensure that you are on a filesystem native to your OS.

Next you have a few options for resolving the symlink problem. You can either go into winecfg for said prefix and map a drive letter to the parent folder hosting your game data (so make a "G:\" point to "~/path/to/Blizzard_Games"), or just point to it within the BNet client itself (usually "Z:\" is mapped to "/"). I went with the former on several prefixes and it worked universally. But ensure that you remove your symlinks so that doesn't cause grief.

2020-09-12 FIXING MESSED UP MONITOR ORIENTATION IN GDM

So in a multi-monitor environment, there is the likelihood that your physical monitor layout is not what the GDM's layout is. This can be solved rather simply via GNOME3 and a copy of a file.

So to fix this, log into a user that has sudo rights. Go into GNOME's monitor setup and get it the way you want. Once it is setup, log out, and back in to verify things got saved. If so execute the following command:

sudo cp ~/.config/monitors.xml /var/lib/gdm/.config

Now if you either reboot

sudo systemctl reboot

or restart GDM you should have the layout fixed.

sudo systemctl restart gdm.service

Note that in the latter case, you will lose whatever session you are logged into via GDM (the whole child process thing). Just a word of caution :)

2020-09-12 GIVING i3 A WHIRL

I finally spent an afternoon screwing with configs, and I think it was worthwhile.

i3 in and of itself is not that complicated, but what was somewhat a PITA was tieing all the extras that I have grown used to in GNOME in. I am currently using i3bar and i3status for my top bar. Made a few tweaks to the color scheme. Not that the stock one was bad, per se, but not what I am used to looking at. Sofar in the 5 hours or so, I am pretty much used to the keybinds. So my one fear was accurate - time burnt. But was not in vain.

Eventually when I get everything ironed out, I do plan on a proper guide on at least getting started and a nudge in the proper direction on full-on personalization of the environment as well as a full demo of what I chose to achieve a few tasks that are not stock to i3.

Now, on to the quick and dirty:

  1. Print out the i3 Reference Card or have it handy. This will make things alot easier going forward.
  2. sudo dnf install i3 i3status dmenu i3lock feh
  3. relog and make sure to select i3 as your WM
  4. There should be a quick setup tool that pops up when you login. The only thing you will need to do is pick the Windows/Super or Alt key to be your special key for keyboard commands. I personally prefer the Windows/Super key.
  5. Fire up your favorite editor (if you are unaware, MOD+D opens up on the top bar a run command) and edit ~/.config/i3/config to modify i3, and feel free to reference the i3 manual and find where it details anything you can think of and make the edit. It is advised to modify (towards the end of the config) the i3bar i3status parameter to be "status_command i3status --config ~/.config/i3status/config" so you can make edits to the top bar (i3status) next. To reload the UI it is MOD+Shift+R to reload. Your apps will not die; this is akin to GNOME3's Alt+F2, r, enter combo.
  6. Edit ~/.config/i3status/config (should be a new file) and start with the sample config from the i3status manpage.
  7. Make changes to the i3 & i3status configs as you find things to fix/change/add!

I personally found that deciding what I wanted was the trick. I did add a few custom keybinds, a few lines for the multi-screen setup I am rocking, and finally paring down and fixing the i3status conf from the manpage. Once I get around to putting things together I will have my configs which hopefully will show you how to do anything that isn't blatantly obvious that you may want. But, seriously, %99 of what I wanted to figure out was straight from the manpages. Where I did have to look elsewhere, was for screenshotting things. I ended up using pip to install escotum to handle this as scrot was broken in the F32 repos at the time of my setup and writing this post.

2020-09-05 PODMAN/DOCKER - FIX THE UNABLE TO REMOVE CONTAINER PROBLEM

So, you are thru with a container, and the darn thing wont delete. If you run into an issue as such:

# docker rmi -f 19ffa37f5545
Error: error removing containers [ba2b8667e9f5acbf9eb1001110f868a641eccbbd21f08588373aae095d518055] for image "19ffa37f554577b753067988f5ba902568a4310d1a8c3732a2d4083dfebc1605": could not remove container "ba2b8667e9f5acbf9eb1001110f868a641eccbbd21f08588373aae095d518055": unlinkat /var/lib/containers/storage/overlay/61addcf2552f0ee1f5a5434bd021e1e4c5446047dab8173c00e486d57604ffb9/merged: device or resource busy

The resolution will amaze you at how elusive yet simple it is. Long story short -- you indeed have a hung process that is hanging on to the file, making it impossible to remove. So we need to find that process or processes and kill them. So in the above example we see that there is a specific file that is being referenced. Lets look at whats using it:

# grep -l 61addcf2552f0ee1f5a5 /proc/*/mountinfo
/proc/9986/mountinfo
# kill -9 9986
# docker rmi -f 19ffa37f5545
Deleted: 19ffa37f554577b753067988f5ba902568a4310d1a8c3732a2d4083dfebc1605

Done. In this particular example, I had about a dozen processes all hung on said file. This is the fix. I would look into what file is keeping it locked by a simple :

# ps -f 9986
UID        PID  PPID  C STIME TTY      STAT   TIME CMD
root      9986     1  0 13:29 ?        Ss     0:00 /usr/libexec/bluetooth/bluetoothd

Sometimes a container wants more than it should. Another reason I consider people who disable SELinux and those who do not use it with their containers fools. Why does this container want access to bluetooth? In this case it is a media application, so somewhat sane, but only somewhat. Thankfully SELinux had a complete fit, and also gave me a heads up that this particlar image may be a fun one. And it was.

A cause I have noticed on EL7 hosts happens to be with systemD unitfiles. A misconfigured unitfile can leave things in a slight mess. If you miscreate the unitfile, you may be better off using cron to start up containers on boot. So either learn to create the unitfile correctly, use podman and let it handle it, or just use cron. And yes, cron can be told to start things on boot.

2020-06-22 PYTHON USER INSTALLATIONS

I have been playing around alot lately with flatpak and python and quite liking the fact I can install certain applications and tools without having to redo them (yeah the RPM reinstall trick does help there, but still ...). Now for those that are unaware, just like rpms, normal system-wide python pip installs will go away if you clean reinstall. But like flatpaks, pip installs into the user's home directory do linger. To achieve this its actually simple, and only needs one thing above and beyond done.

Firstly, a modification to your bash_profile will need to be done. Edit ~/.bash_profile and add at the end of your PATH :$HOME/.local/bin if it is not already there (it was for me)

    PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/Applications

Secondly its just a matter of using pip with the user flag set:

    pip3 install --user simple-timebox
    pip3 list --user

When removing a package, you do not add the --user flag, pip will ask and start with user, then hitup the system-wide one.

2020-06-12 MIGRATED FULLY FROM DOCKER TO PODMAN

The transition went smooth once I realized I was a moron. I forgot that if one enables SELinux, make sure that any OCI tool is told about it. That and a few issues with getting the systemd unitfiles done up correctly. That said, very happy with the results. Sofar on my personal server I have everything migrated. Next step is to rebuild Schotty.com in podman when I migrate over to EL8 on that system. Eventually I will have a cheatsheet or a guide on podman slapped up, but until then, its really not much different than replacing the docker command with podman. But doing so does open up a good number of possibilities such as rootless containers. Podman gets the official "Schotty Seal of Approval".

For those interested in what I have done, I migrated from the startup scripts where appropriate. Things that are not appropriate are where I have a boatload of things that need to be done prior to starting the container, such as SSL certs. But Jellyfin, Minecraft, CSGO are all good. For example the following generic ExecStart command should be mutatable to meet your needs if you run into any oddball issues. Note, that I am combining a few things that were normally separated out from my startup scripts into the podman run command, such as removal of the container when done, so a stop/start works. The normal unitfile location is /etc/systemd/system/unitname.service

    [Unit]
    Description=CONTAINERNAME Podman container
    [Service]
    Type=simple
    ExecStart=/bin/podman run --rm --name=CONTAINERNAME --privileged -p 443:443 -v /volume1/:/1:z CONTAINERPROVIDER/CONTAINERNAME:latest
    ExecStop=/usr/bin/podman stop CONTAINERNAME
    [Install]
    WantedBy=multi-user.target

Then all one needs to do is:

    systemctl daemon-reload
    systemctl enable unitname
    systemctl start unitname
    systemctl status -l unitname

Done! Feel free to buzz me for any particular container to use as the base for the podman + systemd tutorial. Otherwise its going to be a boring and easy one like ... MkDocs or mumble.

2020-04-22 SITE UPDATE

I have upgraded the theme (material) from the 4.x tree to the 5.x tree. The mkdocs.yml file needed a wee bit of reworking. So bear with me as I hunt down changes that are incomplete. Sofar only a few things are left, and should be taken care of within the next week.

2020-03-12 SSHFS + FSTAB

SSHFS is potentially the most useful thing that *BSD & GNU/Linux offer me that makes using Windows nearly impossible. It allows for mounting of a remote filesystem via ssh.

Inside a standard display manager such as KDE or GNOME is rather simple, but what about via fstab? Not intuitive, but easy nonetheless.

You will need to know 3 things, and have setup keyless logins on the remote filesystem you wish to mount. You will need to know:

  • Remote location to mount.
  • Your local userid number
  • Your local groupid number

To find the local userid number and groupid nuber, you can use your distro's GUI tool for managing users, or via the CLI as follows:

    $ grep andrew /etc/passwd
    andrew:x:1000:100:Andrew Schott:/home/andrew:/bin/bash

In this case (on OpenSUSE Tumbleweed), the UID is 1000, and GID is 100.

To actually mount the filesystem, edit the /etc/fstab file to have the following line, with the appropriate fileds fixed with your information:

    andrew@server_ip_or_hostname:/home/andrew/ /home/andrew/mnt/servername/ fuse.sshfs x-systemd.automount,_netdev,user,idmap=user,follow_symlinks,identityfile=/home/andrew/.ssh/id_rsa,allow_other,default_permissions,uid=1000,gid=100 0 0

Next we will need to create the mount point if it does not already exist:

    mkdir -p /path/to/desired/mount/point

Then all we need to do to activate this new mount:

    sudo mount -a

Barring any typos, you should have the mount active at the mount point!

2020-03-05 -- EL7: PYTHON 2.7 & SETUPTOOLS ISSUE

THE PROBLEM

There is a new issue thanks to a choice by upstream python devs to deprecate python2, that will potentially cause issues with users of any system using python2 by default, such as EL7. Doing, for example, a "yum update" will yield:

/usr/lib/python2.7/site-packages/pkg_resources/py2_warn.py:22: UserWarning: Setuptools will stop working on Python 2
************************************************************
You are running Setuptools on Python 2, which is no longer
supported and
>>> SETUPTOOLS WILL STOP WORKING <<<
in a subsequent release (no sooner than 2020-04-20).
Please ensure you are installing
Setuptools using pip 9.x or later or pin to `setuptools<45`
in your environment.
If you have done those things and are still encountering
this message, please comment in
https://github.com/pypa/setuptools/issues/1458
about the steps that led to this unsupported combination.
************************************************************

Not kosher.

THE FIX

So the fix is to do the following to ensure that this doesn't recur:

    sudo pip2 install --upgrade --force-reinstall setuptools==44

REFERENCES:

2020-03-05 -- SITE UPDATE

  • Updated mkDocs
  • Updated mkDocs-material theme
  • Since the cumulative updates fixed some mobile issues, now I have re-enabled the table of contents for the blog, making links work again (YAY!).

I have to give a very vocal thanks to the mkDocs team. As they have made getting sites off of Wordpress and Drupal a breeze, albeit with a bit of work rejiggering a few things around to get them just so. But thanks to mkDocs, I have a blog and docs site that is blazing fast, been blazing fast for 5 years give or take, and is virtually hack-proof (I'm sure theres a vulnerability somewhere). But with the ability to not need anything beyond an httpd daemon, and a few python modules, the site is about as lean as one can reasonably get.

Thats only possible with a static site generator like mkDocs. (Honorable mention to Jekyll and Hugo)

If there is any interest in how this is done on my end, feel free to hit me up and I can make a page on how to do a site similar to what I have here.

2020-02-24 -- GNOME3 LOCKSCREEN FIX

Well for the umpteenth time in the last couple years, the GNOME3 lockscreen went awol on me. Super+L didn't work, nor did any of the myriad of xset commands, nor did a few reboots. I decided to dig around and found two gsettings commands that either or both are needed to fix things. Although I think the first one was all that was needed. I also think that a performance tool such as Feral's GameMode is the culprit each time. I will investigate and update this post accordingly if there is any further notes regarding this issue.

    gsettings set org.gnome.desktop.lockdown disable-lock-screen 'false'
    settings set org.gnome.desktop.screensaver lock-enabled true

2020-02-22 -- FIREFOX CARET MODE

I didn't know this was a thing until I searched for a solution to the mysterious cursor on all videos in Firefox. Turns out, this mode is the problem. Solution was simple:

  1. Enter about:config into the URL bar. Accept responsibilities for your actions.
  2. Search for "accessibility.browsewithcaret". And set it to false.
  3. Same for "accessibility.browsewithcaret_shortcut.enabled", which also needs to be set to false.

Thats it. Figured I would share, since this did annoy me to no end, forcing me to DDG a solution.

2020-02-20 -- BASH ROOT TIP

I have this in a few of my scripts scattered about here (yeah, need to clean up the scripts most likely), but figured I would blatantly post it here (ctrl-f magic).

So if you have a bash script that somewhere needs root permissions (as the chum I assisted was dealing with some SSL certificates that needed importing into a container -- thats root), all you need to do is the following:

    #!/bin/bash
    [ `whoami` = root ] || { sudo "$0" "$@"; exit $?; }

Thats it, thats what needs to be up top. This does, however, make a hard dependency on sudo, but, frankly I have that on EVERY system anyway. I mean every system.

Happy hacking!

2020-02-14 -- DE-MAINSTREAM BROWSER PLUGIN

Cool new browser plugin for removing the mainstream media links in YouTube is available here.

The addon is amazing!

2020-02-11 -- USB OSCILLOSCOPE RECOMMENDATION

I have recently procured a new USB o-scope, a Hantek 6022BL. I can say, after having compiled OpenHantek6022, I love this thing. Good for basic hobby stuff up to troubleshooting real stuff. I bought this in an attempt to avoid dropping real cash on a Rigol 1054z and unlocking it all the way to the top end via the Rigol Key Generator

The OpenHantek software works as I would expect. No issues with the 6022, as that family is well supported (reason I bought it). Opensource FTW!

2020-01-18 -- NEW FEDORA GRUB & SEAMLESS BOOTLOADER

Apparently since Fedora 29, depending on how you installed things, the new GRUB2 behavior regarding the seamless boot has been deployed.

Nice thing, it works quite nicely.

Bad thing, it means no menu in %99 of the situations post-EFI or post-BIOS, and straight into the default GRUB2 boot target. Meaning, making a kernel flag change (different runlevel, tweak a kmod parameter, etc) is impossible --- OR IS IT???

In the link below, there is a number of steps to get around this. Simply put, on all systems that have one of the following situations occur, the menu will be displayed as one would expect it to as to how the grub config states:

  • Unclean shutdown
  • You hammer the shift or F8 key at BIOS/EFI logo screen
  • You press ESC at the right magical moment (presumably while riding a unicorn)
  • The grub parameter has been removed (details on that later)

This is fine and all, but took me a while to dig up, and that was mainly thanks to someone posting it on Reddit. Here is a quick cheat sheet on what you need to do to get an old style grub menu again:

    sudo grub2-editenv - unset menu_auto_hide
    sudo grub2-mkconfig -o /etc/grub2-efi.cfg ## For EFI
    sudo grub2-mkconfig -o /etc/grub2.cfg ## For BIOS

Done.

2020-01-15 -- FEDORA FIREFOX CODEC FIX

Not sure how far back this applies but apparently alot of changes behind the scenes have been occuring that I have been oblivious to.

One of which is a massive simplification of getting Firefox to like various websites that need external codecs.

    sudo dnf install ffmpeg-libs

Thats it. Restart Firefox if need be. Any site that needs a codec to work should. Obvious exceptions are DRM laden garbage. But even still, alot of that garbage still will work (usually due to baked in support thru the browser)

2019 POSTS

2019-10-26 -- LUXTORPEDA

Discovered a very slick way of integrating native GNU/Linux ports of games into Steam where they normally wouldn't exist, such as GZDoom for DooM (1993), Yamagi Quake II for Quake II, etc.

The process is rather ingenious -- add the Luxtorpeda compatibility layer into Steam and force the game to use that. Voila, done!

This works for:

Quick Installation, from above links:

  • Quit steam

  • Enter in the following

    cd ~/.local/share/Steam/compatibilitytools.d/ || cd ~/.steam/root/compatibilitytools.d/
    curl -L https://github.com/dreamer/boxtron/releases/download/v0.5.3/boxtron.tar.xz | tar xJf -
    curl -L https://github.com/dreamer/roberta/releases/download/v0.1.0/roberta.tar.xz | tar xJf -
    curl -L https://luxtorpeda.gitlab.io/luxtorpeda/master/luxtorpeda.tar.xz | tar xJf -
    
  • Start steam, and force the game to use appropriate compatibility layer. Each repsective tool has the compatibility list on their github page.

2019-10-20 -- ADDED SRD5e

Added the AD&D 5e SRD data to my site. I used the data from a git project that converted all the SRD material to markdown.

SOURCE: https://github.com/Umbyology/OGL-SRD5

2019-08-19 -- TMPFILES.D TIP

OpenSuSE for whatever reason doesn't have a default /tmp clear on reboot. So to make this happen, create a file:

    sudo vim /etc/tmpfiles.d/clear-tmp.conf

And plop this into it on the first line:

    R /tmp/*

After rebooting, anything in /tmp should be nuked. Hope this helps anyone looking to get this issue sorted out.

2019-08-15 -- OPENSUSE FIX FOR USING SIMPLIFY3D

Sent in a ticket a few months back and got nothing from the Simplify3D team that was in the slightest bit useful. After digging around I decided to start fresh. There is a persistent bug that kept nagging me -- no matter what I did, there seemed to be an SSL comms issue that S3D couldn't deal with and would insta-fail on contacting the authentication servers.

After some further digging I almost gave up, but then rather than being generic about the issue, I DuckDuckGo'ed the same string with OpenSuSE in there too. Voila!

The fix is simple -- the SSL cert is named and located somewhere else. So....

     sudo ln -s /var/lib/ca-certificates/ca-bundle.pem /etc/ssl/cert.pem

Thats it. If need be you may after a fresh install, need to run the AddUserPermissions.sh script, as this will fix any permissions issues. Then all you need to do is run the LaunchScript.sh script and you should see a login screen. After logging in you should have the wonderful S3D GUI pop up.

Now that it seems CentOS8 should be dropping soon, I may be moving back there from Tumbleweed, but eh. Why fix what isn't broken? Things sofar have been rather simple. Aside from this and a few oddball scripts that were VERY RH centric, no issues. Well aside from the identical problem RHEL/Fedora/AnythingNotUbuntu seems to have with Last Epoch not working for sh!t... But that isn't SuSE's problem :)

REFERENCE LINK

2019-08-12 -- CLASSIC WORLD OF WARCRAFT NAME RESERVATION AND SERVER SELECTION

Well I am reserved and planning on making Grobbulus (RP-PVP) my Classic WoW home. Hope to see all of you there! FOR THE HORDE!

Schotty's Grobbulus Toons

2019-07-08 -- MATRIX SERVER, AMDGPU PAGE UPDATE, & MORE

  • Finally got off my duff and setup a matrix server. Connection details are in the hamburger menu or in the lefthand menu. Using synapse for the backend homeserver and Riot.im for the client. Recommend Riot as it supports video conferences, which are currently setup to replace mumble/discord/teamspeak voice channels.

  • The amdgpu + Fedora page has been updated. I have been dealing with a weird dpms bug in every DE/WM that when you lock the screen or manually tell the screens to sleep, they wake up ~5s later, and after an hour or so cause the system to hard lock. After several weeks of in depth analysis, I found that (sofar a week strong) adding the kernel flag of 'amdgpu.dc=0' to disable the DisplayCore patches. There are reprocussions, but none matter to me (DisplaySync being one of them as well as some things such as audio over hdmi). Sadly the kernel.org page is sparse on useful information for this at this time. But dri.freedesktop.org does have some useful things, albeit a bit awkwardly setup for normies like us. The FDO page linked has the entire kernel parameter list, how to manipulate, and what you are manipulating. I suppose if you do find you need to disable the DC code as I have, you may want to see here if there might be something that will break and then at least you could weigh the pros/cons of usage/non-usage of the DC code. My attitude right now is to disable it and periodically test to see if a kernel has fixed the issues with DPMS or not prior to removing the disable flag from grub.

  • Expanding the 3D printing stuff that has been lurking in the shadows, not hidden, but not directly linked from anywhere in schotty.com. My clone prebuild CR10 needs to be rebuilt and I frankly haven't had the time. Only super small prints come out ok, larger prints than a teacup saucer (actually not even that large) in the x/y axis fail, and anything larger than 2" fail hard in the z axis. Well, I splurged and picked up a Lulzbot Mini 2 and it is immaculate. Worth the money to have a working printer out of the box. And it plays perfectly with OctoPrint (via an OctoPi image on a Pi3B). Only beef I have is lackluster mounting options for a camera and light bar. But I have managed :D As such, I will be doing writeups and stl hosting of anything I design, and creating links to Thingiverse on cool stuff I printed designed by someone else. I do have a few cool ones already, just need to make pics and a dedicated page. The latter here will be easy thanks to mkdocs being a breeze to setup things.

  • Lastly, I would love anyone that has the new Valve Index to give me a hollar one way or the other to let me know how its panned out. If you have a review already up, I can share a link to it here once I have made a decision on whether to fork over the cash or not for a set.

Phew. Alot here. That'll teach me to neglect the blog.... Or not :D

2019-03-21 -- AMDGPU USER NOW

Replaced my NVIDIA with a Radeon RX590. I now understand fully why folks are saying go team red. The setup is the most complicated with the 590 as of right now, and this was far simpler than most other things -- ensure mesa is there, ensure vulkan is there, and make the grub command include an amdgpu force.

I have detailed what was needed in a new guide

2019-02-08 -- SITE REDESIGN

Well, I had to clean the menus up. The docs are now all in a single page and can be accessed via the "Documentation" link above. Still working on the front page not fitting by defult properly on my phone. But thats another battle.

The Documentation page is generated with a script that goes thru all the docs/ folders minus an exclude list (needed to for at least the images directory) and creates the headings and markdown links for me, and is run prior to my deployment script. Nice thing, I can have it point at my markdown files and mkdocs fixes the URL appropriately to the corresponding html page! Of course, I found this out after doing the legwork for converting the link target to an html page ... Never needed that.

Here is the script should anyone like to do something similar.

    #!/bin/bash

    # Some variables to setup the working environment and what not to dig into. Run in scripts directory or reprogram the variable to point to where docs/ is.
    sitedir=$(pwd)/../docs
    exclude=("img/" "Services/")
    link_file=$sitedir/Documentation_Links.md

    # Zero out the new link file
    [ -e $link_file ] && rm $link_file
    exec &> $link_file

    # Recursively go thru the site looking for .md files to create a list and markdown format link.
    cd "$sitedir"

    for category in $(ls -d */); do

        if [[ ! " ${exclude[@]} " =~ " ${category} " ]]; then
            echo
            category_title="${category//_/ }"
            echo -e "# **"${category_title%/}"**"
            for filename in $(ls "$category"*.md); do
                # Strip slash from filename        
                link_text="${filename##*/}"
                # Strip .md
                link_text="${link_text%.md}"
                # Change underscore to space
                link_text="${link_text//_/ }"
                echo -e "* ["$link_text"]("$filename")"
            done
        fi
        echo
    done

2019-02-07 -- BACK TOYING WITH OPENBSD

Yep, the title says it all -- I am back to using OpenBSD again, after a really long time (think 4.5 was the last release I touched...). Expect some guides, primarily on how to do things that have little analog to how Red Hat does things, much less GNU/Linux in general.

Planned topics are things that I had to revisit the OBSD docs for and include:

  • Setting up ports
  • Package management
  • Kernel manipulation (this is a big difference from GNU/Linux)
  • Updating the base system (again different from GNU/Linux)

I am currently using 6.4 on one system, my trust old eeePC 10 incher. I do plan on putting this on ALL my older systems, as a way to breathe more life into them, force my self to use the hardware laying around or get rid of it, and most importantly to reacquaint myself with OpenBSD. I do miss the good ole' days of using OBSD on all my servers and edge devices, and I look forward to seeing how OBSD fares compared to RHEL in a number of areas. Including:

  • Virtualization
  • NFS
  • HTTP
  • Identity management
  • Network gateway

Anyway, off to poking with my new toy! Updates and guides will be inbound. I will create a new OpenBSD section for them. Thinking that the final menu structure will end up being:

  1. RHEL & Fedora
  2. GNU/Linux
  3. OpenBSD
  4. Wine
  5. Cheatsheets
  6. Services

2019-02-06 -- sshuttle

Found a really slick and simple vpn that uses ssh to handle all the routing - sshuttle

All you need is shell access to the remote system and you are golden. To use, install the sshuttle package.

  • EL7

    sudo yum install sshuttle
    
  • Fedora

    sudo dnf install sshuttle
    

Then all you need to do is the following command:

    $ sshuttle --dns -r user@remote-host 0/0

Done!

2019-01-06 -- CLEANUPS AND RAMBLINGS ON....

No particular preference as to what is more important, just a big ole pile of things done, being done, and will be done.

  • Removed anything related to the Linux Counter, as the project has died at the beginning of Dec 2018. Will re-add if there is a revival in the project
  • Overhauled the MikroTik RouterOS page. Got my butt in gear starting the automation section of the HTTP TLS certificate generation, completing the self-singed manual method. Automated solutions involving LetsEncrypt have existed for a little while now, and I will likely use that and phrase it so using another reputable CA vendor is trivial.
  • Added a Terraria dedicated server
  • Re-Going over anything DXVK related, some things are still valid, others not. Specifically Path of Exile and BattleNet. Generally speaking, anything wine related is best served via Steam Play (Proton) or Lutris (both of the aformentioned work perfectly in Lutris with the DXVK .94 and tkg-3.21 wine staging build). Simply put, when things are hard, the automation they provide are wonderful and when they are easy its really easy.
  • Rebuilding the CSGO server script. Its a little clunky, and is missing a few game modes. Plus it would be nice (see if I get there anytime soon) to have the ability to do a one-off map load and if it works out save it as another game mode.

2018 POSTS

2018-10-11 -- CLEANUPS AND NEW PAGE

  • Added a Wine+Twitch page
  • Cleaned up Wine+Path Of Exile page
  • Added LVM Cache notes to the LVM Cheatsheet.

Feel free to plug any ideas that would warrant a good writeup.

New on the itinerary would be mailcow, as it seems another viable alternative to GMail and a good option if not interested in using MailInABox. Plus it is INTENDED to be used as a set of docker containers. So if one's workflow is doable %100 inside of docker, this is a great option. I do fall in that category at home, and can deploy all services via docker on all my servers (personal and managed). So this is an interesting topic.

Along the docker line, I am keen on getting my feet wet on Fedora Modular server. So I will be looking to spare time to play with that and see if it can handle the beating it will need to endure to replace my RHEL7 infrastructure at home.

2018-05-19 -- NEW PAGES

Added a few pages:

  • Git SSH repo
  • Oracle VirtualBox Cheatsheet
  • Ubuntu Tips & Tricks

2018-05-17 -- SITE REORGANIZATION PT II

Cleaned up.

Main changes:

  • Removed outdated (or soon to be) information
  • Blog is now landing page
  • All site resources are together

Todo:

  • Testing internally combining pages together, and using the Table Of Contents feature to be the subsection selector.
  • Paid services section

Goal is nearly met -- simplification to the point I no longer have to tell anyone ever where something is. I am hoping that I can get away with "Red Hat Products", "General Linux", and "Wine" to be it for the entirety, with room for "BSD & Others" a possibility. Again the internal testing may make this moot, as its just a TOC entry. One issue I have found is the various themes for mkDocs handle the TOC differently, so I may have some extra leg-work ahead on this one. Thats what programmers are for :D

2018-05-16 -- SITE REORGANIZATION

Reorganized the site so the categories are less, and allows for more distinct categories present. Site information eventually will be cleaned up and become the one page, and the blog will be the landing page. That will not happen today, but the ball has begun.

2018-05-06 -- SITE UPDATES

Uploaded a large number of new writeups, from general linuxy things, to dockerizing Factorio, to using xmrig to mine monero!

2018-01-10 -- MAILINABOX UPDATE ISSUE AND RESOLUTION

The latest update (v.25) from 15 NOV 2017 has some issues with updating z-push. The fix as of the last month or so has been to do a git pull that has a few workarounds. Here are the following steps to fix the issue. When run, you will need to re-answer a few questions (domain, IP, etc.) as the original answers are in the mailinabox_old folder now. Just answer them correctly, and you will be fine.

    sudo -i
    apt-get update
    apt-get dist-upgrade
    apt-get install git

    cd /root
    mv mailinabox mailinabox_old
    git clone https://github.com/mail-in-a-box/mailinabox.git
    cd mailinabox
    bash setup/start.sh
    bash setup/start.sh # the first one might fail due to bug #1298, run it again to make it succeed

Here is a link to the thread that has this very fix

2017 POSTS

2017-12-09 -- GNOME3 FIX LOCK SCREEN NON-FUNCTIONAL

Sometimes the upgrade from F26->F27 breaks the GNOME3 lockscreen. Whatever the cause is, here is the proper fix:

    gsettings set org.gnome.desktop.lockdown disable-lock-screen false

2017-12-05 -- KSPLICE UPDATE

Loving it! Works great on my two Fedora 27 installs. Only downside is it doesn't appear to do NVIDIA modules :(

2017-11-21 -- KSPLICE -- FREE TO FEDORA & UBUNTU USERS

Ksplice, Oracle's kernel patch tool for avoiding reboots to take in kernel updates, is apparently available to Fedora and Ubuntu users, and free now. Not sure for how long, but it is now!

http://www.ksplice.com/try/desktop

2017-11-20 -- DOMAIN UPDATES

Made a few changes to things:

  • Updated the site to also include a widget for Discord. This was easy, but Discord is still a secodary at best method of chat for us.
  • Working on widget for Mumble. Some php bugs to iron out still.
  • Working on getting things sanitized for public dissemenation on Gitlab & Github. Stay tuned for future announcements here. Mostly game server related.
  • Rewriting ALL of my docker scripts to be cleaner, more portable, and simpler to deploy. My current CSGO and Minecraft containers are on dockerhub. It takes some effort to make work, not unsurmountable, but more than it should, or want.
  • Some site documentation cleanup and reorganization. Debating further restructuring.

2017-09-07 -- YUM/DNF TIP

Ran into an update issue on my home server where for some oddball reason, some of the packages that had DRPMs weren't finding the DRPM and not falling back to the RPM. The simple fix thankfully wasn't too difficult to locate, and was in the RHEL7 documentaion.

What needs to be done is simply disabling for that update the presto yum plugin:

  • For EL6, EL7, & AMAZON LINUX

    sudo yum update --disableplugin=presto
    
  • For Fedora

    sudo dnf update --disableplugin=presto
    

2017-07-12 -- DISCOVERED SOME MARKDOWN ERRORS WITH MY SITE

I recently discovered a markdown error, that although worked, made for sloppy markdown, and hence I will classify them as errors. Slowly but surely going thru ALL my documentation and cleaning out the problem code.

My error? Blockcode. I was using the 3 tildes surrounding all code. An indent of 8 spaces works better, including in numbered lists better, and looks cleaner while editing.

2017-07-04 -- HAPPY FOURTH OF JULY! AND SOME REPO NEWS.

Happy Fourth to my fellow Americans!

As for the news, I have been working on a complete overhaul of packages. Some packages can go, as more popular venues (EPEL, NUX) have them now. Others will likely go for other reasons. For example, one that sadly has already gone is Lutris. DooMsDaY is another fun one, as the new version 2.xx that has been recently released (amazing update), I cannot get it to package well (its got to do with dengine's weird build system). If there is no progress I will just leave DooMsDaY at the 1.x branch and keep it there, since it does work.

Very soon I will be un-advertising everywhere the EL6 and old Fedora repos, and focus only on the latest EL and Fedora going forward. Shortly after that I will push an update for the repo-release that will change the server it points to, as I am in progress of migrating to a new dedicated repo.schotty.com. After some time I will remove all packages, sans the updated repo-release file, on the current server. I would suspect this "flip of the switch" shall occur around new years, as that should be enough time for me to finish all the repo cleanup, push, and allow others to catch up.

Also, I am working on gettting several engineering and science related packages going. But literally every single package is going to be a good deal of work to make functional. None of them have been simple or fast. Updates, going forward once I get them completed (if I can).

2017-06-24 -- LUTRIS, 64-BIT PREFIXES, BLIZZARD APP == SUCCESS!

As everyone should know, I am a huge fan of Crossover, and the Codeweavers gang. But, the one thing that they seem to still have alot of work on is the whole Windows world migrating to x64. Wine has had alot of changes to help facilitate that, and to be fair, only a few things are missing, thanks to the Codeweavers team working their asses off.

But as all things open source, competition makes things quite interesting. Lutris actually has some scripts that will easily make everything I have tried work with only one fix (change the Wine version to 2.8 to workaround some incompatibilities). This is great. All my fellow penguins out there know that if you had an XP prefix, you were getting a nastygram at every Blizzard App launch that you will be S.O.L. very soon. Well this script gets things working in a Windows 7 x64 prefix.

I made a video on how to do a x64 install of Path of Exile in Crossover. I generally would prefer to push them, but as Lutris is so much more than just a pretty Wine wrapper (all things gaming in fact), I am debating internally of whether I should adopt both going forward (ESO is looking to be nearly fixed in Wine, but not CX yet, etc). I will look at how much I actually need Wine for as time goes on. Frankly its pretty much Blizzard titles, ESO, PoE. Maybe if I can be forced to care, FF14 (the game sucks hard in my opinion due to boring questing and needing to research out what each class is and does since they had to reinvent that wheel). But honestly, with Albion Online, Shroud of the Avatar, Minecraft, CSGO, and the upteen million (it seems) titles that are native, the whole heretic purchasing is all MMO now. Pretty nice and bad at the same time. One would have though the MMO side would have been the first... Oh well. On to more important things than pontification of the inane.

2017-05-24 -- WODIM

Wodim is a CLI based iso image writer that I found as a recommendation for RHEL7 server, since brasero is not included in any of the repos. Since, these days this seems kind of backwards, as the only burning I do is FOR servers ... I need something.

On RHEL/Fedora you can install wodim by:

  • RHEL 7

    sudo yum install wodim
    
  • Fedora

    sudo dnf install wodim
    
  • To list your recording devices:

    sudo wodim --devices
    
  • To record an iso (verify, 12x burn speed, eject when done):

    sudo wodim -v dev=/dev/xxx speed=12 -eject /path/to/desired.iso
    

2016 POSTS

2017-05-24 -- New site: MACvendors

Look up your MAC address vendor :D Quite handy when going thru my logs with about a dozen unknown MAC's on my LAN.

Enjoy.

2016-09-27 -- ONEPLUS ONE WOES

Tales of reflashing without explicit GNU/Linux support

THE ISSUE
About a year ago I ran into some corruption issues with my OnePlus One and that issue rendered ADB to have a fit, as did OTA updates, USB mode, and fastboot. Tech support wanted me to use Windows to fix it via a remote desktop session. Needless to say I was not about to let them goad me into going Windows. Well this corruption was abosulutely annoying and I was short on time and willpower to devote much of either into a literal spare device.

Alas I did. Sorta. I figured since I just got this ironed out I would share the ever so pleasant experience in getting this nightmare sorted out. I installed 8.1 onto an old disk and got it up and running long enough to get the thing fixed. If you find yourself in the same boat,below is what you want to do.

FIXING THE BOOTLOADER
1. Download and install the Samsung Drivers for Windows.
2. Reboot afterwards. And yes do reboot, its necessary.
3. Download and install the ADB Installer. Do not need to install the drivers, just ADB and fastboot.
4. Reboot just in case it is necessary. I did. Besides we all know Windows needs to be rebooted every 5min or so :D
5. Plug in your phone. Windows should ask about drivers, if not no biggie. If you do get the dialogue, you can cancel it.
6. Go into Device Manager and find the ADB heading -> The ADB device -> Right Click to the Update Driver Software -> Choose Browse my computer -> Choose Let Me Pick -> Show All Devices -> Have Disk -> Point to where the Samsung drivers were installed.
7. That should get things working again. Once you can copy stuff to the phone, you can reinstall your recovery and OS via fastboot and the recovery respectively.

FLASHING OXYGENOS
Download links are in the forums. You need to grab the build and then the Windows package and instructions. The instructions will add a few details to what I have laid out, but same process.

https://forums.oneplus.net/threads/oxygenos-2-1-4-for-the-oneplus-one.425544/

In my case I went from a broken CyanogenMod 12.1 to OxygenOS 2.1.4. The process was then, once adb/fastboot was fixed, was:

  1. Run from an Administrator mode command prompt "fastboot oem unlock"
  2. Run the patch companion download's batch file to flash the recovery, AllInOne.bat and choose option 2.
  3. Reboot phone and then copy over the Bacon OxygenOS 2.1.4 zip to the phone if its not already there
  4. Reboot phone to recovery and do a cache and data wipe install the bacon zip.
  5. After you reboot into Oxygen and go thru the new device setup song and dance, enable developer mode (Settings -> 6. About Phone -> Tap Build Number a bunch of times until dev mode unlocks)
  6. Turn on ADB support (Settings -> Developer Options -> Usb Debugging

FIXING ADB ON THE LINUX SYSTEM
Now replug the phone into your Linux rig and you should see two partitions pop up, including the drivers partition. Run the ADB fix for linux shell script:

Pre script, as you can see the only device is my other phone:

    $ adb devices -l  
    List of devices attached
    5VT7N15A25000587 device usb:1-2 product:angler model:Nexus_6P device:angler

Post script, and it sees but can't do anything with the phone yet:

    $ '/run/media/andrew/OnePlus Drivers/adb_config_Linux_OSX.sh'   
    android home is exist!  
    config adb ...  
    OK! You can use adb now!  
    $ adb devices -l  
    * daemon not running. starting it now on port 5037 *  
    * daemon started successfully *  
    List of devices attached  
    d6dea608 offline usb:1-1  
    5VT7N15A25000587 device usb:1-2 product:angler model:Nexus_6P device:angler

Accepted the connection on phone:

    $ adb devices -l  
    List of devices attached  
    d6dea608 device usb:1-1 product:bacon model:A0001 device:A0001  
    5VT7N15A25000587 device usb:1-2 product:angler model:Nexus_6P device:angler

Done. Working great now. Would have been nice to know what I needed to do to get this functional on Linux from jump street, as it would have saved me a good 4hrs of my time screwing around with this. I do firmly believe that there was an issue somwhere with an update to the recovery image. The image I have now is much nicer than the one from the factory. And there was a setting that was ticked in CM that allowed for recovery updates. Just that nothing worked. My first stab was to download and install the latest CM13 for bacon and use the recovery to install it. Nope, didn't work. Thats how I eventually stumbled across ADB and Fastboot being borked here. For safe keeping I did back up my recovery files partition so if things go wonky again I am not forced to deal with this level of fun again. And by fun, I mean 6 hours of pure pain of having to touch Windows and screw around with their miserable driver model. And 8.1 sucks golf balls thru a garden hose.

2015 POSTS

2015-08-14 -- RHEL7 OpenVPN IN NETWORKMANAGER

OK, put simply there are issues immediately due to SELinux in getting NetworkManager to connect up to your VPN properly. If you setup your connection and certificates as follows you will have no issues whatsoever connecting as any user.

1.Copy all your certificate files into ~/.cert

2.Check your SELinux context and validate it is appropriate:

    unconfined_u:object_r:home_cert_t:s0

You need to have something like this:

    $ pwd  
    /home/andrew/.cert  
    $ ls -Z  
    -rw-r--r--. andrew andrew unconfined_u:object_r:home_cert_t:s0 andrew.crt  
    -rw-------. andrew andrew unconfined_u:object_r:home_cert_t:s0 andrew.key  
    -rw-r--r--. andrew andrew unconfined_u:object_r:home_cert_t:s0 ca.crt

3.If you need to reset the contexts, issue the following command as root:

    restorecon -R -v /home/$USERNAME/.cert

4.Create a NetworkManager VPN entry with your cert files from the ~/.cert folder.

5.Connect!

Took me a few minutes to understand why the connection was barfing out. Once I noticed some SELinux alerts it dawned on me -- I never set the contexts. A quick DuckDuckGo showed me also, that there is a convenient location to dump all certificates into. Double win!

2015-08-08 -- CU

I learnt something new - cu

Inside the uucp package is a nifty tool that I just picked up on called cu. This is for serial connection management and it works beautifully, and simply. I had a few old machines that I needed to tap into via serial and a friend admin I was with recently mentioned her love of this command. So having a selectively great memory, I gave it a stab.

  1. First get uucp installed. I see that it comes from EPEL on RHEL7.

    $ yum info uucp  
    Loaded plugins: langpacks, nvidia, product-id, subscription-manager  
    Installed Packages  
    Name : uucp  
    Arch : x86_64  
    Version : 1.07  
    Release : 41.el7  
    Size : 2.7 M  
    Repo : installed  
    From repo : epel  
    Summary : A set of utilities for operations between systems  
    URL : http://www.airs.com/ian/uucp.html  
    License : GPLv2+  
    Description : The uucp command copies files between systems. Uucp is primarily  
    : used by remote machines downloading and uploading email and news  
    : files to local machines.
    
  2. Secondly determine your connection parameters. I have a USB to serial hodgepodge of cabling and adapters that I tote around and stash in places useful. So in my case its /dev/ttyUSB0 for the device, and of course each connection has its flow control and bitrate and parity, etc... Know that all. In my case the devices preferred to speak 19200b, 8N1, FC Off (manuals say so). But being hasty I just slapped into the terminal:

    $ sudo cu -l /dev/ttyUSB0 -s 19200
    

And things just worked. For a full reference guide for various settings and such:

http://linux.die.net/man/1/cu
http://www.jann.cc/2013/02/10/the_cu_command.html

2015-08-04 -- RHEL7 + Intel 7260AC Wireless Card

There are known issues with older kernels that cause major issues with the 7260 with regards to power management and the 5GHz spectra. After dealing with a dying i7 IMC issue, I finally could spend time troubleshooting my issues.

Firstly, ensure your router/AP isn't crap. I had that issue regardless of devices and their respective OS's. Once you are sure that there isn't anything dead/dying or just plain flaky, there are a few things that can be done, one of which you have a potential choice as to how to deal with it. Supposedly kernels beyond 3.16/3.17 have this rectified. As we are pegged on EL7 to 3.10, until Red Hat backports the changes we have to deal with it ourselves.

Next, there are several lines we need to put into your /etc/modprobe.d/iwlwifi.conf

Here is how I went, and I will detail what each line means:

  • Not necessarily needed as of RHEL 7.3, newer iwl drivers have cleaned up alot of cuft and bugs. I have found that stock settings are perfectly fine now. Leaving this details present in case someone is locked to 7.0/7.1/7.2 and cannot update to a newer iwl release.

    $ cat /etc/modprobe.d/iwlwifi.conf  
    options iwlmvm power_scheme=1  
    options iwlwifi bt_coex_active=N swcrypto=1 11n_disable=8
    
  • The power_scheme option is to set the power to full bore at all times. The default is to 2 on most installations which is the adaptive mode. This can cause issues with the device going to sleep at rather inopportune moments. Although not necessarily your issue, something to keep note of.

  • The bt_coex_active option is for coexistence of BlueTooth and wireless. They operate on the same frequency range and can cause issues.

  • The swcrypto option is for forcing the cryptography off of the card and onto your system CPU. High workloads

  • The 11n_disable option is where I was referring to a choice. Setting the disable to 1 will force the card into G only speeds. This does indeed work on AC networks just fine, but will limit your connection to 54Mb/s speeds max. Setting this to 8 will not cause that restriction but rather a link aggregation. Here is the information from the module on this parameter:

    $modinfo iwlwifi | grep 11n_disable  
    parm: 11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
    

Once you have made a choice as to what of these option you are going to implement, you can do the following commands (as root) to unload/load the kernel, of course taking the new parameters on reload.

    sudo rmmod iwlmvm  
    sudo rmmod iwlwifi  
    sudo modprobe iwlwifi

Hopefully this information is as useful to you as it was me. This fully rectified my constant disconnections while on AC networks with this card.

2015-07-01 -- New site: CPUBenchmark.net

Found a companion site to the video card benchmark site:
https://www.cpubenchmark.net/

2015-04-05 -- New site: VideocardBenchmark.net

Found a bit back a nifty site for figuring out relative performances of all the video cards out on the market. Posting in lieu of poor memory and assumption I am not the only one interested in this information :D

http://wwws.videocardbenchmark.net/

2015-03-30 -- RHEL7 + NVIDIA DRIVER INSTALLATION

EL & NVIDIA works quite well with the elrepo kmod-nvidia rpms that are in the stable repo.

  1. Install ELRepo http://elrepo.org/tiki/tiki-index.php
  2. Follow the instructions here for normal installs on 7.0 (RHEL or clone) http://elrepo.org/tiki/kmod-nvidia
  3. To install the rpms use the following command:

    sudo yum install kmod-nvidia nvidia-x11-drv-32bit nvidia-x11-drv
    
  4. To finish up, we need to ensure that nouveau is blacklisted and glamoregl is disabled.

  5. The F/LOSS module, nouveau, should automatically get blacklisted, but lets ensure that the RPM did the job:

    sudo grep --color -e nouveau /etc/default/grubGRUB_CMDLINE_LINUX="rhgb quiet nouveau.modeset=0 rd.driver.blacklist=nouveau"
    
  6. Providing it is we can move to dealing with glamoregl. There are several ways to deal with this one, personally I chose to remove it via yum cleanly. The mailing list description is here: http://lists.elrepo.org/pipermail/elrepo/2013-November/002058.htm

  7. To do what I did:

    sudo yum remove xorg-x11-glamor
    
  8. Reboot.

2015-03-21 -- RHEL + MUMBLE

I just dropped RHEL 7.1 onto my main workstation and had to relive and relearn how to install mumble onto it. Here is what you need to do.

  1. Install nux-desktop repo. http://li.nux.ro/repos.html
  2. Enable desktop-optional-rpms for your RHEL flavor.
  3. Install mumble:
    sudo yum install mumble
    

All done, there should be a GNOME 3 entry already. Happy voice-chatting!

    =============================================  
    Package              Arch   Version         Repository                    Size  
    =============================================  
    Installing:  
    mumble               x86_64 1.2.6-5.el7.nux nux-dextop                   3.0 M  
    Installing for dependencies:  
    avahi-compat-libdns_sd  
    x86_64 0.6.31-14.el7   rhel-7-desktop-optional-rpms  33 k  
    celt071              x86_64 0.7.1-8.el7.nux nux-dextop                    61 k  
    protobuf             x86_64 2.5.0-7.el7     epel                         338 k

    Transaction Summary  
    =============================================

2015-03-21 -- RHEL + LibreOffice

LibreOffice is my go-to office tool, and it is not in the standard yum repos. But, all hope is not lost, Red Hat does indeed distribute this. Goto your subscription manager and edit the repos you are subscribed to add in the "optional-rpms" category for your flavor of RHEL:

    $ yum info libreoffice  
    Loaded plugins: langpacks, product-id, subscription-manager  
    Installed Packages  
    Name : libreoffice  
    Arch : x86_64  
    Epoch : 1  
    Version : 4.2.6.3  
    Release : 5.el7  
    Size : 0.0  
    Repo : installed  
    From repo : rhel-7-server-optional-rpms  
    Summary : Free Software Productivity Suite  
    URL : http://www.libreoffice.org/  
    License : (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1  
    : or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and  
    : Artistic and MPLv2.0  
    Description : LibreOffice is an Open Source, community-developed, office  
    : productivity suite. It includes the key desktop applications, such  
    : as a word processor, spreadsheet, presentation manager, formula  
    : editor and drawing program, with a user interface and feature set  
    : similar to other office suites. Sophisticated and flexible,  
    : LibreOffice also works transparently with a variety of file  
    : formats, including Microsoft Office File Formats.