PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Для новичков (http://pccar.ru/forumdisplay.php?f=170)
-   -   Pl2303drv - замена pl2303.ko ! (http://pccar.ru/showthread.php?t=19270)

AngelOfGrief 15.06.2013 19:33

Pl2303drv - замена pl2303.ko !
 
В недрах 4PDA нарыл программку, которая называется pl2303drv. Вкратце суть: выполняет ту же функцию что небезызвестный модуль pl2303.ko, но, соответственно, не является модулем, а посему, не несёт таких громадных неудобств по совместимости как pl2303.ko, который надо иметь скомпилированным под конкретную версию ядра.

Как программа может заменять драйвер? Ну вот так, может. Вот такой он, Linux. :)

В том виде как программа была выложена, у меня она не работала. Выдавала ошибки, а та версия, что я всё же смог запустить, поддерживала только 9600, что мне не подходило. В итоге, я взял исходники, которые автор любезно опубликовал, убрал из программы лишнее, исправил ошибки (в частности, убрал вызовы system(), которые у меня работали некорректно) и дописал некоторые функции. Например, теперь можно указывать желаемое имя порта tty, а также скорость соединения.

Usage:

pl2303drv [имя порта] [скорость]

Указывать только стандартные скорости! :) Пример:

pl2303drv /dev/ttyUSB0 19200

Поддерживается именно PL2303, причём device ID должен быть стандартным для PL2303, т.е. 2303:067b. В принципе, у них у всех он одинаковый. Если
в вашем конвертере помимо PL2303 установлена 8-контактная микросхема flash, скорее всего, в неё и зашит другой ID. Отключите её (5 и 6 ножки) и всё будет хорошо.

Заодно те, у кого происходит постоянная борьба между GPS и модемом за имя порта, смогут навсегда решить свою проблему: вы можете указать порту любое имя какое вам вздумается. Кабель можно втыкать наживую, а затем запускать программу - ей всё равно. Лишь бы девайс присутствовал на момент запуска.

Поскольку программа сама не умеет завершаться, она не удаляет при прерывании созданные порты. Поэтому при каждом запуске она будет их удалять. Программа ведёт лог, в который пишет поток входящих данных. Проверить работу программы можно как обычно командой cat /dev/ttyUSB0

У меня работает отлично. По идее, должна работать на любом девайсе с архитектурой ARM-v7, а это большинство современных девайсов.

Исходник также прилагается, я его компилировал под Linux при помощи кросс-компилятора Sourcery G++, но у него есть и Windows версия, думаю, под виндой тоже при желании скомпилировать можно.

Топик автора программы:

http://4pda.ru/forum/index.php?showtopic=375823&st=40

Я несколько раз обращался к автору, но ответа не получил.

Ссылка на скачку программы - в 4-м посте.

s.m. 16.06.2013 00:54

я не очень понял, она же должна висеть в памяти постоянно.
Но это же не демон? Или демон?
Убивает ли ее Андроид через некоторое время?

AngelOfGrief 16.06.2013 01:57

Цитата:

Сообщение от s.m. (Сообщение 261427)
я не очень понял, она же должна висеть в памяти постоянно.
Но это же не демон? Или демон?
Убивает ли ее Андроид через некоторое время?

По идее, должен убивать, но у меня пока работает, в новом девайсе памяти много. ))

На это тоже есть решение, кто-то писал уже. Нужно поместить прогу в notification area. Для этого есть софтина, название не помню.
Я в любом случае буду работать в направлении компиляции модуля .ko, просто это сложнее намного...

AngelOfGrief 16.06.2013 02:23

Вложений: 1
Версия без ведения лога, без вывода на экран статистики. Для улучшения быстродействия. Ещё внутри программы добавлены команды chmod, теперь устанавливать права на /dev/ttyUSB0 в .sh файле не нужно.

AngelOfGrief 17.06.2013 17:00

По поводу убивания программы андроидом: она провисела в течение 2 суток непрерывно вместе с GPSTest: всё работает. Сейчас попробовал запустить Antutu Test (к-й по идее достаточно много жрёт ресурсов), после его запуска всё продолжает работать. В течение этих 2 дней запускал разные программы, навигацию, плееры, Angry Birds итд итп.

Возможно, причина в том, что созданный виртуальный порт /dev/ttyUSB0 открыт системным процессом (GPS либой). Хотя, не знаю. ))

