DecTalk External (decext) testers wanted!

Gregory Nowak greg at
Sun Apr 23 23:48:57 EDT 2017

Hi Okash and list,
I again have good news, and bad news. The good news is that after
making the changes Okash described in spk_ttyio.c and recompiling the
speakup modules, the bns driver works over ttyUSB0! Very awesome! I
remember wanting this when I got my first machine without an on board
serial port in 2000. I also used the driver a lot more extensively
over ttyS0 and over ttyUSB0, and still didn't notice issues.

Now, for the bad news. The speakup_bns driver isn't releasing the
serial port. This is true for both ttyS0 and ttyUSB0. When I unload
speakup_bns, and attempt to use minicom over either port, I see this
in dmesg:

"[  109.515946] ttyS ttyS0: tty_open: tty->count(2) != #fd's(1)
[  110.517304] ttyS ttyS0: tty_release: tty->count(2) != #fd's(1)
[  110.517400] ttyS ttyS0: tty_open: tty->count(2) != #fd's(1)
[  111.518555] ttyS ttyS0: tty_release: tty->count(2) != #fd's(1)
[  111.518663] ttyS ttyS0: tty_open: tty->count(2) != #fd's(1)
[  113.436335] ttyS ttyS0: tty_release: tty->count(2) != #fd's(1)"

"[  807.947758] ttyUSB ttyUSB0: tty_open: tty->count(3) != #fd's(1)
[  808.152816] ttyUSB ttyUSB0: tty_release: tty->count(3) != #fd's(1)
[  808.155764] ttyUSB ttyUSB0: tty_open: tty->count(3) != #fd's(1)
[  808.520824] ttyUSB ttyUSB0: tty_release: tty->count(3) != #fd's(1)
[  808.523768] ttyUSB ttyUSB0: tty_open: tty->count(3) != #fd's(1)
[  810.947111] ttyUSB ttyUSB0: tty_release: tty->count(3) != #fd's(1)"

If I modprobe speakup_bns again, I can use it just fine, unload, and
reload again without problems. I also found that after using
speakup_bns over the usb to serial converter and unloading the
speakup_bns module, I then can't unload the belkin_sa module, even
though I see no other modules using it from lsmod. I assume the same
holds true for the standard port modules, but didn't try unloading
them as well. When I unplug the usb to serial converter after using it
with speakup_bns, and unloading speakup_bns, and plug it back in, it
gets assigned /dev/ttyUSB1 instead of being assigned /dev/ttyUSB0 as
normally happens.

Thanks again for your work.


On Sat, Apr 22, 2017 at 08:38:28AM +0100, Okash Khawaja wrote:
> Hi Greg,
> Thanks for the tests, very helpful. Okay so it doesn't look too bad.

web site:
gpg public key:
skype: gregn1
(authorization required, add me to your contacts list first)
If we haven't been in touch before, e-mail me before adding me to your contacts.

Free domains: or mail dns-manager at

More information about the Speakup mailing list