Oscill Support Forum

You are not logged in.

 

#1 2010-07-05 21:11:53

K.
Member

usb.oscill + Linux

На основе материалов:

Grid?? Использование в linux
http://www.oscill.com/rus/forum.html?ta … d=516#p516

Изменение PID usb.oscill
http://www.oscill.com/rus/software/wino … hange.html

Не всё ясно было пошагово именно в Линукс, в результате выяснения появился этот текст.

Первым делом изменяем pid на стандартный от производителя моста,
как указано в "Изменение PID usb.oscill"

Далее в системе должны быть установлены  wine и cabextract

Подключаем usb.oscill к порту usb и в терминале в ответ на команду:

dmesg

Наблюдаем подобный вывод:
...
usb 1-1: new full speed USB device using uhci_hcd and address 4
usb 1-1: configuration #1 chosen from 1 choice
cp2101 1-1:1.0: cp2101 converter detected
usb 1-1: reset full speed USB device using uhci_hcd and address 4
usb 1-1: cp2101 converter now attached to ttyUSB0

Видим, что чип cp210x определился, подхвачен драйвером и ему
назначено устройство ttyUSB0

В дистрибутивах на ядрах 2.6.х драйвер входит в стандартный набор
(на более старых ядрах - не интересовался)

Если wine ещё ни разу не запускался, то просто даём команду

wine

В результате в домашнем каталоге будут созданы необходимые
wine подкаталоги и файлы.

Далее выясним есть ли уже назначенные wine com порты:
ls $HOME/.wine/dosdevices
.  ..  c:  com1  com2  com3  com4  d:  e:  lpt1  lpt2  lpt3  lpt4  unc

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

ln -is /dev/ttyUSB0 $HOME/.wine/dosdevices/com5

или правим по вкусу уже имеющиеся.

Отдельно проверим права на устройство

ls -l /dev/ttyUSB0

crw-rw---- 1 root uucp 4, 64, 2010-07-05 22:14 /dev/ttyUSB0

Видим, что устройство принадлежит группе uucp, пользователь
должен входить в эту группу, что проверяется командой:

groups

в выводном списке должны наблюдать в числе прочих  uucp

Если в эту группу не входим, то средствами дистрибутива добавляем
себя в неё.

Для работы ПО oscill необходимы библиотеки MS VBA 5.
Устанавливаем их либо посредством скрипта winetricks
http://www.kegel.com/wine/winetricks

winetricks vb5run

либо вручную, скачав с сайта MS

http://download.microsoft.com/download/ … vbvm50.exe

и установив командой:

wine msvbvm50.exe

переключим библиотеки oleaut32 в реестре wine:

winetricks native_oleaut32

Можно сделать это одной командой

winetricks vb5run, native_oleaut32

Собствено теперь можно распаковать ПО oscill в директорию
$HOME/.wine/dosdevices/c:  и находясь внутри директории с ПО
дать команду

wine oscill.exe

При первом запуске можем получить ошибку wine и длинный вывод
с состоянием регистров и прочим.
Не страшно, запускаем ещё раз и получаем результат.

http://s43.radikal.ru/i100/1007/45/c67649ad099b.jpg
http://s43.radikal.ru/i100/1007/45/c67649ad099b.jpg

usb.oscill + Acer Aspire One AOA110 + Simply Linux

http://s003.radikal.ru/i204/1007/a1/bfa31a3166c7.jpg
http://s003.radikal.ru/i204/1007/a1/bfa31a3166c7.jpg

Работает как текущая версия 1.2.7,
так и текущая бета 1.3.4

Сам осциллограф, приборы, вывод осциллограмм в bmp, gif, animated gif,
в рекордере - запись и воспроизведение осциллограмм.
При выводе в jpeg - вылетает ошибка. Ввиду отсутствия необходимости
не разбирался.

Проверено в:

Ubuntu 9.04
ядро 2.6.28-19-generic
версия wine 1.0.1
группа-владелец ttyUSBx dialout

ALD 4.1.1
ядро 2.6.25-std-def-alt8.M41.1
версия wine 1.0.9
группа-владелец ttyUSBx uucp

Simply Linux 5.0.1
ядро 2.6.30-std-def-alt15
версия wine 1.1.44
группа-владелец ttyUSBx uucp

На старом liveCD Knoppix 3.4
ПО начинает запускаться, но падает.
Видимо из-за wine версии 0.9.х

Last edited by K. (2010-07-05 21:54:45)

 

#2 2010-07-07 22:03:03

Oscill
Oscill author

Re: usb.oscill + Linux

Спасибо за такое подробное описание. Библиотека msvbvm50 есть в Windows начиная с 98, также она поставляется на диске, и можно скачать с нашей страницы загрузки ПО.

 

#3 2010-07-08 01:28:50

vvzvlad
Member

Re: usb.oscill + Linux

во, хоть кто то для линукса  написал. smile надо добавить туда, в раздел

[offtop]вот бы еще базу знаний по осциллу на вики перенести ;-)[/offtop]

а ты скорость порта не настраивал?

 

#4 2010-07-08 13:28:33

Oscill
Oscill author

Re: usb.oscill + Linux

судя по скриншоту - скорость 115200. Интересно, можно ли при таком пробросе порта получить 921600?
Хотя, 115200 - тоже можно комфортно работать. Правда, FPS тут маленький - чтобы проверить максимум FPS, нужно от дефолтных настроек:
- отключить Auto в триггере
- установить пиковый режим
- установить 10us/div
- установить свободную развертку (кнопка F)
- в Display-Show time уменьшить простой процессора до 5мс/кадр.

 

#5 2010-07-09 22:32:53

K.
Member

Re: usb.oscill + Linux

vvzvlad wrote:

во, хоть кто то для линукса  написал. smile надо добавить туда, в раздел

Ну тут несколько сумбурно, если причесать немного.
И с доустановкой в wine недостающего, видимо зависит от дистрибутивной сборки.
Общий алгоритм такой - запускаем из терминала, смотрим на что жалуется.
Потом смотрим, что получилось. Например без native_oleaut32 вроде
работает, но нет сетки на экране осциллографа.
В Убунте сетка и родной курсор появились сразу, видимо там настройки
wine по умолчанию другие, чем в Альте.

а ты скорость порта не настраивал?

Скорость 115200 поднялась драйвером сразу.
stty показывает.

 

#6 2010-07-09 22:50:16

K.
Member

Re: usb.oscill + Linux

Oscill wrote:

Спасибо за такое подробное описание. Библиотека msvbvm50 есть в Windows начиная с 98, также она поставляется на диске, и можно скачать с нашей страницы загрузки ПО.

Хотелось подключить осциллограф к своему нетбуку.
Разобрался и описал, может ещё кому полезно будет.

Oscill wrote:

судя по скриншоту - скорость 115200. Интересно, можно ли при таком пробросе порта получить 921600?
Хотя, 115200 - тоже можно комфортно работать. Правда, FPS тут маленький - чтобы проверить максимум FPS, нужно от дефолтных настроек:
- отключить Auto в триггере
- установить пиковый режим
- установить 10us/div
- установить свободную развертку (кнопка F)
- в Display-Show time уменьшить простой процессора до 5мс/кадр.

Установил этот режим.
На машине с ALD 4.1.1 / E2160 1,80GHz  - 13-14 fps.
На нетбуке с Simply Linux 5.0.1 / Атом 1,6GHz  - 10 fps.

При реальной работе на нетбуке 3-6-8 fps, на мой взгляд вполне приемлемо.
А сколько fps должно получиться исходя из скорости порта 115200?

Скорость пробовал изменять, как в настройках подключения osclink отдельно,
так и с предустановкой через системную команду stty совместно с osclink -
не может установить коннект.
Возможно 115200 прибито в драйвере, хотя на установки stty не жалуется
и рапортует, что скорость изменена. Но проверить, так ли это, не на чем.

Last edited by K. (2010-07-09 23:06:11)

 

#7 2010-07-10 13:08:49

Oscill
Oscill author

Re: usb.oscill + Linux

K. wrote:

Установил этот режим.
На машине с ALD 4.1.1 / E2160 1,80GHz  - 13-14 fps.
На нетбуке с Simply Linux 5.0.1 / Атом 1,6GHz  - 10 fps.
При реальной работе на нетбуке 3-6-8 fps, на мой взгляд вполне приемлемо.

маловато. Вернее, работать можно, но судя по низкому FPS при 5мс зазоре между кадрами - остальным приложениям остаётся мало времени. Какая загрузка процессора при этом? Зависит ли она (а также FPS) от настройки Show Time ?

K. wrote:

А сколько fps должно получиться исходя из скорости порта 115200?

40-60 FPS начиная с PIII/Celeron 1000.
При 921600 - до 90 FPS, но не на всех машинах. Например, ноутбук Центрино 1,5МГц даёт 90FPS, а 4ядерный AMD 3100МГц - только 62FPS. То есть, дело в чипсете ПК (и его драйверах).
На таких больших FPS уже играет роль кадровый принцип действия USB, то есть время законного простоя пакета в буферах приема-передачи становится сопоставимым с обработкой в осцилле и в оболочке.

 

#8 2010-07-12 19:58:23

K.
Member

Re: usb.oscill + Linux

Oscill wrote:

K. wrote:

Установил этот режим.
На машине с ALD 4.1.1 / E2160 1,80GHz  - 13-14 fps.
На нетбуке с Simply Linux 5.0.1 / Атом 1,6GHz  - 10 fps.
При реальной работе на нетбуке 3-6-8 fps, на мой взгляд вполне приемлемо.

маловато. Вернее, работать можно, но судя по низкому FPS при 5мс зазоре между кадрами - остальным приложениям остаётся мало времени. Какая загрузка процессора при этом? Зависит ли она (а также FPS) от настройки Show Time ?

Сегодня ещё посмотрел. FPS от установки Show Time 50 и меньше не изменяется.
Загрузка процессорного времени:
на Е2160 - 8-9%
на Атоме, если принять его за два ядра - порядка 20%, на одно "гипертрейдинговое ядро" - 35-40%

Ещё обнаружилось - в wine 1.0.9 oscill вызывает утечку памяти. Замена на версию 1.1.13 всё поправила. Насчёт 1.0.9 были сообщения, что в некоторых приложениях "течёт".

Ещё со сменой pid есть нюанс. setpid меняет pid на стандартный, после этого
у меня он oscill не увидел, с VCP драйверами с сайта силабс. Силабсовская
утилита по прошивке vid/pid видит. Подменой CP210xManufacturing.dll setpid
"прозревает" и даёт вернуть pid к исходному состоянию.
При этом силабсовская утилита перестаёт видеть устройство.smile
При подкладывании, в свою очередь, ей dll из упаковки setpid она oscill видит.

 

#9 2010-07-12 23:17:21

Oscill
Oscill author

Re: usb.oscill + Linux

K. wrote:

Сегодня ещё посмотрел. FPS от установки Show Time 50 и меньше не изменяется.

наверное, в этом и причина - кванты времени win-приложению отдаются иначе, чем в нативной Windows.

K. wrote:

Загрузка процессорного времени:
на Е2160 - 8-9%
на Атоме, если принять его за два ядра - порядка 20%, на одно "гипертрейдинговое ядро" - 35-40%

а может, в этом эмуляторе где-то задается выделение процессорного времени?

 

#10 2010-07-13 19:43:12

K.
Member

Re: usb.oscill + Linux

Oscill wrote:

K. wrote:

Сегодня ещё посмотрел. FPS от установки Show Time 50 и меньше не изменяется.

наверное, в этом и причина - кванты времени win-приложению отдаются иначе, чем в нативной Windows.

K. wrote:

Загрузка процессорного времени:
на Е2160 - 8-9%
на Атоме, если принять его за два ядра - порядка 20%, на одно "гипертрейдинговое ядро" - 35-40%

а может, в этом эмуляторе где-то задается выделение процессорного времени?

Они пишут, что wine не эмулятор. Он(о) транслирует вызовы к системным
dll Win в системные вызовы Линукс, посредством своих библиотек.
Т.е. в отличие от виртмашин производительность не регулируется
и приложения работают в системе на равных с другими.
Пишут, что в большинстве случаев это не приводит к снижению
производительности, а иногда и наоборот, что-то работает быстрее.
http://wiki.winehq.org/FAQ#head-c9e6502 … 757a6738e3
1.3. Is Wine an emulator? There seems to be disagreement.

А можно узнать список системных dll, к которым обращается оболочка oscill?
Возможно подкладыванием нужной dll-ки производительность улучшится.
Может низкий FPS связан с низким быстродействием в отрисовке графики?

 

#11 2010-07-13 22:42:04

Oscill
Oscill author

Re: usb.oscill + Linux

K. wrote:

приложения работают в системе на равных с другими.

они-то работают, но Windows/Linux переключают задачи через интервалы времени. Даже в разных Windows эти интервалы разные. Оболочка Oscill-а после каждого цикла "запрос-оцифровка-ответ-рисование" отдаёт управление операционной системе, и в следующий раз получает управление через 10 миллисекунд (Win XP). Вот это и есть ограничение - если система реже переключает задачи, то возможность посылки след запроса наступит позже, хотя процессор простаивает.
В принципе, обойти это можно, в след версии кое-что сделаем.

K. wrote:

Может низкий FPS связан с низким быстродействием в отрисовке графики?

чтобы проверить это предположение, нужно:
1) вызвать управление соединением (Link-Setup), и в нем включить счетчик пакетов/сек (OBEX - PPS meter)
2) включить трансляцию пакетов в буфер обмена (File - Export to clipboard)
3) свернуть окно осциллографа
при этом, измеритель FPS остановится (поскольку приходящие пакеты будут направляться только в буфер обмена, но не в рисование/измерители), а PPS продолжит показывать частоту обмена.

Хотя, если б кушала графика - загрузка процессора была бы выше.

 

#12 2010-07-14 19:38:22

K.
Member

Re: usb.oscill + Linux

Oscill wrote:

K. wrote:

Может низкий FPS связан с низким быстродействием в отрисовке графики?

чтобы проверить это предположение, нужно:
1) вызвать управление соединением (Link-Setup), и в нем включить счетчик пакетов/сек (OBEX - PPS meter)
2) включить трансляцию пакетов в буфер обмена (File - Export to clipboard)
3) свернуть окно осциллографа
при этом, измеритель FPS остановится (поскольку приходящие пакеты будут направляться только в буфер обмена, но не в рисование/измерители), а PPS продолжит показывать частоту обмена.

Хотя, если б кушала графика - загрузка процессора была бы выше.

Ага, с такими установками на обеих системах PPS поднялся до одинакового
значения - 17.
Можно подозревать, что дело в скорости обмена с портом?

 

#13 2010-07-15 12:46:08

Oscill
Oscill author

Re: usb.oscill + Linux

K. wrote:

Можно подозревать, что дело в скорости обмена с портом?

да, причем даже не в скорости на порте (115200 - достаточно для 40FPS), а в задержках linux - Wine - oscilink.dll . Сейчас будет версия, которая в File-System Info показывает разрешающую способность системного таймера. Например, W2K/WXP на одном ядре - 10мс (вот поэтому и FPS=90), Seven на 4х ядрах - 15мс (и FPS тут 62), на win98 измерить не удалось, но есть информация про 55мс.

 

#14 2010-07-15 21:07:50

K.
Member

Re: usb.oscill + Linux

Oscill wrote:

K. wrote:

Можно подозревать, что дело в скорости обмена с портом?

да, причем даже не в скорости на порте (115200 - достаточно для 40FPS), а в задержках linux - Wine - oscilink.dll . Сейчас будет версия, которая в File-System Info показывает разрешающую способность системного таймера. Например, W2K/WXP на одном ядре - 10мс (вот поэтому и FPS=90), Seven на 4х ядрах - 15мс (и FPS тут 62), на win98 измерить не удалось, но есть информация про 55мс.

