Активація безконтактних считывателей Broadcom
Огляд статусу безконтактних считывателей Broadcom на ноутбуках Dell.
Поточний стан
Деякі ноутбуки Dell обладнані считывателями смарт-карт Broadcom. Ці считыватели можуть працювати з контактними картами, а також з безконтактними. Контактні считыватели повинні коректно працювати з моїм драйвером CCID і входять до списку "повинні працювати, але не протестовані мною".
Проте жоден з безконтактних считывателей не підтримується моїм драйвером і потрапляє до категорії "непідтримувані або частково підтримувані" CCID считыватели.
Приклад з Dell Latitude 7350
$ lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 002: ID 0bda:557e Realtek Semiconductor Corp. Integrated_Webcam_FHD Bus 003 Device 003: ID 0a5c:5865 Broadcom Corp. 58200 Bus 003 Device 004: ID 8087:0036 Intel Corp. BE200 Bluetooth Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Виявлений считыватель — це Broadcom Corp. 58200 (USB idProduct = 0x5865).
Моя веб-сторінка драйвера CCID вказує для цього считывателя: Безконтактний інтерфейс не підтримується.
$ pcsc_scan PC/SC device scanner V 1.7.5 (c) 2001-2026, Ludovic Rousseau [email protected] Використовуючи механізм plug'n play для считывателей Сканування наявних считывателей... 0: Broadcom Corp 58200 [Contacted SmartCard] (0123456789ABCD) 00 00 1: Broadcom Corp 58200 [Contactless SmartCard] (0123456789ABCD) 01 00
Субота, 4 липня 2026 року 17:40:42 Считыватель 0: Broadcom Corp 58200 [Contacted SmartCard] (0123456789ABCD) 00 00 Номер події: 0 Стан картки: Картка видалена, Считыватель 1: Broadcom Corp 58200 [Contactless SmartCard] (0123456789ABCD) 01 00 Номер події: 0 Стан картки: Картка видалена, Вставте або видаліть картку або считыватель...
Мій драйвер CCID виявляє та повідомляє про обидва считывателі/інтерфейси. Проте лише контактний считыватель повідомляє про вставлення та видалення картки і може використовувати картку.
Считывателі є композитним пристроєм з двома інтерфейсами CCID: "Contacted SmartCard" та "Contactless SmartCard". Пристрій також має інтерфейс, позначений як "Broadcom ControlVault 3+ w/FingerPrint" та інший, позначений як "Broadcom NFP" (NFP означає "Near Field Proximity").
Електромагнітне поле
Безконтактний считыватель не виявляє наявність картки, оскільки його електромагнітне поле неактивне.
У мене є спеціальний детектор, який показує, коли безконтактний считыватель випромінює електромагнітне поле, і я не спостерігаю жодної активності.
Служба NFC Broadcom
Broadcom надає (приватну) програму за адресою https://packages.broadcom.com/artifactory/dell-controlvault-drivers/
Поточна версія — brcm_linux_nfc_6.4.23.tgz.
$ tar tzvf brcm_linux_nfc_6.4.23.tgz -rwxrwxr-x adminuser/adminuser 1427144 2026-05-01 00:48 usr/lib/broadcom-nfc/bcmnfcd.bin -rw-rw-r-- adminuser/adminuser 26117 2026-05-01 00:48 usr/lib/broadcom-nfc/bcmnfcd.conf -r-xr-xr-x adminuser/adminuser 155 2026-05-01 00:48 filelist -r-xr-xr-x adminuser/adminuser 961 2026-05-01 00:48 install.sh -r-xr-xr-x adminuser/adminuser 83 2026-05-01 00:48 rm.sh -r-xr-xr-x adminuser/adminuser 249 2026-05-01 00:48 etc/systemd/system/broadcom-nfc.service -r-xr-xr-x adminuser/adminuser 157 2026-05-01 00:48 lib/systemd/system-sleep/bcmnfcd-control.sh -r-xr-xr-x adminuser/adminuser 2098 2026-05-01 00:48 readme.txt -r-xr-xr-x adminuser/adminuser 4325 2026-05-01 00:48 LICENSE.broadcom
Підтримувані считывателі
Лише считывателі Broadcom з чипом CV3+ (або новішим) підтримуються службою NFC Broadcom для активації безконтактного інтерфейсу.
Старіші считывателі з чипом CV3 не працюватимуть.
Запам'ятайте ім'я інтерфейсу непідтримуваного CCID: "Broadcom ControlVault 3+ w/FingerPrint"? "ControlVault 3+" відноситься до чипа CV3+, тому цей считыватель сумісний.
Readme
Витяг з файлу readme.txt:
===========================================================
Демон NFC Broadcom для Linux
===========================================================
================ ОПИС ================
Цей пакет є пакетом на базі Linux для встановлення демона NFC Broadcom. Демон NFC запускається та забезпечує стек NFC, необхідний для ініціалізації та підтримки стану NFC контролера CV пристрою. Єдиною метою цього стека NFC є активація безконтактного CCID інтерфейсу.
Передбачається, що програмне забезпечення вищого рівня, таке як PCSC Lite, буде використовуватися в поєднанні з демоном NFC.
[...]
Встановлення
Після встановлення процес bcmnfcd.bin буде запущено:
$ systemctl status broadcom-nfc.service ● broadcom-nfc.service - Служба NFC Broadcom Завантажено: завантажено (/etc/systemd/system/broadcom-nfc.service; увімкнено; за замовчуванням: увімкнено) Активно: активно (працює) з суботи, 4 липня 2026 року 13:19:07 CEST; 1 хв 19 с тому Виклик: 45b58a953ed54891a3b7d3c167502c39 Основний PID: 9271 (bcmnfcd.bin) Завдання: 6 (ліміт: 18475) Пам'ять: 2.5M (макс: 3.5M) CPU: 48ms CGroup: /system.slice/broadcom-nfc.service └─9271 /usr/lib/broadcom-nfc/bcmnfcd.bin -d -f -c /usr/lib/broadcom-nfc/
Використання
Тепер можливо виявити та використовувати безконтактні смарт-картки.
$ pcsc_scan PC/SC device scanner V 1.7.3 (c) 2001-2024, Ludovic Rousseau [email protected] Використовуючи механізм plug'n play для считывателів Сканування наявних считывателів... 0: Broadcom Corp 58200 [Contacted SmartCard] (0123456789ABCD) 00 00 1: Broadcom Corp 58200 [Contactless SmartCard] (0123456789ABCD) 01 00
Субота, 4 липня 2026 року 13:21:48 Считыватель 0: Broadcom Corp 58200 [Contacted SmartCard] (0123456789ABCD) 00 00 Номер події: 0 Стан картки: Картка видалена, Считыватель 1: Broadcom Corp 58200 [Contactless SmartCard] (0123456789ABCD) 01 00 Номер події: 4 Стан картки: Картка видалена,
Субота, 4 липня 2026 року 13:21:50 Считыватель 1: Broadcom Corp 58200 [Contactless SmartCard] (0123456789ABCD) 01 00 Номер події: 5 Стан картки: Картка вставлена, ATR: 3B 8F 80 01 80 91 00 31 80 65 B0 84 05 00 25 83 01 90 00 CD
ATR: 3B 8F 80 01 80 91 00 31 80 65 B0 84 05 00 25 83 01 90 00 CD + TS = 3B --> Пряма конвенція + T0 = 8F, Y(1): 1000, K: 15 (історичні байти) TD(1) = 80 --> Y(i+1) = 1000, Протокол T = 0 ----- TD(2) = 01 --> Y(i+1) = 0000, Протокол T = 1 ----- + Історичні байти: 80 91 00 31 80 65 B0 84 05 00 25 83 01 90 00 Байт індикатора категорії: 80 (компактний TLV об'єкт даних) Тег: 9, len: 1 (невідомо) Значення: 00 Тег: 3, len: 1 (байт даних сервісу картки) Байт даних сервісу картки: 80 - Вибір програми: за повним іменем DF - Послуги доступу EF.DIR та EF.ATR: за командою GET RECORD(s) - Картка з MF Тег: 6, len: 5 (дані перед випуском) Дані: B0 84 05 00 25 Тег: 8, len: 3 (індикатор статусу) LCS (життєвий цикл картки): 01 (стан створення) SW: 9000 (нормальна обробка.) + TCK = CD (правильна контрольна сума)
Можливо, виявлена картка (використовуючи /home/ludovic/.cache/smartcard_list.txt): 3B 8F 80 01 80 91 00 31 80 65 B0 84 05 00 25 83 01 90 00 CD Безконтактний IDCore3230 версія 6.8, тестовий APDU аплет (JavaCard)
Якщо ви зупините процес /usr/lib/broadcom-nfc/bcmnfcd.bin, то безконтактний считыватель знову буде деактивовано.
Цей процес робить більше, ніж просто ініціалізує безконтактний считыватель.
Ліцензія
Витяг з файлу LICENSE.broadcom:
Авторське право: Авторське право © 2005-2023 Broadcom. Усі права захищено. Термін "Broadcom" відноситься до Broadcom Inc. та/або його дочірніх компаній. Ліцензія: Приватна [...]
Програма є приватною. Код джерела не надається.
Я розумію, що це може бути проблематично. Краще було б мати рішення з відкритим кодом.
Якщо ви хочете використовувати безконтактний считыватель, який працює без неплатного "драйвера", ви можете скористатися одним з підтримуваних списків або перевірити підтримку безконтактних функцій, якщо ви використовуєте считыватель з списку, що повинен працювати.
Я зазначаю, що для використання Wi-Fi карти на цьому ноутбуці мені потрібно встановити пакет firmware-iwlwifi, який надходить з репозиторію Debian non-free-firmware. Це подібна проблема, за винятком того, що для неплатної програми для безконтактного считывателя вона працює на основному ЦП, а не на ЦП Wi-Fi карти.
Висновок
Broadcom надає програму, яка дозволяє використовувати безконтактні считывателі.
Це не ідеально, оскільки ліцензія не є Free Software. Проте, вона дозволяє використовувати безконтактний считыватель, якщо це дійсно необхідно.


