Sunday, September 29, 2013

Lenovo Smart Card Keyboard support for Ubuntu

話說前一陣子看到朋友post的好康,也跟著買了一個。單純就一個 NT$ 499 的薄膜鍵盤而言,對我來說無論鍵深還有手感跟其他千元以下的鍵盤比較起來,算是相當不錯的了。(請不要跟數千元的機械鍵盤比)既然還多了讀卡機的功能,那當然也是希望能夠在 Linux 下面能夠使用。

首先簡單看一下硬體編號得知是 17EF:6007:
 $ lsusb
...
Bus 002 Device 014: ID 17ef:6007 Lenovo Smartcard Keyboard


問了一下 Google 大神,據說 libccid 是有支援的,那就來裝一下。
 $ sudo apt-get install pcscd libpcsc-perl lib-pcsclite1 pcsc-tools

不過跑了 pscs_scan 好像抓不到!?
 $ pcsc_scan
PC/SC device scanner
V 1.4.18 (c) 2001-2011, Ludovic Rousseau
Compiled with PC/SC lite version: 1.7.4
Using reader plug'n play mechanism
Scanning present readers...
Waiting for the first reader...


很明顯應該是 driver沒有把已經支援的這個設備列進去,那只好照下面這個來手動改一下,在三個對應的位置各加上一行。
 $ diff -u /etc/libccid_Info.plist.bak /etc/libccid_Info.plist
--- /etc/libccid_Info.plist.bak    2011-10-23 02:00:31.000000000 +0800
+++ /etc/libccid_Info.plist    2013-09-29 15:40:21.000000000 +0800
@@ -219,6 +219,7 @@
         0x1059
         0x1059
         0x17EF
+        0x17EF
         0x19E7
         0x1B0E
         0x0982
@@ -413,6 +414,7 @@
         0x000C
         0x000D
         0x1003
+        0x6007
         0x0002
         0x1078
         0x0007
@@ -607,6 +609,7 @@
         GnD CardToken 350
         GnD CardToken 550
         Lenovo Integrated Smart Card Reader
+        Lenovo Smart Card Keyboard
         Charismathics token
         Blutronics Bludrive II CCID
         Covadis Alya

...

然後重起一下 pcscd:
 $ sudo /etc/init.d/pcscd restart

其實又仔細看了一下,這個 patch 其實早有人已經送到上游去了,只是到 Ubuntu 12.04 都還沒有更新到。不然裝完 libccid 跟 PC/SC Lite 應該就可以使用了。
http://permalink.gmane.org/gmane.comp.lib.muscle/9504

至於要怎麼在 WebATM 使用,網路上已經有很多範例,這裡就BJ4。