Подключение USB GPS.
Описываю процедуру подключения USB GPS к Onda VX580W Deluxe. Подходит также к Onda VX610W.
Использовал HOLUX M1000B с подключенным к нему через mini-USB мостом USB-COM на PL2303.
Итак:
0. Подключаем GPS-приемник через мост.
1. Устройство должно иметь root и установленный Root Explorer, а также любой консольный доступ (любой терминал или QuickSSHd + Putty)
2. Cкачиваем мой
gps.zip
3. Содержимое архива помещаем в папку /sdcard/gps на устройстве (удобно использовать WinSCP при запущенном QuickSSHd для этой цели).
4. Заходим с помощью Root Explorer в папку /system/vendor/modules и монтируем папку на запись с помощью кнопки вверху (папка должна стать RW вместо RO)
5. Открываем консоль
6. Выполняем в консоли
cp /sdcard/gps/install-recovery.sh /system/etc/
chown root.root /system/etc/install-recovery.sh
chmod 775 /system/etc/install-recovery.sh
cp /sdcard/gps/pl2303.ko /system/vendor/modules/
7. Далее устанавливаем UsbGps4Droid.apk из папки /sdcard/gps
8. Заходим в UsbGps4 и ставим Autostart GPS on boot
9. Убеждаемся, что стоит в Настройках стоит Для разработчиков->Фиктивные местоположения
10. Перезагружаем устройство, выполнив в консоли
reboot
11. Сразу после загрузки должен быть запрос на права суперпользователя для USBGPS.
12. Открываем консоль и выполняем в ней
lsmod
Там должно быть что-то вроде
pl2303 11215 0 - Live 0xbf145000
13. Дальше там же выполняем
dmesg
Там должно быть что-то вроде
<6>[ 75.770000] USB Serial support registered for pl2303
<6>[ 75.780000] pl2303 1-1.1:1.0: pl2303 converter detected
<6>[ 75.810000] usb 1-1.1: pl2303 converter now attached to ttyUSB0
<6>[ 75.820000] usbcore: registered new interface driver pl2303
<6>[ 75.820000] pl2303: Prolific PL2303 USB to serial adaptor driver
14. Устанавливаем свою любимую программу навигации и даем ей обнаружить GPS приемник (в Навителе это GPS API).
На этом все.
Для справки:
Проверка скорости порта
busybox stty -a -F /dev/ttyUSB0
Для моего случая это выглядит так
speed 38400 baud;stty: /dev/ttyUSB0
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
Содержание моего autostart.sh
#!/system/bin/sh
insmod /system/vendor/modules/pl2303.ko
sleep 10
busybox stty -F /dev/ttyUSB0 ispeed 38400
sleep 5
busybox stty -F /dev/ttyUSB1 ispeed 38400
busybox chmod 666 /dev/ttyUSB0
busybox chmod 666 /dev/ttyUSB1
busybox sed -i 's/SafeExit = 0/SafeExit = 1/g' /data/data/com.navitel/settings.001.ini