Форум: Техническая поддержка

Тема: Установка E14-440 на Linux (ядро 5.4.0-73)

Вы не вошли.

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

nub
07.06.2021 13:10:57
#1

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

Установка E14-440 на Linux (ядро 5.4.0-73)

Здравствуйте, уважаемые разработчики!

Использую модуль E14-440 на компьютере под линукс для сбора данных. Сам ни разу не программист, но примерно 1-1.5 года назад, при помощи данного форума, удалось установить драйвера на Ubuntu из архива https://www.lcard.ru/download/lcomp_linux.tgz и даже переделать тестовую программку test оттуда же в консольное приложение, которое позволяло запускать сбор данных из терминала (дальше всё скриптами). Всё отлично работало некоторое время, потом необходимость в сборе данных отпала, а сейчас появилась опять вместе с новыми проблемами.

Пытаюсь действововать как тогда, но уже на другой машине. Возможно не все помню и/или делаю что-то лишнее.

sudo apt-get install  gcc g++ gdb cmake libfontconfig1 mesa-common-dev build-essential libglu1-mesa-dev 
sudo apt-get install libatomic*
wget https://www.lcard.ru/download/lcomp_linux.tgz
tar -xvzf ./lcomp_linux.tgz
cd ./dstr
sudo cp lcard.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
make

В результате получаю ошибку:

make -C /lib/modules/5.4.0-73-generic/build M=/home/yyy/dstr modules
make[1]: Entering directory '/usr/src/linux-headers-5.4.0-73-generic'
  CC [M]  /home/yyy/dstr/ldevice.o
  CC [M]  /home/yyy/dstr/l760.o
  CC [M]  /home/yyy/dstr/ldevpciu.o
  LD [M]  /home/yyy/dstr/ldevpci.o
  CC [M]  /home/yyy/dstr/e2010.o
  CC [M]  /home/yyy/dstr/e140.o
  CC [M]  /home/yyy/dstr/e440.o
  CC [M]  /home/yyy/dstr/e154.o
  CC [M]  /home/yyy/dstr/ldevusbu.o
  LD [M]  /home/yyy/dstr/ldevusb.o
  CC [M]  /home/yyy/dstr/l791.o
  CC [M]  /home/yyy/dstr/ldevpcib.o
  LD [M]  /home/yyy/dstr/ldevpcibm.o
  Building modules, stage 2.
  MODPOST 4 modules
FATAL: parse error in symbol dump file
scripts/Makefile.modpost:93: recipe for target '__modpost' failed
make[2]: *** [__modpost] Error 1
Makefile:1673: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.4.0-73-generic'
Makefile:28: recipe for target 'modules' failed
make: *** [modules] Error 2

Пробовал на разных машинах с регулярно обновляемой Ubuntu 20.04 - результат один и тот же. Гугл подсказывает, что проблема то ли в ядре, то ли в headers. Выхлоп uname -sr дает:

Linux 5.4.0-73-generic

На той машине с уже установленными драйверами, что работала 1-1.5 года назад, но регулярно обновлялась после этого, sudo ./start выдает ошибку:

insmod: ERROR: could not insert module ldevice.ko: Invalid module format
insmod: ERROR: could not insert module ldevpcibm.ko: Invalid module format
insmod: ERROR: could not insert module ldevpci.ko: Invalid module format
insmod: ERROR: could not insert module ldevusb.ko: Invalid module format

а попытка всё перекомпилировать приводит к той же ошибке, что и на новых машинах (см. выше).

Пробовал установить с нуля на совсем старой машине, которая пылилась на полке года 4 без обновлений (сейчас там Ubuntu 16.04, ядро 4.4.0-83). После мучений с libatomic_ops, который приходится ставить вручную, драйвера и программы вроде бы компилируются. При подключении модуля появляются /dev/ldev* и  /dev/ldevice* (поучему-то пять штук с индексами от 0 до 4). Но ./test 0 E440 дает ошибку

19
CallCreateInstance failed

