Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Запуск E-154 под Linux

Вы не вошли.

 Поиск | Регистрация | Вход 

13.04.2021 07:54:03
#1

Участник
Здесь с 13.04.2021
Сообщений: 4

Запуск E-154 под Linux

Добрый день.

Пробую запустить ADC E-154 под Linux с библиотекой lcmp.
При сборке проекта возникает ошибка компиляции undefined reference to `IID_ILDEV' на строчке (из мануала):
HRESULT hr = pIUnknown->QueryInterface(IID_ILDEV,(void**)&pI);

Заголовочный ifc_ldev.h подключен, в нем прописано #define LCOMP_LINUX 1
Компилятор gcc (Debian 8.3.0-6) 8.3.0

Подскажите, как решить данную проблему?

14.04.2021 03:11:19
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,291

Re: Запуск E-154 под Linux

Здравствуйте.

А перед включением ifc_ldev.h у Вас есть определение INITGUID? Должно быть:

#define INITGUID
#include "lcomp/ifc_ldev.h"
14.04.2021 12:18:49
#3

Участник
Здесь с 13.04.2021
Сообщений: 4

Re: Запуск E-154 под Linux

Алексей L Card пишет:

Здравствуйте.

А перед включением ifc_ldev.h у Вас есть определение INITGUID? Должно быть:

#define INITGUID
#include "lcomp/ifc_ldev.h"

Спасибо, помогло.
Однако, столкнулся со следующей проблемой - не удается подключиться к модулю.
Точно известно, что модуль на 0 слоте.
Программа успешно запускается и работает по Windows, но под Linux CreateInstance(0) исправно возвращает в pIUnknown nullptr.
Перебор слотов 0-126 возвращает тот же результат.

Какие тут могут быть ошибки с моей стороны?
Заранее спасибо за ответ!

14.04.2021 21:44:15
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,291

Re: Запуск E-154 под Linux

Здравствуйте. А каким образом Вы устанавливали сами драйвера?
Нужно, чтобы драйвера были загружены (модули ядра) и был дан доступ к устройству с помощью правил udev.
При установке пакетов (https://www.lcard.ru/download/lcard_lin … utions.pdf) все уже будет сделано при установке lcomp-dkms, если вручную собирали из архива, то нужно копировать файл правил udev и запускать скрипт загрузки драйверов вручную.
Можно проверить, созданы ли вообще объекты устройств через

ls /dev | grep ldev

и загружен ли драйвер через

lsmod | grep ldev
15.04.2021 06:09:37
#5

Участник
Здесь с 13.04.2021
Сообщений: 4

Re: Запуск E-154 под Linux

Добрый день.
Из репозитория ставил liblcomp1, liblcomp1-dev, lcomp-dkms. В /etc/udev/rules.d лежит lcard.rules:

#KERNEL=="ldevice?", NAME="lcard/%k", SYMLINK+="ldev%n", MODE="0666"
KERNEL=="ldevice?", SYMLINK+="ldev%n", MODE="0666"

Однако /dev | grep ldev и lsmod | grep ldev ничего не возвращают.
Устройство определяется следующим образом

$ lsusb
Bus 001 Device 006: ID 0471:0154 Philips (or NXP) 
15.04.2021 07:19:59
#6

Участник
Здесь с 13.04.2021
Сообщений: 4

Re: Запуск E-154 под Linux

Вопрос решен обновлением linux-headers до 4.19.0-16

15.04.2021 16:13:34
#7

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,291

Re: Запуск E-154 под Linux

Видимо версии linux-headers и текущего ядра не совпадали и соответственно невозможно было собрать и запустить модуль ядра. linux-headers должны обновляться одновременно с самим ядром и быть одной версии.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск