ModemManager и последовательные интерфейсы
28.07.2013 23:45:41По работе практически постоянно требуется последовательный интерфейс для подключения к железякам, он же RS232, он же COM, смотря как на него посмотреть. Очень простая вещь, в общем-то, воткнулся, запустил миником или пикоком, и вот тебе консоль устройства, всё прекрасно. Конечно, не очень прекрасно, если подключён через адаптер USB<->COM, с ними регулярно какие-то проблемы бывают, но и деваться от этих адаптеров уже некуда, честных портов даже в настольных системах уже так сразу не выводят (хотя на материнках разъёмы найти ещё можно).
И вот некоторое время назад начал замечать странное: при разных условиях в консоль нагло лезли строчки «AT+GCAP», затем какие-то «~x», после чего начинали валить крякозябры и консоль вообще входила в непотребное состояние. Поначалу списывал на глюки адаптеров, вдумчиво вытаскивал и вставлял их снова, однако, это не помогало. Помогало только многократное открытие/закрытие миникома, начиная с какого-то момента всё проходило.
Заподозрил глюки миникома. Попробовал пикоком (на самом деле, он мне даже больше нравится), та же история. Вот тут-то и появилась мысль о том, что, может, ещё кто-то, кроме меня, пытается использовать порт? Казалось бы — кому он нужен, всю жизнь никто в порты не лез, да и даже если есть, миником честно ставит лок-файлы, видно же, что устройство занято.
А виновник, чисто случайно, всё же нашёлся. Оказывается, прогресс в линуксах дошагал до такой штуки как ModemManager, которая бесцеремонным образом тыкается во все вновь подключаемые порты, а ну как там модем спрятался?! Причём, в зависимости от версии, может делать это долго и нудно.
Очевидно, инновация приехала в рамках обновления openSUSE с 12.2 на 12.3. И, вроде бы как, с благими целями. Ну а получилось то, что получилось — на ровном месте проблемы с консолью, что неприятно.
Уж не знаю, можно ли это чудо как-то отучить гадить в какие-то конкретные устройства или нет, изучать не стал, просто грохнул пакет, за ненадобностью мне лично.
С нетерпением жду следующей версии дистрибутива.