Author Message

<  Device Information  ~  I'm stuck with a Huawei device

PostPosted: Tue Sep 20, 2011 7:38 pm
Posts: 7Joined: Tue Sep 20, 2011 2:38 pm
Hi,

I have bought a Ubuntu laptop (thinkpad x121e) but it has no internal modem (which caught me be surprise, since it had a sim-card-reader). So, I bought a usb stick from t-mobile, which seems to be an as of yet unsupported Huawei device. According to lsusb on my laptop:
idVendor 0x12d1 Huawei Technologies Co., Ltd.
idProduct 0x14fe
iManufacturer 2 HUAWEI
iProduct 1 HUWAI Mobile
iSerial 0

The laptop is running Ubuntu 11.04 / natty

When I insert the stick I get:
Code:
Sep 20 18:28:44  kernel: [ 5340.920308] usb 1-1: new high speed USB device using ehci_hcd and address 10
Sep 20 18:28:45  kernel: [ 5341.299932] scsi10 : usb-storage 1-1:1.0
Sep 20 18:28:45  kernel: [ 5341.300846] scsi11 : usb-storage 1-1:1.1
Sep 20 18:28:46  kernel: [ 5342.302478] scsi 10:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
Sep 20 18:28:46  kernel: [ 5342.302680] scsi 11:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
Sep 20 18:28:46  kernel: [ 5342.304808] sd 11:0:0:0: Attached scsi generic sg2 type 0
Sep 20 18:28:46  kernel: [ 5342.309415] sd 11:0:0:0: [sdc] Attached SCSI removable disk
Sep 20 18:28:46  kernel: [ 5342.314881] sr0: scsi-1 drive
Sep 20 18:28:46  kernel: [ 5342.315351] sr 10:0:0:0: Attached scsi CD-ROM sr0
Sep 20 18:28:46  kernel: [ 5342.315615] sr 10:0:0:0: Attached scsi generic sg3 type 5

Packages usb-modeswitch 1.1.7-1 and usb-modewitch-data 20110227-2 are installed.
I checked /usr/share/configPack.tar.gz but the id 12d1:14fe was not present (nor 12d1:1506, see below).

I tried manually to switch the device, looking at device_reference.txt, but no luck in so far as I could see (usb_modeswitch said it failed and no change in syslog).

I used usb_modeswitch -c test.txt with lines like:
Code:
DefaultVendor= 0x12d1
DefaultProduct=0x14fe

TargetClass=0xff

CheckSuccess=20

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

which gave

Code:
Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
 Found devices in default mode, class or configuration (1)
Accessing device 012 on bus 001 ...
Getting the current device configuration ...
 OK, got current device configuration (1)
Using endpoints 0x0f (out) and 0x8f (in)
Using endpoints 0x0f (out) and 0x8f (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: HUAWEI 
   Model String: Mass Storage   
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI
     Product: HUAWEI Mobile
  Serial No.: not provided
-------------------------
Setting up communication with interface 0 ...
Using endpoint 0x0f for message sending ...
Trying to send message 1 to endpoint 0x0f ...
 OK, message successfully sent
Resetting response endpoint 0x8f
Resetting message endpoint 0x0f
 Error resetting endpoint: -71
 Device is gone, skipping any further commands

Checking for mode switch (max. 20 times, once per second) ...
 Searching for target devices ...
...
 Searching for target devices ...
 No new devices in target mode or class found

Mode switch has failed. Bye.


other example
Code:
DefaultVendor= 0x12d1
DefaultProduct=0x14fe

TargetClass=0xff

CheckSuccess=20

HuaweiMode=1

gave
Code:
Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
 Found devices in default mode, class or configuration (1)
Accessing device 014 on bus 001 ...
Getting the current device configuration ...
 OK, got current device configuration (1)
Using endpoints 0x0f (out) and 0x8f (in)
Using endpoints 0x0f (out) and 0x8f (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: HUAWEI 
   Model String: Mass Storage   
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI
     Product: HUAWEI Mobile
  Serial No.: not provided
-------------------------
Sending Huawei control message ...
 OK, Huawei control message sent

Checking for mode switch (max. 20 times, once per second) ...
 Waiting for original device to vanish ...
...
 Waiting for original device to vanish ...
 Original device still present after the timeout

Mode switch most likely failed. Bye.


other example
Code:
DefaultVendor= 0x12d1
DefaultProduct=0x14fe

TargetClass=0xff

CheckSuccess=20

DetachStorageOnly=1


gave
Code:
Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
 Found devices in default mode, class or configuration (1)
Accessing device 015 on bus 001 ...
Getting the current device configuration ...
 OK, got current device configuration (1)
Using endpoints 0x0f (out) and 0x8f (in)
Using endpoints 0x0f (out) and 0x8f (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached

SCSI inquiry data (for identification)
-------------------------
  Vendor String: HUAWEI 
   Model String: Mass Storage   
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI
     Product: HUAWEI Mobile
  Serial No.: not provided
-------------------------
Only detaching storage driver for switching ...
 Any driver was already detached for inquiry

Checking for mode switch (max. 20 times, once per second) ...
 Waiting for original device to vanish ...
....
 Waiting for original device to vanish ...
 Original device still present after the timeout

Mode switch most likely failed. Bye.


I see no message in syslog, nor another system message. lsusb gives the same device.

Next I tried to use SniffUSB on an other computer with windows xp. I generated a log file of 40mb trying to sniff the device out, which is perhaps too much data. I had no idea where to look for. I followed the link to
http://blogger.ziesemer.com/2008/10/all ... buntu.html

but his example did not help me. Ziesemer used
Code:
  PipeHandle           = 88bced1c [endpoint 0x00000005]
  TransferFlags        = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000001f
  TransferBuffer       = 88c4b790
  TransferBufferMDL    = 00000000
    00000000: 55 53 42 43 90 4e d6 8a 24 00 00 00 80 00 08 ff
    00000010: 02 44 45 56 43 48 47 00 00 00 00 00 00 00 00

as
Code:
MessageEndpoint = 0x05
MessageContent = "55534243904ed68a24000000800008ff024445564348470000000000000000"


I had
Code:
  PipeHandle           = 898f276c [endpoint 0x00000001]
  TransferFlags        = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000001f
  TransferBuffer       = 899d41e8
  TransferBufferMDL    = 00000000
    00000000: 55 53 42 43 d0 08 19 8a 12 00 00 00 80 02 0c 03
    00000010: 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00


which I used as
Code:
MessageEndpoint = 0x01
MessageContent="55534243d008198a1200000080020c03000000120000000000000000000000"


it failed as:

Code:
Looking for target devices ...
 No devices in target mode or class found
Looking for default devices ...
 Found devices in default mode, class or configuration (1)
Accessing device 016 on bus 001 ...
Getting the current device configuration ...
 OK, got current device configuration (1)
Using endpoints 0x01 (out) and 0x8f (in)
Using endpoints 0x01 (out) and 0x8f (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached
 Could not send INQUIRY message (error -2)

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI
     Product: HUAWEI Mobile
  Serial No.: not provided
-------------------------
Looking for active driver ...
 No driver found. Either detached before or never attached
Setting up communication with interface 0 ...
Using endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
 Sending the message returned error -2. Trying to continue
Resetting response endpoint 0x8f
Resetting message endpoint 0x01
 Error resetting endpoint: -2

Checking for mode switch (max. 20 times, once per second) ...
 Waiting for original device to vanish ...
....
 Waiting for original device to vanish ...
 Original device still present after the timeout

Mode switch most likely failed. Bye.


BTW in the log from usbsnoop the id after installation seemed no longer to be 14fe, but 1506.

I'm stuck, and not very happy (I bought the laptop with Ubuntu preinstalled because I did not want to waste time on hardware problems, sigh).

Is there any way I can move forward, or should I try to sell the modem and get another one (somewhere)?

If you made it this far, thanks for your time. :-)

Kornelis


Last edited by kornelis on Tue Sep 20, 2011 8:54 pm, edited 3 times in total.

Offline Profile
PostPosted: Tue Sep 20, 2011 8:20 pm
Posts: 7Joined: Tue Sep 20, 2011 2:38 pm
Not sure if it adds to the id 0x14fe, but the modem seems to have an official version number (or two):
HUAWEI Mobile broadband
E352 HSPA+ USB Stick
C € 0197

The sign that follows the C looks like the Euro sign, but perhaps it's just design logo nonsense.


Offline Profile
PostPosted: Tue Sep 20, 2011 9:21 pm
Posts: 7Joined: Tue Sep 20, 2011 2:38 pm
After more reading, I made
Code:
/etc/usb_modeswitch.d/12d1:14fe

Code:
DefaultVendor= 0x12d1
DefaultProduct=0x14fe
TargetClass=0xff
CheckSuccess=20
MessageContent="55534243123456780000000000000011060000000000000000000000000000"

and
Code:
/etc/udev/rules.d

Code:
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14fe", RUN+="usb_modeswitch '%b/%k'"


after plugging the stick in syslog gave:
Code:
Sep 20 21:24:59  kernel: [13950.552148] usb 1-1: new high speed USB device using ehci_hcd and address 21
Sep 20 21:25:00  kernel: [13950.932533] scsi30 : usb-storage 1-1:1.0
Sep 20 21:25:00  kernel: [13950.933243] scsi31 : usb-storage 1-1:1.1
Sep 20 21:25:01  kernel: [13951.934620] scsi 30:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
Sep 20 21:25:01  kernel: [13951.934829] scsi 31:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
Sep 20 21:25:01  kernel: [13951.938218] sd 31:0:0:0: Attached scsi generic sg2 type 0
Sep 20 21:25:01  kernel: [13951.943080] sd 31:0:0:0: [sdc] Attached SCSI removable disk
Sep 20 21:25:01  kernel: [13951.943565] sr0: scsi-1 drive
Sep 20 21:25:01  kernel: [13951.943968] sr 30:0:0:0: Attached scsi CD-ROM sr0
Sep 20 21:25:01  kernel: [13951.944297] sr 30:0:0:0: Attached scsi generic sg3 type 5

which seems disappointing


BTW /etc/usb_modeswitch.conf has:
Code:
# Configuration for the usb_modeswitch package, a mode switching tool for
# USB devices providing multiple states or modes
#
# This file is evaluated by the wrapper script "usb_modeswitch_dispatcher"
# in /usr/sbin
# To enable an option, set it to "1", "yes" or "true" (case doesn't matter)
# Everything else counts as "disable"

# Disable automatic mode switching globally (e.g. to access the original
# install storage)

DisableSwitching=0

# Enable logging (results in a extensive report file in /var/log, named
# "usb_modeswitch_<interface-name>" (and probably others)

EnableLogging=1


Now I got a lot of files in /var/log...

Code:
20:57 usb_modeswitch_1-1
20:57 usb_modeswitch_1-1:1.0
20:57 usb_modeswitch_1-1:1.1
20:57 usb_modeswitch_28:0:0:0
20:57 usb_modeswitch_29:0:0:0
20:57 usb_modeswitch_host28
20:57 usb_modeswitch_host29
20:57 usb_modeswitch_sdc
20:57 usb_modeswitch_sg2
20:57 usb_modeswitch_sg3
20:57 usb_modeswitch_sr0
20:57 usb_modeswitch_target28:0:0
20:57 usb_modeswitch_target29:0:0


Code:


USB_ModeSwitch log from Tue Sep 20 21:25:00 CEST 2011

raw args from udev: /1-1

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (1-1) ...
Could not determine top device dir from udev values! Exiting


USB_ModeSwitch log from Tue Sep 20 21:25:00 CEST 2011

raw args from udev: /1-1:1.0

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (1-1:1.0) ...
USB dir exists: /sys/bus/usb/devices/1-1
Warning: USB attribute "serial" not found.
----------------
USB values from sysfs:
  manufacturer   HUAWEI
  product   HUAWEI Mobile
  serial   
----------------
Found packed config collection /usr/share/usb_modeswitch/configPack.tar.gz
Searching overriding entries named: /etc/usb_modeswitch.d/12d1:14fe*
Aargh! Config file missing for 12d1:14fe! Exiting


USB_ModeSwitch log from Tue Sep 20 21:25:00 CEST 2011

raw args from udev: /1-1:1.1

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (1-1:1.1) ...
USB dir exists: /sys/bus/usb/devices/1-1
Warning: USB attribute "serial" not found.
----------------
USB values from sysfs:
  manufacturer   HUAWEI
  product   HUAWEI Mobile
  serial   
----------------
Found packed config collection /usr/share/usb_modeswitch/configPack.tar.gz
Searching overriding entries named: /etc/usb_modeswitch.d/12d1:14fe*
Aargh! Config file missing for 12d1:14fe! Exiting


USB_ModeSwitch log from Tue Sep 20 21:24:46 CEST 2011

raw args from udev: 1-1/28:0:0:0

Using global config file: /etc/usb_modeswitch.conf
Top sysfs directory not found (/sys/bus/usb/devices/1-1)! Exiting


USB_ModeSwitch log from Tue Sep 20 21:24:46 CEST 2011

raw args from udev: 1-1/29:0:0:0

Using global config file: /etc/usb_modeswitch.conf
Top sysfs directory not found (/sys/bus/usb/devices/1-1)! Exiting


USB_ModeSwitch log from Tue Sep 20 21:24:46 CEST 2011

raw args from udev: /host28

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (host28) ...
Could not determine top device dir from udev values! Exiting


USB_ModeSwitch log from Tue Sep 20 20:57:04 CEST 2011

raw args from udev: /host29

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (host29) ...
Could not determine top device dir from udev values! Exiting


USB_ModeSwitch log from Tue Sep 20 21:25:01 CEST 2011

raw args from udev: /sdc

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (sdc) ...
Could not determine top device dir from udev values! Exiting


USB_ModeSwitch log from Tue Sep 20 21:25:01 CEST 2011

raw args from udev: /sg2

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (sg2) ...
Could not determine top device dir from udev values! Exiting


USB_ModeSwitch log from Tue Sep 20 21:25:01 CEST 2011

raw args from udev: /sg3

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (sg3) ...
Could not determine top device dir from udev values! Exiting


USB_ModeSwitch log from Tue Sep 20 21:25:13 CEST 2011

raw args from udev: /sr0

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (sr0) ...
Could not determine top device dir from udev values! Exiting


USB_ModeSwitch log from Tue Sep 20 20:57:05 CEST 2011

raw args from udev: /target28:0:0

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (target28:0:0) ...
Top sysfs directory not found (/sys/bus/usb/devices/target28)! Exiting


USB_ModeSwitch log from Tue Sep 20 20:57:05 CEST 2011

raw args from udev: /target29:0:0

Using global config file: /etc/usb_modeswitch.conf
Bus ID for device not given by udev.
 Trying to determine it from kernel name (target29:0:0) ...
Top sysfs directory not found (/sys/bus/usb/devices/target29)! Exiting


Offline Profile
PostPosted: Wed Sep 21, 2011 8:33 am
Site AdminPosts: 4705Joined: Sat Nov 03, 2007 12:30 am
The log in your first post said: "HUAWEI SD Storage".

If you see this, the device was switched already. To clear up the situation, disable switching in "/etc/usb_modeswitch.conf", then re-plug. Run lsusb to see the unswitched ID (starting with "12d1:").



Offline Profile
PostPosted: Wed Sep 21, 2011 9:09 am
Posts: 7Joined: Tue Sep 20, 2011 2:38 pm
Josh wrote:
The log in your first post said: "HUAWEI SD Storage".

If you see this, the device was switched already. To clear up the situation, disable switching in "/etc/usb_modeswitch.conf", then re-plug. Run lsusb to see the unswitched ID (starting with "12d1:").



I will look at the difference in an hour, but it seems I have rereading to do as well, since I don't understand. I expected a new modem device to show up. But anyway, I'll be back.

Kornelis


Offline Profile
PostPosted: Wed Sep 21, 2011 11:10 am
Posts: 7Joined: Tue Sep 20, 2011 2:38 pm
Code:
Sep 21 10:02:07kernel: [  186.224269] usb 1-1: new high speed USB device using ehci_hcd and address 3
Sep 21 10:02:08kernel: [  186.739277] usbcore: registered new interface driver uas
Sep 21 10:02:08logger: usb_modeswitch: switching disabled, no action for 12d1:14fe
Sep 21 10:02:08kernel: [  186.786557] Initializing USB Mass Storage driver...
Sep 21 10:02:08kernel: [  186.787313] scsi2 : usb-storage 1-1:1.0
Sep 21 10:02:08kernel: [  186.787860] scsi3 : usb-storage 1-1:1.1
Sep 21 10:02:08kernel: [  186.788511] usbcore: registered new interface driver usb-storage
Sep 21 10:02:08kernel: [  186.788516] USB Mass Storage support registered.
Sep 21 10:02:08logger: usb_modeswitch: switching disabled, no action for 12d1:14fe
Sep 21 10:02:09kernel: [  187.786356] scsi 2:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
Sep 21 10:02:09kernel: [  187.790015] scsi 3:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
Sep 21 10:02:09kernel: [  187.791326] sr0: scsi-1 drive
Sep 21 10:02:09kernel: [  187.791341] cdrom: Uniform CD-ROM driver Revision: 3.20
Sep 21 10:02:09kernel: [  187.791785] sr 2:0:0:0: Attached scsi CD-ROM sr0
Sep 21 10:02:09kernel: [  187.792201] sr 2:0:0:0: Attached scsi generic sg2 type 5
Sep 21 10:02:09kernel: [  187.797226] sd 3:0:0:0: Attached scsi generic sg3 type 0
Sep 21 10:02:09kernel: [  187.802268] sd 3:0:0:0: [sdc] Attached SCSI removable disk


Code:
Sep 21 10:05:07kernel: [  366.236265] usb 1-1: new high speed USB device using ehci_hcd and address 4
Sep 21 10:05:07kernel: [  366.614591] scsi4 : usb-storage 1-1:1.0
Sep 21 10:05:07kernel: [  366.615483] scsi5 : usb-storage 1-1:1.1
Sep 21 10:05:08kernel: [  367.614178] scsi 4:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
Sep 21 10:05:08kernel: [  367.617969] scsi 5:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
Sep 21 10:05:08kernel: [  367.620518] sr0: scsi-1 drive
Sep 21 10:05:08kernel: [  367.621015] sr 4:0:0:0: Attached scsi CD-ROM sr0
Sep 21 10:05:08kernel: [  367.621297] sr 4:0:0:0: Attached scsi generic sg2 type 5
Sep 21 10:05:08kernel: [  367.626336] sd 5:0:0:0: Attached scsi generic sg3 type 0
Sep 21 10:05:08kernel: [  367.628968] sd 5:0:0:0: [sdc] Attached SCSI removable disk



In both modes
Code:
HUAWEI   SD Storage
is present, but I don't know if that means anything.

In either mode the netwerkmanager does not detect a modem, that much is clear to me.

Edit:
I'm trying to test with wvdialconf now, so far it does not detect a modem either.


Offline Profile
PostPosted: Wed Sep 21, 2011 11:48 am
Posts: 7Joined: Tue Sep 20, 2011 2:38 pm
Summing up.

Ubuntu does not detect my modem (which I double checked with wvdailconf).
I hoped that was because 12d1:14fe has not yet been added to the system, and trying previous commands, but I am way out of my depth.

I tried running with usb_switch enabled and disabled.

I've got:
/etc/udev/rules.d
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14fe", RUN+="usb_modeswitch '%b/%k'"

/etc/usb_modeswitch.d/12d1:14fe
Code:
########################################################
# Huawei  12d1:14fe

DefaultVendor= 0x12d1
DefaultProduct=0x14fe
TargetClass=0xff
CheckSuccess=20
#MessageContent="55534243123456780000000000000011060000000000000000000000000000"
#HuaweiMode=1
#HuaweiMode=0
#DetachStorageOnly=1
#MessageContent="55534243123456780000000000000011060000000000000000000000000000"

######################################################
#MessageEndpoint = 0x01
#MessageContent="55534243d008198a1200000080020c03000000120000000000000000000000"
######################################################

I tried each now commented line(s) the commented part I kept the same .

lsusb always gives 12d1:14fe the system detects no modem.

Maybe later today I try one more time looking at the snoop thing in a winxp box, otherwise I'm giving up. I think.
Bye.


Offline Profile
PostPosted: Wed Sep 21, 2011 9:14 pm
Site AdminPosts: 4705Joined: Sat Nov 03, 2007 12:30 am
O.K., the device may be a bit unusual, exposing the SD slot actually before switching. The vast majority of devices don't do that.

Anyway, you were on the right track with your "test.txt". You should not need to use any other switching method than the one used in that file.
There seems to have been a "hiccup" after sending the switching message. Mind that the switching may have worked anyway. To check the state after a switching attempt use "lsusb -v -d 12d1:14fe"; if the mode switch was successful you should see a lot more interfaces than before.
You can try to add the -I parameter to the command line if trouble persists. Note that some USB errors are expected during a normal mode switch, after the respective command/message has been successfully transmitted.

To get better information about the target checking, add the -W parameter

Remember always to re-plug after each attempt in order to get the device in the default state again.

I would also recommend to use the latest program version (1.1.9) from source or from Debian. The source package was tested on Ubuntu 11.04.

If you note a change after using your "test.txt" manually, rename that file to "12d1:14fe" and put it in the folder "/etc/usb_modeswitch.d". Your added line to the udev rules file is correct.
From now on, the switching should happen automatically, including the binding of the serial driver.



Offline Profile
PostPosted: Fri Sep 23, 2011 9:36 am
Posts: 7Joined: Tue Sep 20, 2011 2:38 pm
Josh wrote:
I would also recommend to use the latest program version (1.1.9) from source or from Debian. The source package was tested on Ubuntu 11.04.

Thanks again for your time.

So, I fetched the source and upgraded with checkinstall. OMG success! Lots of devices, and my internet manager sees a broadband modem.

Apparently Ubuntu is bit behind, that there is not yet an official package. It's also a bit embarrassing that coming from Slackware, I trusted Ubuntu to do the right thing, no questions asked, and hesitated to install manually.

Code:
Sep 23 09:13:42 kernel: [  130.668301] usb 1-1: new high speed USB device using ehci_hcd and address 4
Sep 23 09:13:42 kernel: [  131.229551] usbcore: registered new interface driver uas
Sep 23 09:13:42 kernel: [  131.300759] Initializing USB Mass Storage driver...
Sep 23 09:13:42 kernel: [  131.301061] scsi2 : usb-storage 1-1:1.0
Sep 23 09:13:42 kernel: [  131.301468] scsi3 : usb-storage 1-1:1.1
Sep 23 09:13:42 kernel: [  131.303183] usbcore: registered new interface driver usb-storage
Sep 23 09:13:42 kernel: [  131.303191] USB Mass Storage support registered.
Sep 23 09:13:43 usb_modeswitch: switching 12d1:14fe (HUAWEI: HUAWEI Mobile)
Sep 23 09:13:43 usb_modeswitch: switching 12d1:14fe (HUAWEI: HUAWEI Mobile)
Sep 23 09:13:43 kernel: [  132.067007] usb 1-1: usbfs: process 2143 (usb_modeswitch) did not claim interface 0 before use
Sep 23 09:13:43 kernel: [  132.067106] usb 1-1: usbfs: process 2143 (usb_modeswitch) did not claim interface 0 before use
Sep 23 09:13:43 kernel: [  132.067166] usb 1-1: usbfs: process 2143 (usb_modeswitch) did not claim interface 0 before use
Sep 23 09:13:43 kernel: [  132.068552] usb 1-1: USB disconnect, address 4
Sep 23 09:13:50 kernel: [  138.792282] usb 1-1: new high speed USB device using ehci_hcd and address 5
Sep 23 09:13:50 kernel: [  139.200365] scsi4 : usb-storage 1-1:1.4
Sep 23 09:13:50 kernel: [  139.201251] scsi5 : usb-storage 1-1:1.5
Sep 23 09:13:51 usb_modeswitch: switched to 12d1:1506 (HUAWEI: HUAWEI Mobile)
Sep 23 09:13:51 usb_modeswitch: switched to 12d1:1506 (HUAWEI: HUAWEI Mobile)
Sep 23 09:13:51 kernel: [  139.974480] usbcore: registered new interface driver usbserial
Sep 23 09:13:51 kernel: [  139.974546] USB Serial support registered for generic
Sep 23 09:13:51 kernel: [  139.975860] usbcore: registered new interface driver usbserial_generic
Sep 23 09:13:51 kernel: [  139.975867] usbserial: USB Serial Driver core
Sep 23 09:13:51 kernel: [  140.002808] USB Serial support registered for GSM modem (1-port)
Sep 23 09:13:51 kernel: [  140.005349] usbcore: registered new interface driver option
Sep 23 09:13:51 kernel: [  140.005359] option: v0.7.2:USB Driver for GSM modems
Sep 23 09:13:51 logger: usb_modeswitch: adding device ID 12d1:1506 to driver "option"
Sep 23 09:13:51 logger: usb_modeswitch: please report the device ID to the Linux USB developers!
Sep 23 09:13:51 kernel: [  140.016123] option 1-1:1.0: GSM modem (1-port) converter detected
Sep 23 09:13:51 kernel: [  140.016373] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
Sep 23 09:13:51 kernel: [  140.016434] option 1-1:1.1: GSM modem (1-port) converter detected
Sep 23 09:13:51 kernel: [  140.016595] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
Sep 23 09:13:51 kernel: [  140.016654] option 1-1:1.2: GSM modem (1-port) converter detected
Sep 23 09:13:51 kernel: [  140.016769] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
Sep 23 09:13:51 kernel: [  140.016826] option 1-1:1.3: GSM modem (1-port) converter detected
Sep 23 09:13:51 kernel: [  140.016951] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3
Sep 23 09:13:51 logger: usb_modeswitch: adding device ID 12d1:1506 to driver "option"
Sep 23 09:13:51 logger: usb_modeswitch: please report the device ID to the Linux USB developers!
Sep 23 09:13:51 modem-manager[831]: <info>  (ttyUSB0) opening serial port...
Sep 23 09:13:51 kernel: [  140.202058] scsi 5:0:0:0: Direct-Access     HUAWEI   SD Storage       2.31 PQ: 0 ANSI: 2
Sep 23 09:13:51 kernel: [  140.202277] scsi 4:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2
Sep 23 09:13:51 kernel: [  140.203705] sd 5:0:0:0: Attached scsi generic sg2 type 0
Sep 23 09:13:51 kernel: [  140.209065] sr0: scsi-1 drive
Sep 23 09:13:51 kernel: [  140.209081] sd 5:0:0:0: [sdc] Attached SCSI removable disk
Sep 23 09:13:51 kernel: [  140.209095] cdrom: Uniform CD-ROM driver Revision: 3.20
Sep 23 09:13:51 kernel: [  140.209525] sr 4:0:0:0: Attached scsi CD-ROM sr0
Sep 23 09:13:51 kernel: [  140.209770] sr 4:0:0:0: Attached scsi generic sg3 type 5
Sep 23 09:13:56 modem-manager[831]: <info>  (ttyUSB0) closing serial port...
Sep 23 09:13:56 modem-manager[831]: <info>  (ttyUSB0) serial port closed
Sep 23 09:13:56 modem-manager[831]: <info>  (ttyUSB0) opening serial port...
Sep 23 09:13:56 modem-manager[831]: <info>  (Huawei): GSM modem /sys/devices/pci0000:00/0000:00:12.2/usb1/1-1 claimed port ttyUSB0
Sep 23 09:13:56 modem-manager[831]: <info>  (ttyUSB0) closing serial port...
Sep 23 09:13:56 modem-manager[831]: <info>  (ttyUSB0) serial port closed
Sep 23 09:13:57 modem-manager[831]: <info>  (ttyUSB1) opening serial port...
Sep 23 09:13:57 modem-manager[831]: <info>  (ttyUSB3) opening serial port...
Sep 23 09:13:57 modem-manager[831]: <info>  (ttyUSB2) opening serial port...
Sep 23 09:14:04 modem-manager[831]: <info>  (ttyUSB1) closing serial port...
Sep 23 09:14:04 modem-manager[831]: <info>  (ttyUSB1) serial port closed
Sep 23 09:14:04 modem-manager[831]: <info>  (ttyUSB3) closing serial port...
Sep 23 09:14:04 modem-manager[831]: <info>  (ttyUSB3) serial port closed
Sep 23 09:14:04 modem-manager[831]: <info>  (ttyUSB2) closing serial port...
Sep 23 09:14:04 modem-manager[831]: <info>  (ttyUSB2) serial port closed
Sep 23 09:14:04 modem-manager[831]: <info>  (Huawei): GSM modem /sys/devices/pci0000:00/0000:00:12.2/usb1/1-1 claimed port ttyUSB1
Sep 23 09:14:04 modem-manager[831]: <info>  (Huawei): GSM modem /sys/devices/pci0000:00/0000:00:12.2/usb1/1-1 claimed port ttyUSB3
Sep 23 09:14:04 modem-manager[831]: <info>  (Huawei): GSM modem /sys/devices/pci0000:00/0000:00:12.2/usb1/1-1 claimed port ttyUSB2
Sep 23 09:14:04 NetworkManager[825]: <warn> (ttyUSB0): failed to look up interface index
Sep 23 09:14:04 NetworkManager[825]: <info> (ttyUSB0): new GSM device (driver: 'option1' ifindex: -1)
Sep 23 09:14:04 NetworkManager[825]: <info> (ttyUSB0): exported as /org/freedesktop/NetworkManager/Devices/2
Sep 23 09:14:04 NetworkManager[825]: <info> (ttyUSB0): now managed
Sep 23 09:14:04 NetworkManager[825]: <info> (ttyUSB0): device state change: 1 -> 2 (reason 2)
Sep 23 09:14:04 NetworkManager[825]: <info> (ttyUSB0): deactivating device (reason: 2).
Sep 23 09:14:04 NetworkManager[825]: <info> (ttyUSB0): device state change: 2 -> 3 (reason 0)
Sep 23 09:14:40 modem-manager[831]: <info>  (ttyUSB0) opening serial port...
Sep 23 09:14:42 modem-manager[831]: <info>  Modem /org/freedesktop/ModemManager/Modems/0: unlock no longer required
Sep 23 09:14:42 modem-manager[831]: <info>  Modem /org/freedesktop/ModemManager/Modems/0: # unlock retries is 0
Sep 23 09:14:42 modem-manager[831]: <info>  (ttyUSB0) closing serial port...
Sep 23 09:14:42 modem-manager[831]: <info>  (ttyUSB0) serial port closed
Sep 23 09:15:09 modem-manager[831]: <info>  (ttyUSB0) opening serial port...
Sep 23 09:15:09 modem-manager[831]: <info>  Modem /org/freedesktop/ModemManager/Modems/0: state changed (disabled -> enabling)
Sep 23 09:15:10 modem-manager[831]: <info>  Modem /org/freedesktop/ModemManager/Modems/0: state changed (enabling -> enabled)
Sep 23 09:15:10 NetworkManager[825]: <info> WWAN now enabled by management service
Sep 23 09:15:10 modem-manager[831]: <info>  Modem /org/freedesktop/ModemManager/Modems/0: state changed (enabled -> registered)
Sep 23 09:17:01 CRON[2254]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)


Edit: configuring modem successful, I'm mobile. :-)
Edit: as far as I can see I don't need to tell usb_modeswitch something extra (just looking at the syslog when I plugged in the modem I forgot in the excitement that I hadn't done anything).
I left the rule in /etc/udev/rules.d but I have nothing to execute in /etc/usb_modeswitch.d/ so I guess 12d1:14fe works out of the box with the most recent version (1.1.9) of usb_modeswitch.
I am really sorry (for all concerned) that I didn't try to upgrade from source sooner :-C .
My only excuse is that I haven't used Ubuntu before and apparently needed time to adjust.
Thanks.


Offline Profile
PostPosted: Fri Sep 23, 2011 8:59 pm
Site AdminPosts: 4705Joined: Sat Nov 03, 2007 12:30 am
I for my part have not realized that the device is already supported in the last data package. I've checked, but obviously not properly.

Else I had given you the hint right at the beginning. Oh, well ...


Offline Profile
PostPosted: Thu Feb 23, 2012 10:06 pm
Posts: 16777215Location: Colombia, South AmericaJoined: Tue Feb 21, 2012 10:24 pm
Hi All,
I have been following Kornells postings because I have just received exactly the same model Modem as his, from my Mobile Internet Provider and it does not function on my system. It replaces a previous Huawei modem, (which functioned perfectly out of the box), because the provider has just updated his network to HSPA +.
The new modem is: Huawei Model E353s-6, Vendor ID: 0x12d1, Product ID: 0x14fe, (from lsusb).
I am running: Ubuntu 10.04.4 LTS. Lucid Lynx, fully updated to this moment. Installed are:
kernel: 2.6.32-39-generic #86-ubuntu - - - -12x86_64 GNU/Linux.
libusb - 0.1-4
libusb ? 1.0-0
udev, (can't find version!).
Tcl, (can't find version!).

To update usb-modeswitch I have downloaded from your homepage:
usb-modeswitch-1.2.3.tar.bz2
usb-modeswitch-data-20120120.tar.bz2

I uninstalled all existing files of usb-modeswitch which were on my computer O.S. And then:
Extracting usb-modeswitch-1.2.3 and cd'ing to the extracted file, as root, I did ?make install?. But the printout displayed errors from the first line onwards and the process failed. I tried again with ?make install static?, but it gave the same result. I did the same with the data file, but that installed perfectly, first time, without errors. I am not a command line athlete, just a beginner, so I do not understand the implications of the errors in the failed process and need help from somebody more expert. Below is a copy of the failed process:

yoliano@clonex-desktop:~$ sudo -i
[sudo] password for yoliano:
root@clonex-desktop:~# cd /home/yoliano/Modeswitch/usb-modeswitch-1.2.3
root@clonex-desktop:/home/yoliano/Modeswitch/usb-modeswitch-1.2.3# make install
gcc -o usb_modeswitch usb_modeswitch.c -Wall -l usb
usb_modeswitch.c:58:17: error: usb.h: No such file or directory
In file included from usb_modeswitch.c:59:
usb_modeswitch.h:53: warning: ?struct usb_dev_handle? declared inside parameter list
usb_modeswitch.h:53: warning: its scope is only this definition or declaration, which is probably not what you want
usb_modeswitch.c: In function ?main?:
usb_modeswitch.c:416: warning: implicit declaration of function ?usb_init?
usb_modeswitch.c:419: warning: implicit declaration of function ?usb_set_debug?
usb_modeswitch.c:421: warning: implicit declaration of function ?usb_find_busses?
usb_modeswitch.c:422: warning: implicit declaration of function ?usb_find_devices?
usb_modeswitch.c:448: error: dereferencing pointer to incomplete type
usb_modeswitch.c:449: error: dereferencing pointer to incomplete type
usb_modeswitch.c:452: warning: implicit declaration of function ?usb_open?
usb_modeswitch.c:452: warning: assignment makes pointer from integer without a cast
usb_modeswitch.c:465: warning: passing argument 1 of ?get_current_configuration? from incompatible pointer type
usb_modeswitch.h:53: note: expected ?struct usb_dev_handle *? but argument is of type ?struct usb_dev_handle *?
usb_modeswitch.c:472: error: dereferencing pointer to incomplete type
usb_modeswitch.c:489: error: dereferencing pointer to incomplete type
usb_modeswitch.c:612: warning: passing argument 1 of ?get_current_configuration? from incompatible pointer type
usb_modeswitch.h:53: note: expected ?struct usb_dev_handle *? but argument is of type ?struct usb_dev_handle *?
usb_modeswitch.c:630: warning: implicit declaration of function ?usb_close?
usb_modeswitch.c: In function ?deviceDescription?:
usb_modeswitch.c:693: error: dereferencing pointer to incomplete type
usb_modeswitch.c:694: warning: implicit declaration of function ?usb_get_string_simple?
usb_modeswitch.c:694: error: dereferencing pointer to incomplete type
usb_modeswitch.c:703: error: dereferencing pointer to incomplete type
usb_modeswitch.c:704: error: dereferencing pointer to incomplete type
usb_modeswitch.c:713: error: dereferencing pointer to incomplete type
usb_modeswitch.c:714: error: dereferencing pointer to incomplete type
usb_modeswitch.c: In function ?deviceInquire?:
usb_modeswitch.c:746: warning: implicit declaration of function ?usb_claim_interface?
usb_modeswitch.c:751: warning: implicit declaration of function ?usb_clear_halt?
usb_modeswitch.c:753: warning: implicit declaration of function ?usb_bulk_write?
usb_modeswitch.c:759: warning: implicit declaration of function ?usb_bulk_read?
usb_modeswitch.c:786: warning: implicit declaration of function ?usb_release_interface?
usb_modeswitch.c: In function ?resetUSB?:
usb_modeswitch.c:802: warning: implicit declaration of function ?sleep?
usb_modeswitch.c:804: warning: implicit declaration of function ?usb_reset?
usb_modeswitch.c: In function ?switchSendMessage?:
usb_modeswitch.c:877: warning: implicit declaration of function ?usleep?
usb_modeswitch.c: In function ?switchConfiguration?:
usb_modeswitch.c:900: warning: implicit declaration of function ?usb_set_configuration?
usb_modeswitch.c: In function ?switchAltSetting?:
usb_modeswitch.c:919: warning: implicit declaration of function ?usb_set_altinterface?
usb_modeswitch.c: In function ?switchHuaweiMode?:
usb_modeswitch.c:936: warning: implicit declaration of function ?usb_control_msg?
usb_modeswitch.c:936: error: ?USB_TYPE_STANDARD? undeclared (first use in this function)
usb_modeswitch.c:936: error: (Each undeclared identifier is reported only once
usb_modeswitch.c:936: error: for each function it appears in.)
usb_modeswitch.c:936: error: ?USB_RECIP_DEVICE? undeclared (first use in this function)
usb_modeswitch.c:936: error: ?USB_REQ_SET_FEATURE? undeclared (first use in this function)
usb_modeswitch.c: In function ?switchKobilMode?:
usb_modeswitch.c:982: error: ?USB_TYPE_VENDOR? undeclared (first use in this function)
usb_modeswitch.c:982: error: ?USB_RECIP_DEVICE? undeclared (first use in this function)
usb_modeswitch.c:982: error: ?USB_ENDPOINT_IN? undeclared (first use in this function)
usb_modeswitch.c: In function ?switchSonyMode?:
usb_modeswitch.c:1051: warning: assignment makes pointer from integer without a cast
usb_modeswitch.c: In function ?switchActionMode?:
usb_modeswitch.c:1085: error: ?USB_TYPE_CLASS? undeclared (first use in this function)
usb_modeswitch.c:1085: error: ?USB_RECIP_INTERFACE? undeclared (first use in this function)
usb_modeswitch.c:1088: warning: implicit declaration of function ?usb_interrupt_read?
usb_modeswitch.c:1091: warning: implicit declaration of function ?usb_interrupt_write?
usb_modeswitch.c: In function ?switchSequansMode?:
usb_modeswitch.c:1139: error: ?USB_TYPE_VENDOR? undeclared (first use in this function)
usb_modeswitch.c:1139: error: ?USB_RECIP_DEVICE? undeclared (first use in this function)
usb_modeswitch.c: In function ?detachDriver?:
usb_modeswitch.c:1215: warning: implicit declaration of function ?usb_get_driver_np?
usb_modeswitch.c:1233: warning: implicit declaration of function ?usb_detach_kernel_driver_np?
usb_modeswitch.c: In function ?checkSuccess?:
usb_modeswitch.c:1333: warning: assignment makes pointer from integer without a cast
usb_modeswitch.c:1339: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1339: error: dereferencing pointer to incomplete type
usb_modeswitch.c: In function ?search_devices?:
usb_modeswitch.c:1459: warning: implicit declaration of function ?usb_get_busses?
usb_modeswitch.c:1459: warning: assignment makes pointer from integer without a cast
usb_modeswitch.c:1459: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1461: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1464: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1464: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1466: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1472: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1472: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1473: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1494: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1501: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1501: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1503: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1512: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1520: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1522: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1525: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1526: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1550: warning: assignment makes pointer from integer without a cast
usb_modeswitch.c:1551: warning: passing argument 1 of ?get_current_configuration? from incompatible pointer type
usb_modeswitch.h:53: note: expected ?struct usb_dev_handle *? but argument is of type ?struct usb_dev_handle *?
usb_modeswitch.c: In function ?find_first_bulk_output_endpoint?:
usb_modeswitch.c:1581: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1584: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1585: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1586: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1586: error: ?USB_ENDPOINT_TYPE_MASK? undeclared (first use in this function)
usb_modeswitch.c:1586: error: ?USB_ENDPOINT_TYPE_BULK? undeclared (first use in this function)
usb_modeswitch.c:1587: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1587: error: ?USB_ENDPOINT_DIR_MASK? undeclared (first use in this function)
usb_modeswitch.c:1588: error: dereferencing pointer to incomplete type
usb_modeswitch.c: In function ?find_first_bulk_input_endpoint?:
usb_modeswitch.c:1599: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1602: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1603: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1604: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1604: error: ?USB_ENDPOINT_TYPE_MASK? undeclared (first use in this function)
usb_modeswitch.c:1604: error: ?USB_ENDPOINT_TYPE_BULK? undeclared (first use in this function)
usb_modeswitch.c:1605: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1605: error: ?USB_ENDPOINT_DIR_MASK? undeclared (first use in this function)
usb_modeswitch.c:1606: error: dereferencing pointer to incomplete type
usb_modeswitch.c: At top level:
usb_modeswitch.c:1613: error: conflicting types for ?get_current_configuration?
usb_modeswitch.h:53: note: previous declaration of ?get_current_configuration? was here
usb_modeswitch.c: In function ?get_current_configuration?:
usb_modeswitch.c:1618: error: ?USB_TYPE_STANDARD? undeclared (first use in this function)
usb_modeswitch.c:1618: error: ?USB_RECIP_DEVICE? undeclared (first use in this function)
usb_modeswitch.c:1618: error: ?USB_REQ_GET_CONFIGURATION? undeclared (first use in this function)
usb_modeswitch.c: In function ?get_interface0_class?:
usb_modeswitch.c:1638: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1641: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1642: error: dereferencing pointer to incomplete type
usb_modeswitch.c:1643: error: dereferencing pointer to incomplete type
make: *** [usb_modeswitch] Error 1
root@clonex-desktop:/home/yoliano/Modeswitch/usb-modeswitch-1.2.3#

I note that Kornells obtained his upgraded versions from the Debian Repositories. Should I do the same? If so, please spell out the address string that I need to include in my "Sources" file.
If someone can show me the way forward, I will be most grateful.


Offline Profile
PostPosted: Thu Mar 01, 2012 3:15 am
Site AdminPosts: 4705Joined: Sat Nov 03, 2007 12:30 am
Did you read the README in the source package? There is a paragraph about installation. Note the bit about "libusb-dev".


Offline Profile

Display posts from previous:  Sort by:

All times are UTC + 1 hour [ DST ]
Page 1 of 1
12 posts
Users browsing this forum: Google [Bot] and 2 guests
Search for:
Post new topic  Reply to topic
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum