Backtrace in C

- 1 min read

Reminder to self: remember CFLAGS=-g -Og -rdynamic to allow backtrace_symbols() to actually pretty print function names in stack traces.

Weird Screen Artifacts on X200

- 1 min read
I blogged earlier about the awesome little ThinkPad X200 I found and its blinking WiFi LED. Briefly I mentioned an odd issue with X/Wayland on LMDE 4. This turned out to be a HW bug that can only be worked around by disabling hardware acceleration for virtualization: https://forums.lenovo.com/t5/Windows-8-1-8-7-Vista-and-XP-Discussions/Bizarre-screen-artifacts-on-R400-Integrated-Graphics-running-Win-7-RTM/m-p/153980?page=1#199768 The post says it should be sufficient to “Disable Virtualization Technology for Directed-IO (VT-d)”, but that didn’t work for me, and I wanted to keep the 8 GiB of RAM I managed to fit into it.

HowTo: Build & Use My Projects

Joachim Wiberg - - 5 mins read

Every so often someone new to Open Source shows up on GitHub or in my inbox with a question like:

  • “I just downloaded your software, what’s next?”
  • “It doesn’t build on my system, can you help?”
  • “How can I adapt it to my own use-case?”
  • “Could the build system be improved?”

These are all good questions, and this HowTo tries to answer the most common ones up front.

0. Short Version

  • Download a versioned archive from the project’s Releases page
  • Extract archive for v1.2.3 and change to its directory, cd archive-1.2.3/
  • ./configure --help, or use something like the following …
  • ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var && make && sudo make install

Some of my projects are also available in Debian/Ubuntu/FreeBSD. If you installed one from there, please report bugs to them first, they may carry their own patches.

Cheers
/Joachim

Wireguard and DNS Timeout

Joachim Wiberg - - 2 mins read

For a while now my Wireguard VPN provider has been handing out a bad DNS server. So whenever I do a DNS lookup it takes five (5!) seconds timing out, which is quite annoying.

This blog post is about how you can fix this with openresolv in Ubuntu.

Open Source Releases

- 1 min read

The last couple of months have been crazy. The downturn in the economy due to Covid-19, mass layoffs, social distancing and quarantine. Not to mention the unrest in US and Europe in the wake of George Floyd’s uneccessary death.

Minix Editline

- 2 mins read
This is a line editing library for UNIX. It can be linked into almost any program to provide command line editing and history. It is call compatible with the FSF readline library, but is a fraction of the size (and offers fewer features). The small size (<30k), lack of dependencies (no ncurses needed!) and the free license should make this library interesting to many embedded developers seeking a replacement for the GNU readline library.

Fix blinking WiFi LED on X200

- 1 min read

Recently got my hands on a ThinkPad X200, the last model without the useless touchpad and with the awesome classic keyboard. A fine little machine that can easily be upgraded with an SSD disk and 8 GiB RAM!

I set it up with Linx Mint (LMDE 4), which worked great to begin with, but there was some odd issue with X/Wayland that sometimes caused the screen (only the screen) to freeze up and show random color patterns. Only way to workaround it was to suspend, wait, and resume again. So now I’m running Ubuntu 20.04 on it and everything seems to work a lot better, this far.

HowTo: Install pre-built packages

- 1 min read

Every now and then people ask me for pre-built packages of software I maintain. Up until today I’ve had to refer them to the cold hard build instructions for each of my programs.

Mini SNMP daemon

- 4 mins read
This is an SNMP server for small and embedded systems, currently Linux and FreeBSD are supported. It is easily portable to other UNIX systems since it’s written in C. A stripped binary is ~80 kiB and comes nowhere near the feature set of Net-SNMP, so it has a very low impact on system resources — a good fit for routers, NAS boxes, and other embedded devices. See my mini HowTo: Playing with SNMP for a quick introduction to setting up the SNMP tools and MIBs to avoid having to use numerical OIDs.