![]() |
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-м посте. |
я не очень понял, она же должна висеть в памяти постоянно.
Но это же не демон? Или демон? Убивает ли ее Андроид через некоторое время? |
Цитата:
На это тоже есть решение, кто-то писал уже. Нужно поместить прогу в notification area. Для этого есть софтина, название не помню. Я в любом случае буду работать в направлении компиляции модуля .ko, просто это сложнее намного... |
Вложений: 1
Версия без ведения лога, без вывода на экран статистики. Для улучшения быстродействия. Ещё внутри программы добавлены команды chmod, теперь устанавливать права на /dev/ttyUSB0 в .sh файле не нужно.
|
По поводу убивания программы андроидом: она провисела в течение 2 суток непрерывно вместе с GPSTest: всё работает. Сейчас попробовал запустить Antutu Test (к-й по идее достаточно много жрёт ресурсов), после его запуска всё продолжает работать. В течение этих 2 дней запускал разные программы, навигацию, плееры, Angry Birds итд итп.
Возможно, причина в том, что созданный виртуальный порт /dev/ttyUSB0 открыт системным процессом (GPS либой). Хотя, не знаю. )) |
У меня вот что пишет. на любой скорости. и данные не идут в навител (((
со старой версией на 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 # |
хотя данные идут
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 # |
Ну если идут, наверное в чём-то другом проблема... А что вы используете в кач-ве драйвера GPS ?
|
Цитата:
если консоль с прогой закрыть, то не стартует. синенький кружочек со значками блутуч, связь и спутник |
http://SSMaker.ru/86578a64/
что то с моим приемником случилось ((( данные принимает, но координату даже в винде не вычисляет. и лампочка красная на нем раньше моргала, а теперь просто горит. что это может быть? приемник BU-353s4 USB |
Заработало Ураааааааааа. на 4800 )))))) Приемник на подоконнкик положил.
Спасибо огромное за прогу ))))) как бы теперь облегчить запуск этого хозяйства? как можно в андроиде ярлык на скрипт сделать сделать? чтоб он запускал консоль, набирал su и остальное. |
Ну поэтому и не работает. Спутники не ловит. Это и в вашем логе видно, я сразу не обратил внимания. Координат-то нет. GPGGA - там координаты должны быть.
|
А можно объяснить чайнику куда кидать чем открывать по пунктам а то что то не получается
|
Вроде бы разобрался запускаю в Serial Port ttyUSB0 данные идут а драйвер UsbGps запускается и сразу отваливается в чем дело.....
|
Цитата:
если да, то смотрите настройки драйвера USBGPS - скорость и путь еще проверьте стоит ли галочка - фиктивное местоположение в разделе разработчика. Может разработчик скомпилить простенький интерфейс? 1 кнопка - старт и она же стоп. А то у меня прога pl2303drv запускается только со 2-го раза постоянно (планшет всегда полностью выключаю) и на запуск навигатора уходит много времени (((( |
команда cat /dev/ttyUSB0 показывает данные GPS
,в драйвере USBGPS также выставил ttyUSB0 скорости у меня нет, запускаешь и через 5 сек выскакивает connection problem фиктивное местоположение в разделе разработчика галочка стоит может драйвер не тот какую надо версию? |
Цитата:
в этой теме все разжевано http://4pda.ru/forum/index.php?showtopic=375823&st=20 |
Так я с той темы и перешел. PL2303drv из той темы работает на скорости 9600 а еще надо другой приемник на 38400 завести вылазит Connection problem. Will retry 5 more times before closing
Еще вопрос в папку распаковывать архив в data или создавать папку test и почему вы набираете команду data/test/1# у меня запускается без последнего 1# может это влияет? |
Кстати я пользуюсь программой GScriptLite забиваю текст и затем просто запускаю скрипт
|
Цитата:
Можете положить в другое место, но, как я понял, главное на системном разделе. Делается с помощью файлового менеджера с рутовым доступом. Простые файловые менеджеры ничего не видят и не копируют. |
Попробовал тоже такой способ для изменения скорости порта, но не могу запустить прогу вот что выдаёт:
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 Как быть? |
chmod +X pl2303drv
|
Вот что выдаёт:
10|root@rk3188:/data/test/1 #su root@rk3188:/data/test/1 # chmod +X pl2303drv Bad mode 10|root@rk3188:/data/test/1 # |
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 нет... |
Перезапустил устройство, по новой запустил прогу, данные на cat /dev/ttyUSB0 пошли, но софт не видит спутники
|
Ничего не пойму, один раз получилось увидеть данные, но повторно после перезагрузки опять та же история, устройство пропадает в /dev после запуска программы
|
Любое другое имя попробуйте. Возможно кто-то параллельно его удаляет.
|
В обшем ситуация такая, прога работает, но надо ее запустить дважды, после первого раза устройство /dev/ttyUSB0 исчезает, после повторного запуска появляется, данные cat /dev/ttyUSB0 идут. Если после запуска удалить из USB порта GPS приемник, то при повторном подключении создается устройство в /dev c именем ttyUSB1 (при каждом перевключении следующий ttyUSB2 и т.д.). Но нави софт не работает, спутников нет, параллельно работает терминал и данные есть...
|
Чтобы нави софт работал, надо запускать ещё доп. софт помимо эмулятора ttyUSB0. Это описано на форуме. Вы сейчас просто организовали поток GPS данных, над его дополнительно обработать чтобы стандартный софт увидел эти данные.
|
Цитата:
|
а что значит "err_num - 1"?
gps спутники видит, там светодиод который загорается после фиксации по cat /dev/ttyUSB0 вижу поток данных, в том числе и вижу координаты $GPGGA но постоянно валится эта ошибка и соответсно ничего не работает :( кстати, стандартные скорости это какие? 38400 это стандартная или нет? |
кто-нибудь пробовал подружить BananaPI и globalsat bu-353? запускаю pl2303, устройство находится, команда cat выдает координаты, приемник моргает. Но ни одна из программ типа Here Are You, UsbDroid и подобные не видят этот приемник. В SerialApi устройство видится и в консоли данные идут
|
Цитата:
Но при этом у меня все работает. Делаю так: Прогу загрузил прямо в /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". И если я прерываю прогу, у меня останавливается поток данных. Как я понимаю в одном скрипте это не сделать... |
Вложений: 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. Основная причина неработоспособности передачи данных в направлении от хоста к устройству. |
Цитата:
То же самое можно делать и при запуске команд вручную в терминале. Но тгда прогу нельзя будет прервать нажатием Ctrl+C, а только командой вида "killall pl2303drv", или "kill NNNN", где NNNN - ID запущенного процесса pl2303drv. По поводу "errnum - 1". Точно не скажу, но возможно связано с длительностью задержки в конце основного цикла программы. У меня такое кажется было, когда пытался запустить прогу с большими скоростями. Попробуй мою версию из предыдущего поста. |
Спасибо SanchSanch за столь оперативный ответ, да еще с новой версией проги!
Сегодня попробовал твою версию, у меня почти ни чего не изменилось, так же пишет "errnum - 1", а иногда "errnum - 2" проскакивает. Ну да ладно, сейчас пытаюсь разобраться со скриптом и пытаюсь понять можно ли обойтись без USBGPG4droid, без ее запуска не работает. |
А если пишет что не находит свисток U-blox7? Хотя в USB он появляется как устройство (не TTY).
Андроид 4.0.3 ядро 3.0.8+ VID_1546&PID_01A7 Что делать? |
Цитата:
|
Цитата:
Либа из этой темы: http://www.pccar.ru/showthread.php?t=18871 образно говоря, делает из внешнего GPS-приёмника встроенный. |
Часовой пояс GMT +4, время: 05:13. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot