Ошибка "ip-config-unavailable" при попытке подключения USB-модема

У меня есть модем ZTE MF-193E, который раньше работал нормально. Когда я купил этот модем больше года назад, он работал с готовностью из коробки. Теперь, когда Ubuntu прогрессирует в версии, для меня все становится все сложнее.

Этот модем даже работал пару месяцев назад с Ubuntu 15.04 (64-битная версия). Теперь, в Ubuntu 15.10 (64-разрядная версия), он не может подключиться.

Я установил мобильную широкополосную связь. Я пробовал разные строки для APN, но раньше это не было проблемой.

(Модем отлично работает в Windows 10, так что это не аппаратная проблема вообще. Кроме того, графический интерфейс менеджера модема приятно обнаруживает это устройство. SMS могут отправляться и приниматься без проблем.)

Когда я вставляю модем, он обнаруживается хорошо, в Unity отображается значок CD с названием модема. Через несколько секунд я получаю сообщение

Mobile Broadband Network: you are registered on the home network

возле значка сети.

Когда я пытаюсь подключиться, значок беспроводного соединения в апплете менеджера сети запускает эти центробежные движения, но в итоге ему не удается подключиться, и появляется сообщение о том, что я не в сети.

Линия, которую я мог бы изолировать от /var/log/syslog это,

NetworkManager[628]: <info>  (ttyUSB1): device state change: ip-config
> -> failed (reason 'ip-config-unavailable') [70 120 5]

Хотя я не уверен, что это актуально.

Больше строк из /var/log/syslog можно найти здесь.


Обновление 1 - 06 декабря 2015

Как указал один добрый член, попробовал nf_conntrack_pptp модульный подход.

Выполнены следующие команды,

$ lsmod | grep nf_conntrack_pptp | wc -l
0

$ sudo modprobe nf_conntrack_pptp
lsmod | grep nf_conntrack_pptp
nf_conntrack_pptp      20480  0
nf_conntrack_proto_gre    16384  1 nf_conntrack_pptp
nf_conntrack          106496  2 nf_conntrack_proto_gre,nf_conntrack_pptp

Потом попробовал мой модем, такой же сбой. Никаких заметных изменений в журнале тоже нет.


Обновление 2 - 06 декабря 2015

Выполнено от имени root,

systemctl restart network-manager.service

Нет вывода на экран (терминал).

Соответствующий журнал из вышеприведенного пункта о попытке подключения через модем можно найти здесь.


Обновление 3 - 06 декабря 2015

Установлены ofono и затем попробовал модем снова.

Пожалуйста, смотрите журнал здесь.


Обновление 4 - 06 декабря 2015

Снова выполняется как корень,

systemctl restart network-manager.service

Соответствующий журнал из вышеприведенного пункта о попытке подключения через модем можно найти здесь.


Обновление 5 - 06 декабря 2015

Изменено все "запретить" на "разрешить" в /etc/dbus-1/system.d/nm-dispatcher.conf,

Пробовал подключаться. Неудачно.

Несколько сетевых подключений и отключений с подключением Ethernet.

С последующим sudo systemctl restart network-manager.service,

Модем подключи и подключи.

Попробовал снова подключиться. Не подключается.

Журнал здесь.


Обновление 6 - 06 декабря 2015

выполненный

sudo killall ModemManager; sudo ModemManager --debug 2>&1 | tee /tmp/modem.log.txt

а также

export NM_PPP_DEBUG=1
sudo NetworkManager --no-daemon 2>&1 | tee /tmp/nm.log.txt

Не удалось запустить mm-test.py из-за множественных ошибок. Нашел файл в указанном месте. Получил это от https://github.com/openshine/ModemManager/blob/master/test/mm-test.py.

Вышеприведенные команды несколько отличаются от команд в вики.

Файлы журнала находятся здесь.


Обновление 7 - 07 декабря 2015

Выполнено снова (после предложенного изменения в /lib/udev/rules.d/40-usb_modeswitch.rules и перезагрузка)

sudo killall ModemManager; sudo ModemManager --debug 2>&1 | tee /tmp/modem.log.txt

а также

sudo NM_PPP_DEBUG=1 /usr/sbin/NetworkManager --log-level=debug --no-daemon > /tmp/nm.log.txt

/var/log/syslog также включен.

Файлы журнала находятся здесь.


Обновление 8 - 08 декабря 2015

Обновленный набор журналов здесь.


Обновление 9 - 08 декабря 2015

Тест 1

  1. На этот раз загрузил компьютер с 32-битного DVD Ubuntu 14.04. Как только компьютер загрузился, начался захват журнала ММ.

  2. Вставил модем. lsusb показал, что оно распознается как устройство 19d2:1232, которое необходимо подключить к устройству 19d2:2003. Так как для установки usb-modeswitch требуется перезагрузка компьютера (и, следовательно, потеря установки для запуска DVD), я подготовил файл пользовательского переключателя и переключил модем из командной строки (sudo usb_modeswitch -I -c 19d2:2003).

  3. Как только переключение было выполнено, мне сообщили, что я был включен Mobile Broadband Network и Новое значение широкополосного соединения в меню сетевого менеджера.

  4. Я установил вышеупомянутое соединение обычным способом (имя APN не было проблемой), и соединение было установлено автоматически.

  5. Я отключил и выбросил модем.

  6. Перестал захватывать журнал ММ.

Полный журнал MM и системный журнал для начала сеанса для извлечения модема можно найти здесь.

Тест 2

Тот же тест с 64-битным DVD Ubuntu 14.04.

Журналы можно найти здесь.


Обновление 10 - 09 декабря 2015

На этот раз проверено с wvdial и обнаружил, что если wvdial выполняется как root, мы получаем успешное соединение.

wvdial Conf и Log, и соответствующий системный журнал здесь

Основная гипотеза: ситуация может иметь отношение к группе пользователей соответствующего пользователя.

Но, как указано здесь,

Со всеми этими инструментами, чтобы установить коммутируемое соединение, пользователь должен быть членом групп "dip" и "dialout", поэтому включите в эти группы всех пользователей, которые должны соединяться через dialup.

Но, как мы можем найти,

$ groups masroor
masroor : masroor adm dialout cdrom sudo dip plugdev lpadmin sambashare family wireshark

Итак, пользователь уже является членом указанных групп.

Теперь, возможно, проблема сводится к одному из этих пунктов,

  1. Какой дополнительной группой должен быть пользователь?
  2. Как запустить процесс настройки мобильного широкополосного подключения от имени пользователя root? (проблемы с безопасностью?)

Обновление 11 - 09 декабря 2015

wvdial работает с USB3 и не работает с USB1.

Пожалуйста, найдите системный журнал здесь.

Также включен вывод dmesg | grep tty > /tmp/dmesg.tty.txt, Но видите эти четыре строки рядом с началом файла?


Обновление 12 - 10 декабря 2015

  1. Закомментирована строка 4 (SUBSYSTEM!="tty", GOTO="mm_zte_port_types_end") в /lib/udev/rules.d/77-mm-zte-port-types.rules,

  2. Перезагрузил мою машину. Софт отключил кабель и вставил модем.

  3. Пытался подключиться. Неудачный.

Файл системного журнала находится здесь.


Обновление 13 - 10 декабря 2015

Из отчаяния, чтобы увидеть, влияют ли некоторые локальные изменения на соединение, протестировал машину с Ubuntu 15.04 и 15.10 DVD.

  1. Загрузил машину с Xubuntu 15.04 64-битный DVD. Связь была успешной, как шарм.
  2. Загрузил машину с 64-битным DVD Ubuntu 15.10. Сбой соединения, как и раньше.

Что произошло между 15.04 и 15.10?

Так расстраивает.


Обновление 14 - 10 декабря 2015

  1. Создан новый файл /lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules как указано в ответе.

  2. Перезагрузил мою машину (или выполнил sudo udevadm control --reloadна самом деле пробовал оба). Вставил модем.

  3. Модем получил признание.

    $ lsusb
    Bus 001 Device 005: ID 19d2:2003 ZTE WCDMA Technologies MSM
    
  4. Софт отключил кабель и попытался подключиться с помощью модема. Неудачный.

  5. Выкинул модем.

Машина зависает один раз, это случайное событие? Моя машина обычно не зависает один раз в год.

Файл системного журнала и созданные файлы правил находятся здесь.


Обновление 15 - 11 декабря 2015

  1. Добавлены следующие строки в /lib/udev/rules.d/40-usb_modeswitch.rules,

    # ZTE MF193E
    ATTR{idVendor}=="19d2", ATTR{idProduct}=="1232", RUN+="usb_modeswitch '%b/%k'"
    
  2. Оставил файл /lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules неповрежденными.

  3. Перезагрузил мою машину. Вставил модем.

  4. Модем получил признание.

    Bus 001 Device 005: ID 19d2:2003 ZTE WCDMA Technologies MSM
    
  5. Софт отключил кабель и попытался подключить. Неудачный.

  6. Выкинул модем.

  7. Удалены /lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules,

  8. Перезагрузился и перепробовал весь процесс снова. Снова неудачно.

Файл системного журнала (завершено, я не рискнул пропустить ни одной важной части) и упомянутый файл правил (40) находятся здесь.


Обновление 16 - 11 декабря 2015

  1. Оставил только одно правило 1232 в/lib/udev/rules.d/40-usb_modeswitch.rulesудалил другой.

  2. выполненный sudo udevadm control --reload,

  3. Вставил модем.

  4. Модем получил признание.

    Bus 001 Device 005: ID 19d2:2003 ZTE WCDMA Technologies MSM
    
  5. Софт отключил кабель и попытался подключить. Неудачный.

  6. Выкинул модем.

Но разве мы не тестировали систему по умолчанию выше? Вы хотели уйти? /lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules на своем месте?

Файл системного журнала (завершено, я не рискнул пропустить ни одной важной части) и упомянутый файл правил (40) находятся здесь


Обновление 17 - 11 декабря 2015

  1. Прокомментировал правило 1232 в/lib/udev/rules.d/40-usb_modeswitch.rules, добавил один на 2003 год.

    # ZTE MFxxx
    # Added on December 11 2015
    ATTR{idVendor}=="19d2", ATTR{idProduct}=="2003", RUN+="usb_modeswitch '%b/%k'"
    
  2. выполненный sudo udevadm control --reload,

  3. Вставил модем.

  4. Модем был признан устройством 1232. Мне не предлагается пытаться подключиться (насколько мне известно, оно не будет зарегистрировано в широкополосной сети, если переключение не произошло в 2003 году)

    Bus 001 Device 008: ID 19d2:1232 ZTE WCDMA Technologies MSM
    
  5. Выкинул модем.

Файл системного журнала и упомянутый файл правил (40) находятся здесь


Обновление 18 - 11 декабря 2015

  1. Положите все файлы правил в их первоначальном виде.

  2. Смотрели lsusb выводить каждую секунду, используя сценарий оболочки. Захваченный вывод в файлах с отметкой времени.

  3. Вставил модем. (Модем сначала появляется в файлеlssuboutouput.Fri Dec 11 16:56:29 BDT 2015.txt). Как видно из снимков, ясно, что оно переключается с устройства 1232 на устройство 2003 года.

  4. Пытался подключиться. Неудачный.

  5. Выкинул модем.

Файл системного журнала с отметкой времени lsusb выходы и упомянутые файлы правил находятся здесь.

Теперь вы можете сопоставить выходные данные системного журнала с отметками времени.


Обновление 19 - 11 декабря 2015

Выполнил этот тест в совершенно новом направлении с желанием, чтобы я мог изолировать проблемы.

  1. Сохранено на портативном носителе /lib/udev/rules.d/40-usb-media-players.rules а также /lib/udev/rules.d/77-mm-zte-port-types.rules (с машины Ubuntu 15.10).

  2. Загрузил компьютер, используя 64-битный DVD Xubuntu 15.04.

  3. выполненный diff 77-mm-zte-port-types.rules /lib/udev/rules.d/77-mm-zte-port-types.rules > diff15.10and15.04_77-mm.txt, Первый файл из того, который был сохранен 15.10.

    Изучение файла diff показывает нет idProduct 1232 или 2003.

  4. выполненный diff 40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules > diff15.10and15.04_40-usb.txt, Опять же, первый файл из того, который был сохранен 15.10.

    Опять же, проверка файла diff не показывает idProduct 1232 или 2003.

  5. Вставил модем. Модем был признан модемом.

    $ lsusb
    Bus 001 Device 008: ID 19d2:2003 ZTE WCDMA Technologies MSM
    
  6. Может легко подключиться после настройки мобильного широкополосного соединения.

  7. Выкинул модем.

  8. Установлен последний USB_ModeSwitch.

    diff 40-usb_modeswitch.rules /lib/udev/rules.d/40-usb_modeswitch.rules
    

    Теперь возвращает NULL, как и ожидалось.

  9. выполненный sudo udevadm control --reload-rules,

  10. Вставил модем. Модем был признан модемом.

    $ lsusb
    Bus 001 Device 008: ID 19d2:2003 ZTE WCDMA Technologies MSM
    
  11. Мог легко подключиться.

Я мог бы попробовать обновить MM и NM до Ubuntu 15.10, просто чтобы увидеть, где он ломается. Я на самом деле пытался, но сдался из-за бесконечных проблем с зависимостями.

Все вышеупомянутые файлы различий находятся здесь.


Обновление 20 - 12 декабря 2015

Тест 1

  1. /lib/udev/rules в исходном состоянии.

  2. Модемное устройство еще не было вставлено в этом сеансе.

  3. Настройте ModemManager для отладки и настройки захвата udevadm.

    sudo udevadm monitor --e |& tee udevadm.update20.WITHOUT78.log
    sudo killall ModemManager; sudo ModemManager --debug 2>&1 | tee MM.update20.WITHOUT78.log
    
  4. Подключил модем и подождал пока он скажет что он зарегистрирован в широкополосной сети.

  5. Пытался соединиться неудачно.

  6. Выкинул модем.

  7. Упакованные файлы журнала.

Тест 2

Повторили вышеуказанный тест с/lib/udev/rules.d/78-mm-zte-port-types-RALPH.rules на месте.

Имена файлов журнала говорят сами за себя.

Все вышеперечисленные файлы журналов плюс системный журнал и 78 файлов правил находятся здесь.

Я хотел бы, чтобы все файлы журналов были снабжены временными метками, чтобы облегчить сопоставление.


Обновление 21 - 15 декабря 2015

  1. Изменен файл правил, как предложено.
  2. Перезагрузил мою машину.
  3. Вставил модем и попробовал подключиться. Это не работает.

Файл правил и syslog здесь


Обновление 22 - 16 декабря 2015

Как советовали в одном комментарии, установили различные ядра с http://kernel.ubuntu.com/~kernel-ppa/mainline/ и попытались подключиться с помощью модема после загрузки в каждом.

  1. 4.2.8-040208-универсальный отказ.

  2. 4.1.15-040115-generic, ошибка.

  3. 4.0.9-040009-generic, ошибка.

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


Обновление 23 - 16 февраля 2016

Модем начал работать в Ubuntu 16.04. Эта версия все еще в Альфа 1, но отлично работает на моем ноутбуке.

4 ответа

Решение

Модем начал работать в Ubuntu 16.04. Эта версия все еще находится в стадии разработки, но отлично работает на моем ноутбуке.

Я хотел бы предоставить больше технических деталей о том, как он начал функционировать.

Загрузка ofono пакет, вероятно, хорошо, но, видимо, вашей модели модема, ZTE MF193E, нет в списке ZTE. По сравнению с другими модемами ZTE, например, MF190J, этот модем, вероятно, нуждается в том же специальном udev правило, чтобы бежать usb_modeswitch когда ключ вставлен, и для достижения этого вы можете, как root, добавить новый udev правило в файл
/lib/udev/rules.d/40-usb_modeswitch.rules
со следующими двумя строками, например, где-то рядом с # ZTE MF190J комментарий:

# ZTE MF193E
ATTR{idVendor}=="19d2", ATTR{idProduct}=="2003", RUN+="usb_modeswitch '%b/%k'"

плюс пустая строка, поэтому она выглядит приятной для глаз.

После этого, вероятно, целесообразно перезагрузить компьютер, только чтобы убедиться, что все работает как по волшебству:-)

Или нет. Как вы знаете, это глубокая вода для меня, но если она все еще не работает, понадобится другой журнал отладки ModemManager, для еще одной дикой догадки.

РЕДАКТИРОВАТЬ:

Сейчас я смотрю на две строки в modemmanager.txt:

[mm-broadband-bearer.c:1254] connect(): Launching 3GPP connection attempt with APN 'WAP'

а также

[mm-broadband-bearer.c:994] parse_pdp_list(): Found PDP context with CID 1 and PDP type ipv4 for APN 'wap'

Я предполагаю, что первое относится к вашей широкополосной настройке, а второе относится к внутренней привязке к "контексту PDP" (что бы это ни было). Похоже, модем предлагает 9 альтернативных контекстов, в том числе с apn='WAP', но ModemManager соглашается на регистронезависимое соответствие.

Разница в регистре может быть причиной следующей проблемы: например, что ppp хочет 'wap' конфигурация (а не 'WAP') и не находит его, или что ожидает удаленный конец apn='WAP', но получает "WAP", который он задыхается.

Первый вариант можно легко протестировать (и, вероятно, исключить), изменив конфигурацию, чтобы использовать "wap" вместо "WAP". Возможно, вы пробовали это раньше, но в то время без ofono пакет, так что еще один тест не повредит, хотя второй вариант более вероятен.

Второй вариант также более проблематичен, учитывая, что в модеме есть соответствие "контекста PDP" в верхнем регистре. При поиске этой проблемы выясняется, что сопоставление без учета регистра корректно (по-видимому, уместно) в спецификации "3GPP TS 23.003, глава 9.1", и исправление для этого было добавлено в ModemManager в ноябре прошлого года (в его версии мм-1-4, я могу собрать). Так что в этом случае ваш модем не был уведомлен, и он ожидает совпадения с учетом регистра, в то время как ModemManager к сожалению, прямое сопоставление без учета регистра используется, а не как запасной вариант.

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

РЕДАКТИРОВАТЬ 2

Да, откат версии нелегок из-за зависимостей. И кататься самостоятельно тоже далеко не радостно.

Два возможных полезных инструмента: команда mmcli и ( http://m2msupport.net/m2msupport/module-tester/).

Проблема, я думаю, в том, что ModemManager выбирает контекст 1 PDP с помощью apn='wap', где он должен выбирать контекст 9 PDP с помощью apn='WAP'. Может быть, это можно решить с помощью одного из этих инструментов. Либо иметь возможность принудительно выбрать 9 во время соединения, либо удалив неверные контексты "wap" из модема, на которые, как объявлено, может работать модуль-тестер.

Инструмент модем-тестер, похоже, является инструментом Java в браузере, поэтому вам нужно настроить браузер, чтобы знать, где находится Java, и вам нужна эта Java, чтобы знать о ней. Тогда, пожалуйста, изучите этот подход; Я не использовал его сам, но, увидев скриншоты, я предполагаю, что он представит контексты PDP в виде вкладки "Вызовы данных", где вы сначала отмечаете все, что он показывает, а затем редактируете записи "wap", чтобы искажать метки apn "wap", скажем, "wap1" и "wap2" (чтобы "скрыть" их при поиске "WAP"). Затем сохраните и закройте и снова передерните ключ. Захватить бревно; кажется, системного журнала достаточно, если он все еще отказывается играть.

mmcli команда также кажется полезной в этой истории; делать man mmcli читать об этом, но я ничего не видел о контекстах PDP там.

РЕДАКТИРОВАТЬ 3

Хороший звонок! проверить с DVD. Это говорит нам о том, что я на неверном пути с APN, и что все дело в том, чтобы заставить ppp появиться. По крайней мере, это будет мое новое дерево, на которое можно лаять.

Во-первых, мы отмечаем, что есть разница в версии для pppd (от 2.4.5 до 2.4.6), но это, вероятно, не проблема, так как тогда все на ключе были бы на этой экскурсии.

Хм, ppp; Мне нужно расшевелить мои воспоминания прошлого тысячелетия:-). К сожалению, я сегодня занят, но я коснусь базы, когда в следующий раз у меня будет время, чтобы увидеть, как далеко вы продвинулись. Моими первыми задними переулками, которые нужно изучить, будет: 1) пользователь в правильной группе? 2) верно ли полномочия? 3) мод мода файла конфигурации ppp/chat прав? Журнал отладки ppp выходит в nm.txt (как и несколько дней назад), но также должен быть способ запросить более подробную регистрацию.

РЕДАКТИРОВАТЬ 4

обеспечивать /etc/ppp/pap-secrets а также /etc/ppp/chap-secrets есть группа dip (с помощью chgrp по мере необходимости) и режим 740 (или же -rw-r-----) (с помощью chmod по мере необходимости). Мой не сделал.

РЕДАКТИРОВАТЬ 5

Тогда как насчет этого дерева: Сравнение рабочего wvdial системный журнал с нерабочим системным журналом, кажется, что по какой-то причине wvdial используемый ttyUSB3 пока нерабочий ModemManager продолжает использовать ttyUSB1, Я не уверен, если это вообще важно, но, видимо, но ttyUSB1 а также ttyUSB3 оба отвечают как модемы с поддержкой AT.

Итак, в качестве теста, может быть, вы можете редактировать /etc/wvdial.conf так что под [Dialer Defaults] включает в себя строку:

Modem = /dev/ttyUSB1

для одного теста, и ttyUSB3 для другого; оба работают как root; просто чтобы увидеть, есть ли другое поведение. Особенно, если вы используете ttyUSB1 Это проблема, в то время как использование ttyUSB3 - нет, тогда было бы хорошо узнать, как заставить ModemManager использовать ttyUSB3. Для любого другого результата теста, я бы сказал, что мы вернемся к погоню за хорьками в земле ppp.

РЕДАКТИРОВАТЬ 6

Я думаю, что журнал dmesg можно игнорировать; это было так во всех журналах. Новый системный журнал показывает только тест ttyUSB3, но, возможно, мы можем предположить, что жизнь станет лучше, если NetworkManager можно использовать ttyUSB3 и игнорировать ttyUSB1 (для этого модема).

Я также нашел ( https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/819784) особенно смущающий пост #10:-(

По-видимому применимый udev править в /lib/udev/rules.d/77-mm-zte-port-types.rules не относится, но якобы было бы куда пойти. И, только с очень элементарной, до-101 понимание udev волшебство, я так или иначе рассмотрю вопрос о его 4-ой строке, которая говорит:

SUBSYSTEM!="tty", GOTO="mm_zte_port_types_end"

Я думаю, что эта линия нуждается в начальной # чтобы быть закомментированным. Подробно, мое чтение файла состоит в том, что для этого требуется состояние вызова SUBSYSTEM=="tty" и SUBSYSTEMS="usb", чтобы использовать хорошие биты, включая правила продукта "2003", и, по крайней мере, для тестирования, должно быть безопасно пропустить фильтрацию "tty". И сейчас у меня нет ничего лучше.

РЕДАКТИРОВАТЬ 7

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

Однако я начал верить, что правила конфигурации ближе к концу этого файла для идентификатора продукта "2003" вводят в заблуждение. Из журналов мне кажется, что идентификатор продукта "2003" на самом деле является стороной ключа устройства, а сторона модема имеет идентификатор продукта "1232". Вы можете проверить это, скопировав два правила "2003" для идентификатора продукта "1232" в файле /lib/udev/rules.d/77-mm-zte-port-types.rules

ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1232", ENV{.MM_USBIFNUM}=="03", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1232", ENV{.MM_USBIFNUM}=="01", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1"

или лучше, добавьте новый файл рядом с ним, например, с именем 78-ralph.rules, но тогда вам также нужно добавить защиту SUBSYSTEM и SUBSYSTEMS.

Затем вытащите ключ, бегите udevadm control --reload (или перезагрузите компьютер) и вставьте ключ. А потом еще один syslog захватить, если это сейчас не работает.

Однако эффективная проблема заключается в том, что ModemManager отбрасывает плагин libmm-plugin-zte.so при предварительном зондировании и заканчивает тем, что использует общий обработчик модема. Если я прав насчет идентификатора продукта, то это может быть причиной; что предварительное исследование ищет ID_MM_ZTE_PORT_TYPE_MODEM Атрибуция, и этого не хватает для идентификатора продукта "1232" (до исправления), с тем, что плагин zte удаляется.

