Проблемы с GPS после гибернации/пробуждения при работающей под Wine навигации [Решено]

Добрый день!

Перевожу CarPC на Kubuntu 13.10... Почти все поборол, осталось одно, с чем справиться никак не получается.
После включения все работает нормально, запускается CityGuide под Wine, видит спутники (USB-GPS) и интернет (Yota).
При этом GPS висит на /dev/ttyUSB0
Но после гибернации и пробуждения с работающей CityGuide, GPS перевешивается на ttyUSB1, а ttyUSB0 в системе отсутствует.
Соответственно, спутники программа не видит.
Если сделать гибернацию/пробуждение с отключенной CityGuide - всё определяется и работает нормально.
Аналогичная история происходит, если сделать unbind/bind устройства через терминал при работающей/неработающей CityGuide.
Подозреваю, что это как-то связано с тем, что CityGuide не освобождает ttyUSB0.
Дайте, пожалуйста, направление, в какую сторону копать?
Udev.rules или правила pm-hibernate?
Уже всю голову сломал...
Заранее благодарен!

0
ValeryK - 2 Апрель, 2014 - 16:04

Несколько не совсем по теме вопроса, сам в машину ставил навигацию, несколько с другим подходом здесь описание
но зачем гибернация а не полное выключение с восстановлением сессии? в линуксе насколько по своему опыту знаю (может что изменилось?) хибернейт практически не давал выигрыш по скорости восстановления системы в предыдущее рабочее состояние (уж по сравнению с виндой точно, там, в винде, дольше загрузка но и быстрее восстановление со сна).

0
IvanGT - 2 Апрель, 2014 - 18:38

Нет, выигрыш по сравнению с перезагрузкой получается значительный. Но дело даже не в этом... Просто при перезагрузке, даже с восстановлением сессии, не восстанавливаются запущенные под Wine программы. А принципиально как раз именно это.

0
ValeryK - 2 Апрель, 2014 - 19:15

А как ситигайд привязывается к устройству, я имею ввиду гдето в настройках указано что использовать?
Идея в том что если это настаривается, то если попробовать сделать ссылку на устройство ttyUSB0 а в проге указать использовать ссылку. То тогда устройство наверно не будет занято, в крайнем случае ссылка будет считаться битой.
Это как идея просто, может и неверная.

0
ValeryK - 2 Апрель, 2014 - 20:35

есть вон навигация, только счас наткнулся, семь дорог
вроде конверторы карт с ситигайда, навитела и т.п пользует свои.
Это так, сопутствующе.
Скачал триальный ситигайд. Запускается, требует лицензионный ключ ввести и вываливается.
Не чем проэксперементровать. Приемник нашел, провалялся года три без дела.

0
IvanGT - 2 Апрель, 2014 - 21:17

Семь дорог есть, как-то раз даже спутники увидела. :-) Там с этим непросто оказалось почему-то...
Но она не поддерживает пробки, а без пробок это теряет всякий смысл...
СитиГид вроде должен в режиме отпала запускаться...
Пока скачаю wine 1.7 и обновлю, может там с этим получше. Вроде раньше PocketGIS у меня под вайном работала и засыпала нормально.
Ну а так - завтра попробую правило написать, чтобы мониторилось, запущена ли СитиГид и убивала ее при гибернации, а при пробуждении - запускало заново. По идее, такой костыль должен проблему решить.

0
IvanGT - 2 Апрель, 2014 - 21:19

Привязывается через ссылку как раз. Но устройство занято...

0
ValeryK - 3 Апрель, 2014 - 07:37

Да. тоже попробовал, через ссылку просто следует и занимает устройство.
Cсылку так понимаю делал в .wine/dosdevices/com0 -> /dev/ttyUSB0 ?

0
IvanGT - 3 Апрель, 2014 - 08:42

Да, именно так. :-)

0
IvanGT - 3 Апрель, 2014 - 09:12

Собственно, проблема вроде как в том, что при пробуждении компа bind устройства происходит после запуска СитиГид. К тому времени СитиГид, видимо, уже активно шарит по тому месту, где в ее понимании должен быть ttyUSB0 и GPS от греха подальше биндится в ttyUSB1.
Вопрос: Можно ли сделать так, чтобы при пробуждении устройство монтировалось ДО восстановления запущенных перед гибернацией программ?

0
dyug - 3 Апрель, 2014 - 10:10

я так думаю, что скорее всего проблема в том, что при г/хипернейте не совсем корректно выгружается модуль девайса работы с gps? было у меня такая проблема c одним usb устройством

Где то даже описывалось, куда и как прописывать.
Сейчас не помню, и мне просто лень искать.
пробовать слова "usb спячка"

0
IvanGT - 3 Апрель, 2014 - 10:25

Ну скорее всего как раз проблема в том, что он не совсем корректно подключается, на мой взгляд.
Т.е. если делаем следующие действия:
1. Запускаем Сити Гид
2. Unbind ttyUSB0
3. Bind ttyUSB0
Получаем GPS на ttyUSB1 и невидящую его СитиГид
Если делаем так:
1. Запускаем СитиГид
2. Unbind ttyUSB0
3. Закрываем СитиГид (неважно как, кнопкой или killall CityGuide.exe)
4. Bind ttyUSB0
5. Запускаем СитиГид
Получаем GPS на ttyUSB0 и нормально работающую СитиГид.
Т.е. у меня такое впечатление, что проблема как раз в последовательности действий при пробуждении.
Но за совет спасибо, сейчас погуглю.

0
IvanGT - 4 Апрель, 2014 - 16:15

Нет, ничего действенного не нашел...

0
lord_i - 4 Апрель, 2014 - 20:44
Изображение пользователя lord_i.

Я бы порекомендовал попробовать через удев делать виртуальное устройство при подключении жпс-а. Я такое делаю с вебкамерами, чтоб они при включении не путались вот так:
:/etc/udev/rules.d# cat 25-name-video-devices.rules
# This file maintains persistent names for video devices
# See udev(7) for syntax.
#

KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="09a1", SYMLINK+="video-cam1"
KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="093a", ATTRS{idProduct}=="2622", SYMLINK+="video-cam2"

И софт работает не с /dev/video1 и /dev/video0, которые постоянно меняются, а уже с жестко привязанным к конкретной камере устройством(video-cam1, video-cam2). Возможно, такой подход решит и проблему сна.

ЗЫ с жпс-ом я такого не делал, просто есть чувство что может получиться.

0
IvanGT - 4 Апрель, 2014 - 21:23

Спасибо, я тоже так подумал - привязал к /dev/gps
Не помогло, к сожалению...
Пишу костыль, осталось задержку запуска сделать, а то ругается на отсутствие иксов.
Странно, я думал, что они раньше запускаются...

0
ValeryK - 5 Апрель, 2014 - 04:03

от кого зарускаешь, что иксы не стартанули, через rclocal чтоли?

0
IvanGT - 5 Апрель, 2014 - 08:20

Нет, через правило в /etc/pm/sleep.d
:-)
Может дело в его приоритете... Поковыряю это еще... :-)
Кстати, посетила мысль... А может просто программа под wine не успевает корректно как-то засыпать? Может какую-то задержку поставить?
Я, на самом деле, не могу локализовать до конца проблему. Варианта 2:
1) Некорректное засыпание, при котором порт остается занятым
2) Некорректное монтирование устройства, когда монтирование при thaw происходит "в занятый порт".
И что-то больше склоняюсь к первому варианту...
Тогда может быть, можно не убивать СитиГид через killall, а просто как-то дождаться, пока она корректно освободит порт?
В логе pm-suspend ничего по поводу программ нет.

0
ValeryK - 5 Апрель, 2014 - 11:52

Почему же не запускать после старта сессии, штатными средстами, я имеюь ввиду "параметры системы - запуск и завершение", там вставить строку запуска вайна с префиксами и он тогда точно запустится после старта иксов. тамже при необходимости можно и sleep указать сколько надо для задержки.
По попвду освобождение и проблемы переназначения портов после спящего режима несколько раз попадались обсуждения на глаза, но не вчитывался, ибо нужды не было. Счас же по вашему поводу рылся в поиске и ничего не смог найти, увы. Я к тому что проблема вроде существует.

0
IvanGT - 5 Апрель, 2014 - 12:44

Скрипт проверяет, была ли она запущена, пишет в файлик 0 или 1. Соответственно, потом с такой же проверкой запускает. Причем исполняется только при и после спящего/ждущего режима. Можно сделать отдельный скриптик для запуска штатными средствами, но он будет запускаться всегда. И кстати, не уверен, что при пробуждении будет запускаться. :-(
В данном случае, по идее, правильнее пользоваться штатными средствами.
А проблема существует, да! :-)

0
ValeryK - 5 Апрель, 2014 - 15:01

ну так может скрипт и запускать из .kde/Autostart

0
IvanGT - 5 Апрель, 2014 - 15:39

А оно будет выполняться при пробуждении? Что-то я сомневаюсь...

0
ValeryK - 5 Апрель, 2014 - 18:44

Не выполняется, увы. Просто при перезагрузке, даже с восстановлением сессии, не восстанавливаются запущенные под Wine программы. А принципиально как раз именно это.
а вот при перезагрузке скрипт срабатывает. можно и вайновские проги пускануть

0
IvanGT - 6 Апрель, 2014 - 06:50

Это да, можно...
Но хотелось бы все-таки универсальных решений.
Косячит-то только СитиГид и прибивать приходится только ее. Остальные вайновские программы (которые проверял) восстанавливаются после гибернации вполне нормально.

0
ValeryK - 6 Апрель, 2014 - 09:07

эмм, остальные вайновские- это что, с чем может быть проблема с нативными прогами в линуксе, кроме навигации? Зачем линукс нужен тогда, ХРя подошла бы.

+1
IvanGT - 6 Апрель, 2014 - 10:50

Ну мало ли что случится? Навигации вменяемой под Linux все равно нет пока, значит, скорее всего, в ближайшем будущем не появится.
И потом, при перезагрузке дорожка у Амарока сбрасывается на начало - аудиокнижки неудобно слушать.
Короче говоря, это просто неспортивно. Надо настроить то, что нужно, а не привыкнуть пользоваться тем, что есть. :-)

+2
ValeryK - 6 Апрель, 2014 - 14:04

Я Nexus 7 в машину внедрил, как медиасистема, так и навигация, любая, под винду столько нет сколько под андроид.

0
IvanGT - 6 Апрель, 2014 - 16:15

Согласен, сейчас это самое правильное решение, думаю. Хотя тоже есть нюансы, скорее всего.
Я комп встраивал 3,5 года назад, тогда не было вменяемых планшетов, насколько я помню, да и Андроид был еще так себе... Во всяком случае, я тогда от этого отказался как-то.

+2
ValeryK - 6 Апрель, 2014 - 17:36

Я сделал так, но сейчас переносил на трибеку, добавил блютуз к штатной системе, недостаток - нет обратной связи как с магнитолы со встроенным блютуз, там кнопки с магнитолы позволяли управлять плеером андроида безо всяких телодвижений. Теперь приходится тыкать в экран.
Из навигации Навител, тестю Sygic, естественно с андроидом гулемап в принципе есть и ситигайд, и яндекс и видимо еще куча

0
IvanGT - 7 Апрель, 2014 - 09:16

Без обид, но планшет сверху прилеплен, провода висят... Это не встройка...
А на Трибеке в штатное место вставлен?

0
ValeryK - 7 Апрель, 2014 - 10:41

Никаких обид, не было идеи встраивать его, хотя никаких препятствий этому нет, и последнее время пользовался медиа только с него. Из проводов один единственный - это зарядка по USB, если встраивать то можно так и оставить, только все закрепить, и тогда его не видно будет (кстати провод на фотке заменен на другой, угловой, он не вбок торчит, а сразу вниз углом идет, из австралии купил на e-bay).
Если брать нексус 2-й версии, то у него есть поддержка беспроводной зарядки. можно закрепить зарядник, тот коврик липкий, и тогда провода не видно будет.
И в схеме питания Pi и WiFi убрал батарейку, вместо подтянул провод с плафона с постоянным +12.
Изначально хотел сделать типа салазок- док станции, внизу (если боком ставить) есть 4 точечных контакта, для зарядки и аудиовыхода, но съемным показалось удобнее, и место обзорнее чем то , где штатная магнитола.
На трибеке поставил вплотную поверх штатной на аналогичных, но точечных прилепах (кружочки диаметром 10 мм), опору - чуть подпилил по центру перегородочку и все надежно держится, встраивать не буду, и так удобно.
Планшет не выключаю совсем, даже коротких пробежек на работу и домой хватает до его полного заряда, которого хватает и на все выходные. Только гасится автоматически экран при выключении зажигания и включается при включении.

0
IvanGT - 7 Апрель, 2014 - 15:18

У меня как раз наоборот, идея была именно в том, чтобы встроить во-первых, на штатное место (машина - фрилендер, там замечательное место под 7-дюймовый экран) и во-вторых, стационарно, чтобы не снимать самому и не возникало желания снять у других.
Что слегка подрасстроило: безусловно, не используются все возможности компьютера. К примеру, мне он неинтересен как видеорегистратор, для общения в скайп на ходу и т.п. Т.е. все это сделать можно и даже без особых проблем, но зачем?
Блютус поддерживает штатная магнитола, приглушает звук. А с компа звук идет на вход магнитолы.
В результате в основном он используется для музыки/аудиокнижек и навигации. Редко - интернетТВ. Йота вполне это позволяет. А все остальное - лишнее. :-)

0
ValeryK - 7 Апрель, 2014 - 18:16

ну так планшет имеет собственное питание, собственную удобную систему ввода (сенсорный экран), автоматическую регулировки яркости, а все лишнее можно отрубить. По сравнению с компьютером каких у него меньше возможностей? Я не вижу. Стационарно вкрепить его меньше проблем чем строить карписи, по моему мнению. И цена весьма демократична.
Я не навязываю свое мнение, просто приятно пообщаться со сведующим человеком, свое сказать, чужое услышать.
Кстати купил еще OBD2 Bluetooth адаптер, ошибки и инфу можно читать, цена вопроса 16 доларей.

0
IvanGT - 6 Апрель, 2014 - 10:52

Ага, понял. Иксы там не при чем.
Просто скрипты в /etc/pm/sleep.d выполняются от root, а СитиГид должна быть запущена от user и с .wine этого юзера.
Ну... Наверное это решаемо... :-)

0
Жюстина - 7 Апрель, 2014 - 18:25
Изображение пользователя Жюстина.

Ну одним скриптом я около тысячи иксов поднять могу, айда проследить в каком моменте иксы возникли и угасли?

0
IvanGT - 7 Апрель, 2014 - 20:46

Не понял, за чем следить! :-)
Иксы подняты были, просто от юзера. Надо было переменные окружения передать.
Уже справился. :-)

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры