1,576

(225 odpowiedzi, napisanych Oprogramowanie / Software)

Postanowiłem przetestować działanie modemu Huawei E372 w trybie NDIS pod OpenWRT (jest to możliwe dzięki specjalnie przygotowanemu modułowi przez Cezarego).
Pierwszy problem na jaki się natknąłem to brak odpowiednich interfejsów po przełączeniu modemu. Po wysłaniu MessageContent="55534243000000000000000000000011060000000100000000000000000000" otrzymujemy:

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=12d1 ProdID=1506 Rev= 0.00
S:  Manufacturer=Huawei Technologies
S:  Product=HUAWEI Mobile
C:* #Ifs= 5 Cfg#= 1 Atr=c0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=usbserial_generic
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=07 Driver=usbserial_generic
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=03 Driver=usbserial_generic
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=02 Driver=usbserial_generic
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Ciekawą rzeczą jest, że numery protokołów kolejnych interfejsów odpowiadają konfiguracji ustawionej za pomocą komendy AT^SETPORT:

AT^SETPORT=?
1:MODEM
2:PCUI
3:DIAG
4:PCSC
5:GPS
6:GPS CONTROL
7:NDIS
A:BLUE TOOTH
B:FINGER PRINT
D:MMS
E:PC VOICE
A1:CDROM
A2:SD

AT^SETPORT?
a1;1,7,3,2,a2

Po zmianie MessageContent na "55534243000000000000000000000011062000000100000000000000000000" otrzymujemy:

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=12d1 ProdID=1506 Rev= 0.00
S:  Manufacturer=Huawei Technologies
S:  Product=HUAWEI Mobile
C:* #Ifs= 6 Cfg#= 1 Atr=c0 MxPwr=500mA
A:  FirstIf#= 1 IfCount= 2 Cls=02(comm.) Sub=00 Prot=00
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=usbserial_generic
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=09 Driver=(none)
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=08 Driver=usbserial_generic
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=03 Driver=usbserial_generic
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=02 Driver=usbserial_generic
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Odpowiednie interfejsy tym razem się pojawiły ale z klasą ff której moduł cdc_ether nie obsługuje.
Dopiero wysłanie MessageContent="55534243000000000000000000000011062000000000000000000000000000" powoduje pojawienie się odpowiednich interfejsów z odpowiednia klasą (zmienia nam się ProdID modemu):

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=12d1 ProdID=14ac Rev= 0.00
S:  Manufacturer=Huawei Technologies
S:  Product=HUAWEI Mobile
C:* #Ifs= 7 Cfg#= 1 Atr=c0 MxPwr=500mA
A:  FirstIf#= 1 IfCount= 2 Cls=02(comm.) Sub=00 Prot=00
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=ff Driver=cdc_ether
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Niestety po pewnym czasie pojawia się błąd i połączenie przestaje działać:

Oct 24 19:34:10 OpenWrt user.warn kernel: ------------[ cut here ]------------
Oct 24 19:34:10 OpenWrt user.warn kernel: WARNING: at net/sched/sch_generic.c:261 0x802102e8()
Oct 24 19:34:10 OpenWrt user.info kernel: NETDEV WATCHDOG: usb0 (cdc_ether): transmit queue 0 timed out
Oct 24 19:34:10 OpenWrt user.warn kernel: Modules linked in: fuse usbserial cdc_ether usbnet ledtrig_usbdev nf_nat_tftp nf_conntrack_tftp nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_conntrack_ftp ipt_MASQUERADE iptable_nat nf_nat xt_NOTRACK iptable_raw xt_state nf_conntr
Oct 24 19:34:10 OpenWrt user.warn kernel: Call Trace:[<80069378>] 0x80069378
Oct 24 19:34:10 OpenWrt user.warn kernel: [<80069378>] 0x80069378
Oct 24 19:34:10 OpenWrt user.warn kernel: [<800874b0>] 0x800874b0
Oct 24 19:34:10 OpenWrt user.warn kernel: [<802102e8>] 0x802102e8
Oct 24 19:34:10 OpenWrt user.warn kernel: [<80087530>] 0x80087530
Oct 24 19:34:10 OpenWrt user.warn kernel: [<801fba14>] 0x801fba14
Oct 24 19:34:10 OpenWrt user.warn kernel: [<802102e8>] 0x802102e8

