LINUX.ORG.RU

Нужен костыль для 3G модема под -ubuntu

 , ,


0

1

Здравствуйте господа. Есть Lenovo X200 со встроенным модемом Ericsson w3705g. Сразу после инсталяции (или запуска с LiveUSB) Network Manager опознаёт его и подключает (пробовалось на 18х lubuntu/xubuntu и последних Cinnamon/Mate). И всё прекрасно работает, но ровно до тех пор, пока в NM его не отключишь - после этого они полностью исчезает из NM и из системы (вместе с /dev/ttyACM0, ttyACM1, ttyACM2). Т.е. убивается он, как я понял, на уровне ядра. Со внешним было бы понятно - вынул-вставил-завелось, но тут-то встроенный. Потому вопрос - нельзя ли как-то его «передёрнуть» принудительно инициализировать (или хотя бы запретить «удаляться» из системы - что бы только отключалось питание (по типу WiFi)? А то приходится жить с постоянно включенным.

ЗЫ. После отключения lsusb его не видит, но NM позволяет создать новое подключение с его «участием», которое правда всё равно не включить (ибо нет ttyACM*) Под седьмыми окнами, естественно, такой проблемы нет, а под wicd он невиден изначально.


Ответ на: комментарий от irton

«дай б-г тебе здоровья добрый человек, денег много и бабу молодую»(с)

Таки да rfkill его показывает, но как заблокированный. Соотвественно после «rfkill unblock wwan» в NM появляется заветная кнопка, с помощью которой всё можно снова включить.

Пока думаю для udev правило сочинить, что бы после выключения сразу же разблокировало. Или есть какие идеи получше?

XapoH ()
Ответ на: комментарий от XapoH

радость была недолгой - если выключить комп с выключенным модемом, то он пропадает навсегда (rfkill его больше не видит). Причём настолько, что больше не инициализируется ни с LiveUSB ни даже w7. Его тупо «больше нет в системе» - единственное, что его вывело из комы, это старт из под «десятки». Но и то, после этого он стал инициализироваться только из под LiveUSB (в дисковой системе, где он был отключен, так и остался «мёртвым»). Т.е. всё вернулось на круги своя ;( Такое впечатление, что в сам модем что-то там засылается по питанию. Похоже, что так и придётся жить с вечно включенным.

XapoH ()
Ответ на: комментарий от XapoH

А если удалить rfkill или nm из системы? К вафле подключаться через wcid, а под модем подобрать строку дозвона через какой нибудь wvdial?

kirill_rrr ★★★★★ ()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от anonymous

ну получается,что скорее не модем, а кнопку управления им в NM. Сам-то модем, если его отключить, уже (после рестарта) не оживить так просто (только если переинсталлировать NM).

ЗЫ. а относительно wvdial.. Пробовали, но если модем «умер» в системе, то и wvdial его не видит - там же тупо нет всех (трёх) ttyACM на него завязанных, а потому (для любой проги) и модема в системе «нет». Фактически, нужно просто как-то «переткнуть» модем программно - что бы система снова его инициализировала. Или перезапустить всю систему инициализации wwan

XapoH ()

Думаю, что в твоем случае одними лишь стандартными средствами отделаться не удастся. Скорее всего, там надо дергать какую-нибудь функцию в uefi, либо вообще напрямую дергать какой-нибудь регистр superio, чтобы модем «проснулся». С ноутбуками всегда так. Стоит написать в багзиллу, либо сразу в список рассылки, где драйверы модемов разрабатывают.

Khnazile ★★★★★ ()
Ответ на: комментарий от Khnazile

Повидимому в «баг» и придётся - драйвера-то на этот Ericsson (f3507g) вроде уже не пиляться (разве что прикручивают их к новым системам, да и то..).

ЗЫ. А BIOS у меня «классический» - ещё безо всяких UEFI. Всё что можно - накатить Libreboot (мой «может»), но не думаю, что это как-то поможет.

XapoH ()
Ответ на: комментарий от XapoH

"На пальцах (популярно)"

«извини, но ты не прав» ©

Кнопка в NM неактивна т.к. при отключенном модеме нет устройств /dev/ttyACM* — ModemManager («часть» NM работающая с модемами [/dev/ttyUSB*, /dev/ttyACM*, <есть и другие варианты, но сходу не скажу>]) сам не активирует модемы. Но при появлении в системе модема «захватывает» его для управления и т.д.

rfkill же может блокировать/разблокировать устройства. Когда он снимает блокировку с твоего модема, модем появляется в системе, об этом узнаёт NM ... «все начинает вертеться-кружиться».

У тебя модем исчезает после закрытия подключения к интернету? Поясни что это за кнопка, которая его отключает совсем. В принципе при отключении от сети USB-модемы переводятся в режим «неактивности» (простоя %) — не думаю что, они много энергии в этом режиме потребляют: с сетью не общаются. У твоего тоже должен быть подобный режим.

anonymous ()
Ответ на: комментарий от anonymous

Мы точно говорим об одном и том же rfkill? Когда я его последний раз тыкал, это была такая маленькая утилита, предназначенная для принудительного отключения ненужного устройства чтобы не жрало питание. Да, научить её включать устройство обратно было логично. Но мне кажется если никто не сможет железку выключить, то и включать обратно не нужно будет.

kirill_rrr ★★★★★ ()
Ответ на: комментарий от kirill_rrr

Хм-м-м... Интересный поворот ;)

Единственный известный мне rfkill может как отключать, так и включать устройства (WiFi, Bluetooth, WWAN, ...?). Отключается ли при этом и питание устройства? Нет, не знаю. И даже не интересовался. В 99% случаев я использовал rfkill для включения устройств. Возможно он же их и отключал (опять же я этого точно не знаю).

Посмотри у своего rfkill ман или хелп — если он и включать умеет, вероятно мы про одну и туже утилиту говорим. :)

anonymous ()
Ответ на: комментарий от kirill_rrr

Но мне кажется если никто не сможет железку выключить, то и включать обратно не нужно будет.

В этом моменте не уверен для данного модема. Как-то изучал команды модема в телефоне SonyEricsson (модель сейчас не вспомню). Так вот, там было 1-2 команды с безобидным описанием в мануале. Должен был возвращатся статус батареи(?) и ещё что-то (что уже не помню). Но при посылке одной из команд телефон перезагружался (естественно, модем из системы выпадал). А вторая команда вырубила телефон (блин, до сих пор страшно вспоминать). Х.з. может и здесь выполняется какая-то AT-команда без участия rfkill.

anonymous ()
Ответ на: комментарий от anonymous

Ну, я с ним знакомился давно... Не помню годы, но тогда линукс на ноутах редко мог уйти в спящий или хотя бы подкрутить яркость монитора, юсб-модемы были не то чтобы везде, usb_modeswich ещё толком не попал в репы и умел 1,5 актуальных железки, а nvidia optimus был только на горизонте. И вот кажется для отключения дискретки нвидия я его и использовал.

kirill_rrr ★★★★★ ()
Ответ на: комментарий от kirill_rrr

ну как бы rfkill --help среди прочего вываливает

Usage: rfkill [options] command [identifier ...] .... Commands: ... block identifier unblock identifier

Но это точно скорее относится к «кнопке в NM» нежели к питанию.

ЗЫ. Сейчас всё переставил (бо рестартнул с «выключенной кнопкой» и всё умерло. благо дел - на пол часа со всем допиливанием). Естественно всё «завелось». Потом поставил TLP и пока настраивал, не заметил, что поставил галку «выключать при старте wwan». После рестарта модем, естественно, выключился. Отложив пару кирпичей («Шо? Опять?!» (переставлять)(с)), проверил rfkill'ом - модем ещё был виден. Дальше уже по накатанной - включил «кнопку» rfkill'ом, а потом кнопкой уже сам модем. Отлегло. Так что (в моём случае) комманда не совсем бесполезной оказалась.

anonymous ()

Первый костыль нашёл - tlp называется (и tlpui впридачу. я их всё равно ставлю всегда - для батарейки): выставляется «выключать при включении: wwan» и «включать при выключении: wwan». В результате во время работы модем отключен, но в системе есть. Выключать-перезапускть можно до посинения: модем больше не пропадает «навсегда».

Второй костыль - поставить в автозапуск (с правами рута) скрипт с «rfkill unblock wwan» (заодно и блюпуп можно отключать там же. Он прям бессмертный - и в конфиге отключен и в tlp и всё равно «заводится»). В результате в NM появляется кнопка управления модемом. Правда пока не получается его прикрутить (rc.local нет, и заводить лишнего демона неохота. Варианты с initd и crontab что-то не срабатывают. Но это пока). Пока (на тестовом диске) запускаю вручную из консоли.

Останется найти третий костыль (или велосипед для этого ездюка на костылях?) - если вкл/выкл в NM модем, то он снова оттуда пропадает и нужно снова выполнять предыдущий костыль (скрипт). Пока есть мысля на счёт использования udev, но не уверен, что это «то». «Будем искать»(с)

XapoH ()
Ответ на: комментарий от XapoH

ИМХО, tlp как раз проблему и делает. У меня встроенный модем при наличии tlp в системе с загрузки дурить начинает, - вываливает в dmesg кучу

nonzero urb status received: -EPIPE
По сбросу устройства на шине usb - вот хороший код. Пример его применения: 4pda

anonymous ()
Ответ на: комментарий от anonymous

Вот без tlp он у меня и дох (см. начало) - у каждого свои железяки и работать они могут по разному (на за ссылочку спасибо - покурю. Хотя я там вижу тоже sudo)

Сейчас у меня боль-мень. 1. Поставил tlp - в нём «включать модем при выключении компьютера» и «выключать при включении». После этого всё заводится, но моден попрежнему не вимден в NM. Поэтому пока вкуриваю systemd (ранье было проще) сделал так: 2. Поместил rfkill в sudoers 3. Типаскрипт «sudo rfkill unblock wwan» (с правильными правами и в правильной папке - только для рута) 4. Кнопочку с линком на этот типаскрипт (тоже только для рута) и линк на него же в автостарт.

Всё работает почти как хотел - при запуске кнопка включения модема есть и сам модем «жив», но не запущен. Если сделать ему «вкл/выкл», то кнопка его включения снова изчезнет. Восстановить её можно или нажав на «кнопочку с линком» или «оно само появится» после рестарта. Сейчас, по сути, нужно просто юнит какой сколхозить (или в крон добавить), что бы убрать команду из sudoers и можно жить В идеале - нужно что-то такое, что или не позволяло бы (только!) модем вообще (софтово) блокировать или отслеживало бы наличие этой блокировки и снимало бы её. Ну а если к этому добавить принудительную подачу питания на модем перед выключением, был бы уже не костыль, а вполне себе «бионический протез»

XapoH ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.