Цитата:
Сообщение от Vadim72
Пришлось использовал программу Autostart, которая после загрузки планшета запускает от имени рута скрипт /data/opt/autostart.sh.
Как ты переключаешь интерфейсы?Можно ли посмотреть листинг твоего скрипта?
По умолчанию используется ttyS0,а надо использовать ttyUSB0.Прописываю setprop ro.kernel.android.gps ttyUSB0
Очень надеюсь на ответ.
|
Autostart.sh - нормально. По-хорошему на планшете также нужно установить
busybox в /system/bin или /system/xbin, чтобы был полноценный shell с поддержкой конструкций if. Скрипт выглядит примерно так:
Код:
#!/system/bin/busybox ash
sleep 2
#
# GPS
#
# Загружаем модуль ядра
insmod pl2303.ko
/system/bin/setprop "ro.kernel.android.gps" "ttyS1"
/system/bin/setprop "ro.tty.speed" "9600"
# если подключен внешний GPS (есть устройство /dev/ttyUSB0)
if [ -c /dev/ttyUSB0 ]; then
# создаём символическую ссылку
busybox ln -s /dev/ttyUSB0 /dev/ttyS1
/system/bin/log -t init.sh "Linking /dev/ttyUSB0 to /dev/ttyS1 for GPS"
else
busybox ln -s /dev/ttyS0 /dev/ttyS1
/system/bin/log -t init.sh "/dev/ttyUSB0 does not exist. Use internal GPS (/dev/ttyS0)"
fi
# USB Audio
#/system/bin/setprop "media.audio.out.mode" "usb"
# Navitel SafeStart
sed -i 's/SafeExit = 0/SafeExit = 1/g' /data/data/com.navitel/settings.001.ini
В библиотеке GPS андроида может как обрабатываться, так и в принципе не использоваться параметр "ro.kernel.android.gps".
Идешь в /system/lib или /system/lib/hw/ и находишь там *gps*.so, это и есть бинарник библиотеки, работающей с gps. Копируешь его на карту памяти и на компьютер.
Проверить можно любым HEX-редактором. Открываешь в HEX-редакторе загруженный файл (libgps.so?), поиск - "ro.kernel.android.gps", если совпадения есть - значит устройство по-умолчанию можно переназначить на /dev/ttyUSB0). Просто устанавливаешь значение ro.kernel.android.gps = ttyUSB0 через setprop в autostart.sh, этого должно быть достаточно.
Если нет, тогда нужно посмотреть в HEX-редакторе совпадения на /dev/* и поменять /dev/ttyS
0 на (к примеру) /dev/ttyS
1 (или любое другое не существующее в /dev/ устройство с именем той же длинны), а это будет ссылка либо на /dev/ttyUSB0 либо на /dev/ttyS0. Так имеет смысл делать, если есть встроенный GPS-модуль. Если его нет, тогда просто при загрузке линковать /dev/ttyUSB0 на то устройство, с которым работает библиотека. Также, важным моментом является скорость работы порта (4800 9600 etc). Если после загрузки по команде cat /dev/ttyUSB0 ты видишь данные NMEA а не мусор - скорость ставить не нужно, и так всё ОК.