Nokia N800 как консоль TomTom Go

Будучи человеком, интенсивно использующим навигационный софт для поездок, я приобрёл себе TomTom Go 910. Почему я купил именно эту модель и перешёл в состояние навигации по девайсу, а не к программе в КПК — отдельная рассказка. Сейчас же мне хотелось бы поделиться тем, как я “подружил” Nokia N800 и мой TomTom Go 910.

Необходимость в этом возникла у меня, поскольку иногда требуется “покопошиться” на дисках TomTom’a, а таскать с собой для этого в поездки ноутбук с установленным TomTom Home мне показалось черезмерным. Рыская в сети и читая форумы, я узнал, что существует некое решение под названием BtConsole. Это небольшая программка, которая, будучи установлена в девайс, после запуска открывает возможность по BlueTooth (по протоколу RfComm) открыть терминальную сессию в PNA. О том, как это сделать под линухом было подробно описано на OpenTomTom в соответствующем разделе. Там всё красиво и подробно изложено и мне оставалось только попытаться повторить это на таблетке.

Для начала я поставил саму консольку на TomTom. Дистрибутив версии 1.02 я взял на сайте автора. На всякий случай выкладываю его и здесь: bt-console_102_en.zip. Сама установка проста. Архив распаковывается. Он содержит два каталога: btconsole и sdkregistry. Оба каталога копируются на карточку PNA TomTom или в корень его жёсткого диска (в зависимости от того какой носитель поддерживает устройство). Каталог sdkregistry скорее всего уже будет существовать. Это не страшно. Внутренне содержимое не пересечётся. После этого в меню устройства добавятся два пункта:

dump429149399

Bluetooth Console — программа открывающая терминалку по BT;

TomTom Reboot — программа, по мнению авторов, перегружающая девайс.

Вторая программа нужна потому, что первая, на самом деле, заменяет существующие драйвера BlueTooth на другие, поддерживающие такой тип соединения. Терминалка то заработает, а вот всё остальное — может перестать. Чтобы потом восстановить работу с тем же мобильным телефоном, устройство надо перегрузить. Это и должна помочь сделать вторая программа. Правда у меня она не работает. Может потому, что у меня версия прошивки 7.162, а программы писались на момент существования 6-ой версии.

Следующий этап — Nokia N800.

Почитав действия предпринимаемые для подключения консоли к TomTom я выяснил, что нужны утилиты из BlueZ (hcitool и rfcomm) и кака-либо терминальная программа, умеющая работать с серийным девайсом. Обычно я использовал cu из пакета uucp, screen или minicom. Как выяснилось из этого необходимого набора в OS 2008 представлена только screen, которую можно допоставить из стандартного для Chinook репозитария Tools’ов. Но в процессе тестирования выяснилось, что именно эта утилита и не захотела работать в качестве терминалки с rfcomm портом. Так же во вех, отдваемых Maemo репозитариях ни в одном пакете, имеющем хоть какое-либо отношение к BlueZ не оказалось нужных мне утилит. В девелоперском мейл-листе мне предложил Collin R. Mulliner воспользоываться его полным портом BlueZ 3.23 под Chinook, но при попытке им воспользоваться машинка повела себя плохо. Устройства искались очень долго, неправильно читались имена, да и находитлось не всё и не всегда. Думаю что это связано с тем, что в OS 2008 изначально установлена версия 3.20. Тогда я пошёл по самому лобовому пути. Имея настроенный и прекрасно работающий Scratchbox я просто решил собрать под ним нужные мне исполнительные файлы. Что и сделал.

Всё это дополнил шеловским скриптом bttomtom, который при запуске без параметров сканирует BlueTooth пространство вокруг себя и если находит устройство с именем TomTom биндит его на /dev/rfcomm0 или, если ему при вызове явно задать MAC адрес, биндит с заданным. Всё это оформил как единый пакет под Chionook, который тут и прикладываю: serial-console.zip

Мне не понравилось как работает minicom под таблеткой с виртуальной клавиатурой, поэтому сам я использую для соединения cu. Вот под него и даю рецепт использования.

  1. Установить пакет;
  2. Под рутом выполнить bttomtom;
  3. Под обычным пользователем подключиться к TomTom введя
    cu -l /dev/rfcomm0
  4. После соединения один или два раза нажать Enter и при появлении приглашения для ввода логина ввести root без пароля.

Всё. Вы в девайсе :) screenshot00

В заключение. Как я писал выше, программа перезагрузки не отрабатывает на TomTom под прошивкой 7.162. Поэтому я перезагружаюсь или механическим сбросом или просто введя в консоли на TomTom reboot.

Leave a Reply