花了很久的時間終於發現有兩個方法可以正確的讀取到健保卡,在此和大家分享。
本系列文章共分3段,此是第一部份-讓讀卡機可以正確的在Ubuntu中運作。在第二部份將會介紹使用OpenJDK來讀取健保卡;而第三部份則是使用Oracle JDK來讀取。
本文是參考軟體工匠R的文章而來,在此特別感謝該文作者。
在電腦系統中若要讀取智慧卡,基本上只要卡片及讀卡機遵循PC/SC規範即可正確讀取。在Windows中,微軟已實作符合PC/SC規範的函式庫;而在Linux及Mac中則有Open Source的PCSC-Lite函式庫可以使用。
因此,在Ubuntu若要讀取智慧卡,便要安裝pcsc-lite的工具及pcscd此daemon程式。
首先,若使用Ubuntu軟體中心的視覺化安裝方式,則請在搜尋的欄位中輸入pcsc,並點選顯示其他技術項目。如下圖:
請選擇安裝GScriptor及pcscd此二個項目即可。
若是使用commmand line的方式,只要下以下指令即可:
sudo apt-get install pcsc-tools pcscd
接下來要安裝讀卡機驅動程式,在此以虹堡科技EZ100PU為例。
cd driver_ezusb_v1.5.3/ sudo ./install
cd driver_ezusb_v1.5.3/mifdtest sudo ./mifdtest
sudo vi /etc/init.d/pcscd --------------以下是要修改的內容---------------- # DO NOT start the daemon on startup # comment the line to have the same behavior as in version < 1.6.0 #exit 0 --> 將此行註解掉 --------------以上是要修改的內容----------------
備註:以使用者身份動態執行pcscd步驟,設定完重關機即可(我試過sudo service udev restart但是沒有用)。
-----------以下是權限設定---------------- $ sudo addgroup --system pcscd $ sudo mkdir /var/run/pcscd $ sudo chgrp pcscd /var/run/pcscd $ sudo chmod g+w /var/run/pcscd -----------以上是權限設定----------------- -----------新建一個檔案:/etc/udev/rules.d/92-pcscd-ccid.rules----------- $ sudo vi /etc/udev/rules.d/92-pcscd-ccid.rules ----------------內容如下------------------ # If not adding the device, go away ACTION!="add", GOTO="pcscd_ccid_rules_end" SUBSYSTEM!="usb", GOTO="pcscd_ccid_rules_end" ENV{DEVTYPE}!="usb_device", GOTO="pcscd_ccid_rules_end" # Castles Technology Co., Ltd EZUSB PC/SC Smart Card Reader ATTRS{idVendor}=="0ca6", ATTRS{idProduct}=="0010", GROUP="pcscd" # All done LABEL="pcscd_ccid_rules_end" ----------------內容如下------------------ ----------------idVendor及idProduct必須以自己電腦中的設定為主----------- ----------------可以使用lsusb指令找出相關id-----------------------------
No comments:
Post a Comment