tdevmon.ko does not compile since kernels 6.5.x

Hi,

tdevmon.ko does not compile since kernel version 6.5.x because the iov_iter_is_pipe() function was removed from /incude/linux/uio.h

8a63f17a-2477-448f-81cf-29ef6dbeb07f-image.png

Thanks for the issue report. Indeed, there were two breaking changes in recent Linux kernel releases.

First, linux-6.4 changed class_create() to accept only one parameter instead of two, and second, ITER_PIPE and all related APIs were removed completely in linux-6.5.

Fixes are trivial; please try this build and let me know if it works for you:

https://tibbo.com/downloads/archive/tdevmon/.internal/tdevmon-3.3.13-linux-amd64.tar.xz

If everything is fine, we will publish it on the official download page.

The new version now compiles without problems. It seems to be working properly. I can't test this live because my trial license has expired. The file created with tdevmon --mi opens in IO Ninja as Mi Dump. It does not show any RTS or DTR line changes or changes to the serial port speed that I made.
Only serial port opening/closing is reported ...

I extended your evaluation for 10 more days, you can try again.

It does not show any RTS or DTR line changes or changes to the serial port speed that I made. Only serial port opening/closing is reported.

How about read & write? Should be there, too. As for baud rate, DTR, RTS, etc. -- read on.

Unlike on Windows, where each ioctl explicitly specifies in & out parameters buffer sizes, on POSIX, ioctl parameter sizes are implicit and inferred by the ioctl code.

To overcome this limitation and still capture ioctl parameters, Serial Monitor on Linux explicitly specifies the mapping between termios ioctl codes and parameter buffer sizes. It's possible to add such a mapping via the command line, too -- by adding --ioctl <code>:<size> arguments for all termios ioctl codes (i.e., TCSETA, TCSETS, etc).

Without the ioctl mapping, tdevmon won't capture parameter blocks for termios ioctls such as setting serial settings, toggling DTR/RTS, reading DSR/CTS etc., so the log will only contain open/ close calls and the read/write data. Which is often enough, actually.

How about read & write? Should be there, too. As for baud rate, DTR, RTS, etc.

Yes, the read & write stream was also visible.

Thank you for the detailed explanation and for extending the trial period.
After short tests, I can fully confirm that the tdevmon-3.3.13-linux-amd64 version compiles and works correctly on kernel 6.5.8