DM800机器评测16――GPRS (3G、CDMA)功能

DM800机器评测16――GPRS (3G、CDMA)功能

2010-6-26 山水@ 山水评测室

DM800机器评测16――GPRS(3G、CDMA)功能

 

     关于DM800使用3G、CDMA的GPRS无线连接网络的功能,俄罗斯TVRO烧友已测试成功,详情请参考:点击这里(俄文论坛)

 

附录:转载安装资料

 

Меня частенько спрашивают про подключение 3G-модемов к дриму 800.
Т.к. я не обладаю таким модемом (и покупать не собираюсь), то для затравки хочу выложить кусочек очень полезной доки от прошивки тюнера IP BOX, где подключение 3G реализовано еще в начале этого года...

==============================================
4. Использование высокоскоростных 3G/CDMA/HSDPA USB модемов
================================================== ============================

4.0 В общем и целом, работа со скоростными модемами мало чем отличается от того, что описано выше в разделе 2 для GPRS соединений. Но есть несколько критических моментов, которые нужно иметь в виду перед тем, как приступать к настройке, описанной в пунктах 2.3 - 2.6.

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

4.1.1 Проверить, такой ли у вас "капризный" модем можно следующим образом. Подключите модем к ресиверу и из Telnet дайте команду: dmesg

Для примера с модемом Toshiba G450, в последних строках результата команды будет нечто подобное:

usb 2-1: new full speed USB device using ST40-ohci and address 3
usb 2-1: configuration #1 chosen from 1 choice
scsi2 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at X
usb-storage: waiting for device to settle before scanning
Vendor: Toshiba Model: Rev: X.XX
Type: CD-ROM ANSI SCSI revision: XX
usb-storage: device scan complete

Это значит, что в модеме как раз используется Zero-CD, и ресивер распознал модем, как CD-ROM! То есть, для работы в режиме модема требуется переключение режима. Если бы вместо этого мы увидели только вот это (и больше ничего):

usb 2-1: new full speed USB device using ST40-ohci and address 4
usb 2-1: configuration #1 chosen from 1 choice

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

