How to Remove Old and Useless Drivers in Windows

I had a problem where I needed to delete a device driver that had been installed so that I could install a replacement. I found How to Remove Old and Useless Drivers in Windows and the process was roughly:

  • Win + X: Windows PowerShell (Admin)
  • SET DEVMGR_SHOW_NONPRESENT_DEVICES=1
  • Win + X: Device Manager
  • View -> Show hidden devices

You can then look for the old driver and remove it.

BIOS settings for ‘verve’

I went hunting in the BIOS for ‘verve‘ which has a ASUS PRIME B550M-A motherboard and I found I needed to change two settings.

The first setting was Advanced -> CPU Configuration -> SVM Mode = Enabled. This enables AMD-V and allows the CPU to function in a hypervisor.

The second setting was Advanced -> Onboard Devices Configuration -> USB power delivery in Soft Off state (SS) = Disabled. This fixes the problem with the power button not working as discussed here: Earth leakage hack.

Running notepad.exe as Administrator

Man, back on Windows for my new studio computer ‘verve‘. Needed to figure out how to edit C:\Windows\System32\drivers\etc\hosts and that was certainly more difficult than it needed to be.

In the end I used “Method 3” over here to add an “Open in Notepad (Admin)” item to my shell context menu:

  • Open regedit
  • Navigate to: HKEY_CLASSES_ROOT\*\shell
  • Add a new key ‘runas’ under ‘shell’
  • Change (Default) to: Open with Notepad (Admin)
  • Add a new key ‘command’ under ‘runas’
  • Change (Default) to: notepad %1

Setting Konsole title to $USER@$HOSTNAME

First: Settings -> Configure Konsole -> General -> Show window title on the titlebar (checked)

Then: System -> Configure Konsole -> Profiles -> [Default] -> Edit… -> Tabs:

  • Tab title format: %w
  • Remote table title format: %w

Then you need this config and these two shell functions in your .bashrc:

# 2023-12-29 jj5 - if not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# 2023-12-29 jj5 - set the Konsole window title
echo -ne "\033]2;$USER@$HOSTNAME\007" >&2

# 2023-12-29 jj5 - intercept ssh and sudo commands to reset window title on exit:
ssh() {
    /usr/bin/ssh "$@"
    echo -ne "\033]2;$USER@$HOSTNAME\007" >&2
}
sudo() {
    /usr/bin/sudo "$@"
    echo -ne "\033]2;$USER@$HOSTNAME\007" >&2
}

Transferring large files with Salt file.managed

Well, this took me a few hours to figure out.

If you’re going to be transferring large files using file.managed in your salt state, make sure you specify show_changes: False, otherwise salt will start trying to boil the ocean and calculate the unified diff of your enormous files.

The clue that this is the problem you're having is if one of your CPU cores pegs at 100% and your state doesn't apply in a reasonable amount of time (minutes, I guess).

Also you probably want to make sure you're not trying to use your large file as any sort of template. By default file.managed will assume no template, which is what you want for large files that aren't templates. I've never used large files which are templates, but I suspect if you tried that you'd have a bad time.

Chromium bug fixed!

For the past month or so I’ve had this intermittent problem where chromium would start crashing and would keep crashing every time I tried to start it until I rebooted.

Today I ran chromium under strace and straightaway discovered that it was trying to use shared memory in /dev/shm and it couldn’t because there was no space left.

There was no space left because I had PHP’s xdebug writing dump files there. I’ve just disabled xdebug while I’m not using it and after clearing out its old files I can now run chromium again.

I added a note about this to my debugging notes for in case this or something like it happens to me again.