Linux kernel, Software

Linux block device driver

My article about character devices is quite popular so I decided to write something about another big class of the devices in Linux – block devices. This type of devices are used to access various types of the storage hardware – hard disks, SSD and so on. Here I want to describe blk-mq based devices in modern (>= 5.0) Linux…

Continue Reading

Linux kernel, Linux system development, Software

C++ in Linux kernel

Linux kernel is written in C (and in Assembly in platform-specific portions) language. C language is only one allowed language to write kernel modules. And there is no problem, in most of the cases. But sometimes some stranger things may be required. Let’s see how to use C++ for the Linux kernel modules.

Linux system development

Simple Linux character device driver.

Character device is a one of the simplest ways to communicate with module in the Linux kernel. This devices are presented as special files in a /dev directory and support direct reading and writing of any data, byte by byte, like a stream. Actually most of the pseudo-devices in /dev is a character devices: serial ports, modems, sound and video…

Continue Reading

Allsky camera, Electronics, Linux system development

Connecting HTU21D temperature/humidity sensor to the Raspberry PI using simple C i2c interface

Previously in my projects I’m always used well known DHT22 (AM2302) temperature/humidity sensors. But I found that this sensors is not very stable and subject to hungs. In my case this device is worked about two weeks and then stops responding untill power rebooted. This is absolutely unacceptable on some distant and autonomous devices. After some googling I found that…

Continue Reading