Quantcast
Channel: my tech blog » Linux kernel
Browsing all 69 articles
Browse latest View live

Linux: Atheros QCA6174′s Bluetooth disappearing after reboot

When Bluetooth goes poof Having rebooted my computer after a few months of continuous operation, I suddenly failed to use my Bluetooth headphones. It took some time to figure out that the problem...

View Article


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

View Article


Linux CUSE (and FUSE): Why I ditched two months of work with it

Introduction If you’re planning to use CUSE (or FUSE) for an application you care about, this post is for you. That includes future self. I’m summarizing my not-so-pleasant journey with this framework...

View Article

FUSE / CUSE signal handling: The very gory details

First: If you’re planning on using FUSE / CUSE for an application, be sure to read this first. It also explains why I didn’t just take what libfuse offered. Overview This is a detour from another post...

View Article

FUSE / CUSE kernel driver dissection notes

What this post is about Before anything: If you’re planning on using FUSE / CUSE for an application, be sure to read this first. It also explains why I bothered looking at the kernel code instead of...

View Article


usbpiper: A single-threaded /dev/cuse and libusb-based endpoint to device...

Introduction Based upon CUSE, libusb and the kernel’s epoll capability, this is a single-threaded utility which generates one /dev/usbpiper_* device file for each bulk / interrupt endpoint on a USB...

View Article

Jots on named pipes (FIFOs in Linuxish)

Major disclaimer These are pretty random jots that I made while evaluating named pipes as a solution for project. I eventually went for a driver in the kernel for various reasons, so I never got to...

View Article

Linux kernel programming: Do I need a lock?

Introduction Writing a device driver for Linux (or other kernel programming) always requires keeping parallel execution in mind. It’s often enough to follow common programming patterns, using spinlocks...

View Article


Linux driver: Creating device files for a hotpluggable device

Introduction Most device drivers hook onto an already existing subsystem: Audio, networking, I2C, whatever. If it’s a specialized piece of hardware, a single device file is typically enough, and you...

View Article


Ftrace: The Linux kernel hacker’s swiss knife

Introduction I ran into ftrace completely by chance, while trying to figure out why the call to usb_submit_urb() took so long time. In fact, it wasn’t. It was pr_info() that delayed the output. And it...

View Article

Linux kernel OOPS dissection notes

What’s this Every now and then I find myself looking at an Oops or kernel panic, reminding myself how to approach this. So this is where I write down the jots as I go. This isn’t very organized....

View Article

Root over NFS remains read only with Linux v5.7

Upgrading the kernel should be quick and painless… After upgrading the kernel from v5.3 to 5.7, a lot of systemd services failed (Debian 8), in particular systemd-remount-fs: ●...

View Article

Linux kernel: Dumping a module’s content for regression check

After making a lot of whitespace reorganization in a kernel module (indentation, line breaks, fixing things reported by sparse and checkpatch), I wanted to make sure I didn’t really change anything....

View Article


Setting up a small Sphinx project for validating Linux kernel documentation...

Introduction Since I maintain a module in the Linux kernel, I also need to maintain its documentation. Sometime in the past, the rst format was adopted for files under Documentation/ in the kernel...

View Article

dmesg output of a Google Pixel 6 Pro

Just in case this helps anyone, this is the output of the dmesg command. The phone was rooted with Magisk, or else how would I get this? But at this stage, I hadn’t install Zygisk or any other module...

View Article


usbpiper: A single-threaded /dev/cuse and libusb-based endpoint to device...

Introduction Based upon CUSE, libusb and the kernel’s epoll capability, this is a single-threaded utility which generates one /dev/usbpiper_* device file for each bulk / interrupt endpoint on a USB...

View Article

Jots on named pipes (FIFOs in Linuxish)

Major disclaimer These are pretty random jots that I made while evaluating named pipes as a solution for project. I eventually went for a driver in the kernel for various reasons, so I never got to...

View Article


Linux kernel programming: Do I need a lock?

Introduction Writing a device driver for Linux (or other kernel programming) always requires keeping parallel execution in mind. It’s often enough to follow common programming patterns, using spinlocks...

View Article

Linux driver: Creating device files for a hotpluggable device

Introduction Most device drivers hook onto an already existing subsystem: Audio, networking, I2C, whatever. If it’s a specialized piece of hardware, a single device file is typically enough, and you...

View Article

Ftrace: The Linux kernel hacker’s swiss knife

Introduction I ran into ftrace completely by chance, while trying to figure out why the call to usb_submit_urb() took so long time. In fact, it wasn’t. It was pr_info() that delayed the output. And it...

View Article
Browsing all 69 articles
Browse latest View live