Instalando leitora SmartNonus (Castles EZ100PU) no Ubuntu 12.04

Iniciado por jorgepoa10, 02 de Novembro de 2012, 18:25

tópico anterior - próximo tópico

jorgepoa10

Este tutorial tem como objetivo ensinar como configurar a leitora SmartNonus (www.nonus.com.br/SmartCard.htm) no Ubuntu 12.04 (o procedimento provavelmente funciona em versões anteriores), para uso em certificados digitais tipo A3.

Das leitoras que afirmam ser compatíveis com Linux, esta é uma das mais baratas. A fabricante é taiwanesa (www.casauto.com.tw), sendo possível achar os drivers em ambos os sites (modelo Castles EZ100PU).

O manual diz que deve haver a instalação da middleware "PC-SC Lite", remetendo para o site www.linuxnet.com/middle.html. Diz também que o software deve ser compilado com a opção libusb. Ocorre que há várias versões, e nenhum tem pacotes .deb. Compilando da fonte, mesmo com esta opção, tive alguns problemas, especialmente quanto à integração com o sistema. Pessoalmente, prefiro ter pacotes dos repositórios oficiais, que são mais estáveis.

O pacote correspondente no Ubuntu é o pcsd, que está na versão 1.7.4, sendo possível instalá-lo pelo apt-get. Ocorre que ele não é instalado com a opção libusb. A melhor saída que encontrei foi alterar o código fonte do pacote oficial.

sudo apt-get devscripts build-essential fakeroot
sudo apt-get build-dep pcscd
sudo apt-get source pcsd


Este último comando vai baixar o código fonte na pasta em que você está, criando uma pasta "pcsc-lite-1.7.4". Precisamos agora editar o arquivo rules

cd pcsc-lite-1.7.4/debian/
sudo gedit rules

No arquivo rules, altere a linha

dh_auto_configure -- $(EXTRA_CONFIGURE_ARGS)

para

dh_auto_configure -- --enable-libusb --disable-libudev $(EXTRA_CONFIGURE_ARGS)

Isto fará com que o pacote .deb instale o pacote com a opção que precisamos.

Volte para a pasta pcsc-lite-1.7.4 e recompile o pacote

dpkg-buildpackage -b -j4 -D

Isto criará os arquivos pcscd_1.7.4-2ubuntu2_i386.deb e libpcsclite1_1.7.4-2ubuntu2_i386.deb. Instale-os

sudo dpkg -i libpcsclite1_1.7.4-2ubuntu2_i386.deb
sudo dpkg -i pcscd_1.7.4-2ubuntu2_i386.deb


Agora, é só seguir as instruções do fabricante. Baixe os drivers, descompacte e acesse a pasta driver_ezusb_v1.5.3. Rode o script de checagem

./check_env

Se estiver tudo ok, ele reconhecerá o pacote que instalamos, com a opção libusb. Agora é só instalar.

sudo ./install

Se der tudo certo, o cartão já será reconhecido com o seguinte comando
pcsc_scan
(necessário instalar antes o pacote pcsc_tools)

O output deve ser semelhante a este
Using reader plug'n play mechanism
Scanning present readers...
0: CASTLES EZ100PU 00 00


Um problema recorrente é que ao reiniciar o computador, o cartão não é reconhecido porque o processo pcscd é iniciado sem privilégios de root.

Para resolver este problema definitivamente, é preciso alterar o arquivo /etc/init.d/pcscd

sudo gedit /etc/init.d/pcscd

Basta comentar a linha "exit 0", colocando um # na frente, ou simplesmente excluí-la.