alex4222 13.09.2013 14:12

У меня вот что пишет. на любой скорости. и данные не идут в навител (((
со старой версией на 9600 которая все гуд, только скорость 9600 не устраивает.

root@android:/data/test/1 # ./pl2303drv /dev/ttyUSB0 4800

PL2303drv by vovan.v.rum, mod by Ao'Gf
--------------------------------------

Searching for device VID_067b&PID_2303
Found PL2303 device VID_067b&PID2303 (Index=0)
Baudrate requested: 4800
Creating virtual tty. Virtual port: /dev/pts/5
System: unlink /dev/ttyUSB0
System: symlink(/dev/pts/5,/dev/ttyUSB0)
PL2303 serial installed on /dev/ttyUSB0. Type `cat /dev/ttyUSB0` in another shel l window to test.

System: chmod 0666 /dev/pts/5
System: chmod 0666 /dev/ttyUSB0
CTL=0 : CTL=0 : CTL=7 : CTL=7 : CTL=0 :CTL=7 :CTL=0 :BLK=-1 : RD=0xc0 : INT=-1 : RD=0xc0 :CTL=0 :INT=-1 :RD=0xc0 :

err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
err_num - 1
^C
130|root@android:/data/test/1 #

alex4222 13.09.2013 14:16

хотя данные идут

130|root@android:/data/test/1 # cat /dev/ttyUSB0
$GPRMC,091552.742,V,,,,,,,130913,,,N*4F

$GPGGA,091553.742,,,,,0,00,,,M,0.0,M,,0000*5C

$GPGLL,,,,,091553.742,V,N*70

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,091553.742,V,,,,,,,130913,,,N*4E

$GPGGA,091554.742,,,,,0,00,,,M,0.0,M,,0000*5B

$GPGLL,,,,,091554.742,V,N*77

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,091554.742,V,,,,,,,130913,,,N*49

$GPGGA,091555.742,,,,,0,00,,,M,0.0,M,,0000*5A

$GPGLL,,,,,091555.742,V,N*76

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,091555.742,V,,,,,,,130913,,,N*48

$GPGGA,091556.742,,,,,0,00,,,M,0.0,M,,0000*59

$GPGLL,,,,,091556.742,V,N*75

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,091556.742,V,,,,,,,130913,,,N*4B

$GPGGA,091557.742,,,,,0,00,,,M,0.0,M,,0000*58

$GPGLL,,,,,091557.742,V,N*74

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

^C
130|root@android:/data/test/1 #

AngelOfGrief 13.09.2013 14:30

Ну если идут, наверное в чём-то другом проблема... А что вы используете в кач-ве драйвера GPS ?

alex4222 13.09.2013 14:38

Цитата:

Сообщение от AngelOfGrief (Сообщение 270534)
Ну если идут, наверное в чём-то другом проблема... А что вы используете в кач-ве драйвера GPS ?

USBGPS. стартует как обычно и девайс прописан /dev/ttyUSB0.

если консоль с прогой закрыть, то не стартует.

синенький кружочек со значками блутуч, связь и спутник

alex4222 13.09.2013 15:04

http://SSMaker.ru/86578a64/

что то с моим приемником случилось ((( данные принимает, но координату даже в винде не вычисляет. и лампочка красная на нем раньше моргала, а теперь просто горит. что это может быть? приемник BU-353s4 USB

alex4222 13.09.2013 15:38

Заработало Ураааааааааа. на 4800 )))))) Приемник на подоконнкик положил.
Спасибо огромное за прогу )))))

как бы теперь облегчить запуск этого хозяйства? как можно в андроиде ярлык на скрипт сделать сделать? чтоб он запускал консоль, набирал su и остальное.

AngelOfGrief 13.09.2013 18:59

Ну поэтому и не работает. Спутники не ловит. Это и в вашем логе видно, я сразу не обратил внимания. Координат-то нет. GPGGA - там координаты должны быть.

luss 15.09.2013 08:58

А можно объяснить чайнику куда кидать чем открывать по пунктам а то что то не получается

luss 17.09.2013 14:24

Вроде бы разобрался запускаю в Serial Port ttyUSB0 данные идут а драйвер UsbGps запускается и сразу отваливается в чем дело.....

alex4222 18.09.2013 10:21

Цитата:

Сообщение от luss (Сообщение 270936)
Вроде бы разобрался запускаю в Serial Port ttyUSB0 данные идут а драйвер UsbGps запускается и сразу отваливается в чем дело.....

команда cat /dev/ttyUSB0 показывает данные GPS?

если да, то смотрите настройки драйвера USBGPS - скорость и путь
еще проверьте стоит ли галочка - фиктивное местоположение в разделе разработчика.


Может разработчик скомпилить простенький интерфейс? 1 кнопка - старт и она же стоп. А то у меня прога pl2303drv запускается только со 2-го раза постоянно (планшет всегда полностью выключаю) и на запуск навигатора уходит много времени ((((

luss 18.09.2013 14:47

команда cat /dev/ttyUSB0 показывает данные GPS
,в драйвере USBGPS также выставил ttyUSB0 скорости у меня нет, запускаешь и через 5 сек выскакивает connection problem
фиктивное местоположение в разделе разработчика галочка стоит

может драйвер не тот какую надо версию?

alex4222 19.09.2013 14:56

Цитата:

Сообщение от luss (Сообщение 271074)
команда cat /dev/ttyUSB0 показывает данные GPS
,в драйвере USBGPS также выставил ttyUSB0 скорости у меня нет, запускаешь и через 5 сек выскакивает connection problem
фиктивное местоположение в разделе разработчика галочка стоит

может драйвер не тот какую надо версию?

http://4pda.ru/forum/dl/post/2363236/ExtGps4Droid.apk я этой пользуюсь.

в этой теме все разжевано http://4pda.ru/forum/index.php?showtopic=375823&st=20

luss 19.09.2013 17:47

Так я с той темы и перешел. PL2303drv из той темы работает на скорости 9600 а еще надо другой приемник на 38400 завести вылазит Connection problem. Will retry 5 more times before closing
Еще вопрос в папку распаковывать архив в data или создавать папку test и почему вы набираете команду data/test/1# у меня запускается без последнего 1# может это влияет?

luss 19.09.2013 17:49

Кстати я пользуюсь программой GScriptLite забиваю текст и затем просто запускаю скрипт

alex4222 02.10.2013 15:53

Цитата:

Сообщение от luss (Сообщение 271235)
Так я с той темы и перешел. PL2303drv из той темы работает на скорости 9600 а еще надо другой приемник на 38400 завести вылазит Connection problem. Will retry 5 more times before closing
Еще вопрос в папку распаковывать архив в data или создавать папку test и почему вы набираете команду data/test/1# у меня запускается без последнего 1# может это влияет?

data/test/1/ сюда положил pl2303drv

Можете положить в другое место, но, как я понял, главное на системном разделе. Делается с помощью файлового менеджера с рутовым доступом. Простые файловые менеджеры ничего не видят и не копируют.

dmitry-c 23.06.2014 18:15

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

126|root@rk3188:/ # su
root@rk3188:/ # cd data
root@rk3188:/data # cd test
root@rk3188:/data/test # cd 1
root@rk3188:/data/test/1 # ./pl2303drv /dev/ttyUSB0 4800
sh: ./pl2303drv: can't execute: Permission denied


Как быть?

AngelOfGrief 23.06.2014 19:34

chmod +X pl2303drv

dmitry-c 24.06.2014 17:24

Вот что выдаёт:

10|root@rk3188:/data/test/1 #su
root@rk3188:/data/test/1 # chmod +X pl2303drv
Bad mode
10|root@rk3188:/data/test/1 #

AngelOfGrief 24.06.2014 18:00

chmod 0777 pl2303drv

попробуйте так

dmitry-c 24.06.2014 19:03

Цитата:

Сообщение от AngelOfGrief (Сообщение 300804)
chmod 0777 pl2303drv

попробуйте так

Получилось вот что:

1|root@rk3188:/ # su
root@rk3188:/ # cd /data/test/1
root@rk3188:/data/test/1 # ./pl2303drv /dev/ttyUSB0 4800

PL2303drv by vovan.v.rum, mod by Ao'Gf
--------------------------------------

Searching for device VID_067b&PID_2303
Found PL2303 device VID_067b&PID2303 (Index=0)
Baudrate requested: 4800
Creating virtual tty. Virtual port: /dev/pts/2
System: unlink /dev/ttyUSB0
System: symlink(/dev/pts/2,/dev/ttyUSB0)
PL2303 serial installed on /dev/ttyUSB0. Type `cat /dev/ttyUSB0` in another shell window to test.

System: chmod 0666 /dev/pts/2
System: chmod 0666 /dev/ttyUSB0
CTL=0 : CTL=0 : CTL=7 : CTL=7 : CTL=0 :CTL=7 :CTL=0 :BLK=1 : RD=0x56 : INT=-1 :RD=0x56 :CTL=0 :INT=-1 :RD=0x56 :


Перехожу в другое окно терминала набираю:

u0_a67@rk3188:/ $ cat /dev/ttyUSB0
/system/bin/sh: cat: /dev/ttyUSB0: No such file or directory


Перехожу в Рут эксплорер, обновляю директорию /dev и вправду устройства ttyUSB0 нет...

dmitry-c 24.06.2014 20:18

Перезапустил устройство, по новой запустил прогу, данные на cat /dev/ttyUSB0 пошли, но софт не видит спутники

dmitry-c 24.06.2014 20:50

Ничего не пойму, один раз получилось увидеть данные, но повторно после перезагрузки опять та же история, устройство пропадает в /dev после запуска программы

AngelOfGrief 24.06.2014 21:01

Любое другое имя попробуйте. Возможно кто-то параллельно его удаляет.

dmitry-c 25.06.2014 07:11

В обшем ситуация такая, прога работает, но надо ее запустить дважды, после первого раза устройство /dev/ttyUSB0 исчезает, после повторного запуска появляется, данные cat /dev/ttyUSB0 идут. Если после запуска удалить из USB порта GPS приемник, то при повторном подключении создается устройство в /dev c именем ttyUSB1 (при каждом перевключении следующий ttyUSB2 и т.д.). Но нави софт не работает, спутников нет, параллельно работает терминал и данные есть...

AngelOfGrief 25.06.2014 13:35

Чтобы нави софт работал, надо запускать ещё доп. софт помимо эмулятора ttyUSB0. Это описано на форуме. Вы сейчас просто организовали поток GPS данных, над его дополнительно обработать чтобы стандартный софт увидел эти данные.

dmitry-c 25.06.2014 15:07

Цитата:

Сообщение от AngelOfGrief (Сообщение 300855)
Чтобы нави софт работал, надо запускать ещё доп. софт помимо эмулятора ttyUSB0. Это описано на форуме. Вы сейчас просто организовали поток GPS данных, над его дополнительно обработать чтобы стандартный софт увидел эти данные.

Я это понимаю, уже отписался в нужной ветке, спасибо.

Mypp 22.09.2014 16:50

а что значит "err_num - 1"?

gps спутники видит, там светодиод который загорается после фиксации
по cat /dev/ttyUSB0 вижу поток данных, в том числе и вижу координаты $GPGGA

но постоянно валится эта ошибка и соответсно ничего не работает :(

кстати, стандартные скорости это какие? 38400 это стандартная или нет?

Baikan4ik 20.12.2014 01:19

кто-нибудь пробовал подружить BananaPI и globalsat bu-353? запускаю pl2303, устройство находится, команда cat выдает координаты, приемник моргает. Но ни одна из программ типа Here Are You, UsbDroid и подобные не видят этот приемник. В SerialApi устройство видится и в консоли данные идут

Vyacheslav 25.02.2015 01:06

Цитата:

Сообщение от Mypp (Сообщение 307043)
а что значит "err_num - 1"?

Поддерживаю вопрос!
Но при этом у меня все работает. Делаю так:
Прогу загрузил прямо в /data
В теминале запускаю

/data/pl2303drv /dev/ttyUSB0 38400

Далее в новом окне ввожу

busybox stty -F /dev/ttyUSB0 ispeed 38400
busybox chmod 666 /dev/ttyUSB0
setprop "ro.kernel.android.gps" "ttyUSB0"

Потом запускаю перед этим установленную USBGPS4Droid
Все. Яндекс-навигатор, яндекс-карты работают.

Теперь вопрос как это все автоматизировать.
В первом окне терминала постоянно валится эта ошибка "err_num - 1". И если я прерываю прогу, у меня останавливается поток данных.
Как я понимаю в одном скрипте это не сделать...

SanchSanch 25.02.2015 15:15

Вложений: 1
Поправил версию проги pl2303drv из 4 поста данной темы.
Она у меня не работала со скоростью 115200, так же не работала передача данных в направлении от хоста к устройству.
Прикладываю скомпилированный бинарник вместе с поправленными исходниками.
Возможно, бинарник у всех не заработает, я не гуру компиляции.
Компилил прямо на устройсве прогой C4Droid из маркета (не реклама), у меня работает.
Почему-то размер бинарника получился вссего 21k против 580k в 4-м посте. Может быть там использовалась статическая компиляция, но как это настроить я не разобрался.

Список изменений:
1. В ф-ции main
1) Исправлен баг с количеством пересылаемых в pl2303 байт (при коммуникации от хоста к устройству). Могло быть одной из причин неработоспособности передачи данных в этом направлении.
2) Уменьшена в 10 раз задержка (usleep) в конце главного цикла - со 150 мс до 15 мс. Одна их причин неработоспособности скорости 115200 (и скорее всего некоторых более низких скоростей тоже). Значение взял "от балды", но вроде помогло.

2. В ф-ции pl2303_open
Исправлен баг с прописыванием сокрости в конфигурационный буфер чипа. Прописывалось только 2 байта, теперь пишется 3 байта. Основная причина неработоспособности сокорости 115200. Т.к. для двух байт максимальное значение скорости могло быть 65535.

3. В ф-ции pl2303_write
Исправлен номер Endpoint, используемой для передачи данных в pl2303 - должно быть 0x02 вместо 0x03. Основная причина неработоспособности передачи данных в направлении от хоста к устройству.

SanchSanch 25.02.2015 15:23

Цитата:

Сообщение от Vyacheslav (Сообщение 321606)
Поддерживаю вопрос!
Но при этом у меня все работает. Делаю так:
Прогу загрузил прямо в /data
В теминале запускаю

/data/pl2303drv /dev/ttyUSB0 38400

Далее в новом окне ввожу

busybox stty -F /dev/ttyUSB0 ispeed 38400
busybox chmod 666 /dev/ttyUSB0
setprop "ro.kernel.android.gps" "ttyUSB0"

Потом запускаю перед этим установленную USBGPS4Droid
Все. Яндекс-навигатор, яндекс-карты работают.

Теперь вопрос как это все автоматизировать.
В первом окне терминала постоянно валится эта ошибка "err_num - 1". И если я прерываю прогу, у меня останавливается поток данных.
Как я понимаю в одном скрипте это не сделать...

По поводу автоматизации - чтобы скрипт не дожидался завершения программы, а переходил к следующей команде, для бесконечно выполняемых программ нужно в конце добавлять символ & (через пробел, а может и без пробела можно).
То же самое можно делать и при запуске команд вручную в терминале. Но тгда прогу нельзя будет прервать нажатием Ctrl+C, а только командой вида "killall pl2303drv", или "kill NNNN", где NNNN - ID запущенного процесса pl2303drv.

По поводу "errnum - 1". Точно не скажу, но возможно связано с длительностью задержки в конце основного цикла программы. У меня такое кажется было, когда пытался запустить прогу с большими скоростями. Попробуй мою версию из предыдущего поста.

Vyacheslav 26.02.2015 15:39

Спасибо SanchSanch за столь оперативный ответ, да еще с новой версией проги!
Сегодня попробовал твою версию, у меня почти ни чего не изменилось, так же пишет "errnum - 1", а иногда "errnum - 2" проскакивает.
Ну да ладно, сейчас пытаюсь разобраться со скриптом и пытаюсь понять можно ли обойтись без USBGPG4droid, без ее запуска не работает.

Andrew@ 04.06.2015 09:42

А если пишет что не находит свисток U-blox7? Хотя в USB он появляется как устройство (не TTY).
Андроид 4.0.3 ядро 3.0.8+ VID_1546&PID_01A7
Что делать?

freeloader 01.09.2015 03:00

Цитата:

Сообщение от Vyacheslav (Сообщение 321729)
Ну да ладно, сейчас пытаюсь разобраться со скриптом и пытаюсь понять можно ли обойтись без USBGPG4droid, без ее запуска не работает.

Получилось отказаться от дополнительной проги?

freeloader 16.09.2015 01:18

Цитата:

Сообщение от freeloader (Сообщение 337007)
Получилось отказаться от дополнительной проги?

Отвечу для соискателей.
Либа из этой темы: http://www.pccar.ru/showthread.php?t=18871
образно говоря, делает из внешнего GPS-приёмника встроенный.


Часовой пояс GMT +4, время: 12:06.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot