LINUX.ORG.RU
решено ФорумAdmin

usb <-> com непонятное

 


0

1

есть переходник usb <-> com, на него в системе есть драйвер, называется cdc_atm.
система появление устройства отслеживает, создает /dev/ttyACMx.
но вот в федоре 15 с ядром 2.6.36 все работает как надо, а в генте с ядром 3.2.1 - не хочет. то есть файл /dev/ttyACMx - создается, открывается - но данные не ходят ни туда, ни оттуда. в федоре - все ок.
кроме того есть возможность влезть внутрь переходника - так вот там видно, что он очень старается передать данные - но их не берут и после заполнения буфера он перестает пытаться )
еще момент - федора стоит на машине с обычным биос, а гента - на машине с uefi. хотя этот uefi уже провертели по всякому...
если кто-нибудь что-нибудь подскажет, буду очень признателен )

★★
Ответ на: комментарий от Vinill

Эмм. Это я спрашиваю, включена ли поддержка этой штуки в ядре.

Как вообще конфигурировали ядро, ставя генту?

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

нет, таких устройств нет - смотрели

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

ядро по умолчанию, поддержка точно включена. но посмотрю, спасибо )
lsmod | grep cdc на двух системах абсолютно одинаковое. и в /var/log/messages - одно и тоже..

Vinill ★★
() автор топика
Последнее исправление: Vinill (всего исправлений: 1)

есть переходник usb <-> com

Марка, чип?

но данные не ходят ни туда, ни оттуда.

Как проверяешь?
Замыкаешь на переходнике пины 2,3 и смотришь putty /dev/ttyACM0 есть ли ответ. Если есть, то настраивай правильно параметры порта (скорость, четность и т.п)

Покажи

lsusb
dmesg

arson ★★★★★
()

есть возможность влезть внутрь переходника - так вот там видно, что он очень старается передать данные - но их не берут и после заполнения буфера он перестает пытаться )

Т.е. из ОС данные в переходник попадают? Он у тебя вяжется к внешнему устройству только через Rx/Tx или используются сигналы аппаратного контроля?

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

настраивай правильно параметры порта (скорость, четность и т.п)

Можно подумать это ему (переходнику) помешает выплюнуть данные..

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

вдруг пригодится кому )

решилось установкой в систему пакета ModemManager, который прописал дополнительные правила udev. судя по всему - еще не проверил толком - система считала, что ей подсунули не модем, а флэшку.

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

в правильном вопросе - половина ответа.

ты спрашивал про преобразователь.

вот, если бы спрашивал про модем, тебе бы сразу посоветовали usb_modeswitch

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

система считала, что ей подсунули не модем, а флэшку.

.... и создавала /dev/ttyACMx ?

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

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

Согласно ОП, устройство посл. порта у него создавалось, открывалось и даже данные в него «физически» поступали. Вряд ли это проблема прав.

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

Тогда не знаю. Может, железка — говно. Может, модуль ядра нужный отсутствовал, а ttyACM создавался неведомой фигней. Может еще что...

Я с таким не сталкивался никогда. А ТС молчит, как партизан. Нет бы — показать, какой у него lsmod в генте, а какой — в федорке. Да и что за железка, тоже интересно.

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

железка - переходник usb<->com, как я и писал. вывод lsusb -v ниже. все модули есть. ttyACMх создавался именно cdc_acm - специально собирал с выводом отладочной информации. lsmod одинаковый и в генте и в федоре. кстати, проверялось уже на CentOS - такая же фигня, как и в генте. про права - )) нормально все с правами, вообщем.

железка.. да, железка странная ) но тем не менее. пока думаю как раз на usb_modeswitch и соответственно - правила udev - никак нет времени разобраться детально - пока заработало, есть другие проблемы.

а выглядит это так - втыкаешь кабель, система создает /dev/ttyACM0, ты открываешь его на чтение, он молчит как партизан, запускаешь modem-manager, он обнаруживает переходник как модем(кстати в логе ниже даже AT-commands отключали, все равно как модем. видимо, как нуль )), творит какую-то неведомую пока фигню с уже открытым мной /dev/ttyACM0 и из него начинают вылетать данные. причем достаточно запустить его только один раз. после этого кабель можно дергать сколько угодно и он всегда после этого ведет себя корректно.

Bus 001 Device 002: ID 03eb:2404 Atmel Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            2 Communications
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x03eb Atmel Corp.
  idProduct          0x2404
  bcdDevice            1.00
  iManufacturer           1 RDC xxxxxx
  iProduct                2 XXX-CDC
  iSerial                 3 123456789
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           67
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              0
      CDC Header:
        bcdCDC               1.10
      CDC ACM:
        bmCapabilities       0x02
          line coding and serial state
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1
      CDC Call Management:
        bmCapabilities       0x03
          call management
          use DataInterface
        bDataInterface          1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              16
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            2 Communications
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered
Vinill ★★
() автор топика
Ответ на: комментарий от aol

ну вообще да, но чем преобразователь отличается от нуль модема? )) для системы, как оказалось - ничем )

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

творит какую-то неведомую пока фигню с уже открытым мной /dev/ttyACM0

Я повторю свой вопрос, который ты проигнорировал: переходник у тебя вяжется к внешнему устройству _только_ через Rx/Tx или при используются сигналы аппаратного контроля?

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