Не читается wiegand по R1 R2

Подключил считыватель wiegand, запускаю скрипт опроса (https://github.com/contactless/wiegand-linux-sysfs)
Подношу одну и ту же карту - и у меня все время разные значения и размерность передаваемого кода.
Подскажите в чем может быть причина? номера GPIO - 5 (R1) и 4 (R2) согласно документации
номера GPIO устанавливал в скрипте. Надо ли их дополнительно настраивать?

root@wirenboard:/usr/xml/wiegand-linux-sysfs-master# nice -n-19 ./wiegand_epoll 5 4
Using GPIO 5 for D0 and GPIO 4 for D1
got value 1 = 0x1 (2 bits)
got value 2011972 = 0x1eb344 (22 bits)
got value 740562 = 0xb4cd2 (21 bits)
got value 5085508 = 0x4d9944 (24 bits)
got value 25412 = 0x6344 (17 bits)

С питоном то же самое
root@wirenboard:/usr/xml/wiegand-linux-sysfs-master# nice -n-19 ./wiegand_test1.py
Binary: 0101010110
342
Binary: 00011100
28
Binary: 00101101010101101000100
1485636
Binary: 001011000110110100010
363938

Попробуйте наш ядерный драйвер: https://github.com/contactless/wiegand-linux

Но вообще странно конечно, осциллографом бы посмотреть на линии.

Не могу скомпилировать…
linux/module.h - No such file or directoty
Нет linux-2.6, он должен быть изначально на WB5?

Евгений, здесь вы пишете, что подключать wiegand нужно на A1-A2


В документации указано R1-R2
http://contactless.ru/wiki/index.php/Поддерживаемые_устройства

Где правда? :slight_smile:

apt-get install linux-headers-4.1.15-imxv5-x0.1 (если прошивка wb5 последняя) или linux-headers-3.19.0-imxv5-x0.1 (если не очень)

Установил - перезагрузился - в /usr/src/ появилась папка, в ней в include есть linux/module.h
но не помогло. linux/module.h - No such file or directory
Подскажите, откуда я должен запускать компиляцию, куда скопировать папку со скриптом?

Лучше бы конечно вообще не на WB.
Для линукса есть окружение http://contactless.ru/wiki/index.php/Как_разрабатывать_ПО_для_Wiren_Board

Туда правда тоже нужно сделать apt-get install linux-headers-4.1.15-imxv5-x0.1

А на WB вам нужно просто написать make KSRC=путь к хедерам линукса

Думаю там не про WB5

из директории склоненной из гита, make KERNEL_DIR=/lib/modules/4.1.15-imxv5-x0.1/build

Запустил окружение, установил хедеры, склонил из гита, все равно не получается…
Или он построил все-таки? не могу понять, что за ошибки, подскажите, ребята

root@wbdevenv:/usr/wiegand-linux# make KERNEL_DIR=/lib/modules/4.1.15-imxv5-x0.1/build
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -C /lib/modules/4.1.15-imxv5-x0.1/build SUBDIRS=/usr/wiegand-linux modules
make[1]: Entering directory /usr/src/linux-headers-4.1.15-imxv5-x0.1' Building modules, stage 2. MODPOST 1 modules LD [M] /usr/wiegand-linux/wiegand-gpio.ko /bin/sh: 1: arm-linux-gnueabi-ld: not found make[2]: *** [/usr/wiegand-linux/wiegand-gpio.ko] Error 127 make[1]: *** [modules] Error 2 make[1]: Leaving directory/usr/src/linux-headers-4.1.15-imxv5-x0.1’
make: *** [all] Error 2
root@wbdevenv:/usr/wiegand-linux#

Похоже, что вы находитесь в виртуализованном armel окуржении (эмуляция процессора wiren board). В таком случае вам не нужно скармливать ARCH и CROSS_COMPILE, т.к. вы компилируете под ту платформу, в которой и находитесь (armel).

Если использовать команду как у вас, то нужно выполнять её в

wbdev root

… только вот хедеры там апт-гетом уже не поставить, нужно вручную ставить пакет.
CROSS_COMPILE и ARCH забиты в Makefile.

Итого, работающая последовательность с использованием виртуализованного окружения:

boger@boger-laptop:~/tmp/wiegand$ wbdev chroot
root@wbdevenv:/home/boger/tmp/wiegand# apt-get install linux-headers-4.1.15-*
root@wbdevenv:/home/boger/tmp/wiegand/wiegand-linux# make -C /lib/modules/4.1.15-imxv5-x0.1/build SUBDIRS=`pwd` modules

Помогите, пожалуйста, с настройкой wiegand-a в WB. На данный момент ситуация как в первом посте. Наверняка же есть стандартные шаги для добавления драйвера.