>> Обмен опытом >> USB модем Huawei E392 под ClearOS 6.3 для работы с Yota
Минимальная стоимость услуг при выезде на дом / в офис начинается от 1500 рублей.

Дополнение от 06.10.2013:
ВРЕМЕННО выезжаю только для покупки Б/У компьютеров и ноутбуков.
Настройкой интернета и компьютеров ПОКА не занимаюсь (подробности).


Настройка USB модема Huawei E392 для работы с Yota.ru под Linux ClearOS 6.3

(информация актуальна по состоянию на 11.03.2013)

Возникла задача запустить роутер на основе такого дистрибутива Linux, как ClearOS (бывший ClarkConnect; http://www.clearfoundation.com/Software/overview.html). Но не просто роутер - нужно было раздать интернет от USB модема Huawei E392, подключенного к YOTA.RU (у меня был разлоченный модем от Мегафона).
Всякие там покупные маршрутизаторы с USB-портами не использовались, т.к. хотелось, чтобы на роутере был запущен ещё и кэширующий прокси-сервер Squid.
Конфигурация компьютера, выделенного под роутер, была следующей: Intel Pentium-4 2600MHz HT s478 /Intel Desktop Board D865GBF /RAM 3072Mb DDR /HDD 80Gb.

Все, описанное ниже, справедливо применительно к дистрибутиву ClearOS 6.3 32 bit. Вполне вероятно, что гуру-линуксоиды найдут в моей методике какие-то огрехи - что ж, я все-таки не гуру Linux... ;-)


Итак, поехали...

Сначала, естественно, ставим ClearOS 6.3.

Не буду подробно останавливаться на вопросе установки CleasOS, подразумевая, что с этапом установки читатель этой статьи так или иначе справился.

Единственная тонкость: при установке выбирал русский язык, но английскую раскладку клавиатуры (вполне вероятно, что это необязательно).


Далее так или иначе придется настроить доступ к интернету с компьютера со свежеустановленной ОС, чтобы доустановить некоторые необходимые программы и библиотеки. Там, где я настраивал роутер, никакого другого интернета, кроме Йоты, нет. Соответственно, я особо не заморачивался и подключил модем E392 к компьютеру с Windows XP, расшарив сетевое соединение (компьютеру с XP при этом автоматически присваивается IP-адрес 192.168.0.1). Подразумевается, что драйвера под модем и само соединение были заранее установлены и настроены. На компьютере с ClearOS в настройках сетевого соединения прописал IP-адрес 192.168.0.77 (можно любой из диапазона 192.168.0.xxx), шлюзом указал 192.168.0.1, а в качестве DNS указал 8.8.8.8 (DNS-сервер Google). По-умолчанию установлено DHCP соединение, но на всякий случай я не стал его использовать.

После (временной) настройки сетевого соединения переходим в командную строку и авторизуемся под root’ом. Я работал с консоли №2 (Alt-F2).


Для удобства работы я установил Midnight Commander:
yum install mc

Теперь по команде mc открывается двухпанельный файловый менеджер.


Устанавливаем GCC (нужен для установки драйверов). Иначе будет выдаваться надпись (красными буквами):
Install NDIS driver failed.
The compiling environment is not all ready.
Please check gcc, make and kernel buid(/lib/modules/2.6.32-279.2.1.v6.i686/build) to be all installed?

yum install gcc


Устанавливаем программу wget (в ClearOS её почему-то нет):
yum install wget


В данной статье рассматривается установка модема для работы в качестве именно модема, а не сетевой карты (режим NDIS). В режиме NDIS у меня его запустить не получилось, но для того, чтобы драйвера установились полностью (в т.ч. NDIS), нужно произвести описаныне ниже действия.

Скачиваем пакеты kernel-devel-2.6.32-279.2.1.v6.i686.rpm и kernel-headers-2.6.32-279.2.1.v6.i686.rpm в директорию /root (при установке gcc почему-то тянется более новая версия пакета, чем версия ядра (2.6.32-279.2.1), а именно 2.6.32-358, что в дальнейшем приводит к глюкам при установке (компиляции) драйвера модема):
wget http://mirrorlist.clearfoundation.com/clearos/community/6/dev/i386/RPMS/kernel-devel-2.6.32-279.2.1.v6.i686.rpm
wget http://mirrorlist.clearfoundation.com/clearos/community/6/dev/i386/RPMS/kernel-headers-2.6.32-279.2.1.v6.i686.rpm

Устанавливаем:
rpm --install kernel-devel-2.6.32-279.2.1.v6.i686.rpm

Заголовки устанавливаем с опцией –force, иначе ругается на конфликт с более новыми headers (которые 2.6.32-358):
rpm --install --force kernel-headers-2.6.32-279.2.1.v6.i686.rpm


Монтируем флешку с заранее записанными на нее драйверами модема (или скачиваем эти драйвера из интернета, но здесь рассматривается способ установки драйверов с флешки). Кстати, всё то, что было скачано при помощи wget, можно скачать на стороннем компьютере и записать все на ту же флешку, чтобы руками не набирать в терминале всё это множество букв, а установить при помощи Midnight Commander.

Итак:
mkdir /flash
mount /dev/sdb1 /flash

Здесь вместо sdb1 возможно придется подставить иное устройство – у меня флешка определилась как sdb1.


Далее запускаем Midnight Commander командой mc и копируем драйвера куда-нибудь в директорию root’а.

После завершения копирования выходим из Midnight Commander (клавиша F10) и отмонтируем флешку:
umount /dev/sdb1
rm -rf /flash


Для работы модема E392 потребуется программа usb_modeswitch (сайт http://www.draisberghof.de/usb_modeswitch/).
На момент написания мануала последняя версия была 1.2.5, однако в виде RPM-пакета я с ходу (навскидку) нашел только версию 1.2.3

Скачиваем usb-modeswitch и usb-modeswitch-data в директорию /root:
wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/usb_modeswitch-1.2.3-1.el6.rf.i686.rpm
wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/usb_modeswitch-data-20120120-1.el6.rf.noarch.rpm

Для установки usb-modeswitch-data требуется пакет tcl – устанавливаем:
yum install tcl

Устанавливаем пакеты. Почему-то usb-modeswitch и usb-modeswitch-data зависят друг от друга. Не придумал ничего другого, как установить usb-modeswitch с опцией –nodeps:
rpm --install --nodeps usb_modeswitch-1.2.3-1.el6.rf.i686.rpm

Затем выполняем команду:
rpm --install usb_modeswitch-data-20120120-1.el6.rf.noarch.rpm


Устанавливаем программу wvdial:
yum install wvdial


Так как мне не удалось запустить модем Huawei E392 в режиме NDIS (это что-то типа имитации сетевой карты), то вообще отключим этот режим в модеме, чтобы не мешался. :-)

Скачиваем программу My Huawei Terminal (требует установленного .NET Framework 2.0 !!!) и распаковываем ее в какую-нибудь директорию.

На компьютере, к которому сейчас подключен модем (который раздает сейчас интернет) в программе Huawei Modem Software смотрим номер порта, на который подключен модем и запоминаем/записываем его.

Программа Huawei Modem Software посмотреть номер порта

Программа Huawei Modem Software узнать номер порта


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


Запускаем My Huawei Terminal, выбираем ранее подсмотренный COM-порт, нажимаем Connect.

My Huawei Terminal


Модем будет выдавать в терминал всякий "мусор" – это нормально, не обращайте внимания! :-)

My Huawei Terminal - "мусор"


Вводим команду
AT^SETPORT="A1,A2;1,2,3"
и нажимаем Enter.
Если все сделано правильно, то модем ответит Receive: OK

My Huawei Terminal - отключение NDIS и CDROM (режим "только модем")


Этой командой мы установили в модеме режим "только модем".


Если что - установить конфигурацию по умолчанию можно командой AT^SETPORT="A1,A2;1,2,3,7,A1,A2"
Команда AT^SETPORT? показывает текущую конфигурацию.

My Huawei Terminal - посмотреть текущую конфигурацию модема


В My Huawei Terminal нажимаем Disconn и отключаем модем.



На компьютере с ClearOS меняем роль интерфейса eth0 с External на LAN, устанавливаем ему IP-адрес 192.168.1.1 и маску подсети 255.255.255.0
В настройках DNS прописываем DNS-сервера Йоты:
94.25.128.74
94.25.208.74
Естественно, не могу гарантировать, что эти сервера когда-нибудь не изменятся. ;-)
(Ну да, можно, конечно, прописать DNS-сервера Google, но моя паранойя возражает против того, чтобы Гугл следил, куда и когда лазиют в интернете. ;-) )


Теперь заходим в консоль. Далее подключаем модем в какой-либо USB разъем. Исполняем команду
lsusb

На экран выведутся несколько строчек, в одной из которых должно отобразиться что-то вроде
Bus 001 Device 002: ID 12d1:1505 Huawey Technologies Co., Ltd E398 LTE/UMTS/GSM Modem/Networkcard

Если при подключении модема в консоль будут постоянно сыпаться сообщения вроде
new full speed USB device using uhci_hcd and address 7
device descriptor read/64, error -71
device not accepting address 8

или

Unable to enumerate USB device on port 5

значит, что-то не так.

Попробуйте для начала заменить USB-кабель, которым модем подключается к компьютеру. В моем случае какие-то такие вот ошибки были тогда, когда к модему был подключен USB-кабель длиной 1.8м, который, в свою очередь, был подключен к АКТИВНОМУ удлинителю USB. В подобном подключении под Windows модем работал и выдавал интернет (в том числе и на том же компьютере, который предназначался под роутер), под Linux ну ни в какую – сыпались вышеуказанные ошибки. Проблемы исчезли только тогда, когда подключил модем только кабелем длиной 1.8 м. Блин, несколько дней убил, чтобы это выяснить...


На всякий случай перезагружаемся:
reboot now


Снова запускаем Midnight Commander, заходим в директорию с драйверами, выходим (путь, куда мы вошли, должен «запомниться»). Запускаем установку:
Linux/install

На вопрос у пути инсталляции набираем /usr/local (без слэша на конце). Иначе почему-то ставится в директорию /usr/local/Megafon_Modem/Megafon_Modem, что на мой взгляд как-то неэстетично.

После того, как драйвера установятся, исполняем следующую команду:
ls /dev/usbTTY*

Должно отобразиться три устройства:
/dev/ttyUSB_utps_diag /dev/ttyUSB_utps_modem /dev/ttyUSB_utps_pcui


Теперь нужно создать файл /etc/wvdial.conf со следующим содержимым (ссылка на wvdial.conf):
[Dialer Defaults]
Init1 = AT+CGDCONT=1,"IP","yota.ru"
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB_utps_modem
Phone = *99#
Password = yota
Username = yota
Stupid Mode  = yes


Проверяем работу модема:
wvdial

Должно произойти соединение.

Проверив работу модема, отключаемся, нажав Ctrl-C.


В директории /etc/rc.d/init.d/ нужно создать файл connect.sh со следующим содержимым (ссылка на connect.sh):
#!/bin/bash

DIALTIMEOUT=10

# перед запуском wvdial удаляет default router,
# по окончании - восстанавливает
DR=`route -n | egrep '^0.0.0.0'| grep -v ppp | sed 's/^[^ ]*  *\([^ ]*\) .*/default gw \1/'` ;
 if [ -n "$DR" ] ; then
   trap "echo route add $DR ; route add $DR ; exit"  2 3 9 15
    route delete $DR
    echo route delete $DR
 fi

########## При обрыве соединения wvdial перезапускается ########
while  true ; do
    wvdial
    sleep $DIALTIMEOUT
done

Файл должен быть исполняемым (права 0755)! Для простоты для установки прав на файл использовал Midnight Commander.

В конце файла /etc/rc.d/rc.local дописываем строку:
/etc/rc.d/init.d/connect.sh &
(амперсанд в конце заставляет этот скрипт запускаться в фоне).

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

Запустим скрипт, чтобы убедиться в том, что он работает:
bash /etc/rc.d/init.d/connect.sh

При запущенном скрипте авторизуйтесь на другой консоли и запустите команду ifconfig. В списке сетевых интерфейсов должен появиться интерфейс ppp0.

Чтобы проверить, есть ли интернет, пинганите что-нибудь, например Яндекс:
ping ya.ru


К сожалению, ClearOS 6.3 не дает возможности управлять ppp интерфейсом через "web-морду" (по крайней мере, я не нашел прямого способа), а нам нужно сделать ppp0 внешним.
Я не придумал ничего лучшего, как руками поправить файл /etc/clearos/nerwork.conf – в EXTIF прописываем ppp0: должно быть EXTIF="ppp0"
Причем ppp0 все равно не видится через веб-интерфейс...

ВНИМАНИЕ! При любых манипуляциях с сетевыми настройками через веб-интерфейс файл перезаписывается и из EXTIF исчезает ppp0 – приходится заново прописывать руками.
Причем вся фигня в том, что этот файл может перезаписаться и при обновлении системы, в том числе и автоматическом.

Перезагружаемся:
reboot now

После перезагрузки убеждаемся, что все работает и есть интернет. :-)


Теперь обновляем систему (процесс относительно долгий):
yum update

Перезагружаемся:
reboot now


Если после обновления и последующей перезагрузки пропадет интернет, поправьте файл /etc/clearos/nerwork.conf


После обновления, скорее всего, потребуется переустановить драйвера модема (видимо, как-то связано с тем, что при обновлении меняется ядро).


Далее на компьютере из локальной сети настраиваем сетевой доступ. DHCP сервер пока не работает, поэтому прописываем настройки вручную:
IP адрес: 192.168.1.55
Mask: 255.255.255.0
Gate: 192.168.1.1

Заходим в панель управления роутером (https://192.168.1.1:81), регистрируем систему, скачиваем и устанавливаем все необходимые модули, возможные обновления и т.п.

При этом, если в роутер установлена только одна сетевая карта, то невозможно выбрать в настройках режим Gateway Mode – он типа Unavaliable (поднятый ppp0 интерфейс ClearOS не признает). Причем если установить вторую сетевую карту на время, а потом ее вытащить, то снова перестанет работать. Поэтому придется держать в роутере две сетевых карты, даже если реально будет использоваться только одна. Идиотизм, однако...


Если на этапе регистрации системы напишет что-то вроде
System registration/status is not available at this time. It appears your system is not connected to the internet – please check your network settings.
- поправьте файл /etc/clearos/nerwork.conf, после чего нажмите кнопку Previous.


Всё! Yota под ClearOS 6.3 настроена и сама система работает.


18.03.2013









Ремонт, модернизация, настройка компьютеров в г. Балашиха, Балашихинском районе и на востоке Москвы.

© 1999 - 2018 www.Balpom.ru