Инсталация на драйвери за четец и смарт карта в Linux: Разлика между версии
VasilBadev (беседа | приноси) |
Редакция без резюме |
||
Ред 1: | Ред 1: | ||
== Инсталиране на драйвер за четеца == | == Инсталиране на драйвер за четеца == | ||
Всички четци предлагани от Инфонотари EАД имат драйвери за Linux, които могат да се изтеглят от сайта на производителя им - [http://www.hidglobal.com/driverDownloads.php?techCat=19&prod_id=182 OmniKey] или [http://www.acs.com.hk/download/ACR38_LINUX_100709_P.tar.gz ACS]. В някои случаи тези драйвери могат да се инсталират директно чрез пакетната система на | Всички четци, предлагани от Инфонотари EАД, имат драйвери за Linux, които могат да се изтеглят от сайта на производителя им - [http://www.hidglobal.com/driverDownloads.php?techCat=19&prod_id=182 OmniKey] или [http://www.acs.com.hk/download/ACR38_LINUX_100709_P.tar.gz ACS]. В някои случаи тези драйвери могат да се инсталират директно чрез пакетната система на вашата дистрибуция. | ||
=== Инсталация на PC/SC === | === Инсталация на PC/SC === | ||
Независимо от модела на | Независимо от модела на вашия четец ще трябва да инсталирате пакетите '''pcscd''' и '''libpcsclite'''. Това е демонът, чрез който програмите работят с четеца и съответно със смарт картата. След инсталация на нов драйвер трябва да рестартирате pcscd. Ако инсталирате драйверите от пакет, той най-вероятно ще рестартира демона. | ||
При много дистрибуции заедно с инсталацията на pcscd се инсталира и алтернативният софтуер за работа с четците - openct. За коректна работа на четеца ще трябва да го деинсталрате или, ако това не може да стане, без да се премахне и pcscd, да го забраните. | |||
<!-- | <!-- | ||
Може да проверите дали pcscd работи с командата {{Шаблон:Console|ps ax | grep pcscd | grep -v "grep pcscd"}} пусната от терминал. Би трябвало да изпише нещо подобно на това: {{Шаблон:ConsoleOutput|3446 ? Ssl 0:01 /usr/sbin/pcscd}} | Може да проверите дали pcscd работи с командата {{Шаблон:Console|ps ax | grep pcscd | grep -v "grep pcscd"}}, пусната от терминал. Би трябвало да изпише нещо подобно на това: {{Шаблон:ConsoleOutput|3446 ? Ssl 0:01 /usr/sbin/pcscd}} | ||
В случай че не покаже нищо, значи | В случай че не покаже нищо, значи демонът не работи. | ||
--> | --> | ||
Ред 18: | Ред 18: | ||
[[Картинка:CardMan6121.gif]][[Картинка:CardMan3021.png]] | [[Картинка:CardMan6121.gif]][[Картинка:CardMan3021.png]] | ||
: | : | ||
За да използвате пълноценно четците за смарт карти на OmniKey под Linux ще трябва да инсталирате | За да използвате пълноценно четците за смарт карти на OmniKey под Linux, ще трябва да инсталирате официалния драйвер на OmniKey вместо включения в повечето дистрибуции libccid. Можете да го изтеглите от [http://www.hidglobal.com/driverDownloads.php?techCat=19&prod_id=182 техният сайт] или от [[Драйвери за четци|сайта на Инфонотари]]. | ||
: | : | ||
След това трябва да рестартирате демона с командата {{Шаблон:Console|sudo /etc/init.d/pcscd restart}}. В случай че версията на pcscd е 1.6 или по-нова | След това трябва да рестартирате демона с командата {{Шаблон:Console|sudo /etc/init.d/pcscd restart}}. В случай че версията на pcscd е 1.6 или по-нова, демонът се стартира автоматично, без init скрипт, в момента, в който някоя програма се опита да се свърже с четеца. В този случай може да го спрете с командата {{Шаблон:Console|killall pcscd}} и да рестартирате програмите, които го ползват (Firefox, Thunderbird, Smart Card Manager). | ||
В случай че след инсталацията на драйвера на OmniKey все още получавате грешки при използване на удостоверението си, ще се наложи да премахнете пакета libccid. За да не бъде премахнат | В случай че след инсталацията на драйвера на OmniKey все още получавате грешки при използване на удостоверението си, ще се наложи да премахнете пакета libccid. За да не бъде премахнат демонът при деинсталирането на libccid, може да инсталирате някой от другите пакети, предоставящи pcsc-ifd-handler - например libacr38u. Точната команда за Ubuntu е {{Шаблон:Console|sudo apt-get install libacr38u && sudo apt-get remove libccid}}. | ||
Ако в дистрибуцията, която ползвате не може да се премахне libccid без да се премахне pcscd ще трябва да премахнете или изключите драйвера ръчно:<br> | Ако в дистрибуцията, която ползвате, не може да се премахне libccid, без да се премахне pcscd, ще трябва да премахнете или изключите драйвера ръчно:<br> | ||
По-деструктивният вариант е просто да изтриете драйвера от папката на pcscd. Във Fedora той е /usr/lib/pcsc/drivers/ifd-ccid.bundle или /usr/lib64/pcsc/drivers/ifd-ccid.bundle в x86_64 версията. В Ubuntu със следната команда може да го преместите в домашната папка:<br/>{{Шаблон:Console|H=$HOME; sudo mv /usr/lib/pcsc/drivers/ifd-ccid.bundle $H}}.<br> | По-деструктивният вариант е просто да изтриете драйвера от папката на pcscd. Във Fedora той е /usr/lib/pcsc/drivers/ifd-ccid.bundle или /usr/lib64/pcsc/drivers/ifd-ccid.bundle в x86_64 версията. В Ubuntu със следната команда може да го преместите в домашната папка:<br/>{{Шаблон:Console|H=$HOME; sudo mv /usr/lib/pcsc/drivers/ifd-ccid.bundle $H}}.<br> | ||
По-трудният, но и по-коректен начин за справяне с проблема е с текстов редактор да премахнете от файла /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist описанието на | По-трудният, но и по-коректен начин за справяне с проблема, е с текстов редактор да премахнете от файла /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist описанието на вашия четец. За OmniKey 6121 ifdVendorID e 076b, ifdProductID e 6622, a ifdFrendlyName e „OmniKey CardMan 6121“. За OmniKey 3021 ifdVendorID e 076b, ifdProductID е 0x3021, а ifdFrendlyName е „OMNIKEY CardMan 3x21“. Това е и единственият вариант, при който може да ползвате едновременно четците на OmniKey и други ccid съвместими четци. Ако по този начин деактивирате libccid, имайте предвид, че при следващото му обновяване промените по конфигурационния му файл ще бъдат загубени. | ||
За да проверите кой точно драйвер използва pcscd трябва да го пуснете в debug режим с параметри -fd. Например в Ubuntu това може да стане по този начин - {{Шаблон:Console|sudo /usr/sbin/pcscd -fd}}. В изхода от тази команда би трябвало да имате нещо подобно на това: | За да проверите кой точно драйвер използва pcscd, трябва да го пуснете в debug режим с параметри -fd. Например в Ubuntu това може да стане по този начин - {{Шаблон:Console|sudo /usr/sbin/pcscd -fd}}. В изхода от тази команда би трябвало да имате нещо подобно на това: | ||
{{Шаблон:ConsoleOutput|{{Color|'''HID'''|#FFFFFF|#5588FF}} HID Global OMNIKEY CCID IA32 v3.6.0 eusupport@hidglobal.com}} | {{Шаблон:ConsoleOutput|{{Color|'''HID'''|#FFFFFF|#5588FF}} HID Global OMNIKEY CCID IA32 v3.6.0 eusupport@hidglobal.com}} | ||
Ако не се появи този надпис, значи драйверът на OmniKey не се зарежда. | Ако не се появи този надпис, значи драйверът на OmniKey не се зарежда. | ||
Ред 35: | Ред 35: | ||
[[Картинка:ACR_38U.png]][[Картинка:ACR_38T.png]] | [[Картинка:ACR_38U.png]][[Картинка:ACR_38T.png]] | ||
ACR38U и някои варианти на ACR38T не са CCID съвместими, но за тях също има свободен драйвер който може да намерите на [http://www.acs.com.hk/drivers/eng/ACR38U_driver_Lnx_1710_P.tar.gz сайта на производителя] или в директория Drivers/Linux/ACS на диска. Те също са включени в Debian и Ubuntu, като името на пакета е '''libacr38u'''. | ACR38U и някои варианти на ACR38T не са CCID съвместими, но за тях също има свободен драйвер, който може да намерите на [http://www.acs.com.hk/drivers/eng/ACR38U_driver_Lnx_1710_P.tar.gz сайта на производителя] или в директория Drivers/Linux/ACS на диска. Те също са включени в Debian и Ubuntu, като името на пакета е '''libacr38u'''. | ||
===== ACR 38C ===== | ===== ACR 38C ===== | ||
Ако вашият четец е означен с ACR38C-SPC-R от долната си страна или има надпис SIMLector 38T от вътрешната страна на капачето, то той е CCID съвместим и се поддържа от '''libccid'''. Най-вероятно | Ако вашият четец е означен с ACR38C-SPC-R от долната си страна или има надпис SIMLector 38T от вътрешната страна на капачето, то той е CCID съвместим и се поддържа от '''libccid'''. Най-вероятно пакетът, съдържащ този драйвер, се казва '''libccid''' или само '''ccid'''. | ||
== Инсталиране на драйвери за смарт карта == | == Инсталиране на драйвери за смарт карта == | ||
В зависимост от това каква е вашата карта се използва различен софтуер. | В зависимост от това, каква е вашата карта, се използва различен софтуер. Моделът на картата ви е изписан на персоналните права за достъп, които сте получили заедно с картата. В случай че за модел пише „T&S DS/2048 (L)“, тряба да инсталирате Bit4id Universal Middleware от инсталационния диск или от [[Използване на хранилищата на InfoNotary|DEB и RPM хранилищата на Инфонотари]]. Ако моделът на картата е „CardOS V4.3B (C)“, ще трябва да инсталирате OpenSC и да го конфигурирате, както е описано в следващата глава. | ||
=== Инсталиране на OpenSC === | === Инсталиране на OpenSC === | ||
За да ползвате удостоверението си за електронен подпис чрез OpenSC ще трябва да си инсталирате версия 0.11.4 или по-нова. Най-добре да ползвате пакет от вашата дистрибуция. Ако в нея OpenSC липсва или е по-стара версия ще се наложи да го изтеглите от сайта на [http://www.opensc-project.org/ проекта] и да го компилирате ръчно. | За да ползвате удостоверението си за електронен подпис чрез OpenSC, ще трябва да си инсталирате версия 0.11.4 или по-нова. Най-добре да ползвате пакет от вашата дистрибуция. Ако в нея OpenSC липсва или е по-стара версия, ще се наложи да го изтеглите от сайта на [http://www.opensc-project.org/ проекта] и да го компилирате ръчно. | ||
Ако използвате версия 0.11 на opensc, след инсталацията ще трябва да го настроите да ползва само '''pcsc''' за връзка с четеца. Това става като в | Ако използвате версия 0.11 на opensc, след инсталацията ще трябва да го настроите да ползва само '''pcsc''' за връзка с четеца. Това става, като в конфигурационния файл (/etc/opensc/opensc.conf) промените реда:<pre style="font-family:monospace; font-size: 92%;"># reader_drivers = openct, pcsc, ctapi;</pre> на <pre style="font-family:monospace; font-size: 92%;">reader_drivers = pcsc;</pre> Това не е необходимо за версии след 0.12.0. В тях по подразбиране се работи с четците само през '''pcsc'''. | ||
<!--Ако | <!--Ако файлът onepin-opensc-pkcs11.so не е инсталиран с OpenSC, ще трябва да промените и стойността на num_slots от „num_slots = 4;“, на „num_slots= 1;“ | ||
'''В случай че ползвате Ubuntu 9.10 с OpenSC допълнително ще трябва да инсталирате и пакета libpcsclite-dev.'''--> | '''В случай че ползвате Ubuntu 9.10 с OpenSC, допълнително ще трябва да инсталирате и пакета libpcsclite-dev.'''--> | ||
На страница [[Работа с OpenSC]] можете да намерите кратка инструкция за извършване на | На страница [[Работа с OpenSC]] можете да намерите кратка инструкция за извършване на най-често използваните операции с OpenSC. | ||
<!-- | <!-- | ||
=== Смарт карти Siemens === | === Смарт карти Siemens === | ||
В случай че ползвате смарт карта Siemens и 32 битова дистрибуция с x86 процесор (Intel, AMD или Via), можете да инсталирате | В случай че ползвате смарт карта Siemens и 32 битова дистрибуция с x86 процесор (Intel, AMD или Via), можете да инсталирате официалния драйвер на Siemens. '''Ако използвате 64 битова дистрибуция, друга процесорна архитектура или друга Unix подобна операционна система, ще се наложи да ползвате [[#Смарт карти Charismatics (OpenSC)|OpenSC]]'''. Драйвера на Siemens може да намерите в директорията Drivers/Linux/Siemens на диска. '''Ако нямате такава папка на диска, то картата ви е Charismathics и трябва да следвате инструкциите за [[#Смарт карти Charismatics (OpenSC)|тези карти]]'''. Разархивирайте архива „HiPath_SIcurity_Card_API_V3_1_010_Linux.tar.gz“ в главната директория на вашата Linux инсталация. Това може да стане със следните команди от директорията Drivers/Linux/Siemens на диска: | ||
<pre style="font-family:monospace; font-size: 92%;">user@system > su - | <pre style="font-family:monospace; font-size: 92%;">user@system > su - | ||
Ред 69: | Ред 69: | ||
sudo tar -xzvf HiPath_SIcurity_Card_API_V3_1_010_Linux.tar.gz</pre> | sudo tar -xzvf HiPath_SIcurity_Card_API_V3_1_010_Linux.tar.gz</pre> | ||
PKCS#11 библиотеката съдържаща се в HiPath SIcurity Card API е свързана с libpcsclite.so.0.0.1, която е част от PC/SC Lite преди версия 1.2.9. Съответно при зареждане на PKCS#11 модула операционната система се опитва да открие библиотека с име libpcsclite.so.0. След версия 1.2.9 с PC/SC Lite се инсталира нова версия на libpcsclite.so (libpcsclite.so.1.0.0). | PKCS#11 библиотеката, съдържаща се в HiPath SIcurity Card API, е свързана с libpcsclite.so.0.0.1, която е част от PC/SC Lite преди версия 1.2.9. Съответно при зареждане на PKCS#11 модула операционната система се опитва да открие библиотека с име libpcsclite.so.0. След версия 1.2.9 с PC/SC Lite се инсталира нова версия на libpcsclite.so (libpcsclite.so.1.0.0). | ||
За да можете да ползвате PKCS#11 библиотеката трябва да направите следното: | За да можете да ползвате PKCS#11 библиотеката, трябва да направите следното: | ||
* Намерете директорията в която е инсталирана libpcsclite.so.1.0.0. Това обикновено е /usr/lib или /usr/local/lib. | * Намерете директорията, в която е инсталирана libpcsclite.so.1.0.0. Това обикновено е /usr/lib или /usr/local/lib. | ||
* Създайте нова символна връзка с име libpcsclite.so.0, сочеща към libpcsclite.so.1.0.0 в тази директория (ln -s libpcsclite.so.1.0.0 libpcsclite.so.0). Това обикновенно изисква root права. | * Създайте нова символна връзка с име libpcsclite.so.0, сочеща към libpcsclite.so.1.0.0 в тази директория (ln -s libpcsclite.so.1.0.0 libpcsclite.so.0). Това обикновенно изисква root права. | ||
--> | --> |
Версия от 16:27, 13 юни 2011
Инсталиране на драйвер за четеца
Всички четци, предлагани от Инфонотари EАД, имат драйвери за Linux, които могат да се изтеглят от сайта на производителя им - OmniKey или ACS. В някои случаи тези драйвери могат да се инсталират директно чрез пакетната система на вашата дистрибуция.
Инсталация на PC/SC
Независимо от модела на вашия четец ще трябва да инсталирате пакетите pcscd и libpcsclite. Това е демонът, чрез който програмите работят с четеца и съответно със смарт картата. След инсталация на нов драйвер трябва да рестартирате pcscd. Ако инсталирате драйверите от пакет, той най-вероятно ще рестартира демона.
При много дистрибуции заедно с инсталацията на pcscd се инсталира и алтернативният софтуер за работа с четците - openct. За коректна работа на четеца ще трябва да го деинсталрате или, ако това не може да стане, без да се премахне и pcscd, да го забраните.
Видове четци
OmniKey
За да използвате пълноценно четците за смарт карти на OmniKey под Linux, ще трябва да инсталирате официалния драйвер на OmniKey вместо включения в повечето дистрибуции libccid. Можете да го изтеглите от техният сайт или от сайта на Инфонотари.
След това трябва да рестартирате демона с командата sudo /etc/init.d/pcscd restart. В случай че версията на pcscd е 1.6 или по-нова, демонът се стартира автоматично, без init скрипт, в момента, в който някоя програма се опита да се свърже с четеца. В този случай може да го спрете с командата killall pcscd и да рестартирате програмите, които го ползват (Firefox, Thunderbird, Smart Card Manager).
В случай че след инсталацията на драйвера на OmniKey все още получавате грешки при използване на удостоверението си, ще се наложи да премахнете пакета libccid. За да не бъде премахнат демонът при деинсталирането на libccid, може да инсталирате някой от другите пакети, предоставящи pcsc-ifd-handler - например libacr38u. Точната команда за Ubuntu е sudo apt-get install libacr38u && sudo apt-get remove libccid.
Ако в дистрибуцията, която ползвате, не може да се премахне libccid, без да се премахне pcscd, ще трябва да премахнете или изключите драйвера ръчно:
По-деструктивният вариант е просто да изтриете драйвера от папката на pcscd. Във Fedora той е /usr/lib/pcsc/drivers/ifd-ccid.bundle или /usr/lib64/pcsc/drivers/ifd-ccid.bundle в x86_64 версията. В Ubuntu със следната команда може да го преместите в домашната папка:
H=$HOME; sudo mv /usr/lib/pcsc/drivers/ifd-ccid.bundle $H.
По-трудният, но и по-коректен начин за справяне с проблема, е с текстов редактор да премахнете от файла /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist описанието на вашия четец. За OmniKey 6121 ifdVendorID e 076b, ifdProductID e 6622, a ifdFrendlyName e „OmniKey CardMan 6121“. За OmniKey 3021 ifdVendorID e 076b, ifdProductID е 0x3021, а ifdFrendlyName е „OMNIKEY CardMan 3x21“. Това е и единственият вариант, при който може да ползвате едновременно четците на OmniKey и други ccid съвместими четци. Ако по този начин деактивирате libccid, имайте предвид, че при следващото му обновяване промените по конфигурационния му файл ще бъдат загубени.
За да проверите кой точно драйвер използва pcscd, трябва да го пуснете в debug режим с параметри -fd. Например в Ubuntu това може да стане по този начин - sudo /usr/sbin/pcscd -fd. В изхода от тази команда би трябвало да имате нещо подобно на това:
Ако не се появи този надпис, значи драйверът на OmniKey не се зарежда.
ACS
ACR38U и някои варианти на ACR38T не са CCID съвместими, но за тях също има свободен драйвер, който може да намерите на сайта на производителя или в директория Drivers/Linux/ACS на диска. Те също са включени в Debian и Ubuntu, като името на пакета е libacr38u.
ACR 38C
Ако вашият четец е означен с ACR38C-SPC-R от долната си страна или има надпис SIMLector 38T от вътрешната страна на капачето, то той е CCID съвместим и се поддържа от libccid. Най-вероятно пакетът, съдържащ този драйвер, се казва libccid или само ccid.
Инсталиране на драйвери за смарт карта
В зависимост от това, каква е вашата карта, се използва различен софтуер. Моделът на картата ви е изписан на персоналните права за достъп, които сте получили заедно с картата. В случай че за модел пише „T&S DS/2048 (L)“, тряба да инсталирате Bit4id Universal Middleware от инсталационния диск или от DEB и RPM хранилищата на Инфонотари. Ако моделът на картата е „CardOS V4.3B (C)“, ще трябва да инсталирате OpenSC и да го конфигурирате, както е описано в следващата глава.
Инсталиране на OpenSC
За да ползвате удостоверението си за електронен подпис чрез OpenSC, ще трябва да си инсталирате версия 0.11.4 или по-нова. Най-добре да ползвате пакет от вашата дистрибуция. Ако в нея OpenSC липсва или е по-стара версия, ще се наложи да го изтеглите от сайта на проекта и да го компилирате ръчно.
Ако използвате версия 0.11 на opensc, след инсталацията ще трябва да го настроите да ползва само pcsc за връзка с четеца. Това става, като в конфигурационния файл (/etc/opensc/opensc.conf) промените реда:
# reader_drivers = openct, pcsc, ctapi;
на
reader_drivers = pcsc;
Това не е необходимо за версии след 0.12.0. В тях по подразбиране се работи с четците само през pcsc.
На страница Работа с OpenSC можете да намерите кратка инструкция за извършване на най-често използваните операции с OpenSC.