-- Leo's gemini proxy

-- Connecting to gemini.omarpolo.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=en

↩ back to the index

Automatic USB Tethering on OpenBSD

Published: 2020-09-21

Tagged with:


Relevant XKCD – #1319

These days, for various reason, I'm using USB tethering very often. Enabling it it's not difficult at all, it as simple as

doas dhclient urndis0

But it's tedious. Especially if you need to do it multiple times per day. I needed something to save me from filling my shell history of dhclient urndis0.

Enter hotplugd(8)!

hotplugd is a daemon that will listen for the attach/detach of various devices and execute a script. It's that simple, and at the same time really useful.

Disclaimer: I don't like to write howtos because the man pages are generally better, and the information in blog like this tends to rot sooner or later. I encourage you to go read the hotplugd(8) man page (it's really short, simple and understandable -- it even has some examples!) and consider this post as a "did you know?"-sort of thing.

hotplugd(8) manpage

With the disclaimer in place, let's continue. The idea is that hotplugd will execute /etc/hotplug/attach and detach script when a device is attached or detached. It doesn't need to be a shell script, any executable file will do, but will stick with a plain old sh script.

When you enable your phone USB tethering, a new device called urndisN is created. So, knowing this, we just need to execute dhclient(8) inside the attach script on the correct urndis(4) devices. Easy peasy:

# /etc/hotplug/attach


case $DEVCLASS in
# network devices
    case $DEVNAME in
        # USB tethering
        urndis*) dhclient $DEVNAME ;;

Remember to make the script executable and to enable hotplugd(8):

# chmod +x /etc/hotplug/attach
# rcctl enable hotplugd
# rcctl start hotplugd

Every time you enable the tethering on your phone your computer will automatically connect to it. In theory the same principle can also be used to automatically mount discs when plugged, but I haven't tried yet.

NB: I'm not paranoid enough to worry about accidentally connect to a stranger's phone. You have been warned.

-- text: CC-BY-SA-4.0; code: public domain unless specified otherwise

For comments, write at < blog at omarpolo dot com > or @yumh@pleroma.libretux.com in the fediverse.

Capsule proudly assembled with Clojure

-- Response ended

-- Page fetched on Tue Oct 19 16:05:08 2021