Сегодня таки пришло в голову посмотреть собственно на сигнальные линии USB.
Судя по ширине бита - честно 115200. Пакеты идут без перерывов.
Разрешение системного таймера в ядре Линукса определяется при сборке ядра.
Пишут, раньше стандартным значением было 250Гц, в новых ядрах
должно быть 1000Гц.
Видимо ограничение именно во взаимодействии ядро - wine - программа.

 

#15 2010-07-17 21:42:32

Anatoliy
Member

Re: usb.oscill + Linux

Hi All!
Спасибо за ценную информацию
На Ubuntu 10.04 поставил согласно инструкции - работает,но
FPS = 8,команда: stty -F /dev/ttyUSB0 speed выдает скорость 57600.
Второй системой у меня стоит WinXP. Здесь FPS = 48
В меню Link-Setup-Speed галочки стоят на 9600 и 115200,в WinXP 9600 и 921600 соответственно
Что ему не хватает,можно ли увеличить скорость?
Спасибо!

 

#16 2010-07-17 22:23:09

K.
Member

Re: usb.oscill + Linux

Anatoliy wrote:

Hi All!
Спасибо за ценную информацию
На Ubuntu 10.04 поставил согласно инструкции - работает,но
FPS = 8,команда: stty -F /dev/ttyUSB0 speed выдает скорость 57600.
Второй системой у меня стоит WinXP. Здесь FPS = 48
В меню Link-Setup-Speed галочки стоят на 9600 и 115200,в WinXP 9600 и 921600 соответственно
Что ему не хватает,можно ли увеличить скорость?
Спасибо!

Пока есть большие подозрения, что FPS ограничивается в связке ядро-wine-программа.

Oscill wrote:

K. wrote:

Можно подозревать, что дело в скорости обмена с портом?

да, причем даже не в скорости на порте (115200 - достаточно для 40FPS), а в задержках linux - Wine - oscilink.dll

скорость в порту можно изменить командой
stty -F /dev/ttyUSB0 115200

драйвер на
stty -F /dev/ttyUSB0
отрапортует уже о новой скорости, но у меня не получилось запустить
oscilink на скорости отличной, от поднявшейся по умолчанию.
Сам я, просто пользователь линукса и компетентно помочь разработчикам не могу.smile

 

#17 2010-07-17 23:27:53

Oscill
Oscill author

Re: usb.oscill + Linux

Механизм трансляции COM-порта не ясен. Вполне может быть, что эта настройка скорости в Linux играет ту же роль, что и настройка скорости COM-порта в панели управления Windows, то есть - никакую: в Windows стоит 9600, а в реальности порт работает на заказанной приложением скорости.

Перед экспериментами с настройками лучше обновить прошивку до 1.26 (будет автоопределение скорости oscill-ом) и убрать галочку со Start on 9600. Для чистоты эксперимента - перед каждым нажатием "Connect" кратковременно отключать oscill от USB, поскольку автоопределение скорости только в начале.

Сейчас готовится версия oscilink.dll, работающая не только по таймеру (который в Wine может быть загрублен), но и по событию прихода пакета. В Windows удалось получить FPS за сотню, хотя смысла в таком большом FPS уже нет - он достижим только на быстрых развертках, а на миллисекундах FPS начинает ограничиваться длительностью развертки.

 

#18 2010-07-18 01:35:43

K.
Member

Re: usb.oscill + Linux

А нельзя ли на основе oscilink.dll написать утилитку, которая бы расширенно
показывала, что ей показывает и отдаёт система и, инициировав обмен с
осциллографом, просто отправляла поток данных в null, при этом
индицируя, что обмен идёт штатным образом?
Я бы позапускал.smile
Подумалось checkit какой попробовать позапускать и посмотреть,
что ему видно, но со штатной библиотекой обмена было бы
правильнее.

 

#19 2010-07-18 08:55:35

Anatoliy
Member

Re: usb.oscill + Linux

K. wrote:

