My article about character devices is quite popular, so I decided to write something about another big class of devices in Linux – block devices. This type of device is used to access various storage hardware types – hard disks, SSD, etc. Here I want to describe blk-mq based devices in modern (>= 5.0) Linux kernels and a previous type…
Cheap single-component RF filters
Low, Band, and High – pass filters are major components when working with RF. Depending on the application, filters can reduce output noise and unwanted signals or limit a transmit signal to a pre-specified frequency band to prevent interference with other signals. Here I want to describe how to build simple and cheap single-component (ceramic) filters for your DIY projects.
C++ in Linux kernel
Linux kernel is written in C (and in Assembly in platform-specific portions) language. C language is the only language allowed to write kernel modules. And there is no problem in most cases. But sometimes, some stranger things may be required. Let’s see how to use C++ for the Linux kernel modules.
RS-485 practice and theory
I just built two RS-485 adapters (version 2) and decided to write a little note about the RS-485 bus (and differential line) theory, plus perform some testing of the devices. This material mostly interesting for newbies. At the end of this article, you can find a funny way to test these devices 🙂
Printing sk_buff data
Sometimes when working with network packets inside the Linux kernel, it might be very useful to print packet contents to see what is actually going on. Here I’m describing how to print packet from sk_buff structure and analyze this data with Wireshark. In this short note, I will not describe capturing the packets inside the kernel but only show how…
Modifying Linux network routes using netlink
Last time we talked about getting a Linux routing table with a simple Netlink code. Now it’s time to do more interesting stuff. Let’s add and delete some routes using the power of the Netlink!
From this point, my site is also available via HTTPS. It was not mandatory, but in modern browsers HTTP sites may be marked as ‘unsecured’ and ‘untrusted’. It may happen that in the nearest future all sites without encryptions will be blocked by default in every popular web browser. I don’t want to be badged as ‘untrusted’ or be…
Simple logger with STDOUT, Files and syslog support for C projects in Linux
In this little note, I want to describe a simple logging module for C programs in Linux. I’m using this code for years in my projects. This module supports different types of output “targets” – files, syslog, and stdout.
Getting Linux routing table using netlink
In the previous article, we discussed the monitoring of the network interfaces using Netlink. Now it’s time to do something more complex and interesting. Let’s discover how to get and print the system routing table like “ip route” command.
Dish antenna for the amateur radioastronomy
In the previous article, I describe a low noise amplifier for the 21cm band. Today I want to show you a construction of the dish antenna where this amplifier was used.