SAT-PLUS.COM.UA - Форум о спутниковом телевидении: Подключение мобильных телефонов и USB 3G-модемов на имиджах с новым ядром 1.6 на DreamBox 800 - SAT-PLUS.COM.UA - Форум о спутниковом телевидении

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Подключение мобильных телефонов и USB 3G-модемов на имиджах с новым ядром 1.6 на DreamBox 800

#1 Пользователь офлайн   sat-plus 

  • Главный модератор
  • Группа: Администраторы
  • Сообщений: 1 928
  • Регистрация: 27 Февраль 11

Отправлено 28 Февраль 2011 - 10:17

Подключение мобильных телефонов и USB 3G-модемов на имиджах с новым ядром 1.6 на DreamBox 800

Как я подключал 3G-модем Huawei E156G к Dreambox 800 (ядро 1.6). Из личного опыта.

Увидел Александр Македонский все девайсы работающие с дримбоксом и заплакал - ибо не осталось железки, которую еще можно было подключить к коробочке мечты.


По свежим следам решил отписать нечто вроде миниФАКа. На полное освещение вопроса не претендую. Данное описание справедливо только для имиджей на новом Линукс-ядре 1.6. Тестировалось на имидже Gemini 5.0.
Предварительно полезно ознакомится с ФАКом и топиком по подключению 3G/GPRS.
Для начала устанавливаем необходимые пакеты и модули (в том числе для поддержки мобильных телефонов). Дрим должен иметь доступ в интернет! Хотя при offline можно ставить нужные пакеты вручную, предварительно скачав их.

1. Загружаем и устанавливаем модули, отвечающие за работу ppp (ppp_generic, ppp_async,
slhc, crc-ccitt).
В телнете (например, в DCC) набираем команды:
ipkg update
ipkg install kernel-module-ppp-generic
ipkg install kernel-module-ppp-async
ipkg install kernel-module-crc-ccitt
ipkg install kernel-module-slhc

2. Кидаем драйвер kernel-module-cdc-acm_2.6.18-r2_dm800.ipk (есть в приложенном архиве) в папку дрима /temp. Далее устанавливаем пакет любым способом (можно через Файл Менеджер, а можно командой телнета ipkg install /tmp/kernel-module-cdc-acm_2.6.18-r2_dm800.ipk)

3. Открываем на редактирование файл
/etc/init.d/bootup , в его хвост вставляем :
modprobe ppp_generic
modprobe ppp_async
modprobe cdc-acm

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

4. Сохраняем измененный файл и перезагружаем ресивер командой reboot через телнет либо используя пульт ДУ. (без предварительной перезагрузки тюнера у меня не устанавливался пакет ppp – может это только у меня такой глюк).

5. Ставим PPP.
Берем из скачанного ранее архива файл ppp_2.4.3-r6_mipsel.ipk и устанавливаем любым способом.
Можно кинуть файл в /tmp и установить через Файл Менеджер или в телнете дать команду
ipkg install /tmp/ppp_2.4.3-r6_mipsel.ipk
Все, PPP установили.

6. Копируем целиком папку ppp (есть в архиве) в /etc

*** Лирическое отступление. ***
Если цель подключить только мобильный телефон, то установку можно считать законченной.
Теперь нам надо подправить некоторые файлы под своего оператора.
Или использовать плагин xModem. Про него будет написано ниже.
Файл /etc/ppp/pap-secrets
Сюда вносим логин и пароль для входа в инет, если он необходим.
Например, сюда я прописал логин и пароль mts:


Цитата:

# Secrets for authentication using PAP
# client server secret IP addresses
user * password
mts * mts
####### redhat-config-network will overwrite this part!!! (begin) ##########
####### redhat-config-network will overwrite this part!!! (end) ############


/etc/ppp/chat/gprs-siem-connect-chat
Сюда прописываем точку доступа оператора и номер для дозвона. Спрашивайте оператора сотовой связи.
Моя точка доступа mts
Номер дозвона *99***1#

Цитата:…

TIMEOUT 12
OK ATZ
OK ATH
OK ATE1
OK AT+CGDCONT=1,"IP","mts"
OK ATD*99***1#
CONNECT


Осталось узнать, куда цепляется телефон. Подключаем его к дриму, тюнер должен выдать сообщение о подключении нового USB-устройства. Заходим в телнет и даем команду
dmesg
Вот примерно, что можно увидеть, если используется драйвер pl2303:


Код:
usb 2-2: new full speed USB device using brcm-ohci-0 and address 6
usb 2-2: configuration #1 chosen from 1 choice
pl2303 2-2:1.0: pl2303 converter detected
usb 2-2: pl2303 converter now attached to ttyUSB0


т.е. видим, что телефон подключен к ttyUSB0

или если задействован драйвер cdc_acm:
Код:
usb 2-1: new full speed USB device using brcm-ohci-0 and address 4
usb 2-1: configuration #1 chosen from 1 choice
cdc_acm 2-1:1.0: ttyACM0: USB ACM device


т.е. телефон подключен к ttyACM0

Теперь открываем файл /etc/ppp/peers/ gprs-siem
И открываем нужное подключение, убирая #
Вот пример, где включено /dev/ttyUSB0 и выключено #/dev/ttyACM0

Код:
# Here is for USB serial cable
/dev/ttyUSB0

# Here is for USB acm cable
#/dev/ttyACM0



Наконец надо установить скрипты запуска и разрыва связи (есть в архиве). Вместо данных скриптов можно использовать плагин xModem. Про него будет написано ниже.
Берем из архива файлы:
gprs.sh
gprs_start_userscript.sh
gprs_stop_userscript.sh

копируем их в папку дримбокса usr/script и всем назначаем права (атрибуты) – 755.
Запуск скриптов из Файл Менеджера (синяя - красная). Заходим в папку usr/script и зеленой кнопкой активируем нужный скрипт.
*** Конец лирического отступления ***

Теперь продолжим подключать наш 3G-модем.
Предварительно можно почитать http://dream.altmast...read.php?t=4312 и файл NETWORK_ru.txt в архиве.

7. Ставим (файлы ищем в архиве):
libusb-0.1-4_0.1.12-r3_mipsel
libusb - библиотека для обеспечения доступа на уровне обычного пользователя к устройствам USB. Библиотека позволяет создавать приложения с поддержкой USB без необходимости взаимодействовать непосредственно с ядром Linux. Затем ставим:
usbutils_0.73-r0_mipsel
пакет usbutils содержит утилиту lsusb - показывает список usb устройств.
Новый кернел с включенной поддержкой usb_serial_generic:
kernel-module-usbserial_2.6.18-r5.0_dm800

8. Пару слов о модемах. Цитата из файл NETWORK_ru.txt.
С очень многими скоростными модемами существует одна достаточно большая проблема, за которую нужно благодарить Windows. Речь идет о функции известной как Zero-CD. Суть её заключается в том, что модем, при подключении к компьютеру, распознается не как модем, а как виртуальный CD-ROM или флеш-память, на которой записаны драйверы этого модема (для Windows :-)). В моем модеме есть еще встроенный картридер для microSD-карт. Поэтому он распознается еще и как картридео. После начальной установки, драйвер Windows начинает автоматически переводить модем именно в режим "передача данных", и делает он это при каждом подключении модема "в тайне от пользователя". Все это работает вполне сносно под Windows, но совершенно не работает под Linux, так как Linux видит устройство как CD-ROM или флеш-память, и не может переключить его в режим модема автоматически (потому что большинство производителей таких модемов не позаботилось о специальном софте для выполнения этой функции в Linux).
Подключаем модем Huawei E156G в свободный USB-слот. Я подключал через удлинитель-переходник.

Изображение

В телнете даем команду
dmesg
Код:
usb 2-1: new full speed USB device using brcm-ohci-0 and address 4
usb 2-1: configuration #1 chosen from 1 choice
scsi1 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 4
usb-storage: waiting for device to settle before scanning
isa bounce pool size: 16 pages
Vendor: HUAWEI Model: Mass Storage Rev: 2.31
Type: CD-ROM ANSI SCSI revision: 02
sr0: scsi-1 drive
Uniform CD-ROM driver Revision: 3.20
sr 1:0:0:0: Attached scsi CD-ROM sr0
sr 1:0:0:0: Attached scsi generic sg1 type 5
usb-storage: device scan complete


Видим, что модем определяется как CD-ROM и флеш-память. Это нам совсем не нужно.
Что делать если вместо модема ресивер видит CD-ROM? У некоторых модемов можно сделать это переключение перманентным один раз, используя специальный "родной" софт или AT-команды. У других моделей это невозможно и переключение требуется каждый раз при инициализации. Добрые люди из Draisberghof разработали программу usb_modeswitch для Linux ( http://www.draisberg...usb_modeswitch/ ), которая решает эту проблему.

Смотрим ID нашего устройства, используя команду телнета lsusb
Код:
root@dm800:~# lsusb
Bus 002 Device 007: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000


Модем определился, как E220 HSDPA Modem, что не совпадает с моей моделью E156G…
Попробуем перевести наш модем в режим модема с помощью программы usb_modeswitch
Берем из архива файлы usb_modeswitch_1.1.2 и usb_modeswitch.setup и раскидываем по папкам (/usr/bin/usb_modeswitch и /etc/usb_modeswitch.setup)
Ищем секцию нашего устройства в usb_modeswitch.setup, раскомментируем и удаляем все лишнее (можно не удалять). Модели E156G я не нашел, поэтому использовал секцию для E220.
Запускаем usb_modeswitch (без параметров, просто в ком.строке usb_modeswitch и энтер)
Код:

Sending Huawei control message ...
OK, Huawei control message sent
Warning: ignoring MessageContent. Can't combine with special mode
-> Run lsusb to note any changes. Bye.


Для проверки опять даем команду dmesg и видим, что модем не появился… Значит не судьба.

Для модемов Huawei доступен метод управления режимами модема с помощью АТ-команд.
Втыкаем модем в компьютер, устанавливаем драйвера.
Вводим код разблокировки через команды Hyper Terminal
- Запускаем терминал (Вводится через программу HyperTerminal (Пуск - программы - стандартные - связь - Hyper Terminal)
- Появляется окно "Описание подключения". В поле "Название" пишем что-нибудь в качестве названия соединения и нажимаем ОК. Если окошко не появилось автоматически, выбираем из меню Файл - Новое подключение.
- В окне "Подключение" выбираем Подключаться через: Huawei ...и жмем ОК
- В следующем окне "Подключение" нажимаем кнопку Изменить... и попадаем в окно "Свойства (ваше_название_подключения)
- На вкладке "Параметры" нажимаем Параметры ASCII -> Отображать введенные символы на экране, жмем ОК два раза.
- Жмем Отмена ( номер не набираем )
- Если сейчас ввести AT и нажать ENTER, от модема должен написать в ответ "ОК"
- Вводим команду, желательно без опечаток.
AT^U2DIAG=0 (устройство в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
AT^U2DIAG=255 (девайс в режиме модем + CD-ROM + Card Reader)
AT^U2DIAG=256 (девайс в режиме модем + Card Reader)
Команда чтобы разблокировать модем. AT^CARDLOCK="<Ваш NCK код>". Как получить код разблокировки написано ниже.
Код вводится один раз потом модем перетыкается!

Итак, даем команду AT^U2DIAG=0 и перетыкаем модем. Убеждаемся, что в Виндовс не появляется ZERO-CD и картридер. У меня операция обрезания прошла успешно.
Вставляем модем в дримбокс, даем в телнете команду
lsusb

Код:
root@dm800:~# lsusb
Bus 001 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 002 Device 002: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem

О чудо! Модем поменял свой пол/имя (видать с обрезанием переборщил ) и идентификатор PID. Вместо 1003 стал 1001.
Загружаем usbserial с параметрами vendor и product для нашего модема
modprobe usbserial vendor=0x12d1 product=0x1001
Теперь снова даем команду:
dmesg
Код:
usb 2-1: new full speed USB device using brcm-ohci-0 and address 3
usb 2-1: configuration #1 chosen from 1 choice
usbserial_generic 2-1:1.0: generic converter detected
usb 2-1: generic converter now attached to ttyUSB0
usbserial_generic 2-1:1.1: generic converter detected
usb 2-1: generic converter now attached to ttyUSB1
usbserial_generic 2-1:1.2: generic converter detected
usb 2-1: generic converter now attached to ttyUSB2


Видим, что модем подключился к ttyUSB*
Теперь можно править файлы в папке ppp (смотрим выше) и запускать соединение скриптом, который есть в архиве.
Для того, чтобы не загружать драйвер каждый раз, прописываем его в /etc/init.d/bootup
Добавляем строчку:
modprobe usbserial vendor=0x12d1 product=0x1001
Но есть и другие способы. Это новая разработка – универсальный плагин vlamo.
Почитать обсуждение и скачать новую версию можно ТУТ
Плагин - это графический интерфейс, который помогает более комфортно установить соединение с Интернетом через разные модемы и не содержит в себе каких-нибудь супердрайверов и прочего.
Не будем возиться с ручными настройками и скриптами запуска, ставим плагин и запускаем его.

Изображение

В первой строчке выбираем стандарт подключения – перебор стрелками влево/вправо.
Далее вводим параметры подключения: логин, пароль, номер набора, точку доступа. Все эти параметры можно узнать у ОпСоСа.
В строчке Port прописываем ttyUSB0 (или другой, в зависимости от подключаемого устройства)
Спускаемся курсором ниже и попадаем на следующую страницу

Изображение

Ставим скорость порта
Для изменения дополнительных настроек ставим «ДА» в строчке Extended Settings.
Спускаемся курсором на следующую страницу

Изображение

и вписываем значения Vendor ID и Product ID для модема, полученные по команде lsusb.
Все готово. Нажимаем зеленую кнопку «Подключение»

Изображение

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

Изображение

Видим, что подключение активно.
Жмем кнопку Disconnect (красная кнопка). Через пару секунд соединение будет разорвано:

Изображение

Дополнение.
Обычно модемы продают залоченными на конкретного оператора. В моем случае на оператора Velcom. Т.к. этим оператором я пользоваться не захотел, то решил использовать сим-карту МТС. Однако, при подключении модема к компьютеру с этой картой, открылось скромное окошко с просьбой ввести код и предупреждением, что осталось 7 дней… тьфу 10 попыток.
Это, конечно, свинство. Короткий поход в гугль и я стал обладателем небольшой программки для разлочки большего числа модемов HUAWEI. Ищем в архиве файл HUAWEI_Calculator.exe
Запускаем и вводим вручную 15-значный IMEI номер модема. Жмем кнопку Calculate и получаем восьмизначный Unlock Code, который вводим в вышеназванное окошко.
Изображение
Перетыкаем модем в слоте и убеждаемся, что он работает с другой картой.
IMEI номер модема можно прочитать на самом модеме. Берем модем в руки и смотрим:

Изображение
Так… Не видно… Переворачиваем…
Изображение
Вот он где… :)

Дополнительные замечания по соединениям c использованием pppd (взято из файла NETWORK_ru.txt)

В этом разделе несколько фактов, о которых стоит знать, если метод вашего подключения к Интернет включает в себя использование pppd.

Стандартный маршрут (он же Default Route, он же IP Gateway)
Предположим, что вы подключены к ресиверу через LAN интерфейс eth0, у которого, само-собой разумеется уже есть свои IP настройки (иначе вы просто не смогли бы подключиться к ресиверу). Неважно, каким образом эти настройки установлены, динамически или статически, но одной из обязательных настроек интерфейса и сети является cтандартный маршрут, который может указывать, либо на ваш роутер, если таковой имеется в вашей сети, либо просто в никуда (если, скажем, ресивер напрямую соединен с компьютером и больше ни с чем). Когда происходит соединение pppd, то в вашем ресивере появляется еще один сетевой интерфейс ppp0, со своей конфигурацией, которую обычно присылает провайдер автоматически при подключении. Если у вас в момент создания соединения уже существует стандартный маршрут, то новый стандартный маршрут присылаемый провайдером по PPP будет просто-напросто отброшен! В результате чего, возникнет такая ситуация, что коннект в Интернет есть, а доступа в Интернет нет. Это происходит потому, что все запросы во внешний мир проходят через этот самый стандартный маршрут, а он обычно показывает в сторону вашей домашней сети, а не в сторону нового соединения PPP. Для предотвращения этой проблемы уже есть готовый скрипт, который всегда запускается сервисом pppd перед самым моментом создания PPP соединения. Этот скрипт, в числе всего прочего, удаляет стандартный маршрут (и запоминает его значение во временном файле). Таким образом, новый стандартный маршрут, получаемый от провайдера становится активным, и доступ в Интернет начинает работать. После разрыва соединения PPP, автоматически запускается скрипт, который восстанавливает ранее сохраненный стандартный маршрут. Эти скрипты могут использоваться для выполнения других пользовательских функций.

Настройки DNS
Ситуация с DNS практически идентична той, что описана выше. Многие провайдеры присылают свои настройки DNS, и если pppd их получает, то создается файл /etc/ppp/resolv.conf с новыми настройками. Этот файл не используется системой, если не поместить его в нужное место (в директорию /etc). Как и в случае со стандартным маршрутом, в PGI уже есть скрипты /etc/ppp/ip-pre-up и /etc/ppp/ip-down, которые автоматически выполнят всю необходимую работу по настройкам DNS (если провайдер их присылает при подключении). Если провайдер НЕ присылает эти настройки, то тогда может потребоваться ручное редактирование файла /etc/resolv.conf или вышеупомянутых скриптов для автоматических изменений.
0


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

Яндекс.Метрика
Яндекс цитирования Спутниковое и эфирное ТВ, Интернет, комплексный электромонтаж, в Киеве и области Цифровое телевидение в России