Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
[решено] usb_modeswitch не видит 3g модем
std_logic
Добавлено 11.08.2014 12:14 Редактировалось 12.08.2014 11:31
0
Сообщение: 1
std_logic
0

Пункты: 1133
Регистрация: 09.10.2012
Есть плата imx53, к которой хочется подключить USB 3G модем huawei. Застрял на первом же шаге, когда модем определяется как CD-ROM и его нужно перевести в режим модема. Ядро и файловую систему пересобираю на скачанной с ftp виртуальной машине (buildroot 2011.08). Моя последовательность действий:

1) Просто включаю в buildroot галку usb_modeswitch. На плате при подключении модема вижу:
Код
[ 92.501351] usb 1-1: new high speed USB device using fsl-ehci and address 2
[ 92.653549] usb 1-1: New USB device found, idVendor=12d1, idProduct=1505
[ 92.653564] usb 1-1: New USB device strings: Mfr=3, Product=2, SerialNumber=0
[ 92.653574] usb 1-1: Product: HUAWEI Mobile
[ 92.653581] usb 1-1: Manufacturer: Huawei Technologies
[ 92.663484] scsi0 : usb-storage 1-1:1.0
[ 92.681571] scsi1 : usb-storage 1-1:1.1
[ 93.673141] scsi 0:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
[ 93.682915] scsi 1:0:0:0: Direct-Access HUAWEI TF CARD Storage 2.31 PQ: 0 ANSI: 2
[ 93.712875] sd 1:0:0:0: [sda] Attached SCSI removable disk


lsusb видит его как
Код
Bus 001 Device 002: ID 12d1:1505


пробую usb_modeswitch:
Код
# usb_modeswitch -W -v 12d1 -p 1505
Taking all parameters from the command line


* usb-modeswitch: handle USB devices with multiple modes
* Version 1.1.2alpha (C) Josua Dietze 2010
* Based on libusb0 (0.1.12 and above)

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x12d1
DefaultProduct= 0x1505
TargetVendor= not set
TargetProduct= not set
TargetClass= not set

DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
GCTMode=0
MessageEndpoint= not set
MessageContent= not set
NeedResponse=0
ResponseEndpoint= not set
Interface=0x00

InquireDevice enabled (default)
Success check disabled
System integration mode disabled


Looking for default devices ...
No devices in default mode or class found. Nothing to do. Bye.

То есть по каким-то причинам он не не находит устройство для переключения.

2) Обновляю в buildroot'е usb_modeswitch + usb_modeswitch_data до последней версии, на плате получаю:
Код
# usb_modeswitch -W -v 12d1 -p 1505
Take all parameters from the command line


* usb_modeswitch: handle USB devices with multiple modes
* Version 2.2.0 (C) Josua Dietze 2014
* Based on libusb1/libusbx

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x12d1
DefaultProduct= 0x1505
NeedResponse=0

Segmentation fault

Предполагаю что и в старой и в новой версии usb_modeswitch ему чего-то не хватает в ядре или библиотеках для работы, но в упор не могу понять чего.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 11.08.2014 12:24 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Предполагаю что и в старой и в новой версии usb_modeswitch ему чего-то не хватает в ядре или библиотеках для работы, но в упор не могу понять чего.

то, что модем видится, как масс-сторадж - это нормально..
у меня подобным образом видится модет от МТС (то же хуавей) - на этот драйв забрасываются драйвера и софт управления..

посмотрите - может вашему модему требуется бинарник фирмваре - в логах что-нить видно? или в ядре что-то недовключили..
может поддержка конкретно "хуавей в юсб сериал", может что-то подобное..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
std_logic
Добавлено 11.08.2014 12:49 Сообщение: 3
std_logic
0

Пункты: 1133
Регистрация: 09.10.2012
Я предполагаю что пока модем в режиме mass storage ему не важно что там с usb_serial, но конечно USB_SERIAL_GENERIC и USB_SERIAL_OPTION для модемов в ядре включены.
На PC этот же модем нормально переключается как какой-то из старых версий usb_modeswitch, так и последней 2.2.0
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 11.08.2014 15:18 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
а порт для модема создается?
что пишет в ответ на команду:
Код
ls /dev/ttyU*


если портов нет, то как модем он не опознался..

почитайте что-то типа этого:
http://forum.ubuntu.ru/index.php?topic=232226.0

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
std_logic
Добавлено 11.08.2014 15:35 Сообщение: 5
std_logic
0

