3G модем в Arch Linux
Началась вся эта история с того, что нормальный проводной интернет, который я настраивал в одной из предыдущих статей, приказал долго жить. Провайдер неделю кормил завтраками, а потом выяснилось, что «вот-вот, но не знаем, когда сделаем».
Так как продолжаться это может бесконечно, а без интернета красноглазики долго жить не могут, пришлось разориться на вот такую штуковину — 3G модем Huawei E173. Это, конечно, не предел мечтаний, да и «хитрости» операторов сотовой связи тоже всем известны, но деваться некуда.
Как заставить 3G модем работать под Linux?
Довольно просто, как оказалось. Способов насчиталось три:
- Установить «родную» программу для управления — как в Убогой.
- Использовать автоматическую звонилку — NetworkManager, например.
- Создать Ъ-подключение через ppp.
Пройдёмся по способам по порядку.
Установка «родной» программы для управления
Задача сводится к тому, чтобы скопировать эту самую программу с модема и установить. Сложность может возникнуть там, где модем не сможет примонтироваться автоматически.
Что делать? Втыкать модем, открывать терминал и красноглазить.
Красноглазим следующим образом:
# Показываем пингвину, кто в доме хозяин. sudo -i # Смотрим, увидел ли наш пингвин их модем. # Если в списке есть Huawei - всё в порядке, мы ещё ничего не сломали. lsusb # Модем состоит из 2х частей - флешки и сидирома. # Нам нужен сидиром. Имя девайса для сидирома обычно начинается с sr. # В моём случае это usb-HUAWEI_Mass_Storage-0:0 -> ../../sr1. ls -l /dev/disk/by-id/ # Монтируем сидиром. mount /dev/sr1 /mnt # Открываем его, осматриваемся, идём в папку с "дровами". cd /mnt ls cd Linux ls # Запускаем установку. Она наверняка будет ругаться на то, # что не сможет поставить NDIS, но нам эта приблуда без надобности. ./install # Прибираемся. cd / umount /dev/sr1 # Удаляем последнюю строку в настройках sudo, если она совпадает с # с ALL ALL=(ALL) ALL. Китайцы (или индусы), видимо, не понимают, # что не совсем адекватная настройка в плане безопасности, особенно, если # указывать её автоматически и никак об этом не предупреждать. visudo
Запускать эту радость лучше не через меню (вероятно, прав не хватит), а командой sudo /usr/local/MegaFon_Modem/MobilePartner (путь может отличаться, проверьте). Можно также сделать .desktop файл с этой командой.
Чтобы не вводить пароль каждый раз, достаточно настроить нужным образом sudo. Запустите редактирование настроек ещё раз и в конце файла пропишите username ALL=(ALL) NOPASSWD: /usr/local/MegaFon_Modem/MobilePartner.
3G модем через NetworkManager
Тут всё неимоверно просто. NetworkManager сам определит модем и покажет его в своём меню. С мастером настройки разберётся любая блондинка, тем более, что там всего-то и нужно, что выбрать страну, провайдера и APN (точку доступа).
APN лучше уточнить в техподдержке или посмотреть в «родной» программе управления: Справка — Диагностика, кажется. Разрешить вопрос с APN нужно обязательно, потому что при неправильной настройке можно потерять деньги.
Ещё для подключения можно использовать звонилку wvdial. За настройками обращайтесь к Гуглу. Хотя, может быть достаточно будет вот этой статьи.
Ъ-подключение через ppp
Суть метода подробнейшим образом изложена в вике.
Чтобы не забыть и не перечитывать вику каждый раз, коротко и с небольшой адаптацией под себя перескажу содержание. Настройки могут не совпадать, особенно если у вас другой модем. Помните, что вы действуете на свой страх и риск, претензии по поводу любого возможного ущерба не принимаются.
Итак, создаём файл /etc/ppp/options-mobile и пишем в него следующее:
/dev/ttyUSB0 921600 defaultroute usepeerdns crtscts lock noauth local persist modem nopcomp novjccomp nobsdcomp nodeflate noaccomp ipcp-accept-local ipcp-accept-remote noipdefault
/dev/ttyUSB0 — это имя девайса, к которому будет обращаться демон ppp. Имя может отличаться, подробности в Гугле и в вике, ссылка выше.
Создаём файл /etc/ppp/peers/megafon.
Пишем туда следующее:
file /etc/ppp/options-mobile connect "/usr/sbin/chat -v -t15 -f /etc/ppp/chatscripts/megafon.chat"
Создаём папку /etc/ppp/chatscripts, а в ней файл megafon.chat
Пишем в него:
ABORT 'BUSY' ABORT 'NO CARRIER' ABORT 'VOICE' ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT 'DELAYED' REPORT CONNECT TIMEOUT 6 '' 'ATQ0' 'OK-AT-OK' 'ATZ' TIMEOUT 3 'OK-AT-OK' 'ATI' 'OK' 'ATZ' 'OK' 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0' 'OK' 'AT\^SYSCFG=2,2,3fffffff,0,1' 'OK-AT-OK' 'AT+CGDCONT=1,"IP","internet"' 'OK' 'ATDT*99***1#' TIMEOUT 30 CONNECT
В данном случае проверка PIN кода не производится, модем переведён в режим предпочтения 3G, а точка доступа (APN) — internet. Не забудьте уточнить этот параметр у оператора или в стандартной программе управления.
Подключается эта радость просто: sudo pon megafon. Выключается аналогично, только вместо pon нужно писать poff. Можно сделать .sh скрипт или .desktop файл с этой командой и настроить sudo, чтобы не вводить пароль каждый раз.
Запускать соединение при загрузке системы тоже можно, но там придётся ещё немного повозиться с настройками, а мне, честно говоря, не очень хочется с этим возиться.
На этом всё. Подключайтесь быстрее и пишите комментарии
необязательное дополнение по поводу первого варианта подключения.
в пингвине устройства usb отображаются по адресу
/dev/bus/usb/цифирь/еще_что_то_там
Основная беда в том что права на этих файлах папках стоят
"drwxr-xr-x 2 root root ". А работа программы начинается с того, что она отсылает на модем какую то команду средствами libusb. И тут то требуются права хотя бы чтения /dev/bus/usb/*/*
у себя я сделал просто: внес пользователя в группу root.