1

Tråd: Linux och E270+

Hej,
Någon som fått Huawei E270+ att fungera i Linux? Har letat på nätet utan framgång. Verkar finnas flera metoder för E220, E270 etc men ingen som specifikt nämner E270+.

2

Sv: Linux och E270+

Har försökt få tag i ett E270+ modem utan att lyckas en.
Inte direkt att de har spridit sig en så länge, känns som Sverige är en av de första som fått in en last.
Också försökt snacka med Tele2 om att signa om abbet för att få det nya modemet men de ville de inte.

Så får kanske ta och köpa ett nytt abb och ta utan bindning eller nått.

Gillar prylar, 2G/3G/4G, den som har mest prylar när den dör vinner!

3

Sv: Linux och E270+

Bokade abonnemang med Tele2. Fick modemet efetr 3-4 dagar. Men som sagt, verkar vara väldigt svårt att hitta något angående E270+ och Linux.

4 Senaste redigerad av andraxin (2009-05-22 13:11:21)

Sv: Linux och E270+

Efter en del irriterande detaljer funkar modemet i "RAS mode".
Jag har inte lyckats lista ut hur man aktiverar "NDIS mode" i Linux.

1) Patch and recompile your option driver to trigger on 12d1:14ac
   (that's the vendorID:productID for my E270+)

--- /tmp/linux-2.6.29/drivers/usb/serial/option.c
+++ drivers/usb/serial/option.c
@@ -158,6 +158,7 @@
 #define HUAWEI_PRODUCT_E143D           0x143D
 #define HUAWEI_PRODUCT_E143E           0x143E
 #define HUAWEI_PRODUCT_E143F           0x143F
+#define HUAWEI_PRODUCT_E14AC           0x14AC

 #define QUANTA_VENDOR_ID           0x0408
 #define QUANTA_PRODUCT_Q101            0xEA02
@@ -395,6 +396,7 @@
    { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) },
    { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) },
    { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) },
+   { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC) },
    { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) },
    { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */
    { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */

2) Använd 'usb_modeswitch' för att byta från zero-CD till modem läge.
    ("Kod" biten nedan ska till '/etc/usb_modeswitch.conf')

######################################################## 
# Huawei E270+  (HSPA+ modem)
#
# after the switch, the "option" driver registers ttyUSB[0-3]
# (depending on kernel version, the driver may need to be patched
#  to trigger on 12d1:14ac)
#
# Huawei's software on Windows uses the card in "NDIS  mode"
# with an Ethernet interface (this should be possible to do
# in Linux as well; HOW?)
#

DefaultVendor=  0x12d1
DefaultProduct= 0x1446

TargetVendor=   0x12d1
TargetProduct=  0x14ac

MessageContent="55534243000000000000000000000011060000000000000000000000000000"

CheckSuccess=5

Lycka till!

5

Sv: Linux och E270+

Jag ska alltså ändra i option.c och kompiliera om den? Jag är rätt ny på Linux så kanske någon kan hjälpa mig här...
Jag kör eeebuntu på min eeePC 901 men kan inte hitta någon option.c fil. Var bör jag hitta den? Eller kan den heta något annat?

6 Senaste redigerad av andraxin (2009-06-01 00:28:48)

Sv: Linux och E270+

Hmm... har du ens källkoden till din kärna på den lilla datorn?
Den brukar finnas i separata "paket" (kernel-source, linux-source,
eller liknande).

Du kan enkelt testa med kommandon (i 'bash')

$ ls -l /lib/modules/$(uname -r)/source

Funkar det, så borde källkoden till option
drivrutinerna finnas därunder:

$ ls  /lib/modules/$(uname -r)/source/drivers/usb/serial/option.c

MEN, du behöver egentligen bara ändra 1 byte
i din nuvarande 'option.ko' (om du har en sådan).

$ /sbin/modinfo option
...
alias:          usb:v12D1p143Fd*dc*dsc*dp*icFFiscFFipFF*   <<< 12d1:14_3f_
alias:          usb:v12D1p143Ed*dc*dsc*dp*icFFiscFFipFF*
alias:          usb:v12D1p143Dd*dc*dsc*dp*icFFiscFFipFF*
alias:          usb:v12D1p143Cd*dc*dsc*dp*icFFiscFFipFF*
...

Om 'modinfo' ger vettigt svar, du kan överskriva en annan
Huawei produktID  med den du behöver för din modem (se
följande exemplet, där jag visar hur man ersätter '3f' med
'ac' i 12d1:143f).
Annars måste du installera källkodpaketet för din kärna
och bygga 'custom module'.  (Google is your friend! ;-))

$ lsusb
...
Bus 001 Device 013: ID 12d1:1446 Huawei Technologies Co., Ltd.   <<< _46_ 
...
$ usb_modeswitch
...
blah-blah (Switch successful) blah-blah  (-;
...
$ lsusb
...
Bus 001 Device 013: ID 12d1:14ac Huawei Technologies Co., Ltd.   <<< _ac_
...
$ cp /lib/modules/$(uname -r)/kernel/drivers/usb/serial/option.ko .
$ od -Ad -tx2 -w2 option.ko | grep -A2 12d1
...
0023478 12d1
0023480 143e
0023482 0000
--
0023498 12d1
0023500 143f       <<<  rätt offset
0023502 0000
$ echo -n $'\xac' | dd of=option.ko bs=1 seek=23500 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte (1 B) copied, 0.000501181 s, 2.0 kB/s
$ od -Ad -tx2 -w2 option.ko | grep -A2 12d1
...
0023478 12d1
0023480 143e
0023482 0000
--
0023498 12d1
0023500 14ac       <<<  kolla!!
0023502 0000

Om allt gick som det skulle, borde du ha en "patched"
option.ko nu.  Den måste tillbaka till sin plats i /lib/modules,
och du måste vara 'root' (i.e. sudo) för att kunna överskriva
din nuvarande modul (se till att ta en säkerhetskopia innan!)

$ sudo modprobe -r option
$ cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
$ sudo mv option.ko option.ko-SAVE
$ cd -
$ cp option.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
$ sudo modprobe option

Hope this helps....

7

Sv: Linux och E270+

Fantastisk - det fungerar! Tack!

För att sammanfatta, så här gjorde jag;
0) Lägg till en anslutning till mobilt bredband. På min eeePC 901 med eeeBuntu högerklickar jag på ikonen Nätverksanslutningar och väljer "Redigera anslutningar...". Ange några inställningar t.ex PIN kod om det används osv. Markera också anslut automatiskt

1) Ladda ner programmet usb_modeswitch från http://www.draisberghof.de/usb_modeswitch/#download

2) Packa upp filen och installera. (Bra instruktioner finns på samma sida.) Filen som ska exekveras heter usb_modeswitch och placeras förslagsvis i /usr/sbin/.
Flytta också filen usb_modeswitch.conf till /etc/. (Detta är en konfigurationsfil för programmet).
Kolla att filen är körbar genom att att skriva t.ex.

$ /usr/sbin/usb_modeswitch -h

 * usb_modeswitch: tool for controlling "flip flop" mode USB devices
 * Version 0.9.8 (C) Josua Dietze 2009
 * Works with libusb 0.1.12 and probably other version

Usage: usb_modeswitch [-hvpVPmMrdHn] [-c filename]
...

Är filen inte körbar testa att ändra rättigheter. T.ex.

 $ sudo chmod a+rx /usr/sbin/usb_modeswitch

3) Konfigurera usb_modeswitch genom att ändra /etc/usb_modeswitch.conf genom att lägga till de rader som andraxin beskrivit i tidigare inlägget. För säkerhets skull, kommentera ut alla andra modem beskrivna i filen. (En rad med första tecknet # tolkas som kommentar).

4) Kontrollera att usb_modeswitch nu gör vad det ska.
Sätt i modemet i datorn. Använd sedan lsusb kommandot för att jämföra resultat före och efter usb_modeswitch;

$ lsusb
...
Bus 001 Device 013: ID 12d1:1446 Huawei Technologies Co., Ltd.   <<< Produktid innan är 1446
...
$ /etc/usb_modeswitch  <<< Begär att modemet ska byta läge
...
blah-blah (Switch successful) blah-blah  (-;
...
$ lsusb
...
Bus 001 Device 013: ID 12d1:14ac Huawei Technologies Co., Ltd.   <<< Produktid efter ska vara 14ac
...

5. Fungerar detta står nu modemet i rätt läge. Dock finns det ingen drivrutin till modemet ännu. Följ  instruktioner från andraxin ovan. Jag ändrade i befintlig fil option.ko istället för att kompiliera om - fungerar utmärkt och kändes mycket lättare.

6. Nu måste drivrutinen laddas. Detta görs med kommandot

$ sudo modprobe option

Voila! Nu ska det fungera att koppla upp modemet!

7) Alltså för att att få igång det hela behöver man först köra usb_modeswitch och sedan modprobe. Detta kan automatiseras genom att skriva ett skript /usr/sbin/my_huawei_switch.sh. 

#!/bin/sh
/usr/sbin/usb_modeswitch
sleep 5  # probably not necessary, try out
/sbin/modprobe  option

Glöm  inte att göra filen exekverbar genom t.ex. $ sudo chmod a+rx my_huawei_switch.sh.

