Michal Čihař - Archive for April 25, 2007

Kernel 2.6.21 hits Gammu

Since Linux kernel 2.6.21 entered higher release candidates, more people started to report that Gammu has problem on that with connecting over USB cable. First I thought it is some misconfiguration of kernel, but when several same reports appeared, I decided to take a look at it.

As great side effect of this, I found out that I can use snapshots of Debian kernel, where current version (2.6.21-rc7) is available as Debian package. This saved me lot of time, thanks guys!

After installing and booting new kernel, I quickly found out that the problem is not SIGSEGV as many people reported, but SIGIO. After quick look at code, it was obvious that setting file to asynchronous I/O causes this.

Well this is how asynchronous I/O is supposed to work and kernel people implemented it now for (some?) serial drivers. I have no idea why there was attempt to use it in Gammu. The code is not at all ready for this and makes no use of asynchronous I/O. So the fix was quite easy - just to remove this flag from file.

Fix now sits in SVN, impatient users who run kernel 2.6.21 can get SVN snapshot :-). Testing release will follow during next week.