Advertisement
Guest User

Untitled

a guest
Jan 28th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.91 KB | None | 0 0
  1. В связи с распространением 3g/4g сетей и оборудования, а так же необходимостью «допиливания» модема, для работы в linux, без использования программ поставляемых вместе с ним, не буду говорить о них и почему они не используются, вместо этого опишу собственный опыт настройки 4g модема huawei e3272 (или megafon m100-4) для арча.
  2.  
  3. Что же мы должны получить в итоге — модем, который будет работать в арче(я думаю и в любом другом дистрибутиве) под управлением Network Manager'а(мой DE - KDE).
  4.  
  5. Начнем.
  6. ПО:
  7. minicom, usb_modeswitch, NetworkManager(NM), ModemManager
  8.  
  9. Сначала необходимо перевести модем в режим - модема/сетевой карты, это делает usb_modeswitch. Делает он это единоразово пока модем в гнезде, если вы достанете модем и вставите обратно — режим будет стандартным (cd-rom, sd card, ndis).
  10.  
  11. Для перевода необходимо сделать следующее:
  12.  
  13. Узнать код производителя (vendor) и код продукта(product). В терминале вводим lsusb и получаем вывод подключённых usb устройств, если модем был подключен, то он будет в списке устройств. Мой вывод выглядит так:
  14. Bus 001 Device 007: ID 12d1:14fe Huawei Technologies Co.
  15. Число 0x12d1 — код производителя(Vendor), 0x14fe — код устройства(product).
  16. Числа находятся в шестнадцатеричной системе счисления(HEX) и 0x перед числом обязательно.
  17.  
  18. В дальнейшем многие команды потребуют root привилегии, помните что su имеет суперсилу.
  19. Все изменения вы делаете на свой страх и риск.
  20.  
  21. Имея эти коды мы можем пойти двумя путями:
  22. 1. захардкодить их(коды) в usb_modeswitch.conf, и при каждом запуске usb_modeswitch они будут браться из конфигурационного файла.
  23. nano /etc/usb_modeswitch.conf
  24. в файл добавим:
  25. DefaultVendor = 0x12d1
  26. DefaultProduct = 0x14fe
  27. Сохраняем и запускаем в терминале usb_modeswitch -c /etc/usb_modeswitch.conf
  28. После в /dev должны появиться устройства ttyUSB, у меня появились ttyUSB0 - ttyUSB2
  29.  
  30. 2. в терминале ввести usb_modeswitch -V 0x12d1 -P 0x14fe. Так же в /dev должны появиться устройства ttyUSB
  31.  
  32. после перевода в режим модема можно пользоваться wvdial или pon, или любым другим методом ppp соединения.
  33.  
  34. Но цели мы не добились, каждый раз пользоваться usb_modeswitch и поднимать соединение, например, из консоли не самый удобный способ.
  35. Итак, избавимся от постоянной смены режимов и сделаем свисток постоянным модемом/сетевой картой.
  36.  
  37. В консоли minicom -D /dev/ttyUSB0
  38. команды я брал отсюда — http://www.hub.ru/wiki/Huawei_E3276.
  39. команда AT^SETPORT? - выведет текущий режим работы
  40. Команда AT^SETPORT=? - выведет возможные режимы работы.
  41. Для перевода моего модема в режим сетевой карты я использовал следующую команду: AT^SETPORT= «FF;10,12,13,16».
  42. Вывод AT^SETPORT=?
  43. ^SETPORT:1: 3G MODEM
  44. ^SETPORT:2: 3G PCUI
  45. ^SETPORT:3: 3G DIAG
  46. ^SETPORT:5: 3G GPS
  47. ^SETPORT:A: BLUE TOOTH
  48. ^SETPORT:16: NCM
  49. ^SETPORT:A1: CDROM
  50. ^SETPORT:A2: SD
  51. ^SETPORT:10: 4G MODEM
  52. ^SETPORT:12: 4G PCUI
  53. ^SETPORT:13: 4G DIAG
  54. ^SETPORT:14: 4G GPS
  55. Первые пару запусков модем команды не воспринимал, каждый раз выдавая ошибку, возможно был занят, но затем все пошло согласно плану.
  56.  
  57. Если все сделано правильно теперь модем будет всегда в режиме сетевой карты.
  58. И можно пользоваться ppp dialer'ами.
  59.  
  60. Но моей целью было запуск через NM, но он не определял мой модем.
  61. Все дело в том что даже скачав пакет ModemManager, он не включен(сервис systemd) по умолчанию, у меня так. И вообще он — демон. :)
  62. systemctl status ModemManager — проверяем статус сервиса.
  63. Если выключен -
  64. systemctl start ModemManager — запускаем сервис
  65. systemctl enable ModemManager — автозагрузка сервиса.
  66.  
  67. После этих манипуляций в апплете NM появится пункт мобильная сеть, но к сожалению не все так гладко в нем. При попытке добавления нового соединения mobile broadband, происходит, внезапно… Ничего, поговаривают что это проблема текущего NM, а соединения созданные при помощи старых версий работают без нареканий. Тут я вижу два выхода: первый — поставить старый NM, ходят слухи что таковой можно найти в aur'е, и второй — создать конфигурацию подключения вручную.
  68.  
  69. Я выбрал 2 способ, интересно знать что да как там у network manager'a. Порыскав по интернетам нашёл где NM хранит свои конфигурации и как они выглядят изнутри.
  70.  
  71. Место хранения подключений - /etc/NetworkManager/system-connections/
  72. Там хранятся, в моем случае, подключения, которые уже были созданы NM. Поэтому недолго размышляя я поместил в ту же папку файл с названием моего оператора и со следующим содержанием:
  73.  
  74. [connection]
  75. id=megafon
  76. uuid=04331ad3-a2aa-4196-875d-6a8fcea3f063
  77. type=gsm
  78. autoconnect = true
  79.  
  80. [gsm]
  81. number=*99#
  82. password-flags=4
  83. apn=internet
  84. network-type=4
  85. pin-flags=4
  86.  
  87. [ipv4]
  88. method=auto
  89.  
  90. uuid вы можете сгенерировать(uuidgen) любой, который ещё не используется в вашей системе. Остальное, думаю, понятно, и можно будет изменить с помошью gui но об этом дальше.
  91.  
  92. После создания и сохранения, необходимо выставить права иначе файл не подхватиться NM.
  93. chmod 0600 <file> - меняем права, перезагружаем сервис NM
  94. systemctl restart NetworkManager
  95.  
  96. Если все было проделано правильно, то после наших действий в апплете должно появится новое подключение, которое, внезапно, можно редактировать через GUI.
  97.  
  98. Автоконнект мобильного соединения баг NM, некоторые люди пишут скрыпты что бы оно таки поднималось, ну а мне оно показалось лишним.
  99. Но все же вот один из способов решения:
  100. создается скрипт(демон) который проверяет активно ли подключение и пытается поднять соединение все время. Если есть желание вот несколько команд которые помогут:
  101. nmcli c up id <id> - поднимает соединение с указанным id
  102. nmcli c down id <id> - отключит соединение <id>
  103. Я не мастер баш скриптов и все же
  104. двойной греп:
  105. nmcli d| grep gsm| grep отключено — позволяет определить есть ли отключённое gsm соединение.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement