[-]
Szybkie szukanie


Baner sklepu jdtech.pl
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Huawei E3131s-2 HiLink, problem z Ubuntu i USB3.0
18-07-2013, 13:02 (Ten post był ostatnio modyfikowany: 29-12-2014 04:08 przez szopen.)
Post: #1
Huawei E3131s-2 HiLink, problem z Ubuntu i USB3.0
Witam!

Posiadam modem Huawei e3131s-2 w wersji HiLink z najnowszym dostępnym firmware. Chciałem go zmusić do współpracy z linuxem na laptopie - Ubuntu 12.04, kernel 3.2.0-49.

Z tego co czytałem ten modem pod Ubuntu powinien działać w pełni automatycznie - podłączam go do USB, modem w tle łączy się już z siecią, jednocześnie w systemie pojawia się nowa karta sieciowa eth1 i automatycznie konfiguruje.

U mnie jest problem. W laptopie mam 4 porty USB i tylko na jednym działa tak że po podłączeniu faktycznie w systemie pojawia się eth1. Połączenie niby działa, ale w syslogu widzę, że wystąpiły błędy. Oto co się dzieje po podłączeniu do portu w którym faktycznie pojawia się eth1:

Kod:
[ 3387.508169] scsi10 : usb-storage 1-1.2:1.0
[ 3388.505700] scsi 10:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
[ 3388.510238] sr1: scsi-1 drive
[ 3388.512871] sr 10:0:0:0: Attached scsi CD-ROM sr1
[ 3388.513275] sr 10:0:0:0: Attached scsi generic sg3 type 5
# ----- BŁĘDY
[ 3388.698510] quiet_error: 5 callbacks suppressed
[ 3388.698519] Buffer I/O error on device sr1, logical block 7
[ 3388.698537] Buffer I/O error on device sr1, logical block 7
# -----
[ 3388.886275] usb 1-1.2: USB disconnect, device number 5
[ 3393.433923] usb 1-1.2: new high-speed USB device number 6 using ehci_hcd
[ 3393.530445] cdc_ether 1-1.2:1.0: eth1: register 'cdc_ether' at usb-0000:00:1a.0-1.2, CDC Ethernet Device, 58:2c:80:13:92:63
[ 3404.336015] eth1: no IPv6 routers present

Podkreśliłem w logu błędy które się pojawiają, czasem jest ich dużo więcej.

Na pozostałych 3 portach USB sytuacja wygląda inaczej. Po podłączeniu modemu nie dzieję się zupełnie nic. Jedyną oznaką że coś zostało podłączone są wpisy w logu:

Kod:
[ 3603.797729] usb 3-4: new high-speed USB device number 7 using xhci_hcd
[ 3603.817909] scsi11 : usb-storage 3-4:1.0
[ 3604.818197] scsi 11:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
[ 3604.822074] sr1: scsi-1 drive
[ 3604.823704] sr 11:0:0:0: Attached scsi CD-ROM sr1
[ 3604.823950] sr 11:0:0:0: Attached scsi generic sg3 type 5

Dodam, że w /dev nie pojawia się żaden napęd optyczny ( tutaj sr1 ), a napewno nic się nie montuje. Czasami, zazwyczaj po pierwszym podłączeniu modemu pojawia się monit ( używam Unity ):

Kod:
DBus error org.gtk.Private.RemoteVolumeMonitor.NotFound: The given volume was not found
.

Z tego co czytałem, modem zawsze z automatu startuje jako napęd optyczny. Następnie coś POWINNO wysłać do niego komendę ( SCSI lub usb_modeswitch ) o przełączeniu się w tryb HiLink ( cdc_ether ). Najdziwniejsze jest to, że coś faktycznie dzieje się, ale tylko na jednym porcie USB. Na pozostałych portach może coś zdołało by wysłać komendę do napędu SCSI jeżeli jeżeli istniał by on w ogóle w systemie.

Zna ktoś może mechanizm automatycznego przełączania się tych modemów pod Linuxem ? Czy jest to kwestia sterowników i oprogramowania dodanych przez twórców systemu czy przez twórców oprogramowania Huawei i ma to działać pod każdym systemem ? Gdybym wiedział jak POWINNO to działać, to może dowiedziałbym się dlaczego to nie działa i co zrobić żeby działało Wink.

Pozdrawiam.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
18-07-2013, 13:33
Post: #2
e3131s-2 HiLink, problem z Ubuntu.
O HiLinkach wiem za mało w tej kwestii, ale tutaj przełączania chyba nie ma - napęd USB i "końcówki" od Ethernetu wiszą jednocześnie - jeżeli np. Windows (a 7 i 8 ma je wbudowane) ma sterowniki, nie trzeba nic instalować ani konfigurować (poza samym modemem).

Czy te 3 gniazda to nie są przypadkiem 3.0? To by dużo wyjaśniało.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
18-07-2013, 14:56 (Ten post był ostatnio modyfikowany: 18-07-2013 14:56 przez baq.)
Post: #3
RE: e3131s-2 HiLink, problem z Ubuntu.
Cytat:Czy te 3 gniazda to nie są przypadkiem 3.0? To by dużo wyjaśniało.

Faktycznie coś jest z tym związane:

W laptopie mam 2 porty USB 3.0, a przynajmniej myślałem że tylko 2. Te dwa porty mają niebieskie złącza, a pozostałe czarne. Na tych złączach faktycznie modem nie działa. Natomiast działa tylko na jednym "czarnym" USB, a na drugim nie. Kluczem jest tutaj sterownik - wszystkie złącza USB na których modem NIE działa ładują sterownik magistrali xhci_hcd - dwa "niebieskie" i o dziwo jedno "czarne". Drugie "czarne" złącze ładuje już sterownik ehci_hcd no i tutaj modem już działa.