4.1.2 Что делать если вместо модема ресивер видит CD-ROM? У некоторых модемов можно сделать это переключение перманентным один раз, используя специальный "родной" софт или AT-команды. У других моделей это невозможно и переключение требуется каждый раз при инициализации. Добрые люди из Draisberghof разработали программу usb_modeswitch для Linux ( http://www.draisberghof.de/usb_modeswitch/ ), которая решает эту проблему. Программу, правда, пришлось адаптировать для IPBox команде PGI, но теперь она 100% работоспособна и на ресиверах IPBox и уже встроена в прошивку PGI. Для того чтобы вся эта система с переключением режима модема заработала, нужно правильно настроить параметр USB_MODEM в файле pgi.conf.

В качестве значения для USB_MODEM нужно поставить аппаратный идентификатор вашего модема. Этим настройка 3G/CDMA модемов отличается от случаев с CDC-ACM и PL2303, описанных выше, где драйвер устройства загружается автоматически без дополнительных ухищрений в pgi.conf.

ВНИМАНИЕ: Параметр USB_MODEM нужен не только для переключения режимов модема, но и для загрузки драйвера ДЛЯ УЖЕ ПЕРЕКЛЮЧЕННОГО устройства! Поэтому для скоростных модемов этот параметр ДОЛЖЕН БЫТЬ УСТАНОВЛЕН ВСЕГДА, чтобы устройство работало правильно.

Чтобы получить аппаратный идентификатор устройства, подключите модем к ресиверу и дайте Telnet команду: lsusb
Команда должна выдать список всех подключенных устройств USB в таком виде (ваши данные могут отличаться):

Bus 002 Device 003: ID 0930:0d46 Toshiba Corp.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Здесь для нас интересна пара значений 0930:0d46 которые являются аппаратным идентификатором (в этом случае - 3G модема Toshiba G450). Программа usb_modeswitch, которая может переключать режимы USB модемов опирается на базу данных, в которой есть большинство известных науке "капризных" модемов, требующих переключения. Эта база пополняется на сайте авторов программы и её всегда можно обновить без перепрошивки. Программа usb_modeswitch при запуске будет искать в своей базе подобный аппаратный идентификатор для того чтобы установить, можно ли что-то сделать с этим устройством или нет. Кроме того, этот же идентификатор понадобится при загрузке драйвера usbserial.ko для вашего модема, поэтому запомните это значение для своего устройства в любом случае, даже если переключение режимов не требуется.

4.1.3 Если у вас модем, требующий переключения режимов, то следующим шагом нужно обязательно свериться с базой usb_modeswitch не только на предмет того, есть ли такая модель в базе, но и также на предмет того нет ли там НЕСКОЛЬКИХ модемов с таким идентификатором. Именно нескольких, потому что ваш модем может быть одним из тех, что имеют одинаковые идентификаторы в режиме CD-ROM (но разные после переключения в режим "данные"!). Поэтому совершенно необходимо проверить свой идентификатор в базе usb_modeswitch. Делается это командой Telnet: ls -1 /var/etc/usb_modeswitch.d

Появится длинный список всех идентификаторов модемов, которые программа usb_modeswitch умеет переключать. Если вашего модема нет в этом списке, то это может значить одно из двух: либо вашему модему вообще не нужно переключение режима, либо программа usb_modeswitch ничего (пока) не знает о вашей экзотической или суперновой модели (проверьте сайт создателей программы usb_modeswitch - линк выше). Если модель присутствует, значит можно надеяться на правильное переключение модема.

Если же вы видите, что для вашей модели есть в списке несколько значений, то нужно взять то значение (полностью, с дополнительным текстом), которое соответствует именно вашей модели. Например, для идентификатора 05c6:1000 вы увидите в списке несколько моделей разных производителей. Поэтому, скажем, если у вас модем AnyDATA, то в качестве идентификатора нужно будет использовать не просто 05c6:1000, а то, что указано для вашей модели, а именно, 05c6:1000:uMa=AnyDATA. Именно это (полное) значение и нужно будет указать в следующем шаге.

4.1.4. Теперь, когда у вас есть точный идентификатор модема, нужно просто прописать его в файле pgi.conf, в параметре USB_MODEM. Например, для случаев, описанных выше, параметр будет выглядеть как USB_MODEM="0930:0d46" для 3G модема Toshiba или как USB_MODEM="05c6:1000:uMa=AnyDATA" для модема AnyDATA.

4.1.5. Если все работает правильно, то при следующей перезагрузке ресивера или при переподключении модема он должен быть автоматически переведен в режим данных, и должно появиться устройство (или несколько) такого вида: /dev/ttyUSB*. Если этого не происходит, то нужно анализировать логи, которые находятся в директории /tmp и называются usbmodem.*.log и usb_modeswitch.*.log

4.2 В остальном, настройки в chat файле и peer файле для pppd будут очень похожи на настройки от GPRS соединения, описанные выше в 2.3 - 2.6. Разница будет в названии серийного порта: /dev/ttyUSB0 вместо /dev/ttyACM0. Также, скорость порта в peer файле: 460800 вместо 115200. AT-команды инициализации правильного режима (UMTS/3G) в chat-скрипте могу тоже отличаться. См. файлы-шаблоны 3g.chat и 3g в /var/etc/ppp/chats и /var/etc/ppp/peers, хотя сразу стоит оговориться, что эти шаблоны скорее всего придется модифицировать под вашего конкретного провайдера и под конкретное устройство.

4.3 У скоростных модемов с SIM-картами могут возникнуть проблемы со вводом PIN-кода при посылке AT команд для установления соединения. Очень настоятельно рекомендуется отключить запрос PIN-кода, что зачастую можно сделать программными средствами, поставляемыми с модемом (под Windows). Из-за того, что нужен PIN-код, модем может просто не заработать при установлении соединения, или еще того хуже заблокироваться после трех неудачных попыток, так что вам придется искать код PUK. Некоторые модемы понимают специальные AT-команды для ввода PIN-кода во время соединения, которые можно прописать в chat-скрипт, но все же лучше не рисковать.

авторы uncle.f и pacco
 

  • 统计信息(cnzz)

  • 收藏和分享

  • 最新日志

  • 订阅Rss
  • Powered by emlog Copyright © 2008-2018 山水评测室 版权所有 | 手机版 | 使用帮助 | 关于我们 | 联系我们
    您是本站的第 位独立访问者

    Free counters!