1,577

(62 odpowiedzi, napisanych Oprogramowanie / Software)

Co do kości samsung'a to wszystkie z listy poniżej powinny zadziałać:

K4H511638G-LCCC
K4H511638F-LCCC
K4H511638D-UCCC
K4H511638C-UCCC
K4H511638B-UCCC
K4H511638B-TCCC

Ważne żeby na końcu było CC bo to oznacza 400MHz smile

1,578

(62 odpowiedzi, napisanych Oprogramowanie / Software)

batu napisał/a:

•Hynix    HY5DU121622CTP-D43 niby 400Mhz  aczkolwiek widziałem je na kości do laptopa PC2700 z opisem 333

Na pewno pracują z częstotliwością 400MHz (ściągawkę odnośnie kości Hynix'a można znaleźć tutaj: http://www.hynix.com/inc/pdfDownload.js … wn/DDR.pdf).

Mam takie 2 kości i się zastanawiam czy ich nie zamontować smile
Czy ktoś z Krakowa zajmuje się takimi rzeczami?

1,579

(127 odpowiedzi, napisanych Oprogramowanie / Software)

Mam taka jedną małą uwagę co do projektu "3ginfo". Informacje na temat przydzielonego profilu QoS są błędne.
W przypadku mojego połączenia 42 Mbps wyświetlają się wartości:

Profil UMTS QoS:8640 kbps DOWN | 70410 kbps UP

Prawidłowe wartości profilu QoS to: 42000 kbps/5440 kbps.
Żeby można było odczytywać te wartości musimy wysłać do modemu komendę (wystarczy zrobić to raz):

AT^DSFLOWRPT=1

Później odczytując port dostajemy:

^DSFLOWRPT:00000074,00000000,00000000,00000000001157E6,000000000055218C,000A6040,00501BD0

gdzie kolejno mamy:

^DSFLOWRPT: N1, N2, N3, N4, N5, N6, N7 
        N1: Connection duration in seconds 
        N2: measured upload speed in bytes per second
        N3: measured download speed in bytes per second
        N4: number of sent data during this session
        N5: number of received data during this session
        N6: connection, supported by the maximum upload speed (N6/0x7D = QoS up assigned profile)
        N7: connection, supported by a maximum download speed (N7/0x7D = QoS down assigned profile)

Jest jeszcze komenda AT^DSFLOWCLR która czyści statystyki oraz:

AT^DSFLOWQRY
AT^DSFLOWQRY:<last_connection_time>,<last_tx_flow>,<last_rx_flow>,<total_connected_time>,<total_tx_flow>,<total_rx_flow>

Wszystkie wartości są odczytywane w postaci heksadecymalnej.
Niestety ale działa to tylko z modemami Huawei.

1,580

(25 odpowiedzi, napisanych Oprogramowanie / Software)

Pojawiła się aktualizacja firmware dla tego routera na stronie producenta. Czy da się z niej coś odczytać na temat sprzętu?

Cezary napisał/a:

Przełączył się modem, bo disktype partycję zidentyfikowało.

Myślałem, że moduł usbserial przejął kontrolę nad interfejsami storage (ale tak dzieje się tylko wtedy jeśli ładujemy moduł usbserial podając vendor i product jako parametr). Pisałem o tym tutaj ale odpowiedzi brak smile

Fantom
Możesz pokazać wynik polecenia "cat /proc/bus/usb/devices"?

1,583

(104 odpowiedzi, napisanych Oprogramowanie / Software)

Trzeci interfejs jest nadal kontrolowany przez moduł option. Spróbuj usunąć plik 65-usb-serial-option z /etc/modules.d i zrobić restart. Ale podejrzewam, że nic to nie da...

1,584

(104 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Napisałem żeby to zrobił...

Myślałem, że chodziło Ci tylko o dodanie parametru maxSize.

markus02
Pokaż wynik polecenia "cat /proc/bus/usb/devices" po dokonaniu zmian w pliku 60-usb-serial.

1,585

(104 odpowiedzi, napisanych Oprogramowanie / Software)

A może to wina modułu option? Pamiętam, że kiedyś miałem z nim problemy wydajnościowe.
Spróbuj załadować moduł usb-serial z parametrami:

usbserial vendor=0x12d1 product=0x1506 maxSize=16384

U siebie osiągam prędkości 12/2,5Mbps na modemie usb HSPA+.

1,586

(4 odpowiedzi, napisanych Oprogramowanie / Software)

Problem prawdopodobnie tkwi w kolejności ładowania modułów. Moduł usb-serial jest ładowany przed usb-storage i to on próbuje obsłużyć interfejs storage. Zmień kolejność ładowania modułów (zmiana nazwy pliku /etc/modules.d/60-usb-storage na /etc/modules.d/59-usb-storage).

1,587

(13 odpowiedzi, napisanych Oprogramowanie / Software)

Mam podobny problem z modemem 3g usb i kartą pamięci wewnątrz. Po pewnym czasie używania dostaję błędy:

usb-storage: waiting for device to settle before scanning
scsi 6:0:0:0: CD-ROM            Vodafone CD ROM (Huawei)  2.31 PQ: 0 ANSI: 2
scsi 7:0:0:0: Direct-Access     Vodafone Storage (Huawei) 2.31 PQ: 0 ANSI: 2
usb-storage: device scan complete
usb-storage: device scan complete
sd 7:0:0:0: [sdb] 15954944 512-byte logical blocks: (8.16 GB/7.60 GiB)
sd 7:0:0:0: [sdb] Write Protect is off
sd 7:0:0:0: [sdb] Mode Sense: 0f 0e 00 00
sd 7:0:0:0: [sdb] Assuming drive cache: write through
sd 7:0:0:0: [sdb] Assuming drive cache: write through
 sdb: sdb1
sd 7:0:0:0: [sdb] Assuming drive cache: write through
sd 7:0:0:0: [sdb] Attached SCSI removable disk
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=11, block=490
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=376097, block=1507330
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=408801, block=1638402
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=114465, block=458754
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=237105, block=950274
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=392449, block=1572866
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=12, block=490
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=13, block=490
EXT2-fs error (device sda1): ext2_get_inode: unable to read inode block - inode=14, block=490

Na karcie jest tylko jedna partycja. Korzysta z niej vsftpd i minidlna. Partycja jest skanowana przed zamontowaniem.

Mój fstab:

config global automount
        option from_fstab 1
        option anon_mount 0

config global autoswap
        option from_fstab 0
        option anon_swap 0

config mount
        option target   /mnt/sda1
        option device   /dev/sda1
        option fstype   ext2
        option options  rw,noatime,nodiratime,async
        option enabled  1
        option enabled_fsck     1
        option is_rootfs        0
        list service    vsftpd
        list service    minidlna

config swap
        option device   /dev/sda98
        option enabled  0

Czy to oznacza, że karta jest uszkodzona? Czy może moje ustawienia montowania są nieodpowiednie.

Zauważyłem, że problem jest gdzie indziej. Jeśli mam zamontowana partycję z urządzenia /dev/sda1 i odłączę modem to urządzenie to nie znika. Po ponownym podłączeniu pojawia się jako /dev/sdb1. Czy można coś na to zaradzić?

1,588

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Poprawny plik konfiguracyjny 0bc3:0200 (chyba):

########################################################
# IPWireless Speed 1000

DefaultVendor= 0x0bc3
DefaultProduct=0x0200

TargetVendor=  0x0bc3
TargetProduct= 0x0100

MessageContent="555342430bc3010000000000000010cf190308370104000000000000000000"

CheckSuccess=20

NoDriverLoading=1

Po poprawnym przełączeniu pojawiają się 3 interfejsy:
- Interface 0 - Class 02 (Communications and CDC Control)
- Interface 1 - Class 0a (CDC-Data)
- Interface 2 - Class ff (Vendor Specific)

Podejrzewam, że driver usb-serial-ipw nie obsłuży tego modemu. Spróbuj zainstalować drivery usb-acm/usb-net-cdc-ether. Jeśli one nie wykryją urządzenia to pozostaje napisanie własnego drivera (tak jak dla Samsung'a GT-B3730 - https://github.com/mkotsbak/Samsung-GT- … nux-driver).

1,589

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Możesz jeszcze sprawdzić:

usb_modeswitch -W -v 0x0bc3 -p 0x0200 -I 0 -m 0x02 -M "555342430bc3010000000000000010cf190308370104000000000000000000" -r 0x82

Więcej pomysłów już nie mam.

1,590

(56 odpowiedzi, napisanych Oprogramowanie / Software)

mayka napisał/a:

I rozumiem że chodziło 0b3c:0200 a nie  0cf3:0200 wink

Tak, tak smile

A czy ręczne wywołanie usb_modeswitch cos da?

usb_modeswitch -W -v 0x0bc3 -p 0x0200 -M "555342430bc3010000000000000010cf190308370104000000000000000000"

1,591

(56 odpowiedzi, napisanych Oprogramowanie / Software)

A co wyświetla usb_modeswitch (usb_modeswitch -W -c /etc/usb_modeswitch.d/0cf3\:0200)?

1,592

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Modem nie został przełączony. Po przełączeniu ProdID powinien się zmienić na 0100.

Sprawdź taką konfigurację:

########################################################
# IP Wireless Speed 1000

DefaultVendor= 0x0b3c
DefaultProduct=0x0200

TargetVendor=  0x0b3c
TargetProduct= 0x0100

MessageContent="555342430bc3010004000000800010cf190208340400000000000000000000"
MessageContent2="555342430bc3010000000000000010cf1903083301a7000000000000000000"
MessageContent3="555342430bc3010000000000000010cf1903082f0100000000000000000000"
MessageContent4="555342430bc3010000000000000010cf1903080a0100000000000000000000"
MessageContent5="555342430bc3010000000000000010cf190308370104000000000000000000"

NeedResponse=1
CheckSuccess=20

1,593

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Pokaż wynik:

cat /proc/bus/usb/devices

1,594

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Sprawdź taką konfigurację 0b3c_0200:

########################################################
# IP Wireless Speed 1000

DefaultVendor= 0x0b3c
DefaultProduct=0x0200

TargetVendor=  0x0b3c
TargetProduct= 0x0100

MessageContent="555342430bc3010000000000000010cf190308370104000000000000000000"
NeedResponse=1
CheckSuccess=20

1,595

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Odinstaluj filtry dla wszystkich urządzeń poza USB\VID_0BC3&PID_0200. Później odłącz i podłącz modem, poczekaj aż się przełączy i podeślij logi: C:\WINDOWS\UsbSnoop.log

1,596

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Pobierz ten program: http://www.pcausa.com/Utilities/UsbSnoop/.
Po uruchomieniu zaznacz opcję: List Devices Not Present. Podeślij listę urządzeń które maja Vid_0bc3 (razem z Description).

1,597

(56 odpowiedzi, napisanych Oprogramowanie / Software)

mayka
Pełne logi z USBTrace powinny wyglądać tak: http://img860.imageshack.us/img860/2443/usbtrace.png.
Jeśli je zamieścisz to postaram się pomóc. Możesz też spróbować zalogować operacje przełączenia przy pomocy UsbSnoop.

1,598

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Niestety ale w tych logach nic nie ma...

1,599

(56 odpowiedzi, napisanych Oprogramowanie / Software)

Można to zrobić za pomocą np. USBTrace. Trzeba zaznaczyć opcję "Capture Hot Plugged Devices", uruchomić przechwytywanie a następnie podłączyć modem do komputera. Przechwytywanie powinno się zatrzymać w momencie kiedy modem zostanie przełączony. Jeden z ostatnich zalogowanych pakietów powinien być tym prawidłowym.

1,600

(56 odpowiedzi, napisanych Oprogramowanie / Software)

usb-modeswitch nie przełączył modemu. Brakuje pliku konfiguracyjnego dla tego modemu. Trzeba wyśledzić pod Windowsem jaki pakiet przełącza modem i stworzyć plik konfiguracyjny.