Даже если удастся временно запустить на старой машине, использовать её не получится по другим причинам.

Действительно ли на новых машинах проблема с новым ядром? Как быть при установке lcomp на свежие системы? Очень не хватает пошаговой инструкции...

nub
07.06.2021 15:06:29
#2

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

Re: Установка E14-440 на Linux (ядро 5.4.0-73)

UPD

nub пишет:

Пробовал установить с нуля на совсем старой машине, которая пылилась на полке года 4 без обновлений (сейчас там Ubuntu 16.04, ядро 4.4.0-83). После мучений с libatomic_ops, который приходится ставить вручную, драйвера и программы вроде бы компилируются. При подключении модуля появляются /dev/ldev* и  /dev/ldevice* (поучему-то пять штук с индексами от 0 до 4). Но ./test 0 E440 дает ошибку

19
CallCreateInstance failed

Даже если удастся временно запустить на старой машине, использовать её не получится по другим причинам.

на этой старой машине (4.4.0-83) после всяческих манипуляций (перезапуск, уже не поймешь что...) всё заработало, но вопрос с новыми ядрами остается открытым.

09.06.2021 13:33:44
#3

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

Re: Установка E14-440 на Linux (ядро 5.4.0-73)

Здравствуйте.
Попробовал скачать и проверить на Live-CD Ubuntu 20.04, но указанной проблемы не обнаружил, все собралось без проблем.
Но у них сейчас доступна только 20.04.02 и ядро там изначально 5.8.0-43, обновляемое до 5.8.0-55.

Странно, что у Вас осталось ядро 5.4. А как Вы обновляли дистрибутив - через apt upgrade или apt dist-upgrade? Первая не удаляет пакеты и соответственно не изменяет версию ядра. Возможно у Вас какая-то проблема с тем, что часть утилит обновлено, а ядро используется не последнее (на ubuntu уже сталкивался с проблемами в случаях, когда ядро не обновлялось вместе с другими компонентами).

nub
09.06.2021 16:45:37
#4

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

Re: Установка E14-440 на Linux (ядро 5.4.0-73)

Алексей!
попробовал на свежеустановленной Ubuntu 20.04 - действительно всё компилируется.

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

Странно, что у Вас осталось ядро 5.4. А как Вы обновляли дистрибутив - через apt upgrade или apt dist-upgrade? Первая не удаляет пакеты и соответственно не изменяет версию ядра. Возможно у Вас какая-то проблема с тем, что часть утилит обновлено, а ядро используется не последнее (на ubuntu уже сталкивался с проблемами в случаях, когда ядро не обновлялось вместе с другими компонентами).

Обычно через  apt upgrade. Наверное, в этом и причина, как Вы указали.

Спасибо за ответ, всё классно, только, повторюсь, очень не хватает инструкции для юзеров, которые не дружат со сборкой пакетов и т.п., а также консольного приложения для записи из терминала.
Еще раз спасибо за поддержку!

09.06.2021 21:15:27
#5

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

Re: Установка E14-440 на Linux (ядро 5.4.0-73)

Отлично.
С этим замечаниями согласен, если будет возможность, то нужно будет подумать об этом.
Кстати, сейчас в тестовом режиме библиотеку и драйвер можно ставить как готовые пакеты. Инструкция аналогична https://www.lcard.ru/download/lcard_lin … utions.pdf, но пакеты в debian lcomp-dkms и liblcomp1-dev. Тогда можно не собирать драйвера и библиотеки, копировать правила и стартовать драйвер, а все это будет автоматически сделано и при обновлении ядра драйвер будет автоматом пересобираться.

Вручную тогда нужно собрать только свое ПО/тестовый пример.

С консольным начинал делать, но именно для E20-10 для отладки его дополнительных возможностей (https://gitlab.com/l-card/acq/devices/e … r/main.cpp). Возможно подобное можно будет сделать для остальных модулей, если появится время.

Контакты

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

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

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

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

L-CARD в проектах