Добрый день!
Перевожу 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?
Уже всю голову сломал...
Заранее благодарен!
Несколько не совсем по теме вопроса, сам в машину ставил навигацию, несколько с другим подходом здесь описание
но зачем гибернация а не полное выключение с восстановлением сессии? в линуксе насколько по своему опыту знаю (может что изменилось?) хибернейт практически не давал выигрыш по скорости восстановления системы в предыдущее рабочее состояние (уж по сравнению с виндой точно, там, в винде, дольше загрузка но и быстрее восстановление со сна).
Нет, выигрыш по сравнению с перезагрузкой получается значительный. Но дело даже не в этом... Просто при перезагрузке, даже с восстановлением сессии, не восстанавливаются запущенные под Wine программы. А принципиально как раз именно это.
А как ситигайд привязывается к устройству, я имею ввиду гдето в настройках указано что использовать?
Идея в том что если это настаривается, то если попробовать сделать ссылку на устройство ttyUSB0 а в проге указать использовать ссылку. То тогда устройство наверно не будет занято, в крайнем случае ссылка будет считаться битой.
Это как идея просто, может и неверная.
есть вон навигация, только счас наткнулся, семь дорог
вроде конверторы карт с ситигайда, навитела и т.п пользует свои.
Это так, сопутствующе.
Скачал триальный ситигайд. Запускается, требует лицензионный ключ ввести и вываливается.
Не чем проэксперементровать. Приемник нашел, провалялся года три без дела.
Семь дорог есть, как-то раз даже спутники увидела. :-) Там с этим непросто оказалось почему-то...
Но она не поддерживает пробки, а без пробок это теряет всякий смысл...
СитиГид вроде должен в режиме отпала запускаться...
Пока скачаю wine 1.7 и обновлю, может там с этим получше. Вроде раньше PocketGIS у меня под вайном работала и засыпала нормально.
Ну а так - завтра попробую правило написать, чтобы мониторилось, запущена ли СитиГид и убивала ее при гибернации, а при пробуждении - запускало заново. По идее, такой костыль должен проблему решить.
Привязывается через ссылку как раз. Но устройство занято...
Да. тоже попробовал, через ссылку просто следует и занимает устройство.
Cсылку так понимаю делал в .wine/dosdevices/com0 -> /dev/ttyUSB0 ?
Да, именно так. :-)
Собственно, проблема вроде как в том, что при пробуждении компа bind устройства происходит после запуска СитиГид. К тому времени СитиГид, видимо, уже активно шарит по тому месту, где в ее понимании должен быть ttyUSB0 и GPS от греха подальше биндится в ttyUSB1.
Вопрос: Можно ли сделать так, чтобы при пробуждении устройство монтировалось ДО восстановления запущенных перед гибернацией программ?
я так думаю, что скорее всего проблема в том, что при г/хипернейте не совсем корректно выгружается модуль девайса работы с gps? было у меня такая проблема c одним usb устройством
Где то даже описывалось, куда и как прописывать.
Сейчас не помню, и мне просто лень искать.
пробовать слова "usb спячка"
Ну скорее всего как раз проблема в том, что он не совсем корректно подключается, на мой взгляд.
Т.е. если делаем следующие действия:
1. Запускаем Сити Гид
2. Unbind ttyUSB0
3. Bind ttyUSB0
Получаем GPS на ttyUSB1 и невидящую его СитиГид
Если делаем так:
1. Запускаем СитиГид
2. Unbind ttyUSB0
3. Закрываем СитиГид (неважно как, кнопкой или killall CityGuide.exe)
4. Bind ttyUSB0
5. Запускаем СитиГид
Получаем GPS на ttyUSB0 и нормально работающую СитиГид.
Т.е. у меня такое впечатление, что проблема как раз в последовательности действий при пробуждении.
Но за совет спасибо, сейчас погуглю.
Нет, ничего действенного не нашел...
Я бы порекомендовал попробовать через удев делать виртуальное устройство при подключении жпс-а. Я такое делаю с вебкамерами, чтоб они при включении не путались вот так:
:/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). Возможно, такой подход решит и проблему сна.
ЗЫ с жпс-ом я такого не делал, просто есть чувство что может получиться.
Спасибо, я тоже так подумал - привязал к /dev/gps
Не помогло, к сожалению...
Пишу костыль, осталось задержку запуска сделать, а то ругается на отсутствие иксов.
Странно, я думал, что они раньше запускаются...
от кого зарускаешь, что иксы не стартанули, через rclocal чтоли?
Нет, через правило в /etc/pm/sleep.d
:-)
Может дело в его приоритете... Поковыряю это еще... :-)
Кстати, посетила мысль... А может просто программа под wine не успевает корректно как-то засыпать? Может какую-то задержку поставить?
Я, на самом деле, не могу локализовать до конца проблему. Варианта 2:
1) Некорректное засыпание, при котором порт остается занятым
2) Некорректное монтирование устройства, когда монтирование при thaw происходит "в занятый порт".
И что-то больше склоняюсь к первому варианту...
Тогда может быть, можно не убивать СитиГид через killall, а просто как-то дождаться, пока она корректно освободит порт?
В логе pm-suspend ничего по поводу программ нет.
Почему же не запускать после старта сессии, штатными средстами, я имеюь ввиду "параметры системы - запуск и завершение", там вставить строку запуска вайна с префиксами и он тогда точно запустится после старта иксов. тамже при необходимости можно и sleep указать сколько надо для задержки.
По попвду освобождение и проблемы переназначения портов после спящего режима несколько раз попадались обсуждения на глаза, но не вчитывался, ибо нужды не было. Счас же по вашему поводу рылся в поиске и ничего не смог найти, увы. Я к тому что проблема вроде существует.
Скрипт проверяет, была ли она запущена, пишет в файлик 0 или 1. Соответственно, потом с такой же проверкой запускает. Причем исполняется только при и после спящего/ждущего режима. Можно сделать отдельный скриптик для запуска штатными средствами, но он будет запускаться всегда. И кстати, не уверен, что при пробуждении будет запускаться. :-(
В данном случае, по идее, правильнее пользоваться штатными средствами.
А проблема существует, да! :-)
ну так может скрипт и запускать из .kde/Autostart
А оно будет выполняться при пробуждении? Что-то я сомневаюсь...
Не выполняется, увы.
а вот при перезагрузке скрипт срабатывает. можно и вайновские проги пускануть
Это да, можно...
Но хотелось бы все-таки универсальных решений.
Косячит-то только СитиГид и прибивать приходится только ее. Остальные вайновские программы (которые проверял) восстанавливаются после гибернации вполне нормально.
эмм, остальные вайновские- это что, с чем может быть проблема с нативными прогами в линуксе, кроме навигации? Зачем линукс нужен тогда, ХРя подошла бы.
Ну мало ли что случится? Навигации вменяемой под Linux все равно нет пока, значит, скорее всего, в ближайшем будущем не появится.
И потом, при перезагрузке дорожка у Амарока сбрасывается на начало - аудиокнижки неудобно слушать.
Короче говоря, это просто неспортивно. Надо настроить то, что нужно, а не привыкнуть пользоваться тем, что есть. :-)
Я Nexus 7 в машину внедрил, как медиасистема, так и навигация, любая, под винду столько нет сколько под андроид.
Согласен, сейчас это самое правильное решение, думаю. Хотя тоже есть нюансы, скорее всего.
Я комп встраивал 3,5 года назад, тогда не было вменяемых планшетов, насколько я помню, да и Андроид был еще так себе... Во всяком случае, я тогда от этого отказался как-то.
Я сделал так, но сейчас переносил на трибеку, добавил блютуз к штатной системе, недостаток - нет обратной связи как с магнитолы со встроенным блютуз, там кнопки с магнитолы позволяли управлять плеером андроида безо всяких телодвижений. Теперь приходится тыкать в экран.
Из навигации Навител, тестю Sygic, естественно с андроидом гулемап в принципе есть и ситигайд, и яндекс и видимо еще куча
Без обид, но планшет сверху прилеплен, провода висят... Это не встройка...
А на Трибеке в штатное место вставлен?
Никаких обид, не было идеи встраивать его, хотя никаких препятствий этому нет, и последнее время пользовался медиа только с него. Из проводов один единственный - это зарядка по USB, если встраивать то можно так и оставить, только все закрепить, и тогда его не видно будет (кстати провод на фотке заменен на другой, угловой, он не вбок торчит, а сразу вниз углом идет, из австралии купил на e-bay).
Если брать нексус 2-й версии, то у него есть поддержка беспроводной зарядки. можно закрепить зарядник, тот коврик липкий, и тогда провода не видно будет.
И в схеме питания Pi и WiFi убрал батарейку, вместо подтянул провод с плафона с постоянным +12.
Изначально хотел сделать типа салазок- док станции, внизу (если боком ставить) есть 4 точечных контакта, для зарядки и аудиовыхода, но съемным показалось удобнее, и место обзорнее чем то , где штатная магнитола.
На трибеке поставил вплотную поверх штатной на аналогичных, но точечных прилепах (кружочки диаметром 10 мм), опору - чуть подпилил по центру перегородочку и все надежно держится, встраивать не буду, и так удобно.
Планшет не выключаю совсем, даже коротких пробежек на работу и домой хватает до его полного заряда, которого хватает и на все выходные. Только гасится автоматически экран при выключении зажигания и включается при включении.
У меня как раз наоборот, идея была именно в том, чтобы встроить во-первых, на штатное место (машина - фрилендер, там замечательное место под 7-дюймовый экран) и во-вторых, стационарно, чтобы не снимать самому и не возникало желания снять у других.
Что слегка подрасстроило: безусловно, не используются все возможности компьютера. К примеру, мне он неинтересен как видеорегистратор, для общения в скайп на ходу и т.п. Т.е. все это сделать можно и даже без особых проблем, но зачем?
Блютус поддерживает штатная магнитола, приглушает звук. А с компа звук идет на вход магнитолы.
В результате в основном он используется для музыки/аудиокнижек и навигации. Редко - интернетТВ. Йота вполне это позволяет. А все остальное - лишнее. :-)
ну так планшет имеет собственное питание, собственную удобную систему ввода (сенсорный экран), автоматическую регулировки яркости, а все лишнее можно отрубить. По сравнению с компьютером каких у него меньше возможностей? Я не вижу. Стационарно вкрепить его меньше проблем чем строить карписи, по моему мнению. И цена весьма демократична.
Я не навязываю свое мнение, просто приятно пообщаться со сведующим человеком, свое сказать, чужое услышать.
Кстати купил еще OBD2 Bluetooth адаптер, ошибки и инфу можно читать, цена вопроса 16 доларей.
Ага, понял. Иксы там не при чем.
Просто скрипты в /etc/pm/sleep.d выполняются от root, а СитиГид должна быть запущена от user и с .wine этого юзера.
Ну... Наверное это решаемо... :-)
Ну одним скриптом я около тысячи иксов поднять могу, айда проследить в каком моменте иксы возникли и угасли?
Не понял, за чем следить! :-)
Иксы подняты были, просто от юзера. Надо было переменные окружения передать.
Уже справился. :-)
Отправить комментарий