Для моей Nokia N900 есть программа QtMobileHotSpot, которая умеет расшаривать по Wi-Fi либо через USB интернет от мобильного оператора. По Wi-Fi всё хорошо работает, вопросов нет. Но как с USB поступить? В Сети видел, что на убунтах он сразу как модем определяется, так что в принципе работать это должно, но у меня usb_modeswitch никак не хочет переключить режим.
Вот что происходит, когда я телефон соединяю кабелем:
dmesg:
[ 241.559043] usb 2-3: new high-speed USB device number 4 using ehci_hcd
[ 241.675426] scsi7 : usb-storage 2-3:1.0
[ 242.676682] scsi 7:0:0:0: Direct-Access Nokia N900 031 PQ: 0 ANSI: 2
[ 242.677043] sd 7:0:0:0: Attached scsi generic sg2 type 0
[ 242.682399] sd 7:0:0:0: [sdb] Attached SCSI removable disklsusb:
Bus 002 Device 006: ID 0421:01c7 Nokia Mobile Phones N900 (Storage Mode)А вот я выбираю в QtMobileHotSpot режим USB:
dmesg:
[ 405.770069] usb 2-3: USB disconnect, device number 4
[ 406.291059] usb 2-3: new high-speed USB device number 5 using ehci_hcdlsusb:
Bus 002 Device 009: ID 0525:a4a2 Netchip Technology, Inc. Linux-USB Ethernet/RNDIS GadgetДальше пробую переключить:
# usb_modeswitch -v 0525 -p a4a2
Looking for default devices ...
found matching product ID
adding device
Found device in default mode, class or configuration (1)
Accessing device 009 on bus 002 ...
Getting the current device configuration ...
OK, got current device configuration (1)
Using interface number 0
Error: message endpoint not given or found. Aborting.Логов usb_modeswitch не создаёт (соответствующую переменную в конфиге включил).
Режим --verbose говорит следующее:
# usb_modeswitch -v 0525 -p a4a2 -W
Taking all parameters from the command line
* usb_modeswitch: handle USB devices with multiple modes
* Version 1.2.5 (C) Josua Dietze 2012
* Based on libusb0 (0.1.12 and above)
! PLEASE REPORT NEW CONFIGURATIONS !
DefaultVendor= 0x0525
DefaultProduct= 0xa4a2
TargetVendor= not set
TargetProduct= not set
TargetClass= not set
TargetProductList=""
DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
QisdaMode=0
GCTMode=0
KobilMode=0
SequansMode=0
MobileActionMode=0
CiscoMode=0
MessageEndpoint= not set
MessageContent=""
NeedResponse=0
ResponseEndpoint= not set
InquireDevice enabled (default)
Success check disabled
System integration mode disabled
usb_set_debug: Setting debugging level to 15 (on)
usb_os_find_busses: Found 008
usb_os_find_busses: Found 007
usb_os_find_busses: Found 006
usb_os_find_busses: Found 005
usb_os_find_busses: Found 004
usb_os_find_busses: Found 003
usb_os_find_busses: Found 002
usb_os_find_busses: Found 001
usb_os_find_devices: Found 001 on 008
usb_os_find_devices: Found 001 on 007
usb_os_find_devices: Found 004 on 006
skipped 1 class/vendor specific interface descriptors
usb_os_find_devices: Found 001 on 006
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 001 on 005
usb_os_find_devices: Found 001 on 004
usb_os_find_devices: Found 001 on 003
usb_os_find_devices: Found 007 on 002
skipping descriptor 0x9
skipped 1 class/vendor specific endpoint descriptors
skipped 4 class/vendor specific interface descriptors
skipping descriptor 0x9
skipped 1 class/vendor specific endpoint descriptors
skipped 3 class/vendor specific interface descriptors
usb_os_find_devices: Found 001 on 002
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 002 on 001
skipping descriptor 0xB
skipped 1 class/vendor specific endpoint descriptors
skipped 5 class/vendor specific interface descriptors
skipping descriptor 0x25
skipped 1 class/vendor specific endpoint descriptors
skipped 9 class/vendor specific interface descriptors
usb_os_find_devices: Found 001 on 001
error obtaining child information: Inappropriate ioctl for device
Looking for default devices ...
searching devices, found USB ID 1d6b:0001
searching devices, found USB ID 1d6b:0001
searching devices, found USB ID 09da:000a
searching devices, found USB ID 1d6b:0001
searching devices, found USB ID 1d6b:0001
searching devices, found USB ID 1d6b:0001
searching devices, found USB ID 1d6b:0001
searching devices, found USB ID 0525:a4a2
found matching vendor ID
found matching product ID
adding device
searching devices, found USB ID 1d6b:0002
searching devices, found USB ID 1210:25f4
searching devices, found USB ID 1d6b:0002
Found device in default mode, class or configuration (1)
Accessing device 007 on bus 002 ...
Getting the current device configuration ...
OK, got current device configuration (1)
Using interface number 0
Error: message endpoint not given or found. Aborting.
Как я понимаю, проблема с message endpoint из-за того, что не заданы TargetProduct и TargetVendor. Да, я видел в примерах в Сети, что кроме параметров -v и -p используются так же -V и -P, причём -V совпадает с -v, а -P принимает отдельное значение. Но откуда оно берётся?
Или у меня вообще в корне неверный подход и нужно делать по другому?