РЕДАКТИРОВАТЬ 8

syslog журнал немного короткий; отсутствует начало, когда ModemManager не может установить плагин zte. Тем не менее, ясно, что универсальный плагин модема используется в любом случае. Теперь, возможно, что usb_modeswitch Правило, которое я дал вам рано, также неверно; он решает переключиться на "2003", когда я думал, что он переключился с "2003". Но, man usb_modeswitch (что я должен был рассмотреть раньше) отчасти предполагает, что он переходит на идентификатор продукта, а не на него. В любом случае журнал показывает, что должно произойти. Поэтому, пожалуйста, измените это правило, чтобы использовать вместо него "1232", и попробуйте еще раз.

Если ничего больше, по крайней мере, я должен немного узнать об Udev.

РЕДАКТИРОВАТЬ 9

Хорошо. Проблема все еще (или также) в том, что ModemManager удаляет плагин ZTE при предварительном зондировании. Журналы отладки ModemManager для 15.10 (log устанавливает "debuglogs*") рассказывают историю, что плагин ZTE отбрасывается из-за теста vendor-id/product-id.

Иди к источнику, Люк! Я воспользовался этой возможностью, чтобы кратко просмотреть исходный код ModemManager, и это указывает на то, что плагин представляет собой таблицу vid/pid, которая не включает 19d2/2003 ... хотя я не нашел этот источник таблицы, поэтому я не мог не проверять.

Или, может быть, здесь есть проблема времени? Например, что ModemManager выполняет предварительное зондирование, пока устройство имеет значение 19d2/1232. Эта мысль согласуется с наблюдением, что наличие правил udev из 78-мм-zte-port-types-RALPH.rules делает ModemManager немного более счастливым с устройством. Но тогда, почему он не остается доволен и использует этот плагин, когда устройство переключено на 19d2/2003?

Может быть, нужно больше журналов:-) С отладкой ModemManager, а также захватом команды udevadm monitor --e |& tee udevadm.log (в другом терминале) при подключении устройства. Я получил эту команду от ( https://wiki.ubuntu.com/DebuggingUdev)

Сделайте это два раза: один раз без 78-mm-zte-port-types-RALPH.rules и один раз с правилами... оба раза от свежей перезагрузки. Т.е.

  1. настроить /lib/udev/rules.d с или без *-RALPH.rules файл
  2. вытащить устройство
  3. перезагружать
  4. настройка ModemManager для отладки и настройки захвата udevadm
  5. подключите устройство и подождите минуту
  6. собрать файлы журналов
  7. повторить с 1 с следующего теста

Это ведение журнала должно указывать, где удален плагин ZTE, и, как я понимаю, оно также расскажет об обработке событий udev.

РЕДАКТИРОВАТЬ 10

(У меня почти закончился трос, но у меня осталось еще одно или два вдоха:-)

Во-первых, все udev украшения, кажется, заканчиваются, как они должны, с парой вопросительных знаков в паре атрибутов. В частности, 78-*-RALPH.rules следует выбросить; это не полезно

Я думаю, что я могу прочитать что-то из этого, но я не совсем уверен, как это следует исправить. В основном, как я вижу, когда ключ подключен, происходит поток событий udev. Сосредоточив внимание на тех, что касаются ttyUSB1, существует "раннее" событие:

KERNEL[3867.310990] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.1 (usb)

что вызывает usb_serial загружаемый драйвер и /dev/ttyUSB1 появляться. Это, в частности, вызывает другое событие:

KERNEL[3867.435102] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.1/ttyUSB1/tty/ttyUSB1 (tty)

Я думаю, что это также вызывает ModemManager, Вы должны пойти в syslog чтобы увидеть доказательства этого, так как нет строгой корреляции между журналами. Событие с отметкой времени 3867.435102, а также syslog представляет свое ближайшее последующее ModemManager строка журнала сразу после отметки в строке журнала ядра 3867.437412,

По моему мнению, ModemManager не должен запускаться еще, но только после последующего события ttyUSB1:

UDEV  [3867.580427] add      /devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.1/ttyUSB1/tty/ttyUSB1 (tty)

который прикрепил атрибуты ZTE.

В журнале ММ мы будем на линии с отметкой 1449934745.363291 который, по-видимому, является меткой времени "реального времени", а не меткой времени ядра.

ModemManager затем делается предварительное зондирование в 1449934745.450398 через 87 мс, что в терминах времени ядра будет 3867.524519 и за 55 мс до этого "хорошего" отчета о событии UDEV выше.

Обратите внимание, что в syslog, ModemManager подает жалобы, что ttyUSB1 не установлены атрибуты, и, возможно, эта жалоба связана с "маркировкой", происходящей в 80-mm-candidate.rules, Согласно комментарию в этом файле, эта маркировка является попыткой решить именно эту проблему, но если это так, то, похоже, она не работает в этом случае.

Возможно, одна из возможностей решения этой проблемы - изменить правило "tty" в 80-mm-candidate.rules быть:

ENV{.ID_PORT}=="?*", SUBSYSTEM=="tty", ENV{ID_MM_CANDIDATE}="1"

На мой взгляд, это будет гарантировать, что ID_MM_CANDIDATE настройка задерживается до тех пор, пока не будут установлены атрибуты ZTE. .ID_PORT настройка является эффектом 60-serial.rules правило (называется 60-persistent-serial.rules до), и добавленное условие к правилу маркировки заключается просто в том, что оно имеет значение.

Условие не является атрибутом ZTE, только для того, чтобы сделать правило более общим. Еще один конкретный шаг - скорее потребовать ENV{.MM_USBIFNUM}="?*" вместо этого, так как это назначение здесь происходит 77-mm-zte-port-types.rules,

В общем я не очень уверен насчет udev правила упорядочения, и я тоже совсем не уверен, что это действительно останавливает ModemManager действовать слишком быстро. Однако, если это не так, то 80-mm-candidate.rules было бы мало или вообще не работать, и, возможно, тогда все сводилось бы к "улучшениям" ModemManager от 15.04.

РЕДАКТИРОВАТЬ 21

вздох. Возможно, не имеет значения, но вы можете проверить свои 7-zte-mutil_port_device.rules файл; это остаток от других экспериментов? Во всяком случае, здесь не актуально.

Там все еще почти секунда между 515.558184 а также 516.381549 где ModemManager охотно и ошибочно хватает /dev/ttyUSB1 и, хотя и жалуется на то, что он не настроен, все равно проходит предварительную проверку и удаляет плагин ZTE. Другими словами, патч правила не делает ModemManager Подождите.

Я полагаю, вы также проверили, используя ENV{.MM_USBIFNUM}="?*" вместо ENV{.ID_PORT}=="?*",

Собственно, чтобы подтвердить, стоит ли настройка ENV{ID_MM_CANDIDATE}=1 имеет какое-то значение, вы должны временно отойти 80-mm-candidate.rules, тогда посмотри (в syslog) если тогда ModemManager игнорируемых /dev/ttyUSB1 или нет. Я подозреваю, что нет.

И тогда, ну, может быть, вы можете использовать рабочую версию, такую ​​как 14.04, и, если вам нужно, возможно, запустить 15.10 в виртуальной коробке, если, конечно, это уже все в виртуальной коробке.

Я думаю, что мне нужно претендовать на поражение на этом этапе.

Если взглянуть на это с первого взгляда, то, похоже, это не первый раз, когда с этим драконом правильно обращаются. Раньше это было ошибкой в ​​12.10 и 13.04, возможно, эта ошибка никогда не была исправлена, или новый патч сломал что-то, что раньше работало правильно.

Надеюсь, если я правильно читаю ваши технические характеристики, мне нужно указать вам следующее направление (MF190J):

3G-модем (ZTE MF190J) по-прежнему требует ручной настройки.

Вы пробовали это:

 rfkill list up

а затем сделайте этот скрипт и запустите его:

 #/bin/sh

     Case [!$] in
        /bin/sh
        networkname="true"
        networkname="the ip adr type in here"
        nmcli nm networkname --force-yes
        resolve.conf the ip adr type in here
     endl

и это может нормально работать таким образом.

Другие вопросы по тегам