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

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

ak1976 18.02.2013 16:56

Номер порта в /dev/ttyUSB
 
В машине установлен медиабокс Mele A2000, к нему по USB подлючен USB-GPS GlobalSat BU-353 и 3G модем от МТС, в ближайшее время к ним добавится адаптер AVC-Lan на ардуино.
Все эти устройства создают файлы /dev/ttyUSBx
Но вот как управлять этим процессом? Т.е. задать чтобы допустим 3G можем всегда создавал файлы /dev/ttyUSB0-3, USB-GPS /dev/ttyUSB10, arduino /dev/ttyUSB20.
Сейчас на каждое устройство в адроиде настроен свой конфиг, где прописаны файлы устройств, и удаление, например, 3G модема приводит к неработоспособности всех устройств, т.к. номера файлов сдвигаются.

macau 18.02.2013 17:19

через правила udev

ak1976 18.02.2013 17:37

Цитата:

Сообщение от macau (Сообщение 247036)
через правила udev

На udev я натыкался, когда искал. Но тут и тут написано, что udev не используется в android.
каталога /etc/udev у меня на mele тоже нет.

macau 18.02.2013 20:28

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

macau 18.02.2013 20:44

и да, у меня же все девайсы тоже сериал, предчувствую тот же онанизм с нодами.
Немного погулил-сейчас используется uevent. Но, похоже он никак не конфигурится из юзерспейса(точнее можно задать права на ноду и что-то выполнить (on-device-add-/dev/*) в init*.rc)
http://www.opendebug.com/article/538937

tsynik 19.02.2013 06:56

Действительно, с нумерацией USB не все гладко. Я решил это подключая GPS на MTK (LS23030), который определяется и работает через CDC_ACM драйвер, соответственно как /dev/ttyACM0 устройство. А модем повесил на роутер TP-Link MR3020 и соединяюсь по wi-fi ) При таком раскладе на /dev/ttyUSB останется только ардуино.

ak1976 19.02.2013 08:15

Пока единственный вариант, на мой взгляд, поправить модули ядра pl2303 и ftdi_sio.
DmitrySmol писал тут, что пересобирал модуль ядра cdc-acm. У него правда порт жестко забит, но если сделать, чтобы свободный порт искался с заданного значения - получим то, что нужно (пока не попадется два устройства на одинаковом usb-serial конвертере).
Написал ему в личку, надеюсь подскажет чего он правил.

ak1976 27.01.2014 18:51

Как вариант решения проблемы, костыль конечно, но рабочий.
Можно определять номер порта по файлу /proc/tty/driver/usbserial
и создавть символические ссылки на выделенный номер /dev/ttyUSB

Пример моего файла /system/etc/install-recovery.sh
Код:

#!/system/bin/sh
/system/bin/insmod /system/vendor/modules/pl2303.ko
/system/bin/insmod /system/vendor/modules/ftdi_sio.ko
/system/bin/sleep 5


gpsnum=`/system/bin/busybox grep pl2303 /proc/tty/driver/usbserial | /system/bin/busybox awk -F: '{print $1}'`
if [ -e /dev/ttyUSB$gpsnum ]; then
        if [ -L /dev/ttyUSB20 ]; then
                /system/bin/busybox rm /dev/ttyUSB20
        fi
        /system/bin/busybox ln -s /dev/ttyUSB$gpsnum /dev/ttyUSB20
        /system/bin/busybox stty -F /dev/ttyUSB$gpsnum ispeed 4800
        /system/bin/setprop "ro.kernel.android.gps" "ttyUSB20"
fi

GPS приемник всегда будет цепляться к /dev/ttyUSB20
аналогичным образом был сделан и модем, но в последнее время он переехал на TP-Link MR3020, а скрипт при перпрошивке потерялся. Но сама идея думаю понятна. Может кому пригодится.

Rage2 27.01.2014 19:16

ak1976, ОГО! =) Костыль конечно....но крутой)) Молодца что поделился, может кому будет полезно.

Трек 18.02.2014 00:18

Цитата:

Сообщение от ak1976 (Сообщение 284777)
Как вариант решения проблемы, костыль конечно, но рабочий.
Можно определять номер порта по файлу /proc/tty/driver/usbserial
и создавть символические ссылки на выделенный номер /dev/ttyUSB

Пример моего файла /system/etc/install-recovery.sh
Код:

#!/system/bin/sh
/system/bin/insmod /system/vendor/modules/pl2303.ko
/system/bin/insmod /system/vendor/modules/ftdi_sio.ko
/system/bin/sleep 5


gpsnum=`/system/bin/busybox grep pl2303 /proc/tty/driver/usbserial | /system/bin/busybox awk -F: '{print $1}'`
if [ -e /dev/ttyUSB$gpsnum ]; then
        if [ -L /dev/ttyUSB20 ]; then
                /system/bin/busybox rm /dev/ttyUSB20
        fi
        /system/bin/busybox ln -s /dev/ttyUSB$gpsnum /dev/ttyUSB20
        /system/bin/busybox stty -F /dev/ttyUSB$gpsnum ispeed 4800
        /system/bin/setprop "ro.kernel.android.gps" "ttyUSB20"
fi

GPS приемник всегда будет цепляться к /dev/ttyUSB20
аналогичным образом был сделан и модем, но в последнее время он переехал на TP-Link MR3020, а скрипт при перпрошивке потерялся. Но сама идея думаю понятна. Может кому пригодится.


Привет! Можете поподробнее описать, что куда ставить( изменять) и как...., желательно побольше подробностей... а то у меня меле м3, на одном юсб тач висит, на втором 353-gps, ну и свободный юсб тоже под флешки будет юзаться, сейчас проблема с gps пока....


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

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