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


Драйвера от Е440 для ла3-USB под linux

Вы не вошли.

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

Денис
01.07.2010 07:24:48
#1

Гость

Драйвера от Е440 для ла3-USB под linux

Доброго времени!
Имеется АЦП ЛА3-USB, на этом форуме видел сообщение, что по начинке оно идентично E440, а значит, и дрова должны подходить.
Скачал lcomp_linux.tgz, дрова собрались и девайсы в системе появились.
Собрал программы из папок plugin1 и zoomer (потребовало многочисленных изменений в коде, в основном, по оборачиванию строк ascii в wxT()).
./osc_dlg вываливается с сегфолтом при попытке подсоединения, test также вываливается на одной из стадий.
Копнул немного глубже, проблема оказалась в библиотеке lcomp, файл ldevbase.cpp, функция RequestBufferStream в секции, где назначаются указатели для map_inBuffer и map_outBuffer.
Обработка ошибок функции написана не верно, насколько я понял. В случае неудачи mmap возвращает не NULL а ((void *)-1).
После исправления обнаружил, что он возвращает ошибку EAGAIN, исправил это убрав флаг MAP_LOCKED из вызова функции. После этого стал возвращать ENOENT, однако сегфолты ушли, но test уходит в бесконечный цикл и пишет "shared word 0 0".
Собственно вопрос, то делать дальше, что ещё можно попробовать?
Буду рад любым советам, Спасибо.

01.07.2010 09:53:26
#2

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

Re: Драйвера от Е440 для ла3-USB под linux

plugin1 может рабоотать только с PCI платами.... А test вываливается возможно если биос не загрузился....LoadBios что возвращает?

01.07.2010 09:58:59
#3

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

Re: Драйвера от Е440 для ла3-USB под linux

Мапить драйвер должен без ошибки. Поэтому проверка не должна влиять...А так исправим.... Неплохо бы указывать версию Linux тк там периодически всякое меняется в ядре....

Денис
01.07.2010 10:18:01
#4

Гость

Re: Драйвера от Е440 для ла3-USB под linux

в plugin1 я отрезал проверку на boardname smile После этого плата появилась в списке. Ладно, это грязный хак, не будем рассматривать. Изменения по поводу обёртки строк интересны? могу прислать diff.

По поводу test.
$ ./test E440.bio /dev/ldev0
Get IDaqLDevice interface                         
IDaqLDevice get success                           
Free IUnknown                                     
OpenLDevice Handle3                               

Slot parameters
Base    0     
BaseL   0     
Mem     0     
MemL    0     
Type    1e     
DSPType 889
Irq     0
Load Bios 2
Plata Test 2

Read FLASH

SerNum       BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBUrc޷�_޷��ו��rv`c޷��ו�>v`�
BrdName      BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBUrc޷�_޷��ו��rv`c޷��ו�>v`�   
Rev                                                                                                   
DspType      BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBUrc޷�_޷��ו��rv`c޷��ו�>v`�       
IsDacPresent                                                                                         
Quartz       104990274                                                                               

Press any key
alloc size 2048   
Buffer size(word): 0
Pages:             0
IrqStep:           4096
FIFO:              4096
Rate:              1.60205

Press any key
Ошибка сегментирования.

Использую AltLinux p5
версия ядра - 2.6.30-std-def-alt15

01.07.2010 10:49:43
#5

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

Re: Драйвера от Е440 для ла3-USB под linux

Так видно же что не загрузилась.... и строка вызова типа test 0 E440.bio должна быть....

Денис
01.07.2010 11:12:05
#6

Гость

Re: Драйвера от Е440 для ла3-USB под linux

Ну readme там в папке я не нашел..
$ ./test 0 E440.bio - Результат аналогичный.
А как загрузить-то его? Куда копнуть? Спасибо.

01.07.2010 11:25:56
#7

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

Re: Драйвера от Е440 для ла3-USB под linux

он без параметров выдает справку. Я ошибся.. test 0 E440 без расширения...

Денис
01.07.2010 11:52:14
#8

Гость

Re: Драйвера от Е440 для ла3-USB под linux

Блин, что-то я даже не догадался без параметров запустить.. ./test -h проверил, и подумал что справки нет.
О! Теперь что-то пошло smile Вот что даёт тест:
$ ./test 0 E440
Get IDaqLDevice interface
IDaqLDevice get success
Free IUnknown
OpenLDevice Handle3

Slot parameters
Base    0
BaseL   0
Mem     0
MemL    0
Type    1e
DSPType 889
Irq     0
Load Bios 0
Plata Test 0

Read FLASH
SerNum       6L993795
BrdName      E440
Rev          C
DspType      2185
IsDacPresent
Quartz       24000000

Press any key

alloc size 1001472
Buffer size(word): 131072
Pages:             32
IrqStep:           4096
FIFO:              4096
Rate:              1

Press any key
shared word 0 0

В последней строчке первая цифра изменяется с инкрементов в 1000, вторая - всегда нуль.
mmap проходит без ошибок.
С этим теперь можно сделать что-нить полезное?
Что означает этот shared word?

01.07.2010 12:29:36
#9

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

Re: Драйвера от Е440 для ла3-USB под linux

ну это счетчик бежит заполнения буфера, а данные в файл пишутся...

Денис
01.07.2010 12:56:31
#10

Гость

Re: Драйвера от Е440 для ла3-USB под linux

Невероятно, но в файле есть какие-то значения!
т.е., похоже что это работает.. А есть ли какой-нить простенький визуализатор под это дело? Примеры с тем, как настраивать АЦП..
Это скорее всего описано в мануале для разработчика, но если бы это дело было подкреплено примерами под linux...
Кстати, как вообще обстоят дела с графическими программами для пингвина? Какова Ваша политика в этом отношении?
Спасибо.

01.07.2010 21:34:01
#11

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

Re: Драйвера от Е440 для ла3-USB под linux

В zoomer можно открыть....там указать этото файл и 4 канала.... а так исходник test показывает основной принцип....

Денис
02.07.2010 06:42:13
#12

Гость

Re: Драйвера от Е440 для ла3-USB под linux

Понятно. Спасибо большое! В следующий раз будем покупать Ваши модули LTR smile
Возможно мы тут будем писать кое-какую графику на qt для снятия данных, могу показать как будет что-то готово, возможно вам будет интересно.
Спасибо ещё раз.

02.07.2010 12:33:53
#13

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: Драйвера от Е440 для ла3-USB под linux

С LTR только смотрите, пока штатного софта под линукс нет sad
Хотя один могучий человек уже занялся его портированием - http://www.lcard.ru/forumthreads/8960

Алексей
06.07.2010 15:03:39
#14

Гость

Re: Драйвера от Е440 для ла3-USB под linux

А уже спортировал - все работает. Но только для LTR11 и только для Ethernet. И все по типу работы с PCI платой - то есть, никаких автоматических поисков, многих клиентов и т.п. - просто указывается адрес и номер канала - старт и стоп. :-)
Сейчас решаю задачу, как быть, если в процессе работы крейт отвалится на время - чтобы его переподключить корректно.
P.S. Думаю, что для других модулей легче будет уже переделать.