FUSE / CUSE signal handling: The very gory details

First: If you’re planning on using FUSE / CUSE for an application, be sure to read this first. It also explains why I didn’t just take what libfuse offered. Overview This is a detour from another post of mine, which dissects the FUSE / CUSE kernel driver. I wrote this separate post on signal handling [...]

Linux CUSE (and FUSE): Why I ditched two months of work with it

Introduction If you’re planning to use CUSE (or FUSE) for an application you care about, this post is for you. That includes future self. I’m summarizing my not-so-pleasant journey with this framework here, with focus on how I gradually realized that I should start from the scratch with an old-school kernel module instead. Most important, [...]

Octave: Empty plots (after “figure”)

Running Octave 4.2.2 on Linux Mint 19, I got plots with nothing in them occasionally. Solution: Change the graphics toolkit to GNU Plot. Simply put, add ~/.octaverc reading graphics_toolkit(“gnuplot”) and rerun Octave. By the way, for zooming in, right-click the mouse on the first point, and left-click on the second.

systemd: Reacting to USB NIC hotplugging (post-up scripting)

The problem Using Linux Mint 19, I have a network device that needs DHCP address allocation connected to a USB network dongle. When I plug it in, the device appears, but the DHCP daemon ignored eth2 (the assigned network device name) and didn’t respond to its DHCP discovery packets. But restarting the DHCP server well [...]

A VoIP phone at home: The tech details on leaving your phone company

Introduction This is some information and hard-learned wisdom I collected while setting up an Israeli phone number for use with a VoIP phone, so I can accept calls with a regular Israeli phone number and also make outbound calls. Important to note is that I did this without the local ISPs that provide this service. [...]

MySQL, OOM killer, overcommitting and other memory related issues

It started with an error message This post is a bit of a coredump of myself attempting to resolve a sudden web server failure. And even more important, understand why it happened (check on that) and try avoiding it from happening in the future (not as lucky there). I’ve noticed that there are many threads [...]

AudioCodes MP202B hacking notes (Netvision)

This is a no-go These are notes during my failed attempts to turn an old (2011?) Israeli ISP provider’s SIP adapter (MP202B, provided by Netvision) into one that works with any SIP provider. The first step is to get access of its configuration, and that’s exactly where it stopped. Netvision has taken action to prevent [...]

Linux / X-Windows: Which process owns this window?

Once in a while, there’s a piece of junk on the desktop, and the question is who should be blamed for it. The short answer is: $ xwininfo and fetch the window’s ID from the line at the beginning saying e.g. xwininfo: Window id: 0x860000a “xclock” And next, fetch the alleged process ID: $ xprop [...]

Linux: Permanent graphics mode (resolution) on Cinnamon

The goal Quite simple: Set a fixed graphics mode on the computer screen. More precisely, make Cinnamon (version 3.2.6) on Linux Mint 18.1 (Serena) show the desktop with a predefined resolution, no matter what happens. Spoiler: I failed. But I got close enough for practical purposes, and collected a lot of knowledge while trying. So [...]

Making a snapstot of a full Ubuntu / Mint repository on the local disk

What’s that good for? This isn’t about maintaining a local repository that mirrors its original, following along with its changes. The idea is to avoid the upgrades of a lot of packages every time I want to install a new one with apt. Maybe I should mention that I don’t allow automatic upgrades on my [...]