LINUX.ORG.RU

Debian на rockchip rk3188 armv7l - USB modem (serial) не создаёт ttyUSB или ttyACM0.

 , ,


0

1

Уважаемые, всем привет.

Я тут задался идеей подцепить к rockchip rk3188 девайсу с armv7l, на ядре 3.0.36+ USB modem (аналоговый, с телефонным джэком).

Вижу что при подключении оного в порт происходит его определение, но НЕ происходит создание ttyUSB и/или ttyACM0:
[Wed Dec 11 04:37:27 2019] usb 2-1.2: new high speed USB device number 16 using usb20_host
[Wed Dec 11 04:37:28 2019] usb 2-1.2: New USB device found, idVendor=0baf, idProduct=0303
[Wed Dec 11 04:37:28 2019] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=10
[Wed Dec 11 04:37:28 2019] usb 2-1.2: Product: USB Modem
[Wed Dec 11 04:37:28 2019] usb 2-1.2: Manufacturer: U.S.Robotics
[Wed Dec 11 04:37:28 2019] usb 2-1.2: SerialNumber: 0000002

Поискав инфу, обнаружил сию надпись:
The ttyACM0 device comes from a CDC modem interface. Unless it’s compiled in your kernel you probably wont see the ttyACM0 devices.

Что даёт поиск cdc:
-rw-r–r– 1 root root 3364 2013-09-04 14:00 /lib/modules/3.0.36+/kernel/drivers/net/usb/cdc_subset.ko

А вот что даёт вывод
#lsusb -v -s 002:021

Bus 002 Device 021: ID 0baf:0303 U.S. Robotics
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0baf U.S. Robotics
idProduct 0x0303
bcdDevice 2.00
iManufacturer 1 U.S.Robotics
iProduct 2 USB Modem
iSerial 10 0000002
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 67
bNumInterfaces 2
bConfigurationValue 2
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 360mA
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 5 AltIf0
CDC Header:
bcdCDC 10.01
CDC Call Management:
bmCapabilities 0x03
call management
use DataInterface
bDataInterface 1
CDC Union:
bMasterInterface 0
bSlaveInterface 1
CDC ACM:
bmCapabilities 0x06
sends break
line coding and serial state
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 10
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 5 AltIf0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
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 0x81 EP 1 IN
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: 0x0002
(Bus Powered)
Remote Wakeup Enabled

— то есть, cdc этот (вроде как) видит модем, однако НЕ решается создать /dev/ttyUSB и/или /dev/ttyACM0.

Я прочёл тут одну ветку на похожую тему, но ответа так и не нашёл - как заставить девайс создавать /dev/tty*.

Может кто скажет, что не так, или - что надо сделать, что бы этот «3.0.36+ #33 SMP PREEMPT Thu Sep 5 16:37:41 EEST 2013 armv7l GNU/Linux»
не просто увидел мой USB модем, но и создал бы ему /dev/ttyUSB и-или /dev/ttyACM0 ?

Благодарю заранее !

-t


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

[Thu Oct 24 19:39:18 2019] usb 1-1: new high-speed USB device number 8 using ehci-pci
[Thu Oct 24 19:39:18 2019] usb 1-1: New USB device found, idVendor=0baf, idProduct=0303
[Thu Oct 24 19:39:18 2019] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=10
[Thu Oct 24 19:39:18 2019] usb 1-1: Product: USB Modem
[Thu Oct 24 19:39:18 2019] usb 1-1: Manufacturer: U.S.Robotics
[Thu Oct 24 19:39:18 2019] usb 1-1: SerialNumber: 0000002
[Thu Oct 24 19:39:18 2019] cdc_acm 1-1:2.0: ttyACM0: USB ACM device

Пару лет назад тут была похожая тема - Debian + cdc_ether
– там юзер sicus писал: ПС. Компиляция ядра, для этого барахла не очень приятная процедура, так же как и записывание всего получившегося на mtd устройства. Это rockchip rk3188. Из множества исходников ядер в интернете, мне удалось собрать работающее на 3.0.36+, при наложении кучи патчей со всяких форумов.

… как бы тот cdc_acm включить в этом Debian 3.0.36+….

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

как бы тот cdc_acm включить в этом Debian 3.0.36+….

А он «там» есть? В начальном посте у тебя написано

Что даёт поиск cdc:
-rw-r–r– 1 root root 3364 2013-09-04 14:00 /lib/modules/3.0.36+/kernel/drivers/net/usb/cdc_subset.ko

Вообще от arm-linux сборок можно ожидать любых «сюрпризов» вариантов — от «усовершенствованного» кода до выбрасывания «лишнего и ненужного».

udevadm «там» есть? Посмотреть бы на полную «процедуру» подключения модема к системе.

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

А он «там» есть?

Похоже, что есть только сие:
/lib/modules/3.0.36+/kernel/drivers/net/usb/cdc_subset.ko
/usr/include/linux/usb/cdc.h
/usr/share/terminfo/c/cdc456
/usr/share/terminfo/c/cdc721
/usr/share/terminfo/c/cdc721-esc
/usr/share/terminfo/c/cdc721ll
/usr/share/terminfo/c/cdc752
/usr/share/terminfo/c/cdc756

