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

Тема: Linux lcomp l791 зависает пример

Вы не вошли.

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

Семён
11.04.2017 14:11:41
#1

Гость

Linux lcomp l791 зависает пример

Здравствуйте!
Пытаюсь установить плату l-791 на linux slackware 14.2 darkstar 4.4.14.
1. Скопировал lcard.rules в etc/udev/rules.d
2. Скомпилировал и скопировал библиотеку liblcomp.so в usr/lib
3. Скопировал заголовки usr/local/include
4. Раскоментировал #include <linux/vmalloc.h. в ldevpcib.h (без этого драйвера не компилировались)
5. Скомпилировал и запустил драйвера make start
6. Скопировал liblcomp.so еще в папку тест
7. Скомпилировал пример test

Тест работает  с параметрами 0 l791. Но после второго нажатия любой клавиши компьютер полностью зависает. Так и задумано?

Пытаюсь написать программу в eclipse, добавляю библиотеку через свойства проекта и не компилируется проект (другие библиотеки работают при подключении таким способом, например, pthread). Ругается на makefile.
п.с. еще заметил, что makefile test флаги дополнительные установлены, например, DLCOMP_LINUX=1. Как корректировать автогенерируемый файл в eclipse не знаю. В этом может быть проблема? Если это так, то какие доп параметры нужны в makefile, чтобы библиотека работала.

11.04.2017 20:02:47
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

и что хоть пишет в логах и на экране? как в эклипсе не знаю. LCOMP_LINUX дефайнится для условной компиляции Windows исходников в той части где они под LINUX другие. ну и возможны нюансы в более свежих ядрах чем указано в readme/

Семён
12.04.2017 09:46:38
#3

Гость

Re: Linux lcomp l791 зависает пример

Подключил библиотеку с помощью функции dlopen библиотеки dl, как в примере Пример IoAsync для Linux Посмотрел, в примере test все точно так же подключается. Скомпилировалась программа, к сожалению, не описано всего этого в мануалах. Зависание в test осталось, в своей программе только проверил считывание с помощью IoAsync - работает.

Семён
14.04.2017 09:22:45
#4

Гость

Re: Linux lcomp l791 зависает пример

Вернемся к проблеме зависания. Пытаюсь считывать с АЦП данные с помощью кольцевого буфера. Но компьютер зависает на строчке
while(fl2==fl1) {fl2=(syncADC[I_ADC_PCI_COUNT_L791]<=halfbuffer)? 0:1; usleep(10);}
переменную syncADC получаю из функции SetParametersStream(&ap.t2, &tm, (void**)&dataADC, (void**)&syncADC,L_STREAM_ADC);
Это происходит как в примере, упоминал выше, так и написанном мной коде по примеру.
Без вызова status=pI->StartLDevice(); поток просто уходит в бесконечный цикл, что и логично. До вызова этой функции флаги равны fl2=fl1=0, после fl2=1. Потом  fl2=fl1=1. Если на этом моменте остановить программу, а потом заново запустить, то она зависнет при выполнении LUnknown* pIUnknown = CreateInstance(0).
Как решить данную проблему?

14.04.2017 13:25:35
#5

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

после старта можно просто мониторить syncADC[I_ADC_PCI_COUNT_L791] без всяких потоков. если он не меняется значит что-то плохо с басмастером. Хорошо бы просто проверить работоспособность под Windows на другой какой машине и на этой. Возможны глюки и несовместимости. Linux какой? x64 или 32. Можно на 32 проверить.

Семён
22.04.2017 15:40:31
#6

Гость

Re: Linux lcomp l791 зависает пример

Проверил на другой машине, но с точно таким же железом. Взял другую плату l791.
Поставил систему:
Linux darkstar 3.2.29-smp #2 SMP Mon Sep 17 13:16:43 CDT 2012 i686 Intel(R) Celeron(R) CPU G1840 @ 2.80GHz GenuineIntel GNU/Linux
Так как в readme к драйверу написано: "Это 1.51  версия драйверов для Linux, ядро 3.2.29. Разрабатывалось и тестировалось под Slackware 14.0 (работоспособно в 32 и 64-bit версиях)".
Скомпилировал и запустил сразу без проблем драйвера. Тест опять зависает при попытке сбора данных с буфера.
Может в системе какие настройки нужно менять?
Вот компьютер:
материнская плата GIGABYTE GA-H81M-S2PV
процессор Intel Celeron-G1840 2800MHz
ОЗУ Kingston 2ГБ DDR3 SDRAM "ValueRAM" KVR16N11S6/2
SSD Patriot 60ГБ "Blaze" PB60GS25SSDR
DeepCool Explorer [DE430]

24.04.2017 13:19:12
#7

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

а под windows если ? работает?

Семён
26.04.2017 17:13:53
#8

Гость

Re: Linux lcomp l791 зависает пример

Попробовал под windows x32 на этой машине - работает

27.04.2017 13:56:32
#9

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

это хорошо. тогда логи нужны всяческие.

Семён
12.05.2017 12:34:46
#10

Гость

Re: Linux lcomp l791 зависает пример

А какие логи то нужны? Логи dmesg, syslog, messages зависание никак не отображают, только информацию, которая пишется при загрузке/перезагрузке системы.
п.с. комбинации клавиш с SysReq не работают при зависании.

12.05.2017 13:21:30
#11

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

если тред не запускать тоже зависает?

12.05.2017 14:28:32
#12

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

если драйвера собраны с DEBUG=y то должны быть от них сообщения.

Семён
15.05.2017 08:27:42
#13

Гость

Re: Linux lcomp l791 зависает пример

Драйвера собраны с DEBUG=y. Если не запускать поток, то зависает на команде  pI->StartLDevice(); Без этой команды не зависает.
Скопировал логи, время записи: включение компьютера, зависание, перезагрузка.
Логи на google.drive

16.05.2017 16:30:09
#14

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

я 2 недели в отпуске. так что придется подождать.

Семён
19.05.2017 13:42:07
#15

Гость

Re: Linux lcomp l791 зависает пример

Поставил на винт систему linux slackware 12.2 ядро 3.2.21.
Запустил на одном компьютере Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz - работает, плата собирает данные.
Запустил на другом: Intel core 4400 2GHz, ОЗУ 2гб x86 - работает, плата собирает данные.
Запустил с этого же винта на системе моей (писал характеристики выше) - зависает компьютер.
Поставил ubuntu 14.04.2 kernel 4.40-78 i686 SMP. Так же зависает, но удалось собрать логи, правда, только в картинках: логи-фото.

01.06.2017 16:06:58
#16

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

На той где не работает попробуйте в структуре конфигурирующей сбор данных отключить прерывания IrqEna=0. Судя по логам какая-то проблема с чтением регистра прерывания у платы и их сбросом и происходит непрерывный вызов обработчика прерывания...

Семён
13.06.2017 10:34:47
#17

Гость

Re: Linux lcomp l791 зависает пример

Поменял IrqEna=0. Так же зависает, конец логов такой:
[151.490738] lcard: In INIT_SYNC
[151.491995] lcard: In START
[151.493168] lcard: enable
[151.494361] lcard: pci_map_sg() result 256
[151.495634] lcard: 4 3
[151.496856] lcard: DAC rate 0
Программа выдает:
shared word 0 0
shared word ffffffff 0
shared word ffffffff 0
shared word ffffffff 0

15.06.2017 13:31:36
#18

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

а  биосе компа есть что-нибудь про UEFI, PnP OS и виртуализацию? можно там все это поотключать? так даже и не знаю почему не работает если под Windows работает...

Семён
16.06.2017 07:13:46
#19

Гость

Re: Linux lcomp l791 зависает пример

На linux запустить не получится в итоге? Остается только win использовать?

16.06.2017 13:23:29
#20

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

у меня нет такой платы на H81. работа в драйверах l791 что windows что linux построена на одном принципе как бы. разница если только в инициализации чипсетов этими ОС. На другом-то чипсете у Вас все работает....

Семён
16.06.2017 14:05:06
#21

Гость

Re: Linux lcomp l791 зависает пример

Можно ли с Вами договориться об отправке этого компьютера, например, курьером, чтобы Вы потестировали АЦП и драйвер в Линукс сами?

16.06.2017 14:59:10
#22

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux lcomp l791 зависает пример

попробуйте с офисом поговорить. сошлитесь на этот топик.

Семён
24.04.2019 13:02:20
#23

Гость

Re: Linux lcomp l791 зависает пример

Приведу ответ сотрудника l-card по поводу данной проблемы, вдруг кто еще столкнется. (Дата переписки 07.2017)
Я погонял и повертел на нем разные ревизии платы  и версии  ОС на компьютере:
материнская плата GIGABYTE GA-H81M-S2PV
процессор Intel Celeron-G1840 2800MHz
ОЗУ Kingston 2ГБ DDR3 SDRAM "ValueRAM" KVR16N11S6/2
SSD Patriot 60ГБ "Blaze" PB60GS25SSDR
DeepCool Explorer [DE430].
Ничего  хорошего  под  Linux не получилось. При включении busmaster битика у платы и начале переачи сразу же пропадает доступ к регистрам   платы  -  из  них  читается  FFFFFFFF.  Почему  такого  не происходит под Windows я не знаю.
Но есть мат. платы других компов, где  эта плата заработала.
Первый компьютер довольно старый: мат плата Intel DP965 LT, чипсет Intel P965-ревизия С2, южный мост - 82801HB - ревизия BO.
Второй - пром компьютер в сборе iROBO-2000-43i5, где:
Объединительная плата: PBPE-13A8 ссылка: https://ipc2u.ru/catalog/pbpe-13a8
Процессорная плата(Одноплатная ЭВМ): ROBO-8111VG2AR-Q77 ссылка: https://ipc2u.ru/catalog/robo-8111vg2ar-q77

Вобщем ситуация такая.
На современных чипсетах Intel нет нативной поддержки PCI шины. Для ее реализации применяют мосты PCIe-PCI. В данном случае на этой матплате стоит ITE IT8892E. C ним наша плата отказывается работать в режиме BusMaster под Linux.
В Windows работает нормально. Возможно в Windows есть какой-то драйвер который как-то более грамотно инициализирует микросхему этого моста.
К сожалению датащитов на эти микросхемы в интернете нет и посмотреть что там можно отконфигурить не представляется возможным.
Более того - ради эксперимента я пытался запустить в PCI слоте видеокарту PCI - она не работает совсем....
Кроме  таких чипов моста бывают другие - например Asus часто использует микросхему ASMedia asm1083.
В интернете мнения о глючности этих чипов разделяются - часть народу рекомендует  ITE, часть ASMedia. В основном это актуально в системах видеонаблюдения для плат видеозахвата и еще это обсуждают  пользователи проф звуковых видеокарт.

Контакты

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

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

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

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