Zte 8710

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Zte 8710 as PDF for free.

More details

  • Words: 1,317
  • Pages: 7
Налаштування CDMA-модему ZTE 8710 в Ubuntu 9.04 А. Сахнiк ([email protected]) 1 червня 2009 р.

Ця стаття детально описує, як налаштувати CDMA-модем ZTE 8710, що поширюється компанiєю people.net, в операцiйнiй системi Ubuntu 9.04 Jaunty Jackalope. Цей прилад є багатофункцiональним пристроєм USB, i розпiзнається системою та монтується як носiй даних. Стаття пояснює, як можна перемикати його в режим EVDO, як найкраще налаштувати його для роботи з iнтернетом у середовищi GNOME.

Змiст 1 Iдея

1

2 Втiлення 2.1 Режим EVDO . . . . . . . . . . . . . . 2.2 Ядро Linux . . . . . . . . . . . . . . . 2.3 Перевiрка з wvdial . . . . . . . . . . . 2.4 Пiдсистема HAL та NetworkManager 2.5 Автоматизацiя процесу . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

2 2 2 3 3 5

3 Наостанок

5

Джерела

5

A Текст програми zte8710.py

5

1 Iдея В робочому середовищi GNOME керування мережевими з’єднаннями здiйснюється з допомогою служби NetworkManager. Це надзвичайно зручно для мобiльної станцiї, коли обладнання чи мережеве оточення часто змiнюються. Багато прикладних програм також орiєнтуються на стан пiдключення, про який їм звiтує NetworkManager.

1

Наприклад, при зникненнi зв’язку оглядач Firefox переходить в режим off-line, програма обмiну повiдомленнями Empathy навiть не намається з’єднатися тощо. Отже, ми хочемо використовувати наш модем, щоб пiд’єднуватися до мережi якомога природнiше для середовища GNOME, не втручаючись у налаштування прикладних програм. На офiцiйнiй сторiнцi виробника модему [1] можна знайти рiчної давнини пакунок для систем Ubuntu 8.04 та Fedora 10. Проте вiн не встановлюється, не працює сам по собi. Та якби й працював, вiн призначений для попередньої моделi, i не iнтегрується у GNOME. Проте з нього нам стане в нагодi бiнарник, який вмiє перемикати модем.

2 Втiлення В цiй частинi послiдовно описано, як налаштувати з’єднання крок за кроком. Почнiмо з того, що пiд’єднаємо наш прилад до одного з гнiзд станцiї. За кiлька секунд з’явиться та пiдмонтується накопичувач “ZTE USB MODEM”. $ lsusb | grep 19d2 # Фiльтруємо по виробнику Bus 005 Device 081: ID 19d2:fff5

2.1 Режим EVDO Отже, беремо ztemtcdromd з пакунку виробника, розмiщуємо його куди-небудь у /usr/local/sbin. Проглянувши iншi скрипти пакунку, здогадуємося, що цей демон чекає на сигнал USR1, а при отриманнi його виконує якусь чорну магiю. Значить, ми вже за крок до iнiцiалiзацiї модему. $ sudo ztemtcdromd # На жаль, ця тварюка панська. $ sudo killall -USR1 ztemtcdromd $ lsusb | grep 19d2 Bus 005 Device 081: ID 19d2:ffff Видно, що iдентифiкатор продукту змiнився, отже, нарештi наша система отримала в розпорядження справжнiй модем. Наївна спроба розiбратися з цим шаманством з допомогою strace виявила, що при отриманнi SIGUSR1 демон виконує один-єдиний виклик ioctl(FBIOPUTCMAP) над /dev/ttyZTE, передаючи йому якийсь вказiвник. Ну, як вже зробили, аби працювало.

2.2 Ядро Linux Iдентифiкатор пристрою може вiдрiзнятися вiд мого, принаймнi, у вебi згаданi 0xfffe, 0xfff1 та iншi. У найбiльш таланних вже досi з’явилися пристрої /dev/ttyUSB[0-3], проте не кожному таке щастя. Ядро може не знати про всi забаганки китайцiв, тому йому треба допомогти:

2

$ sudo rmmod usbserial # Беремо нашi параметри: $ sudo modprobe usbserial vendor=0x19d2 product=0xffff Щоб не займатися цим щоразу пiсля перевантаження системи, можна записати побажання до /etc/modprobe.d або в /etc/rc.local тощо. Проте найцiкавiший розв’язок — це модифiкацiя ядра, щоб вiн розпiзнавав наш модем автоматично: $ cd ~/work/linux-2.6.29 $ cd drivers/usb/serial $ grep ZTE * # Знайдiмо, де там про нашу цяцьку. $ vim option.c # Далi коротко, як виправити. gg /ZTE_PRODUCT_CDMA_TECH yyp :.s/TECH/TECH2/ :.s/fffe/ffff/ /ZTE_PRODUCT_CDMA_TECH yyp :.s/TECH/TECH2/ :wq Пiсля цього доведеться зiбрати, встановити та запустити нове ядро, але справа варта зусиль.

2.3 Перевiрка з wvdial До цих пiр ми вже маємо пiд’єднаний, розпiзнаний ядром модем. Значить, можна спробувати пiд’єднатися до мережi дiдiвським способом. $ wvdialconf wvdial.conf ... $ vim wvdial.conf ... $ wvdial -C wvdial.conf ... Цим можна цiлком обмежитися: мережа працює, вмикати легко. Зрештою, судячи iз записiв у веб-щоденниках, так i вийшло у бiльшостi. Але спробуймо просунутися далi!

