[Решено:]NetworkManager и модемное соединение (Он это вообще умеет или нет?)
Модератор: Модераторы разделов
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
[Решено:]NetworkManager и модемное соединение
Приветствую вас, камрады!
Задача: Пользоваться интернетом, используя в качестве модема мобильный телефон. Также не исключено использование других устройств: 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.
Задача: Пользоваться интернетом, используя в качестве модема мобильный телефон. Также не исключено использование других устройств: 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
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: [Решено:]NetworkManager и модемное соединение
Когда-то пользовался для этой цели gnome-ppp. Несмотря на название, гномозависимостей у него вроде нет.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: [Решено:]NetworkManager и модемное соединение
Hephaestus писал(а): ↑02.03.2015 11:06Можно, конечно, обходиться sudo pppd call provider (и оно, кстати, устойчиво работает, в отличие от), но для простого смертного пользователя такое как-то не айс, кроме того, надо держать открытый терминал на всё время соединения.
ярлык сделайте. И пропишите pppd в visudo, с NOPASSWD (что-бы юзера не пугать терминалом). Тогда терминал не нужен, так работает. Можно ещё один скрипт сделать, который
Код: Выделить всё
sudo killall pppd
для выключения.
Re: [Решено:]NetworkManager и модемное соединение
Если хотите NM, то можно попробовать посмотреть, что с ним не так, остановить его и запустить: NM_PPP_DEBUG=1 NetworkManager --no-daemon
Re: [Решено:]NetworkManager и модемное соединение
/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.
Традиционно установлением 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 и модемное соединение
Эти настройки уже давно сделаны. Уже есть куча файлов для разных провайдеров: megafon, mts, yota, там же есть и для 3G-модемов. И всё это прекрасно работало и подхватывалось gpppon.
И сейчас в принципе работает через sudo pppd call...
Наверно. Я не совсем понял, где что создавать, и можно ли скормить ему уже созданные файлы.
Но вообще, хотелось бы единообразия, если уж NM рулит соединениями, то пускай бы рулил всеми.
Ну, и значок в трее тоже для пользователя неплохо. Раз уж оно есть, пусть бы и работало.
Во! Вот за это спасибо. Я натыкаюсь в интернетах на темы вроде этой. Ну, раз там человек это ковыряет, значит оно срастается каким-то образом. Значит, должно быть.
А этот плагин, как его э-э-э... заставить...
Где у него кнопка?(с)
А то nm-pppd-plugin.so есть, но по-моему, что с ним, что без него - всё едино.
Да мне вот тоже не на чем. Это не моя аппаратура. А у меня нет такого аппарата.
Вот приду в гости - поковыряем.
Re: [Решено:]NetworkManager и модемное соединение
У меня с PPP не было проблем со стороны NM. Простые трубки подхватываются на ура, а вот мой смарт (LG P713) - никак. пока руками не скажешь NM тут же подхватывает устройство и успешно соединяется. Конкретно с этим телефоном вариантов проводного подключения у меня два: телефон определяется как обычный модем (использует виртуальный COM-порт, ttyACM) или телефон виден как тот же UART, но на шине USB (ttyUSB). Еще он может быть виден как сетевая карта (cdc_ether).
P.S Про сетевую карту я загнул, это про телефон с Android уже.
Код: Выделить всё
# modprobe -r cdc_ether
# modprobe cdc_ether
P.S Про сетевую карту я загнул, это про телефон с Android уже.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: [Решено:]NetworkManager и модемное соединение
Простая трубка выглядит как /dev/ttyACM0 или как /dev/ttyUSB0?
И кстати, как они подхватываются? Автоматически создаётся соединение? (у меня для Ethernet такое происходит).
Одним словом, дайте подробностей.
Возможно, я что-то делаю не так.
Создаю новое соединение.
Выбираю мобильное соединение. (Возможно, здесь я неправ?)
На первой же странице предлагают выбрать устройство. И вот тут затык.
Если для 3G/4G-модема видно конкретное устройство и модель, то для телефона выбора никакого нет, только "любое устройство".
Дальше там регион, провайдер, тарифный план.
Соединение создали, сохранили.
Активировать его не получается, потому что никакого конкретного устройства там не указано.
При этом телефон совершенно точно виден в системе как /dev/ttyACM0 и pppd прекрасно запускается вручную.
Вот в этом и вопрос: NM должен подхватывать эти самые /dev/ttyACM или нет? Пока неясно.
Ладно. Обсуждение временно приостановим.
Я в ближайшие дни проверю то, что посоветовали/надумалось/нагуглилось.
Потом отпишусь.
А пока всем спасибо.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: [Решено:]NetworkManager и модемное соединение
Итак, что получилось в итоге.
NM - это явно не мой инструмент. У него какая-то своя логика работы, которую я не понимаю.
Устройства типа /dev/ttyACM он в упор не видит.
Зато добросовестно очищает /etc/resolv.conf при загрузке.
Короче, отрубили к чертям.
Для телефона создал пару ярлыков на подключение - по одному для каждого провайдера. При этом открывается окно терминала, разрыв соединения происходит при закрытии окна.
Есть ещё смартфон на Android. Для использования его в качестве модема в настройках смартфона активируется точка доступа.
При этом устройство обнаруживается в системе заново - с новыми VID/PID и выглядит как сетевой интерфейс.
При деактивации точки доступа VID/PID меняются на первоначальные.
Создал правило для udev, завязанное на эти VID/PID, вызывается dhclient для соответствующего интерфейса.
Но на свежезагруженной системе это правило почему-то срабатывает только со второго раза (ативировали точку доступа, тут же деактивировали и активировали снова). С одного раза не получается. Возможно, стоит привязать правило к имени интерфейса, а не VID/PID.
Появилась мысль устанавливать соединение через телефон (который /dev/ttyACM*) также с помощью udev (по аналогии со смартфоном).
Но тут есть сложность: телефон один и тот же, симки могут быть разные. Соответственно и вызов pppd будет с разными параметрами.
Отсюда вопрос: Существует ли какой-нибудь ID, который зависит от сим-карты, виден в системе и который можно использовать для правила?
Другой вариант - скрипт, в котором AT-командами выцепляются нужные данные, а затем устанавливается соединение. Может статься, что это единственный вариант.
Прошу развеять мои сомнения.
NM - это явно не мой инструмент. У него какая-то своя логика работы, которую я не понимаю.
Устройства типа /dev/ttyACM он в упор не видит.
Зато добросовестно очищает /etc/resolv.conf при загрузке.
Короче, отрубили к чертям.
Для телефона создал пару ярлыков на подключение - по одному для каждого провайдера. При этом открывается окно терминала, разрыв соединения происходит при закрытии окна.
Есть ещё смартфон на Android. Для использования его в качестве модема в настройках смартфона активируется точка доступа.
При этом устройство обнаруживается в системе заново - с новыми VID/PID и выглядит как сетевой интерфейс.
При деактивации точки доступа VID/PID меняются на первоначальные.
Создал правило для udev, завязанное на эти VID/PID, вызывается dhclient для соответствующего интерфейса.
Но на свежезагруженной системе это правило почему-то срабатывает только со второго раза (ативировали точку доступа, тут же деактивировали и активировали снова). С одного раза не получается. Возможно, стоит привязать правило к имени интерфейса, а не VID/PID.
Появилась мысль устанавливать соединение через телефон (который /dev/ttyACM*) также с помощью udev (по аналогии со смартфоном).
Но тут есть сложность: телефон один и тот же, симки могут быть разные. Соответственно и вызов pppd будет с разными параметрами.
Отсюда вопрос: Существует ли какой-нибудь ID, который зависит от сим-карты, виден в системе и который можно использовать для правила?
Другой вариант - скрипт, в котором AT-командами выцепляются нужные данные, а затем устанавливается соединение. Может статься, что это единственный вариант.
Прошу развеять мои сомнения.
Re: [Решено:]NetworkManager и модемное соединение
Hephaestus писал(а): ↑06.03.2015 10:26NM - это явно не мой инструмент. У него какая-то своя логика работы, которую я не понимаю.
Устройства типа /dev/ttyACM он в упор не видит.
Так логи и не показали.
Логично, он генерирует его на основании своих настроек.
Re: [Решено:]NetworkManager и модемное соединение
У меня устройство, которым представляется обычный телефон, зависит от его модели. Например, 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
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: [Решено:]NetworkManager и модемное соединение
Эх... Ни телефона, ни того компа рядом нет - техника не моя.
Завтра там буду - напишу прямо оттуда - опубликую логи.
Логично, да не совсем.
Во-первых, файл пустой. Там кроме строки комментария # Generated by NetworkManager ничего нет.
Какой смысл в таком действии? Если ему нечего поместить в файл, зачем генерирует? И зачем затирать то, что уже было в файле?
Во-вторых, если я у себя поднял bind и в /etc/resolv.conf у меня
nameserver 127.0.0.1, то всё, не судьба?
NM мне так и будет это затирать? Правильно?
Может оно и логично, но как раз вот этой логики я и не понимаю.
Вот как Вы этого добились? Вы писали соответствующее правило для udev?yars писал(а): ↑06.03.2015 13:19Например, Nokia 3500 у меня определяется как ttyACM[09]. Udev устройству назначает владельца и группу root:dialout, навешивает ему ярлык NM_CANDIDATE, NM определяет подключение телефона, сам создает подключение и успешно подключается. После соединения настройки запоминаются, и при следующем подключении делать вообще ничего не надо.
Поделитесь, правилом, если не жалко. Или оно из коробки есть?
Я-то пытался в NM руками создать новое подключение в категории "Мобильные" и никаких устройств мне не предлагалось. И в дальнейшем созданное подключение никак не задействовалось.
А здесь, стало быть, вся соль в ярлыке NM_CANDIDATE, так выходит? Только благодаря этому NM подхватывает устройство? Я сейчас погуглил этот самый NM_CANDIDATE и единственное, что по теме нашлось - это ссылка на нашу с Вами беседу. Всё остальное мимо. Вот как Вы вообще про NM_CANDIDATE узнали? Откуда? Я не нашёл.
Целевой телефон, кстати, Nokia 6233. Но вообще-то там пара аппаратов и несколько симок. И симки порой переставляются в разные аппараты. А ещё и смартфон. А иногда ещё и 3G/4G-модемы подключаются. Вот если NM сможет всем этим хозяйством устойчиво рулить - будет хорошо. Но что-то я не очень в это верю. Пока он беспроблемно рулит только 3G/4G-модемами и смартфоном.
Если не сможет, тогда буду либо мучить udev на предмет автоматического соединения для всех устройств (не знаю только как симки различать), либо оставлю так как сейчас - отдельный ярлык на каждое соединение, но это мне не нравится, не очень удобно.
Re: [Решено:]NetworkManager и модемное соединение
У каждого покдючения могут быть свои DNS — можно всегда добавить дополнительные в насктройках подключения и они будут добавляться в resolv.conf.
Re: [Решено:]NetworkManager и модемное соединение
Ага, с моей стороны не было никаких дополнительных действий, кроме тыканья мышью по вкладкам с целью проверки правильности полученных данных и Next > Next > Done. Как буду дома, попробую повторить, но по крайней мере в 14.0 это работало.
P.S. А правила можно найти в /etc/udev/rules.d/, это 77-mm-nokia-port-types.rules, 40-usb_modeswitch.rules.
Re: [Решено:]NetworkManager и модемное соединение
Из вывода udevadm monitor --property, но это было, когда пытался разобраться с проблемой роутера, подключенного к десктопу по USB. Ввожу команду, втыкаю роутер и наблюдаю выхлоп.
Я неправильно назвал эту переменную, правильно -- ID_MM_CANDIDATE.
Можно кусок вывода dmesg, относящегося к подключению телефона, вывод ls -l /dev/tty{ACM,USB}* и логи ModemManager'а?
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: [Решено:]NetworkManager и модемное соединение
Ну, вот. Это уже что-то. А то я в поисках NM_CANDIDATE уже и документацию погрепал - пусто.
ID_MM_CANDIDATE - это, стало быть, относится к ModemManager, а не к NetworkManager.
Вообще-то я запускал и modem-manager-gui при подключенном аппарате - тоже говорит, нет устройств.
Но теперь хоть ясно, куда копать.
Завтра буду там на месте - выложу логи.
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: [Решено:]NetworkManager и модемное соединение
Задача более не актуальна.
Пользователи изъявили твёрдое желание остаться на старой системе.
Всем спасибо за содействие.
Извините, что напрасно занял ваше время.
Пользователи изъявили твёрдое желание остаться на старой системе.
Всем спасибо за содействие.
Извините, что напрасно занял ваше время.
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: [Решено:]NetworkManager и модемное соединение
настроить нужно.
зачем вы его запускаете?
это прописывается в "настройках соединения".
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: [Решено:]NetworkManager и модемное соединение
В виду того, что на старой системе вечно сидеть невозможно, вновь вернулся к решению данной задачи.
Взял на тестирование телефонный аппарат с кабелем. Досконально всё проверил.
Телефон обнаруживался системой, но установленное соединение тут же разрывалось.
Запустил NM в режиме "не демон", посмотрел выхлоп. При подключении телефона обнаружилась ругань на невозможность загрузить некие библиотеки, если правильно помню - это nm-pppd-plugin.so.
Переустановил, всё заработало.
Как объяснить тот факт, что ранее телефон даже не определялся, а сейчас просто разрывалось соединение - не знаю. Возможно, сказались обновления системы.
Так или иначе, задача решена.
Всем спасибо.
Взял на тестирование телефонный аппарат с кабелем. Досконально всё проверил.
Телефон обнаруживался системой, но установленное соединение тут же разрывалось.
Запустил NM в режиме "не демон", посмотрел выхлоп. При подключении телефона обнаружилась ругань на невозможность загрузить некие библиотеки, если правильно помню - это nm-pppd-plugin.so.
Переустановил, всё заработало.
Как объяснить тот факт, что ранее телефон даже не определялся, а сейчас просто разрывалось соединение - не знаю. Возможно, сказались обновления системы.
Так или иначе, задача решена.
Всем спасибо.
- AlеxL81971
- Сообщения: 40
- ОС: Mageia
Re: [Решено:]NetworkManager и модемное соединение
Bizdelnick писал(а): ↑02.03.2015 11:40Когда-то пользовался для этой цели gnome-ppp. Несмотря на название, гномозависимостей у него вроде нет.
Были, но сплыли при переходе на gtk3 как gtk-ppp: https://sourceforge.net/p/gtk-ppp/
С уважением, руководитель образовательного направления Mageia - EduMagic