Sprawa się nieco wyjaśniła, ale: problemy wynikają z niekompatybilności modemu z xhci_hcd ( USB 3.0 ), czy złą obsługą USB 3.0 w systemie ( kiepskim sterownikiem ) ?

Dzięki za odpowiedź.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
18-07-2013, 15:35
Post: #4
e3131s-2 HiLink, problem z Ubuntu i USB3.0
Chodzi o problemy ze sterownikiem. A to dodatkowe gniazdo prawdopodobnie jest też USB 3.0 (sprawdź w instrukcji - lub obok jest oznaczenie "SS"), albo jest ono z funkcją ładowania urządzeń po uśpieniu komputera.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
20-07-2013, 19:54 (Ten post był ostatnio modyfikowany: 20-07-2013 19:56 przez baq.)
Post: #5
RE: e3131s-2 HiLink, problem z Ubuntu i USB3.0
Poszperałem trochę w internecie, m.in. na oficjalnym Launchpadzie Ubuntu i znalazłem przyczynę oraz rozwiązanie ( a nawet dwa ) problemu z modemami 3G i sterownikiem xhci_hcd.

Prawdopodobnie chodzi o to, że sterownik xhci_hcd jest na tyle szybki, że po podłączeniu modemu i wykryciu wirtualnego cd-romu zaczynają działać jednocześnie moduł obsługi pamięci masowych usb ( usb-storage ) oraz program usb_modeswitch - który ma zastosowanie właśnie do urządzeń posiadających kilka trybów pracy które czasami trzeba przełączyć ( właśnie modemy lub np. drukarki które prócz swojego głównego trybu mają także tryb pamięci masowej zawierającej sterowniki i/lub aplikacje ). Wtedy dochodzi do konfliktu między usb-storage i usb_modeswitch i modem nie przełącza się w tryb karty sieciowej.

Rozwiązania są dwa:
1) Opóźnić trochę start działania modułu usb-storage. Minusem jest to, że dotyczyć to będzie wszystkich urządzeń pamięci masowej podłączanych do komputera. Opóźnienie jakie trzeba ustawić jest rzędu 2 lub 3 sekundy w zależności od indywidualnej specyfikacji sprzętu. Opóźnienie to najlepiej dobrać experymentalnie.
2) Zrezygnować z usb_modeswitch, zamiast tego dodać regułkę do udev-a, który po 'zobaczeniu' stacji o odpowiednim ID wykona pewnien kod - a dokładniej wyślę komendę SCSI do stacji po której przełączy się ona w tryb karty sieciowej. Tutaj minusem jest to, że będzie działać tylko dla określonego modemu ( w tym przypadku e3131, dla innych trzeba po prostu wysłać inną komendę i wykrywać inny ID ).

Rozwiązanie 1:
Trzeba utworzyć lub zmodyfikować istniejący plik konfiguracji modułu usb-storage ( plik "/etc/modprobe.d/usb-storage.conf" ) i wpisać tam:
Kod:
options usb-storage delay_use=3
delay_use=3 oznacza 3 sekundową zwłokę, powinno działać w większości przypadków, jeśli nie to trzeba zwiększyć.
Teraz trzeba przeładować moduł ( albo zrobić reboot ):
Kod:
sudo rmmod usb-storage && sudo modprobe usb-storage
Można jeszcze sprawdzić czy wszystko poszło OK i wartość opóźnienia się zmieniła:
Kod:
cat /sys/module/usb_storage/parameters/delay_use
Jeżeli polecenie wyświetliło wartość którą ustawiliśmy to teraz po podłaczeniu modemu za kilka sekund powinna pojawić się w systemie karta eth*. Jeżeli nie, a dmesg sypie błędami to możliwe że trzeba zwiększyć wartość opóźnienia.

Rozwiązanie 2:
Pierwsze trzeba pobrać narzędzie które umożliwi wysłanie 'surowej' komendy do dysku SCSI. Program nazywa się sg_raw i znajduje się w paczce sg3-utils.
Kod:
sudo apt-get install sg3-utils
Teraz trzeba dodać regułkę dla udev-a, utworzyć plik "/etc/udev/rules.d/10-Huawei_e3131s-2.rules".
Wpisać do niego:
Kod:
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1F01*", SYMLINK+="hwcdrom", RUN+="/usr/bin/sg_raw /dev/hwcdrom 11 06 20 00 00 00 00 00 01 00"
Teraz po podłączeniu modemu udev zamiast wykonać domyślną akcję wywoła sg_raw który wyśle do dysku SCSI polecenie przełączenia się w tryb karty sieciowej co stanie się natychmiastowo i za parę sekund będzie w systemie widoczna karta sieciowa eth*.

Niektóre nowe notebooki mają tylko porty usb 3.0, jeżeli są pod kontrolą Linuxa i mają współpracować z modemem 3g to może być problem. Może powyższy opis kogoś uratuje Wink.
Znajdź wszystkie posty użytkownika
Podziękuj Odpowiedz cytując ten post
Odpowiedz 


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Huawei E3131 H (PLAY) miga cały czas na zielono Kamool96 69 10 112 16-09-2017 16:42
Ostatni post: szopen
  Huawei E3131 HiLink "play roaming" piotras 20 15 500 03-05-2017 15:11
Ostatni post: serek
  3131 Mac upgrade do Sierra PROBLEM nie działa Franka 3 631 28-04-2017 16:17
Ostatni post: jakubd
  Problem z modemem Huawei e3131 s2 Lorek 14 3 737 13-02-2017 19:36
Ostatni post: Lorek
  E3131h-2 HiLink? da1k1 5 1 450 12-01-2017 23:38
Ostatni post: jakubd