LINUX.ORG.RU

USB modem


0

0

Привет всем

Не получается подключить телефон как USB модем :(

Есть: linux 2.6 (slack 9.1), Motorola V66i, кабель USB

Ядро собрано с поддержкой USB (модулями).

Делаю так

# modprobe uhci-hcd debug=1

Втыкем кабель в трубу

Вывод dmesg:

hub 1-0:1.0: port 1, status 101, change 1, 12 Mb/s
drivers/usb/host/uhci-hcd.c: d000: wakeup_hc
hub 1-0:1.0: debounce: port 1: delay 100ms stable 4 status 0x101
hub 1-0:1.0: new USB device on port 1, assigned address 2
drivers/usb/host/uhci-hcd.c: uhci_result_control() failed with status 440000
[df29a240] link (1f29a1e2) element (1f29b040)
  0: [df29b040] link (1f29b080) e0 Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=0, PID=2d(SETUP) (buf=1f887d40)
  1: [df29b080] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=0, PID=69(IN) (buf=00000000)

drivers/usb/host/uhci-hcd.c: uhci_result_control() failed with status 440000
[df29a240] link (1f29a1e2) element (1f29b040)
  0: [df29b040] link (1f29b080) e0 Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=0, PID=2d(SETUP) (buf=1f887d40)
  1: [df29b080] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=0, PID=69(IN) (buf=00000000)

usb 1-1: device not accepting address 2, error -110
hub 1-0:1.0: new USB device on port 1, assigned address 3
drivers/usb/host/uhci-hcd.c: uhci_result_control() failed with status 440000
[df29a240] link (1f29a1e2) element (1f29b040)
  0: [df29b040] link (1f29b080) e0 Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=0, PID=2d(SETUP) (buf=1f887d20)
  1: [df29b080] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=0, PID=69(IN) (buf=00000000)

usb 1-1: new device strings: Mfr=1, Product=2, SerialNumber=0
drivers/usb/core/message.c: USB device number 3 default language ID 0x409
usb 1-1: Product: Motorola Phone (V66i)
usb 1-1: Manufacturer: Motorola Inc.
usb 1-1: registering 1-1:1.0 (config #1, interface 0)
usb 1-1: registering 1-1:1.1 (config #1, interface 1)

*** # modprobe cdc-acm 

cdc_acm 1-1:1.0: usb_probe_interface
cdc_acm 1-1:1.0: usb_probe_interface - got id
cdc_acm 1-1:1.0: ttyACM0: USB ACM device<7>drivers/usb/host/uhci-hcd.c: uhci_result_control() failed with status 440000
[df29a240] link (1f29a1e2) element (1f29b040)
  0: [df29b040] link (1f29b080) e0 Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=3, PID=2d(SETUP) (buf=1f8873e0)
  1: [df29b080] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=3, PID=69(IN) (buf=00000000)

drivers/usb/host/uhci-hcd.c: uhci_result_control() failed with status 440000
[df29a270] link (1f29a1e2) element (1f29b0c0)
  0: [df29b0c0] link (1f29b100) e0 Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=3, PID=2d(SETUP) (buf=1f8873e0)
  1: [df29b100] link (1f29b140) e3 SPD Active Length=0 MaxLen=6 DT1 EndPt=0 Dev=3, PID=e1(OUT) (buf=1f60f33c)
  2: [df29b140] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=3, PID=69(IN) (buf=00000000)

drivers/usb/core/usb.c: cdc_acm driver claimed interface df299180
drivers/usb/core/usb.c: registered new driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.21:USB Abstract Control Model driver for USB modems and ISDN adapters

*** при попытке записать что-нибудь в /dev/ttyACM0 в лог выводится

drivers/usb/host/uhci-hcd.c: uhci_result_control() failed with status 440000
[df29a2a0] link (1f29a1e2) element (1f29b0c0)
  0: [df29b0c0] link (1f29b100) e0 Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=3, PID=2d(SETUP) (buf=1f887e00)
  1: [df29b100] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=3, PID=69(IN) (buf=00000000)

drivers/usb/host/uhci-hcd.c: uhci_result_control() failed with status 440000
[df29a330] link (1f29a1e2) element (1f29b100)
  0: [df29b100] link (1f29b1c0) e0 Stalled CRC/Timeo Length=7 MaxLen=7 DT0 EndPt=0 Dev=3, PID=2d(SETUP) (buf=1f887e00)
  1: [df29b1c0] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=3, PID=69(IN) (buf=00000000)

usb 1-1: hcd_unlink_urb df203f60 fail -22
usb 1-1: hcd_unlink_urb df203600 fail -22


Соответсвенно телефон никак не реагирует.

OK, забиваю на модуль cdc-acm, пытаюсь подключить через usbserial

# cat /proc/bus/usb/devices

...
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=02(comm.) Sub=02 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=22b8 ProdID=1005 Rev= 0.01
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr= 20mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
E:  Ad=89(I) Atr=03(Int.) MxPS=  16 Ivl=10ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E:  Ad=01(O) Atr=02(Bulk) MxPS=  16 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  16 Ivl=0ms


*** делаю 
*** # modprobe usbserial vendor=0x22b8 product=0x1005 debug=1

drivers/usb/serial/usb-serial.c: Had to override the open usb serial operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the write usb serial operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the close usb serial operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the write_room usb serial operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the chars_in_buffer usb serial operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the read_bulk_callback usb serial operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the write_bulk_callback usb serial operation with the generic one.
drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic
usbserial 1-1:1.0: usb_probe_interface
usbserial 1-1:1.0: usb_probe_interface - got id
drivers/usb/serial/usb-serial.c: descriptor matches
drivers/usb/serial/usb-serial.c: found interrupt in
usbserial 1-1:1.0: Generic converter detected
usbserial 1-1:1.0: Generic device with no bulk out, not allowed.
usbserial: probe of 1-1:1.0 failed with error -5
usbserial 1-1:1.1: usb_probe_interface
usbserial 1-1:1.1: usb_probe_interface - got id
drivers/usb/serial/usb-serial.c: descriptor matches
drivers/usb/serial/usb-serial.c: found bulk out
drivers/usb/serial/usb-serial.c: found bulk in
usbserial 1-1:1.1: Generic converter detected
drivers/usb/serial/usb-serial.c: get_free_serial 1
drivers/usb/serial/usb-serial.c: get_free_serial - minor base = 0
drivers/usb/serial/usb-serial.c: usb_serial_probe - setting up 1 port structures for this device
drivers/usb/serial/usb-serial.c: usb_serial_probe - registering ttyUSB0
drivers/usb/core/usb.c: registered new driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0


*** При обращении к /dev/ttyUSB0 получаем 


Unable to handle kernel NULL pointer dereference at virtual address 00000000
*pde = 00000000
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<e10f2856>]    Not tainted
EFLAGS: 00010282
EIP is at usb_serial_generic_open+0xe6/0x140 [usbserial]
eax: 00000000   ebx: ffffffe0   ecx: df29d000   edx: df1334a0
esi: df29d000   edi: df60f2a0   ebp: df29d400   esp: c16b5ea4
ds: 007b   es: 007b   ss: 0068
Process bash (pid: 112, threadinfo=c16b4000 task=c17592e0)
Stack: df1334a0 000000d0 df29d4d4 e10f3700 ffffffe0 df60f2a0 00000001 df29d400
       00000000 e10f02ae df29d400 df334920 e10f357e c16b4000 df29d600 df334920
       0bc00000 c0230034 df127000 df334920 c16b5f00 00008241 00000000 df127000
Call Trace:
 [<e10f02ae>] serial_open+0xde/0x180 [usbserial]
 [<c0230034>] tty_open+0x234/0x3a0
 [<c015eed8>] chrdev_open+0xe8/0x210
 [<c01545fa>] dentry_open+0x14a/0x220
 [<c01544a8>] filp_open+0x68/0x70
 [<c015495b>] sys_open+0x5b/0x90
 [<c010b57b>] syscall_call+0x7/0xb

Code: 8b 00 c7 04 24 60 43 0f e1 89 44 24 04 e8 58 d5 02 df e9 65


:(


Проверил на 2.4.22 - то же самое, только сообщения ядра немного изменяются.
Пробовал ставить usb-rollup-patch от Greg KH (багфиксы для USB) - количество 
ошибок в логах уменьшается, но модем по прежнему молчит.

Под windows 2000 - модем подключается и работает.

К примеру, здесь - http://dvtl.pisem.net/gprs_moto.html автор утверждает что
телефон Motorola V66i у него работает в Linux RedHat 7.2/8.0

Как быть?

abbr
() автор топика
Ответ на: комментарий от abbr

а другую моторолку не пробовал ? с350 точно работает.

sasha999 ★★★★
()
Ответ на: комментарий от abbr

При ошибке -110
После неудачного обращения к трубе

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

yang_grey
()
Ответ на: комментарий от yang_grey

2yang_grey: да, это верно. у меня та же фигня бывает. в сети на эту тему говорили, но похоже так другого лечения и не нашли :( ... но в этом случае по lsusb трубу не показывает до ее перегруза. а у него судя по логам труба видна.

sasha999 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.