Shallow Thoughts : : linux

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

Sun, 12 Jul 2026

A Linux-Based Video Player Appliance

[Screenshot of MPV Remote: First row: back, play, forward icons, and a slider with a time signature; Second row: Volume down, Trash, Volume Up icons, and a slider for volume; Below that, Playing: buf623.mp4; At the bottom, a Folder icon on the left and a Power icon on the right.] Our MP4 player box died. It was a little cheapo device that reads video files (mostly ripped from CD) off an SD card or flash drive, then plays them on the TV over HDMI.

We've had a couple of them, and they're not great: the user interface is terrible, the playback is sometimes laggy and doesn't always have good audio/video sync. But they're cheap, they do play videos, more or less, and they're easy to drive from an infrared remote. On the other hand, I've also read about how this sort of device is often riddled with malware. That's maybe not a huge risk because we don't give them access to our network, but still, it seems like a bad idea.

"Let's use a #RaspberryPi as our media center", I said. "It'll be so much better than those cheap MP4 players. And I'm sure there are options for training an IR remote, or maybe a way to use a phone as a remote." Little did I know what I was getting into.

Read more ...

Tags: , , , ,
[ 15:46 Jul 12, 2026    More linux | permalink to this entry | ]

Sun, 28 Jun 2026

Overriding Emacs' Broken Bookmark Position Code (Updated)

(Note: I've updated this post: see the solution at the end.)

Emacs has a useful function called bookmarks, where you can make short names for files you visit often.

But bookmarks has one terrible misfeature: it also remembers your position in the file.

That sounds like a good thing, right? But the problem is that the bookmarks system only records these positions sporadically. So it's easy to get stuck on a position you were editing months ago.

For example: I have a bookmark for the file where I keep track of appointments and other calendar entries. But lately, every time I open this bookmark, it opens it with the cursor positioned on September 24. That's three months away; its not the part of the file I'm interested in right now.

Read more ...

Tags: ,
[ 13:09 Jun 28, 2026    More linux/editors | permalink to this entry | ]

Sat, 13 Jun 2026

Video Streaming from Linux

As part of a set-top video project, I looked into streaming. Just local streaming: we have a fileserver in one part of the house, running Linux, and the set-top box by the TV (also running Linux though that part is less important); how can I stream a video from the fileserver and play it using mpv on the set-top box?

I thought that would be a dead simple question to answer. But there's surprisingly little related to that that shows up in Google's increasingly broken web search, and what I found in the actual documentation for various programs I tried didn't work.

TL;DR It turns out I probably won't be using this, because it's actually much easier just to mount the fileserver's video directory with sshfs and pretend the video files are local files. Still, I'd been curious about how to do video streaming, and I did find several ways to do it. So here's what I learned.

Read more ...

Tags: ,
[ 14:18 Jun 13, 2026    More linux | permalink to this entry | ]

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