8) När USB modement sätts i datorn triggas vissa signaler. Genom att skapa en fil /lib/udev/rules.d/10-local.rules kan man säga till Ubnutu att köra skriptet my_huawei_switch.sh när modemet ansluts till datorn. Då ska allt ske helt automatiskt utan ett enda kommando i terminalfönstret!
Du måste dock ha paketet udev installerat för att detta ska fungera. 

# Rules to trigger Huawei E270+ modem
#
SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/my_huawei_switch.sh"

Hoppas detta kan hjälpa någon mer att få sitt Huawei E270+ att fungera i Linux!
Hoppas också att jag fick det rätt ovan - är helt ny på Linux själv.


Tack andraxin för hjälpen!! Tur det finns forum som detta. (På Tele2 supporten hade man aldrig sett en dator med Linux...)

8

Sv: Linux och E270+

snozerman skrev:

5. Fungerar detta står nu modemet i rätt läge. Dock finns det ingen drivrutin till modemet ännu. Följ  instruktioner från andraxin ovan. Jag ändrade i befintlig fil option.ko istället för att kompiliera om - fungerar utmärkt och kändes mycket lättare.

Finns det någon möjlighet att få tillgång till denna modifierade option.ko?
Har meckat lite men får ingen ordning på värdena, även om jag ändrar i filen ligger det gamla värdet kvar...
Modprobe-kommandot fungerar för tillfället inte i Ubuntu... Debian bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=517954

9 Senaste redigerad av LinusU (2009-09-02 18:12:07)

Sv: Linux och E270+

Hej!

Tänkte bara tacka så jättemycket för bra instruktioner och meddela att de fungerade utmärkt. Ända problemet jag hade var att jag var tvungen att köra "usb_modeswitch" som root (dvs. "sudo usb_modeswitch").

En annan sak jag kom att tänka på var att udev reglen borde kanske inte heta 10 före utan 85 (80-89) eftersom det är ett program som startar ett annat program. Det verkar även onödigt att köra "modprobe option" efteråt eftersom såvitt jag vet så laddas den när man startar datorn.

MvH
//Linus Unnebäck
Perfect Ending HB

10 Senaste redigerad av LinusU (2009-09-02 18:23:52)

Sv: Linux och E270+

Hej igen!

Tänkte bara nämna för er som vill ha usb_modeswitch som ett deb-packet att finns finns det för Ubuntu Karmic Koala. Detta fungerade dock bra på Jaunty Jackalope också...

http://packages.ubuntu.com/karmic/usb-modeswitch

Här är även min /lib/udev/rules.d/85-e270p.rules

SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="usb_modeswitch"

Den verkar fungera bra men jag har inte startat om datorn eller provat så mycket över huvud taget ännu; så använd den på egen risk.

Uppdatering: Det verkar inte som min udev-rule fungerar. Vet dock inte om det beror på att den inte körs som root, om den är för snabb eller om någon annan udev-sak skriver över den (vet inget om udev, kan den göra så?). Hjälp uppskattas självklart.

MvH
//Linus Unnebäck
  Perfect Ending HB

11

Sv: Linux och E270+

LinusU vilken hastighet upp/ner fick du med 270+?

Mvh
Mathias

12

Sv: Linux och E270+

Hej Mathias!

Enligt bredbandskollen(tptest) så har jag 2,1mbit ner och 0,9mbit upp med en svarstid på 90ms.

MvH
//Linus Unnebäck
  Perfect Ending HB

13

Sv: Linux och E270+

Jag skickade in den patchade option.c till www.linux.org för några månader sedan.

Patchen finns nu i Linux kernel 2.6.31-17

Fick Linux kernel 2.6.31-17 till Ubuntu igår som uppdatering.

Och nu funkar E270+ out of the box smile Det verkar som att det atomatiskt görs en mode swith.

14

Sv: Linux och E270+

Och hastigheten?

15

Sv: Linux och E270+

bredbandskollen.se

Skicka 1.17 Mbit/sek
Ta emot 4.25 Mbit/sek
Svarstid: 99 ms Mätserver: Sthlm

Det verkar som att Tele2 har dålig kapacitet för mobilt bredband i Hudiksvall.

Tidigt på morgonen har jag en download på 6 Mbit/sek.

16

Sv: Linux och E270+

troligen dålig täckning med telias ADSL stamnät då brukar 3G nätet vara hårdbelastat med torrentleechers.

prova i slutet av månaden, är det bättre då = hård belastning kolla på andra operatörer om bättre,
finns bara X antal portar att skicka data på, och dom delas mellan alla surfare och röstsamtalen.

17

Sv: Linux och E270+

När jag kör direkt via Ubuntu så får jag:

Upp: 1.11 Mbit/s
Ned: 5.31 Mbit/s
Tid: 104 ms

Vilket verkar vara mer än när jag kör med Dovadon, vad kan detta bero på?