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

xhci_hcd WARN Event TRB for slot x ep y with no TDs queued

What’s this? There’s a chance that you’re reading this because the message in the title appeared (or flooded) your kernel log. This post attempts to clarify what to do about it, depending on how much you want to get involved in the matter. So the short answer: The said warning message is a bug related [...]

USB 3.0 bandwidth efficiency: Looking at real-life DATA bursts

Introduction This post looks at the DATA and ACK packet exchange between a device and an xHCI USB 3.0 controller for the sake of explaining the actual, measured bandwidth that is observed on a BULK IN endpoint. And then some BULK OUT at the bottom of this post, as Bonus II. A certain level of [...]

The ultimate C printf debug line

The simplest way to add printf statements that say “I was here”: printf(“File %s, Line %d\n”, __FILE__, __LINE__); The output is then simply e.g. File bulktest.c, Line 120 So make sure everything is committed into the git repo, and bombard the code with these lines. Compile and run. The is also __func__ (lowercase, or it [...]