This is really an annoying bug. Just installed libtowitoko2 2.0.7-9+b1 to
test a serial CHIPDRIVE card reader only to find this old bug again.

The original /etc/reader.conf.d/libtowitoko2 file is:
FRIENDLYNAME      "Towitoko Chipdrive Reader"
DEVICENAME        /dev/ttyS0
LIBPATH           /usr/lib/libtowitoko.so.2.0.0
CHANNELID         0x0103F8

It causes very weird behavior of pcscd:
readerfactory.c:1106:RFInitializeReader() Open Port 0x0 Failed (/dev/ttyS0)

The strace is very "interesting", first stat()ing /dev/ttyS0 and then trying
to open() /dev/ttyUSB32767:
openat(AT_FDCWD, "/etc/reader.conf.d/libtowitoko2", O_RDONLY) = 7
ioctl(7, TCGETS, 0xbff8d8c8)            = -1 ENOTTY (Inappropriate ioctl for 
device)
fstat64(7, {st_mode=S_IFREG|0644, st_size=171, ...}) = 0
read(7, "FRIENDLYNAME      \"Towitoko Chip"..., 8192) = 171
read(7, "", 4096)                       = 0
stat64("/dev/ttyS0", {st_mode=S_IFCHR|0660, st_rdev=makedev(0x4, 0x40), ...}) = 0
stat64("/usr/lib/libtowitoko.so.2.0.0", {st_mode=S_IFREG|0644, st_size=88472, 
...}) = 0
read(7, "", 8192)                       = 0
ioctl(7, TCGETS, 0xbff8d8c8)            = -1 ENOTTY (Inappropriate ioctl for 
device)
close(7)                                = 0
getdents64(6, /* 0 entries */, 32768)   = 0
close(6)                                = 0
futex(0xb7e4404c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/usr/lib/libtowitoko.so.2.0.0", 
O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 6
read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340>\0\0004\0\0\0"..., 
512) = 512
fstat64(6, {st_mode=S_IFREG|0644, st_size=88472, ...}) = 0
mmap2(NULL, 91344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 
0xb7f10000
mmap2(0xb7f25000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x14000) = 0xb7f25000
close(6)                                = 0
mprotect(0xb7f25000, 4096, PROT_READ)   = 0
openat(AT_FDCWD, "/dev/ttyUSB32767", O_RDWR|O_NOCTTY) = -1 ENOENT (No such file 
or directory)


Where comes the weird CHANNELID 0x0103F8 from? Maybe 0x3f8 as I/O address of PC 
COM1 port?

The working /etc/reader.conf.d/libtowitoko2 file is:
FRIENDLYNAME      "Towitoko Chipdrive Reader"
LIBPATH           /usr/lib/libtowitoko.so.2.0.0
CHANNELID         1

However, it should probably be commented-out by default (as in 
/etc/reader.conf.d/libccidtwin)

-- 
Ondrej Zary

Reply via email to