metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-04-26 06:30 am

Программно-аппаратный костыль

Знакомый в целях терапии своего мозга ("хотите об этом поговорить") рассказал ужас. У них есть софтина, которая защищена сервером лицензий с аппаратным ключом в usb. И периодически этот сервер перестает выдавать лицензии и в прогу не пускает. Помогает только одна операция: вынять ключ, вставить и перезапустить сервер.

Поскольку к разработчикам софтины обращаться не принято/западло/стыдно/etc, было применено следующее решение: плата с тремя реле, управляемыми от COM-порта, которые включают и выключают USB линии в правильном порядке, имитируя доставание и вставление ключа. И прога, которая ими управляет и перезапускает сервер.

Я, честно говоря, после всего шрота, с которым мне приходилось работать, особой проблемы в таком решении не вижу (ну не считая того, что если бы я был разработчиком софтины, я бы таки попытался ее решить нормальным образом). А вот знакомому, т.к. он сисадмин, эта штука совершенно вырывает мозг, противореча всему его мировоззрению и образу жизни :)

[identity profile] fas-tm.livejournal.com 2010-04-26 06:57 am (UTC)(link)
Горох и Боб(с)
Расстрелять.

[identity profile] potan.livejournal.com 2010-04-26 07:19 am (UTC)(link)
А дебагер на программу запустить религия не позволяет?

[identity profile] metaclass.livejournal.com 2010-04-26 07:21 am (UTC)(link)
Это будет НАМНОГО дольше, чем сделать этот костыль, скорее всего запрещено по условиям использования программы, и вообще незаконно.

[personal profile] alll 2010-04-26 07:37 am (UTC)(link)
Сразу вспоминаются старые фидошные байки про ресет, выведенный на кнопку дверного звонка на время отпуска сисопа и хитроумную систему для нажатия ресета посредством выдвигающегося лотка cd-драйва.

[identity profile] norguhtar.livejournal.com 2010-04-26 07:41 am (UTC)(link)
Хм. Я бы в виртуалку сервер сунул :)

[identity profile] blacklion.livejournal.com 2010-04-26 07:56 am (UTC)(link)
А есть уверенность, что USB нормально вот такое в виртуалку прокинется?

[identity profile] blacklion.livejournal.com 2010-04-26 07:56 am (UTC)(link)
У меня какие-то странные USB2COM, например, не работали в виртуалке. Виделись но вообще не работали.

[identity profile] vp.livejournal.com 2010-04-26 08:59 am (UTC)(link)
УСБ на виртуалку прокидывается корректно

[identity profile] vp.livejournal.com 2010-04-26 09:00 am (UTC)(link)
смотрится как ситуация, когда проект уже ЭКСПЛУАТИРУЕТСЯ несколько лет, и там девелоперов не осталось, а остались только техники и админы. Вполне себе оправданный

[identity profile] nealar.livejournal.com 2010-04-26 09:09 am (UTC)(link)
Странные - в смысле не от FTDI?

[identity profile] blacklion.livejournal.com 2010-04-26 10:19 am (UTC)(link)
Да :)
но “нативно” работают и на FreeBSD и на Windows. А в VMware (хост — Windows XP x64, гостей пробовал разных) вот не прокидывались хоть ты тресни!

[identity profile] b00ter.livejournal.com 2010-04-26 10:23 am (UTC)(link)
Вообщем у меня начался дачно-летний сезон, и станция теперь частенько будет
работать на автопилоте. Я буду периодически уезжать и возвращаться. Думаю,
что в среднем дольше чем на неделю я уезжать не буду, но там кто знает.
Посему сейчас идет усиленная подготовка к работе на автопилоте.
Естессно будет стоять программный деглюкатор, ребутящий машину в случае
зависонов мылера, который к тому же будет просто в профилактических целях
выполнять ребут каждый день в полдень по иерусалимскому времени с
уведомлением всех подписчиков о том, что усе ок.
Правда очень редко, но у меня все же случаются броски по питанию, от чего
комп даже один раз вывалился в биос. Поэтому кроме ребута еще необходимо
предусмотреть ресет. Для этого я вывел кнопку ресет на дверной звонок, и
попрошу .2 в случае аппаратного зависа подъехать и позвонить мне в дверь,
благо живет он недалеко. А что бы он мог убедиться, что тачка обресетилась,
сразу после загрузки будет проговариваться сообщение на саундбластере
(колонки я подтащу к двери). Hад текстом я сейчас размышляю, но думаю "пошел
в #опу" будет оптимальным вариантом - это будет отпугивать незадачливых
гостей, чтобы не ломали мне компьютер своими дурацкими визитами, когда меня
дома нет.Кроме того, такая конструкция позволит вести лог звонков в дверь -
по приезду я узнаю, часто ли и главное во сколько меня навещали гости. За
поздние визиты - по почкам.
Особенно после полуночи - от этого связь рвется.
Hу и на самый крайний случай - переполнился винт (к примеру очередной
энтузиаст решит на все файлэхи из любопытства подписаться) тут уж без меня
никто ничего не сможет), я предусмотрел отключение компьютера от сети, чтобы
зря механизьмы его не изнашивались. Для этого будет стоять еще одна
программная следилка - за объемом свободного места на диске. Как только оно
станет меньше критического, на принтер будет выдана строка символов.
А к головке принтера будет прикручен общий сетевой шнур, не очень туго
воткнутый в розетку. Головка поедет и выдернет вилку из розетки.
То есть - ква. Ждите приезда, в дверь звонить не надо, все равно в #опу уже
никто никого не пошлет...

[identity profile] teewoon.livejournal.com 2010-04-26 10:44 am (UTC)(link)
Ну и норм. А прикиньте - два серва на одном упсе и ком-шланг один? Хотя каюсь - делал както на коленке переходную платку с регулируемым таймером - всё что она делала - обрубала питание дальше себя с интервалом 5-180 минут, потому что длинк-файфай-точка отчегото висла с четким периодом %)

[identity profile] trueblacker.livejournal.com 2010-04-26 11:53 am (UTC)(link)
если не ошибаюсь, это зависит от устройства
если чонить стандартное типа HID/MassStorage - ок, если самопаянная экзотика со специфическими дровами - хз

[identity profile] clayrat.livejournal.com 2010-04-26 01:12 pm (UTC)(link)
"Life will find a way", как говорил ученый из "парка Юрского периода"

[identity profile] nicka-startcev.livejournal.com 2010-04-26 02:17 pm (UTC)(link)
чё. Бывает.
УПШ - это аццкое говно, не предназначенное для долговременной работы. Аппаратный передёрг - чуть ли не наименьшее из зол.

[identity profile] nicka-startcev.livejournal.com 2010-04-26 02:19 pm (UTC)(link)
УСБ нормально в виртуалку прокидывается, ибо прокид на достаточно низком уровне "пересылка пакетов".

[identity profile] golosptic.livejournal.com 2010-04-26 07:38 pm (UTC)(link)
Извините, а никак нельзя договориться с Вашим знакомым о закупке этого устройства? Нам очень-очень актуально! ;-PЬРЬРЬРЬ

[identity profile] nealar.livejournal.com 2010-04-26 07:57 pm (UTC)(link)
Дык, эта, на коленке проектируется без проблем. Идею-то [livejournal.com profile] metaclass описал. Но если удастся поделку их админа на рынок вывести - будет круто. Даже жаль, что мне не нужно.

[identity profile] sa76.livejournal.com 2010-04-30 07:13 am (UTC)(link)
Я вышеупомянутый сисадмин, схема тривиальная и работает как задумано. http://212.98.162.189/tmp/usbswitch.png
Одно реле отключает питание USB, два других - данные. Можно обойтись двумя реле, просто не нашли 5-вольтовое реле с двумя контактными парами. Можно обойтись даже одним, потому что эксперименты показали, что последовательность отключения линий вроде не важна.
Изготовлять этот мрак на заказ, естественно, не планируем.

[identity profile] metaclass.livejournal.com 2010-04-30 08:23 am (UTC)(link)
Последовательность, по идее, важна. Если случайно включится в таком порядке "Vcc,Данные,Земля" то ток пойдет по шине данных, что нехорошо.

[identity profile] sa76.livejournal.com 2010-04-30 09:35 am (UTC)(link)
Землю никогда не отключаем.

[identity profile] sa76.livejournal.com 2010-04-30 09:37 am (UTC)(link)
На схеме описка - земля USB не разрывается контактной парой реле.

[identity profile] golosptic.livejournal.com 2010-04-30 07:54 pm (UTC)(link)
Спасибо большое.
Попробуем спаять.
А то токен отваливается постоянно...

[identity profile] sa76.livejournal.com 2010-04-30 08:51 pm (UTC)(link)
Токен случайно не iKey1000?

[identity profile] pzrk.livejournal.com 2012-08-28 06:35 am (UTC)(link)
Пользоваться поисковиками учить не буду - сразу дам ссылку на http://unicontrollers.com/products/unc01x/unc011