Shallow Thoughts : : linux

Akkana's Musings on Open Source Computing and Technology, Science, and Nature.

Mon, 06 Apr 2026

Blacklisting a Module in the Linux Kernel (in 2026)

As part of a quest to disable the HDMI audio devices that Linux's audio system pipewire is so fond of (about which, more in a separate article), I got the bright idea of blacklisting the snd_hda_codec_hdmi kernel module. (Don't do that; it isn't a good solution because it breaks other things.)

But at least along the way I learned how to blacklist kernel modules, which isn't as simple as the net might make you think.

Read more ...

Tags: ,
[ 11:40 Apr 06, 2026    More linux/kernel | permalink to this entry | ]

Sun, 22 Mar 2026

Controlling Pipewire's Misconfigured Audio Output Sinks

One of the worst breakages from the *grade (I hesitate to call it an upgrade) to Debian Trixie was audio. The old PulseAudio setup — which had been working beautifully for the last several years — was replaced by a new sound system called Pipewire that sits on top of PulseAudio and, well, basically, breaks it.

Recently I decided it was finally time to figure out Pipewire's broken handling of audio output. The main problem: half the time, upon booting, my audio doesn't work, and if I run pavucontrol to see the configuration, I see three different HDMI audio devices as well as the laptop's built-in Intel audio chip. Most of the time my laptop is plugged in to an HDMI monitor, yes — but that monitor has no speakers or other audio hardware, so I basically never want HDMI audio. And in any case there's only one monitor connected, not three.

(And yes, there are occasionally times I might want HDMI sound, like if I want to give a presentation over a projector that uses sound. That has happened to me once in my life, so far.)

So every time I boot, there's a good chance that audio won't work and I'll have to fire up pavucontrol, go to the Output Devices tab, mute all three of the HDMI sinks, unmute the built-in speaker sink, and click the button to make the built-in speaker the default sink. (There's no way to tell what the previous default was: pavucontrol, although it has buttons to set a sink as default, doesn't show what the current default is.)

Read more ...

Tags: ,
[ 16:37 Mar 22, 2026    More linux | permalink to this entry | ]

Tue, 17 Mar 2026

USB Errors in dmesg, Solved

For many years, I've been annoyed at how my Linux computer (a Lenovo Carbon X1, gen 7) fills dmesg with errors every few seconds like:

usb usb3: root hub lost power or was reset
(sometimes it was usb4 rather than usb3, or different but obviously related messages).

It makes it hard to see real messages in dmesg. I thought (NOTE: this was a stupid assumption) that since it said "root hub", that meant it was some kind of bad hardware design in the hub that's built in to the laptop, so I just put up with it.

Recently I complained about it on #linux and someone challenged me to actually try unplugging things to figure out what was actually causing it.

Read more ...

Tags: , ,
[ 09:52 Mar 17, 2026    More linux/kernel | permalink to this entry | ]

Sat, 11 Oct 2025

Split a Multi-page TIFF Into Separate Files

My cardiologist wanted me to wear a heart-rate monitor for two weeks.

I'm still hoping I can get the raw data eventually (the company's tech support promised me it was possible), but meanwhile, the data available for download on the medical portal was a text file plus a large TIFF. It turned out the TIFF had 14 subfiles (which is apparently what you call separate images inside a TIFF). I don't have any viewing tools that will let me easily page through TIFF subfiles, so I wanted to split them so I could step through them easily.

Read more ...

Tags: , , ,
[ 19:51 Oct 11, 2025    More linux | permalink to this entry | ]

Mon, 21 Oct 2024

Fix Ping Permissions in Debian

An upgrade on Debian unstable ("sid") a few days ago left me unable to ping. When I tried, I got ping: socket: Operation not permitted with an additional reason of missing cap_net_raw+p capability or setuid?

Ping worked fine as root, so it was a permission problem.

After some discussion on IRC with several helpful people in #debian-next, I learned two ways of enabling it (but read to the end before doing either of these, since there's a better way).

Read more ...

Tags: ,
[ 12:37 Oct 21, 2024    More linux | permalink to this entry | ]

Thu, 18 Apr 2024

Using Sox Play to Help Learn Guitar

I mentioned last month that I'm learning guitar. It's been going well and I'm having fun. But I've gotten to the point where I sometimes get chords confused: a song is listed as using E major and I play D major instead.

Also, it's important to practice transitions between chords, which is easy when you only know three chords; but with eight or so, I had stopped practicing transitions in general and was only practicing the ones that occur in songs I like to play.

I found myself wishing I had something like flash cards for guitar chords.

Someone must have already written that, right? But I couldn't find anything promising with a web search. And besides, it's more fun to write programs than to flail at unhelpful search engines, and you always end up learning something new.

Read more ...

Tags: , , , ,
[ 20:02 Apr 18, 2024    More linux | permalink to this entry | ]

Sat, 23 Mar 2024

Command-Line Metronome

I mentioned before that I'm taking beginner guitar lessons. Justin recommends using a metronome for some of the practicing, and that makes sense: I notice that sometimes when I practice I try to go too fast, which might or might not be good for learning the chord changes but it also leads to more mistakes and worse chord quality.

There are probably lots of phone metronome apps, but I'm usually practicing near my computer (where I watch the lessons and where I keep all my notes on chords and rhythms for particular songs), so I thought it would be nice to have a metronome on Linux.

Read more ...

Tags: , , ,
[ 18:37 Mar 23, 2024    More linux | permalink to this entry | ]

Thu, 22 Feb 2024

towebhost: a Handy Script for Mirroring Multiple Websites

I maintain quite a few small websites. I have several of my own under different domains (shallowsky.com, nmbilltracker.com and so forth), plus a few smaller projects like flask apps running on a different port. In addition, I maintain websites for several organizations on a volunteer basis (because if you join any volunteer organization and they find out you're at all technical, that's the first job they want you to do).

I typically maintain a local copy of each website, so I can try out any change locally first.

Read more ...

Tags: , ,
[ 16:18 Feb 22, 2024    More linux | permalink to this entry | ]