udevadm «там» есть? Посмотреть бы на полную «процедуру» подключения модема к системе.

#udevadm
missing or unknown command

Usage: udevadm [-help] [-version] [-debug] COMMAND [COMMAND OPTIONS]
info query sysfs or the udev database
trigger request events from the kernel
settle wait for the event queue to finish control control the udev daemon
monitor listen to kernel and udev events
test test an event run
test-builtin test a built-in command

  1. как посмотреть полную процедуру подключения модема к системе ?
  2. что следует указать в качестве параметра udevadm ?

Благодарю за попытку помочь :)
-t
ps. скажите, плз, а что это за маразматичный вариант форумного софта тут ?
Постоянно надо два пробела ставить для переноса строки, и - главное - нельзя редактировать свои мессаги !

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

Нет cdc_acm — нет устройства /dev/ttyACM0. На самом деле там может не хватать более чем, одного cdc_acm. Но это только мои предположения. Смотреть полный цикл определения устройства и создания его файла сейчас бесполезно — нет модуля cdc_acm. Вот когда модуль появиться, а устройства не будет — тогда, да...

Постоянно надо два пробела ставить для переноса строки, и - главное - нельзя редактировать свои мессаги !

Это разметка Markdown. Сейчас она по-умолчанию. Раньше был LORCODE. Изучи любую (можно в профиле, в «Настройках» задать свои предпочтения) и пользуйся кнопкой «Предпросмотр» до публикации сообщений (можно, конечно, удалять «плохие» сообщения и писать заново — но, люди так не делают ;). Редактирование сообщений появляется с «первой звездой» (или сейчас достаточно скора в 50?). Конечно, новичков это раздражает. Но я придерживаюсь мнения — такие правила дисциплинируют :)

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

Нет cdc_acm - нет устройства /dev/ttyACM0. На самом деле там может не хватать более чем, одного cdc_acm.

Я так и подумал...
И тот юзер sicus, который компилял кастомный кернел 3.0.36+ для rk3188 - с 2018г не заходил на LOR, блин.

А на freaktab'e народ про все rk3188 девайсы уже забыл, похоже !
Устарели эти железки..Первые посты на тему вообще были 6 лет назад!

Запросил там пересобрать 'dx05_nand_debian_1.1.1.img' с поддержкой этого CDC модуля, но ответа пока нет..

Это разметка Markdown. Сейчас она по-умолчанию. Раньше был LORCODE.

Сейчас поставил USER LINE BREAK, пока оно радует;)

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

И тот юзер sicus

можешь попробовать кастануть его (см разметку Markdown или LORCODE), но это на удачу.

Гораздо продуктивнее поиск и интернеты. Например, сайт debian. Правда, я тут не помощник — какой тебе образ там может подойти, это не ко мне...

Или вот посмотри первая (подходящая?) ссылка из поиска

Посмотрел одно из ядер debian для ARMv7 — модули есть (версия ядра 3.16) Я не уверен, что для твоей платформы этот пакет подойдет... Но, мне кажется копать нужно в этом направлении

anymouze ★★ ()
Последнее исправление: anymouze (всего исправлений: 2)
Ответ на: комментарий от anymouze

Получилось ! :)

В общем, я разобрался что к чему - нашёл конфиг для компиляции, нашёл исходники, скомпилил ядро и модули, и - получил такой нужный CDC-ACM.KO :)

Вот ссылка для тех, кому лениво проходить этот путь с компиляцией: https://yadi.sk/d/Z9DRz1i0Em85rQ
(cdc-acm.ko.rar - WinRAR v5 архив с recovery info).

Данный модуль точно работает на дистрибутиве 9dafaa9683fabf41cfcc5f93fb975636 *dx05_nand_debian_1.1.1.img
-- ставится это дело стандартным образом: insmod cdc-acm.ko, после чего в dmesg и /var/log/messages появиться запись типа такой:
[Wed Dec 18 06:47:33 2019] usbcore: registered new interface driver cdc_acm
[Wed Dec 18 06:47:33 2019] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

&joy :)
-t
ps. greets goes to komar for the big help ;)

nmr50 ()
Ответ на: Получилось ! :) от nmr50

Re: Получилось ! :)

С успехом!

Немного «позанудствую»:

  • неплохо бы добавить описание решения в тему (твоё первое сообщение). Ты как автор, можешь её отредактировать. Использование разметки будет нелишним. Отметь тему решенной.
  • «лениво проходить этот путь с компиляцией» — лентяев* среди энтузиастов не так и много. Когда речь заходит о модулях ядра «компиляция неизбежна» (практически всегда, с ничтожным количеством исключений). Поэтому не хватает ссылок на

    на конфиг для компиляции, на исходники

  • Возможно Яндекс.Диск не самый подходящий ресурс (но, это спорно), как и формат rar (тоже спорно; сам в прежние времена активно использовал, а сейчас практически нет). В архиве же есть readme с минимальным описанием?
anymouze ★★ ()