скорость в порту можно изменить командой
stty -F /dev/ttyUSB0 115200

драйвер на
stty -F /dev/ttyUSB0
отрапортует уже о новой скорости, но у меня не получилось запустить
oscilink на скорости отличной, от поднявшейся по умолчанию.

Скорость в порту я увеличил,но бесполезно
Галочка стает на 115200,а FPS=8-9
PS:У меня FirmWare = 1.26,HardWare=1.23 - это правильно?

Last edited by Anatoliy (2010-07-18 09:11:27)

 

#20 2010-07-18 14:25:08

Oscill
Oscill author

Re: usb.oscill + Linux

Версия платы роли не играет в вопросе скорости. А прошивка 1.26 последняя.

 

#21 2010-07-18 14:42:08

Oscill
Oscill author

Re: usb.oscill + Linux

K. wrote:

А нельзя ли на основе oscilink.dll написать утилитку, которая бы расширенно
показывала, что ей показывает и отдаёт система

характеристики порта система не показывает - приложение вслепую настраивает и открывает порт, может только получить ошибку, если открыть не удается. В реестре и панели управления Windows тоже информации о макс.скорости порта нет.

Но мне представляется, что дело не в скорости порта, а в выдаче от Linux+Wine нашему приложению квантов времени. Если кванты выдаются редко - то и пакеты будут приниматься от oscill редко.

Вот программка, которая показывает и позволяет менять период таймера планировщика задач Windows:
www.oscill.com/files/TimerResolution.exe .

 

#22 2010-07-19 12:26:41

K.
Member

Re: usb.oscill + Linux

Oscill wrote:

K. wrote:

А нельзя ли на основе oscilink.dll написать утилитку, которая бы расширенно
показывала, что ей показывает и отдаёт система

характеристики порта система не показывает - приложение вслепую настраивает и открывает порт, может только получить ошибку, если открыть не удается. В реестре и панели управления Windows тоже информации о макс.скорости порта нет.

Но мне представляется, что дело не в скорости порта, а в выдаче от Linux+Wine нашему приложению квантов времени. Если кванты выдаются редко - то и пакеты будут приниматься от oscill редко.

Вот программка, которая показывает и позволяет менять период таймера планировщика задач Windows:
www.oscill.com/files/TimerResolution.exe .

Запускал я её ещё раньше.smile
При нескольких последовательных запусках она получает всё увеличивающиеся значения,
начиная от 6.558 мс, при этом min 420.139 max 340.420.

 

#23 2010-07-19 12:39:58

K.
Member

Re: usb.oscill + Linux

Anatoliy wrote:

K. wrote:

скорость в порту можно изменить командой
stty -F /dev/ttyUSB0 115200

драйвер на
stty -F /dev/ttyUSB0
отрапортует уже о новой скорости, но у меня не получилось запустить
oscilink на скорости отличной, от поднявшейся по умолчанию.

Скорость в порту я увеличил,но бесполезно
Галочка стает на 115200,а FPS=8-9
PS:У меня FirmWare = 1.26,HardWare=1.23 - это правильно?

Ненастраиваемость скорости порта возможно из-за версии драйвера.

У меня при подключении осциллографа последняя строчка в выводе dmesg
drivers/usb/serial/cp2101.c: Silicon Labs CP2101/CP2102 RS232 serial adaptor driver v0.07

На сайте Силабс предлагается драйвер версии 3.0, но предложенная схема сборки
под линукс не годится для Убунту. Т.е. если есть опыт сборки программ в линуксе,
то, я так понимаю, можно просто поправить там макросы и собрать драйвер.
Я пока в сборке не силён.

 

#24 2010-07-21 19:28:44

Oscill
Oscill author

Re: usb.oscill + Linux

Вот статья про ускорение перебора задач в Linux и повышение их приоритета.

 

#25 2010-07-28 21:38:41

Oscill
Oscill author

Re: usb.oscill + Linux

Вот еще про последовательный порт в Linux: http://www.febo.com/time-freq/ntp/jitter/index.html

 

Forum Tools