[Решено:]NetworkManager и модемное соединение (Он это вообще умеет или нет?)

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

[Решено:]NetworkManager и модемное соединение

Сообщение Hephaestus »

Приветствую вас, камрады!

Задача: Пользоваться интернетом, используя в качестве модема мобильный телефон. Также не исключено использование других устройств: 3G-модем, смартфон.
Условия: Slackware64+LXDE.

Телефон представлен в системе как /dev/ttyACM0, то есть не так, как 3G-модем, к примеру.
Нужна графическая морда для руления соединениями.
Естественно, первое что попалось под руку - NetworkManager.
И для смартфона, 3G-модема - никаких проблем - подхватывает, соединяет, всё работает.
Но вот устройства типа /dev/ttyACM0 он не видит, хоть тресни.
Может статься, что и не должен. Хотя в интернетах где-то попадалось в описаниях, что ppp он умеет вроде как.
Но если всё-таки не должен, тогда встаёт вопрос о графической морде для такой варианта.

В старой системе (Debian Lenny) для этого использовался gpppon.
Это такая древняя элементарнейшая утилита - раскрывающийся список провайдеров и две кнопки (подключить, отключить)
Он подхватывал файлы из /etc/ppp/peers, заполнял ими свой список и позволял соединиться, нажав на кнопку.
Я его собрал под слаку (благо, там всего два файла, один из которых - ман).
И оно даже запустилось и подхватило файлы из peers. Но этим всё и кончилось.
Сначала посыпались ошибки из-за прав доступа. Пофиксили.
Однако соединяться эта штука не захотела. От рута ещё туда-сюда - через раз соединяется. От пользователя - ни в какую.
Потом ещё оказалось, что ему надо /usr/bin/pon и /usr/bin/poff, эти скрипты, вероятно, есть только в дебе, хотя не знаю.
Без /usr/bin/poff он не может разорвать соединение и pppd остаётся висеть.

Начал искать графическую морду к pppd.
Попробовал kppp - вообще ничего не получилось, даже не удалось создать соединение.
Можно, конечно, обходиться sudo pppd call provider (и оно, кстати, устойчиво работает, в отличие от), но для простого смертного пользователя такое как-то не айс, кроме того, надо держать открытый терминал на всё время соединения.

В идеальном случае, хорошо бы, чтоб NM это дело подхватывал. Я так и не понял, он это умеет или нет?
Просветите меня кто-нибудь по этому поводу.
Или присоветуйте нормальную граф. морду к pppd.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20741
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [Решено:]NetworkManager и модемное соединение

Сообщение Bizdelnick »

Когда-то пользовался для этой цели gnome-ppp. Несмотря на название, гномозависимостей у него вроде нет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение drBatty »

Hephaestus писал(а):
02.03.2015 11:06
Можно, конечно, обходиться sudo pppd call provider (и оно, кстати, устойчиво работает, в отличие от), но для простого смертного пользователя такое как-то не айс, кроме того, надо держать открытый терминал на всё время соединения.

ярлык сделайте. И пропишите pppd в visudo, с NOPASSWD (что-бы юзера не пугать терминалом). Тогда терминал не нужен, так работает. Можно ещё один скрипт сделать, который

Код: Выделить всё

sudo killall pppd

для выключения.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [Решено:]NetworkManager и модемное соединение

Сообщение NickLion »

Если хотите NM, то можно попробовать посмотреть, что с ним не так, остановить его и запустить: NM_PPP_DEBUG=1 NetworkManager --no-daemon
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: [Решено:]NetworkManager и модемное соединение

Сообщение bormant »

/dev/ttyACM* -- это действительно устройства, подходящие для ppp (point-to-point protocol, протокол точка-точка).
Традиционно установлением ppp соединений заведует демон pppd (даже если для настройки соединения вы видите иное междумордие).
Для настройки "в консольке" есть сценарий pppsetup. Это если говорить про "sudo pppd call provider".

Насчет kppp -- весьма странно слышать, вероятно где-то с опциями промахнулись.

Если не NM, на slackbuilds.org есть vwdial.

Для NM раньше требовался ModemManager, теперь в комплекте есть nm-pppd-plugin.
Правда пока потестировать не на чем, но при первой возможности попробую глянуть, что там стало с NM+pppd.

PS. У nm-client-а возможны собственные заморочки, есть смысл также попинать NM при помощи nmcli / nm-tool.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение Hephaestus »

bormant писал(а):
02.03.2015 15:44
Для настройки "в консольке" есть сценарий pppsetup. Это если говорить про "sudo pppd call provider".
Эти настройки уже давно сделаны. Уже есть куча файлов для разных провайдеров: megafon, mts, yota, там же есть и для 3G-модемов. И всё это прекрасно работало и подхватывалось gpppon.
И сейчас в принципе работает через sudo pppd call...

bormant писал(а):
02.03.2015 15:44
Насчет kppp -- весьма странно слышать, вероятно где-то с опциями промахнулись.
Наверно. Я не совсем понял, где что создавать, и можно ли скормить ему уже созданные файлы.

Но вообще, хотелось бы единообразия, если уж NM рулит соединениями, то пускай бы рулил всеми.
Ну, и значок в трее тоже для пользователя неплохо. Раз уж оно есть, пусть бы и работало.

bormant писал(а):
02.03.2015 15:44
теперь в комплекте есть nm-pppd-plugin.
Во! Вот за это спасибо. Я натыкаюсь в интернетах на темы вроде этой. Ну, раз там человек это ковыряет, значит оно срастается каким-то образом. Значит, должно быть.
А этот плагин, как его э-э-э... заставить...
Где у него кнопка?(с)

А то nm-pppd-plugin.so есть, но по-моему, что с ним, что без него - всё едино.

bormant писал(а):
02.03.2015 15:44
Правда пока потестировать не на чем, но при первой возможности попробую глянуть, что там стало с NM+pppd.
Да мне вот тоже не на чем. Это не моя аппаратура. А у меня нет такого аппарата.
Вот приду в гости - поковыряем.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: [Решено:]NetworkManager и модемное соединение

Сообщение yars »

У меня с PPP не было проблем со стороны NM. Простые трубки подхватываются на ура, а вот мой смарт (LG P713) - никак. пока руками не скажешь

Код: Выделить всё

# modprobe -r cdc_ether
# modprobe cdc_ether
NM тут же подхватывает устройство и успешно соединяется. Конкретно с этим телефоном вариантов проводного подключения у меня два: телефон определяется как обычный модем (использует виртуальный COM-порт, ttyACM) или телефон виден как тот же UART, но на шине USB (ttyUSB). Еще он может быть виден как сетевая карта (cdc_ether).
P.S Про сетевую карту я загнул, это про телефон с Android уже.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение Hephaestus »

yars писал(а):
02.03.2015 20:19
У меня с PPP не было проблем со стороны NM. Простые трубки подхватываются на ура
Простая трубка выглядит как /dev/ttyACM0 или как /dev/ttyUSB0?
И кстати, как они подхватываются? Автоматически создаётся соединение? (у меня для Ethernet такое происходит).
Одним словом, дайте подробностей.

Возможно, я что-то делаю не так.
Создаю новое соединение.
Выбираю мобильное соединение. (Возможно, здесь я неправ?)
На первой же странице предлагают выбрать устройство. И вот тут затык.
Если для 3G/4G-модема видно конкретное устройство и модель, то для телефона выбора никакого нет, только "любое устройство".
Дальше там регион, провайдер, тарифный план.
Соединение создали, сохранили.
Активировать его не получается, потому что никакого конкретного устройства там не указано.
При этом телефон совершенно точно виден в системе как /dev/ttyACM0 и pppd прекрасно запускается вручную.
Вот в этом и вопрос: NM должен подхватывать эти самые /dev/ttyACM или нет? Пока неясно.

Ладно. Обсуждение временно приостановим.
Я в ближайшие дни проверю то, что посоветовали/надумалось/нагуглилось.
Потом отпишусь.

А пока всем спасибо.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение Hephaestus »

Итак, что получилось в итоге.
NM - это явно не мой инструмент. У него какая-то своя логика работы, которую я не понимаю.
Устройства типа /dev/ttyACM он в упор не видит.
Зато добросовестно очищает /etc/resolv.conf при загрузке.
Короче, отрубили к чертям.

Для телефона создал пару ярлыков на подключение - по одному для каждого провайдера. При этом открывается окно терминала, разрыв соединения происходит при закрытии окна.

Есть ещё смартфон на Android. Для использования его в качестве модема в настройках смартфона активируется точка доступа.
При этом устройство обнаруживается в системе заново - с новыми VID/PID и выглядит как сетевой интерфейс.
При деактивации точки доступа VID/PID меняются на первоначальные.
Создал правило для udev, завязанное на эти VID/PID, вызывается dhclient для соответствующего интерфейса.
Но на свежезагруженной системе это правило почему-то срабатывает только со второго раза (ативировали точку доступа, тут же деактивировали и активировали снова). С одного раза не получается. Возможно, стоит привязать правило к имени интерфейса, а не VID/PID.

Появилась мысль устанавливать соединение через телефон (который /dev/ttyACM*) также с помощью udev (по аналогии со смартфоном).
Но тут есть сложность: телефон один и тот же, симки могут быть разные. Соответственно и вызов pppd будет с разными параметрами.
Отсюда вопрос: Существует ли какой-нибудь ID, который зависит от сим-карты, виден в системе и который можно использовать для правила?
Другой вариант - скрипт, в котором AT-командами выцепляются нужные данные, а затем устанавливается соединение. Может статься, что это единственный вариант.
Прошу развеять мои сомнения.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [Решено:]NetworkManager и модемное соединение

Сообщение NickLion »

Hephaestus писал(а):
06.03.2015 10:26
NM - это явно не мой инструмент. У него какая-то своя логика работы, которую я не понимаю.
Устройства типа /dev/ttyACM он в упор не видит.

Так логи и не показали.

Hephaestus писал(а):
06.03.2015 10:26
Зато добросовестно очищает /etc/resolv.conf при загрузке.

Логично, он генерирует его на основании своих настроек.
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: [Решено:]NetworkManager и модемное соединение

Сообщение yars »

У меня устройство, которым представляется обычный телефон, зависит от его модели. Например, Nokia 3500 у меня определяется как ttyACM[09]. Udev устройству назначает владельца и группу root:dialout, навешивает ему ярлык NM_CANDIDATE, NM определяет подключение телефона, сам создает подключение и успешно подключается. После соединения настройки запоминаются, и при следующем подключении делать вообще ничего не надо. Вообще, NM - это надстройка над ModemManager, возможно, это его надо пинать. По крайней мере, можно выполнить:

Код: Выделить всё

# /etc/rc.d/rc.networkmanager stop
# killall -s KILL $(pidof ModemManager)
# ModemManager --debug
и почитать выхлоп.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение Hephaestus »

NickLion писал(а):
06.03.2015 13:07
Так логи и не показали.
Эх... Ни телефона, ни того компа рядом нет - техника не моя.
Завтра там буду - напишу прямо оттуда - опубликую логи.

NickLion писал(а):
06.03.2015 13:07
Логично, он генерирует его на основании своих настроек.
Логично, да не совсем.
Во-первых, файл пустой. Там кроме строки комментария # Generated by NetworkManager ничего нет.
Какой смысл в таком действии? Если ему нечего поместить в файл, зачем генерирует? И зачем затирать то, что уже было в файле?
Во-вторых, если я у себя поднял bind и в /etc/resolv.conf у меня
nameserver 127.0.0.1, то всё, не судьба?
NM мне так и будет это затирать? Правильно?
Может оно и логично, но как раз вот этой логики я и не понимаю.

yars писал(а):
06.03.2015 13:19
Например, Nokia 3500 у меня определяется как ttyACM[09]. Udev устройству назначает владельца и группу root:dialout, навешивает ему ярлык NM_CANDIDATE, NM определяет подключение телефона, сам создает подключение и успешно подключается. После соединения настройки запоминаются, и при следующем подключении делать вообще ничего не надо.
Вот как Вы этого добились? Вы писали соответствующее правило для udev?
Поделитесь, правилом, если не жалко. Или оно из коробки есть?

Я-то пытался в NM руками создать новое подключение в категории "Мобильные" и никаких устройств мне не предлагалось. И в дальнейшем созданное подключение никак не задействовалось.
А здесь, стало быть, вся соль в ярлыке NM_CANDIDATE, так выходит? Только благодаря этому NM подхватывает устройство? Я сейчас погуглил этот самый NM_CANDIDATE и единственное, что по теме нашлось - это ссылка на нашу с Вами беседу. Всё остальное мимо. Вот как Вы вообще про NM_CANDIDATE узнали? Откуда? Я не нашёл.

Целевой телефон, кстати, Nokia 6233. Но вообще-то там пара аппаратов и несколько симок. И симки порой переставляются в разные аппараты. А ещё и смартфон. А иногда ещё и 3G/4G-модемы подключаются. Вот если NM сможет всем этим хозяйством устойчиво рулить - будет хорошо. Но что-то я не очень в это верю. Пока он беспроблемно рулит только 3G/4G-модемами и смартфоном.
Если не сможет, тогда буду либо мучить udev на предмет автоматического соединения для всех устройств (не знаю только как симки различать), либо оставлю так как сейчас - отдельный ярлык на каждое соединение, но это мне не нравится, не очень удобно.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [Решено:]NetworkManager и модемное соединение

Сообщение NickLion »

У каждого покдючения могут быть свои DNS — можно всегда добавить дополнительные в насктройках подключения и они будут добавляться в resolv.conf.
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: [Решено:]NetworkManager и модемное соединение

Сообщение yars »

Hephaestus писал(а):
06.03.2015 19:39
Или оно из коробки есть?

Ага, с моей стороны не было никаких дополнительных действий, кроме тыканья мышью по вкладкам с целью проверки правильности полученных данных и Next > Next > Done. Как буду дома, попробую повторить, но по крайней мере в 14.0 это работало.
P.S. А правила можно найти в /etc/udev/rules.d/, это 77-mm-nokia-port-types.rules, 40-usb_modeswitch.rules.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: [Решено:]NetworkManager и модемное соединение

Сообщение yars »

Hephaestus писал(а):
06.03.2015 19:39
Я не нашёл.

Из вывода udevadm monitor --property, но это было, когда пытался разобраться с проблемой роутера, подключенного к десктопу по USB. Ввожу команду, втыкаю роутер и наблюдаю выхлоп.
Hephaestus писал(а):
06.03.2015 19:39
вся соль в ярлыке NM_CANDIDATE

Я неправильно назвал эту переменную, правильно -- ID_MM_CANDIDATE.
Hephaestus писал(а):
06.03.2015 19:39
Целевой телефон, кстати, Nokia 6233

Можно кусок вывода dmesg, относящегося к подключению телефона, вывод ls -l /dev/tty{ACM,USB}* и логи ModemManager'а?
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение Hephaestus »

yars писал(а):
06.03.2015 20:32
Я неправильно назвал эту переменную, правильно -- ID_MM_CANDIDATE.
Ну, вот. Это уже что-то. А то я в поисках NM_CANDIDATE уже и документацию погрепал - пусто.
ID_MM_CANDIDATE - это, стало быть, относится к ModemManager, а не к NetworkManager.
Вообще-то я запускал и modem-manager-gui при подключенном аппарате - тоже говорит, нет устройств.
Но теперь хоть ясно, куда копать.

yars писал(а):
06.03.2015 20:32
Можно кусок вывода
...
Завтра буду там на месте - выложу логи.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение Hephaestus »

Задача более не актуальна.
Пользователи изъявили твёрдое желание остаться на старой системе.

Всем спасибо за содействие.
Извините, что напрасно занял ваше время.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение drBatty »

Hephaestus писал(а):
06.03.2015 19:39
Во-первых, файл пустой.

настроить нужно.
Hephaestus писал(а):
06.03.2015 19:39
И зачем затирать то, что уже было в файле?

зачем вы его запускаете?
Hephaestus писал(а):
06.03.2015 19:39
NM мне так и будет это затирать? Правильно?

это прописывается в "настройках соединения".

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: [Решено:]NetworkManager и модемное соединение

Сообщение Hephaestus »

В виду того, что на старой системе вечно сидеть невозможно, вновь вернулся к решению данной задачи.
Взял на тестирование телефонный аппарат с кабелем. Досконально всё проверил.
Телефон обнаруживался системой, но установленное соединение тут же разрывалось.
Запустил NM в режиме "не демон", посмотрел выхлоп. При подключении телефона обнаружилась ругань на невозможность загрузить некие библиотеки, если правильно помню - это nm-pppd-plugin.so.
Переустановил, всё заработало.
Как объяснить тот факт, что ранее телефон даже не определялся, а сейчас просто разрывалось соединение - не знаю. Возможно, сказались обновления системы.
Так или иначе, задача решена.
Всем спасибо.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
AlеxL81971
Сообщения: 40
ОС: Mageia

Re: [Решено:]NetworkManager и модемное соединение

Сообщение AlеxL81971 »

Bizdelnick писал(а):
02.03.2015 11:40
Когда-то пользовался для этой цели gnome-ppp. Несмотря на название, гномозависимостей у него вроде нет.

Были, но сплыли при переходе на gtk3 как gtk-ppp: https://sourceforge.net/p/gtk-ppp/
С уважением, руководитель образовательного направления Mageia - EduMagic
Спасибо сказали:
Ответить