2.4 Пiдсистема HAL та NetworkManager NetworkManager має хорошу пiдтримку модемних з’єднань. Досить було до станцiї з Ubuntu 8.10 пiд’єднати Nokia 6230i, як вiдразу з’являлося повiдомлення з пропозицiєю налаштувати стiльниковий широкосмуговий зв’язок. Ubuntu 9.04 знає про ще бiльшу кiлькiсть телефонiв, наприклад, про Sony Ericsson P1i.

3

Те саме може вiдбуватися i з нашим модемом, але, можливо, для цього треба буде виправити описи HAL. Саме Hardware Abstraction Layer каже нашому менеджеру мережi, що приєднано новий прилад, щ´о цей прилад вмiє робити тощо. $ locate modem.fdi /usr/share/hal/fdi/information/10freedesktop/10-modem.fdi $ cd ‘locate modem.fdi‘ $ vim 10-modem.fdi Як завжди, шукаємо нашого виробника та пристрiй. Виправляємо або додаємо наступне: <match key="@info.parent:usb.vendor_id" int="0x19d2"> <match key="@info.parent:usb.product_id" int="0xffff"> <match key="@info.parent:usb.interface.number" int="0"> IS-707-A При такiй конфiгурацiї пiсля перевантаження hald та NetworkManager, останнiй нарештi розпiзнав ще один модем в розпорядженнi. Вiдразу ж запропонував його налаштувати. Власне, треба задати тiльки назву облiкового запису та код доступу. Тепер для пiдключення до мережi досить активувати щойно створену конфiгурацiю1 (рис. 1).

Рис. 1: Пiдключення до мережi people.net у аплетi NetworkManager.

1

Слiд зауважити, що з’єднання може не вдатися з першого разу через фiзичнi особливостi мережi.

4

2.5 Автоматизацiя процесу Фактично, все необхiдне для комфортної роботи у нас вже є: ми пiд’єднуємо модем, перемикаємо його в режим EVDO, пiд’єднуємося до мережi. Зручно було б автоматизувати другий крок, щоб при пiдключеннi модема з’являлося повiдомлення з пропозицiєю активувати його, чи хоча б перевести в режим EVDO. Таке легко здiйснити, проаналiзувавши сигнали пiдсистеми HAL. Прийнявши ж сигнал про пiдключення нашого модему, запустити ztemtvcdromd та послати йому сигнал USR1. Саме цим займається невеликий скрипт zte8710.py (рис. 2). Зручно включити його до списку програм, що завантажуються автоматично на початку сеансу GNOME.

Рис. 2: Активацiя режиму EVDO

3 Наостанок Що далi? Практична задача повнiстю розв’язана, тому нiякої доробки найближчим часом не буде. У майбутньому ж може виявитися, що бiнарник ztemtvcdromd стане несумiсним з новими версiями бiблiотек операцiйної системи, тому його використовувати бiльше не можна буде. Отже, доведеться шукати йому замiну.

Джерела [1] Офiцiйна веб-сторiнка Ztemt http://ztemt.com

A Текст програми zte8710.py Цей скрипт2 автоматизує перемикання модему в режим EVDO. #!/usr/bin/python global DeviceName DeviceName = ’storage_serial_ZTE_USB_Storage_FFFF_000000000002_0_0’ import dbus import gtk import os def add_device(*args, **keywords): ’’’Handler of added devices’’’ 2

Оригiнальна версiя використовує UTF-8, тому повiдомлення друкуються кирилицею.

5

Path = args[0].split(’/’) if Path[-1] == DeviceName: # Found ours icon.set_visible(True) def remove_device(*args, **keywords): ’’’Handler of removed devices’’’ Path = args[0].split(’/’) if Path[-1] == DeviceName: # Found ours icon.set_visible(False) def on_switch_modem(item, param1): ’’’Let’s activate EVDO mode’’’ res = os.system(’’’#!/bin/bash pidof ztemtvcdromd >/dev/null || gksudo ztemtvcdromd || return 1 gksudo -- killall -USR1 ztemtvcdromd || return 3 ’’’) # We can analyze exit code as well def on_right_click(icon, event_button, event_time): ’’’Show context menu of the systray icon’’’ menu = gtk.Menu() item = gtk.MenuItem(’Switch to EVDO’) item.show() menu.append(item) item.connect(’activate’, on_switch_modem, None) menu.popup(None, None, gtk.status_icon_position_menu, event_button, event_time, icon) # Let’s create a systray icon icon = gtk.status_icon_new_from_stock(gtk.STOCK_INFO) icon.connect(’popup-menu’, on_right_click) icon.set_tooltip(’Detected CDMA modem ZTE 8710’) icon.set_visible(False) # Let the dbus use our event loop from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) # Let’s connect to the HAL bus = dbus.SystemBus() hal_manager_obj = bus.get_object(’org.freedesktop.Hal’, ’/org/freedesktop/Hal/Manager’) hal_manager = dbus.Interface(hal_manager_obj, ’org.freedesktop.Hal.Manager’) bus.add_signal_receiver(add_device, ’DeviceAdded’, ’org.freedesktop.Hal.Manager’, ’org.freedesktop.Hal’, ’/org/freedesktop/Hal/Manager’) bus.add_signal_receiver(remove_device, ’DeviceRemoved’, ’org.freedesktop.Hal.Manager’, ’org.freedesktop.Hal’, ’/org/freedesktop/Hal/Manager’) # Let’s obtain the list of connected devices, # and see if ours is already among them. device_names = hal_manager.GetAllDevices() for name in device_names: Path = name.split(’/’) if Path[-1] == DeviceName: # This is ours icon.set_visible(True) break

6

# Event loop gtk.main()

7

Related Documents

Zte 8710
May 2020 3
Panduan Zte
December 2019 23
Wimax Insight By Zte
June 2020 2
Zte-zxdsl 831d
June 2020 5
Zte 831 Series
May 2020 4