Пункты: 1133
Регистрация: 09.10.2012
Порты не создаются, я и застрял именно на переводе модема из режима "CD-ROM" в режим "модем". Для этих целей и планировалось воспользоваться всеми советуемой утилитой usb_modeswitch, которая однако не видит устройства которое нужно переключить, хотя по всем признакам оно есть.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 11.08.2014 16:18 Редактировалось 11.08.2014 16:26 Сообщение: 6
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Цитата

1) Просто включаю в buildroot галку usb_modeswitch. На плате при подключении модема вижу:
....
То есть по каким-то причинам он не не находит устройство для переключения.


он не прописан в конфиге старой версии - попробуйте добавить такое описание в /etc/usb_modeswitch.setup (без ; в начале - как написано в цитате)

Цитата

# Huawei EC156

DefaultVendor= 0x12d1
DefaultProduct=0x1505

TargetVendor= 0x12d1
TargetProduct= 0x140b

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

CheckSuccess=20


после этого достаточно по идее просто

# usb_modeswitch
Спуститься к концу Подняться к началу
Персональная информация
std_logic
Добавлено 11.08.2014 17:46 Сообщение: 7
std_logic
0

Пункты: 1133
Регистрация: 09.10.2012
Прописывать VID и PID в файле уже пробовал, результат ничем не отличается от того, когда их задаешь напрямую в команде.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 11.08.2014 18:05 Сообщение: 8
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Прописывать VID и PID в файле уже пробовал, результат ничем не отличается от того, когда их задаешь напрямую в команде.

на третьей странице вышеприведенной ссылки есть цитата:
Код
Нашел на иностарнных сайтах

1- Add these lines to /lib/udev/rules.d/40-usb_modeswitch.rules:
# Vodafone K5005 (Huawei E398)
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14c3", RUN+="usb_modeswitch '%b/%k'"

2- Create file /etc/usb_modeswitch.d/12d1:14c3:
# Vodafone K5005 (Huawei E398)
TargetVendor= 0x12d1
TargetProduct= 0x14c8
MessageContent="55534243123456780000000000000011062000000100000000000000000000"

3- Unplug device, plug it back and it should work automagically

у вас существует этот файл для udev из пункта 1?
и второй с откорректированными под себя Ven:Prod?
и еще, у вас случайно udev не статиком задан в билдруте? может попробовать руками прописать через mknod ttyUSB0?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
std_logic
Добавлено 11.08.2014 19:22 Сообщение: 9
std_logic
0

Пункты: 1133
Регистрация: 09.10.2012
Первый файл нужен только для автоматизации запуска usb_modeswitch при подключении устройства с заданным VID/PID, до этого пока еще не дошло. Второй тоже служит только для автоматического хранения настроек и его наличие ничем не отличается от того, что я передаю те же параметры напрямую. Вообще при моем вызове usb_modeswitch он выдает в логе вначале:
DefaultVendor= 0x12d1
DefaultProduct= 0x1505
То есть он знает какие id он должен искать, с этим никаких проблем, нигде дополнительно их указывать необязательно.

/dev management установлен в Dynamic using udev и другие устройства, например USB GPS приемник, без проблем появляются в /dev/ttyUSB*
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 12.08.2014 00:13 Редактировалось 12.08.2014 02:22 Сообщение: 10
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Цитата

Второй тоже служит только для автоматического хранения настроек и его наличие ничем не отличается от того, что я передаю те же параметры напрямую.


Цитата

# usb_modeswitch -W -v 12d1 -p 1505


в упор не вижу - где у вас в параметрах передается что-то кроме vid/pid

Цитата

MessageContent="55534243123456780000000000000011062000000100000000000000000000"


если что - это через параметр -M передается

Цитата

-M, --message-content <msg> command to send (hex number as string)


кстати насчет этого

Цитата

No devices in default mode or class found. Nothing to do. Bye.


помоему надо монтировать usbfs в proc на старых ядрах или это из-за старого usb_modeswitch (более вероятно) - не помню, вроде пока я не прописал у себя в /etc/fstab - не работало.

Цитата

usb /proc/bus/usb usbfs defaults 0 0


или попробуйте вручную смонтировать перед запуском usb_modeswitch

mount -t usbfs usbfs /proc/bus/usb

Посмотрите еще в ядре через menuconfig есть ли поддержка

Device Drivers --->
[*] USB support --->
[*] USB device filesystem (DEPRECATED)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux