onorua (onorua) wrote,
onorua
onorua

ZTE AC8700 от Peoplenet и Linux (продолжение)

Мне периодически пишут отзывы в аську о моем очерке (ZTE AC8700 от Peoplenet и Linux). Раз люди интересуются - решил выложить и изменения которые я внес с того памятного дня как у меня появился этот модем.

Итак, для этого нужен udev, я думаю в вашем дистрибутиве он есть. Втыкаем устройство в USB порт, и ждем пока появился файлы устройства /dev/ttyUSB0. После чего исследуем, как он видится системой:
--------------------
# udevinfo -a -p $(udevinfo -q path -n /dev/ttyUSB0)

looking at device '/class/tty/ttyUSB0':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""
ATTR{dev}=="188:0"
....
несколько строк упущено
....
looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1/1-2':
KERNELS=="1-2"
SUBSYSTEMS=="usb" <=== Важная строка определения подсистемы, мы работаем с USB.
DRIVERS=="usb"
ATTRS{product}=="ZTE CDMA Tech"
ATTRS{manufacturer}=="ZTE, Incorporated"
ATTRS{maxchild}=="0"
ATTRS{version}==" 1.10"
ATTRS{devnum}=="21"
ATTRS{speed}=="12"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bNumConfigurations}=="1"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceClass}=="00"
ATTRS{bcdDevice}=="0000"
ATTRS{idProduct}=="fffe" <==== То что мы будем использовать
ATTRS{idVendor}=="19d2" <==== Еще одна важная строка идентификации устройства
ATTRS{bMaxPower}==" 0mA"
ATTRS{bmAttributes}=="e0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bNumInterfaces}==" 3"
ATTRS{configuration}==""
....
еще много строк
-----------------------

После того как мы нашли все что нам необходимо для написания скрипта для подсистемы udev, беремся за дело.

Создаем правило для модема:
$ cat /etc/udev/rules.d/65_zte_ac8700.rules
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="fffe" RUN+="/bin/sleep 5"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="fffe" RUN+="/sbin/ifup ppp0"

Так как у меня интерфейс описан в /etc/network/interfaces:
-----------------------
iface ppp0 inet ppp
provider pplnet
-----------------------
В параметре RUN у меня ifup ppp0, для вашего дистрибутива вы можете не заморачиваться, а просто вписать туда что-то типа "/usr/sbin/pppd call pplnet", путь и название может зависеть от настроек вашей системы и вашего дистрибутива.

P.S. Я уже давно внес подгрузку модуля в ядро, но это можно было сделать и тут, в скрипте для устройства udev, перед вызовом sleep, добавив одну строчку по аналогии:
------------
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="fffe" RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0xfffe"
------------
Subscribe

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 13 comments