Skip navigation.
Home
Voluntary-Simplicity.org's Linux Pages

Use of the Multitech Multimodem MTCBA-G-U-F1 on Debian Linux

(Updated) Multitech gprs modems are, I believe the best GPRS (Internet over GMS cellular telephone) modem available in the world today, at any price.

In this article I refer to model  MTCBA-G-U-F1.  This is an industrial-quality modem with USB connection.

(Note: I was recently told by Mike Kydd of Multitech that the MTCBA-G-U-F1 has been replaced by the newer MTCBA-G-U-F4, and that both modems use the same USB serial drivers.  Therefore, the Linux solution described here for the MTCBA-G-U-F1 should work for the MTCBA-G-U-F4.)

Unfortunately, (1) this USB-connection modem will not work with Linux without special Multitech-provided driver patches and firmware, and (2) the Multitech-provided patches will not produce a working driver with the Linux 2.6x kernels found in modern Linux distributions, such as Debian and Ubuntu.  That is, for recent versions of kernel 2.6x, support for Linux for this modem is currently not provided by Multitech.  This article is my solution for Debian Etch.  There is also an article on this site that provides a (even better) driver package for Puppy Linux.

Notes on the patch:

The Multitech patch that comes with the install CD is seriously outdated (year 2005).  The patch will not apply cleanly on recent kernel versions of Linux due to the fact that the TI driver file (ti_usb_3410_5052.c) has changed and the patch for this file has not been updated.  Debian has removed the TI driver due to a new (ridiculous) firmware policy.   The TI USB serial driver is however found in the pristine source as well as in Ubuntu kernel source.
 
Even if the patch is manually applied to ti_usb_3410_5052.c (as I did), the patched driver will not work with the Multitech modems.   I searched the Internet for a solution and fortunately was able to modify ti_usb_3410_5052.c to allow the driver to work.  The modified driver does NOT require a hotplug script as the original did.
 
The patch files provided below can be used to patch the pristine TI driver files for kernel.org/Ubuntu kernels 2.6.20+.   The "dirty hack" I added is marked "bugfix" in the source code.  linuxpatches.zip  For compiling your own kernel, you might find this kernel config file useful.

Precompiled Kernel:

For those who prefer not to compile their own kernel, I offer a pre-compiled Debian kernel that works with the Multitech USB modem, for use with Debian Etch and perhaps other Debian-based distros.  It has RAID support, supports up to 4 gig of RAM, and has most dirvers needed for a modern desktop PC.  It is based on Ubuntu kernel version 2.6.20.3:

Precompiled Linux Kernel (Debian package) (Updated 11/4/2007)

Connection Scripts:

For connecting to Linux, I have bundled the firmware as well as ppp scripts and a shell script for connection.  Extract all files to root directory of your filesystem, maintaining the directory structure.  You will need to set your GSM telephone PIN in the file /etc/ppp/peers/gprs-connect-chatmm, set your username in /etc/ppp/peers/gprsmm, and add a line with your username and password to /etc/peers/ppp/pap-secrets:

multmodem.zip

Multitech very kindly donated 3 of their fine modems for lending to poor students in Costa Rica.  I am "administering" them.  Following is a portion of an email I sent to Mike Kydd of Multitech about this.
 

I'm sorry I have not been in touch recently regarding the 3 GPRS Multimodems you donated for students in Costa Rica.
 
I have decided to lend the modems to the students for a year at a time (rather than donate them), to allow future students to also benefit, and to encourage educational use of the equipment.  A student could renew the loan period after the year is complete.  For renewals I'll expect evidence of use of the Internet for the students' education.  I hope this arrangement is satisfactory to you.
 
There has been considerable delay in getting the modems into use by these students.  Both the candidates wish to use Linux.
 
Before I continue, I want to point out that use of Linux is growing strongly throughout the so-called third world.  Moreover, in countries like Costa Rica, GPRS over GSM telephone is the lowest cost (and often the only) Internet connection.  GPRS only costs about $7 per month in Costa Rica and is available throughout the country.  Many areas do not have wired telephone service.
 
This is exactly the situation of my area of Costa Rica.
 
Currently the only popular GPRS Internet (hardware) option in Costa Rica are GSM cell phones with built-in GPRS modem. These devices are not sturdy nor reliable.  After scouring the Internet, the ONLY satisfactory device I found is the Multitech multimodem.

<snip>
 
Best regards,
Lloyd Standish
CR Natural, S.A.
Costa Rica

 

The MultiTech patch/firmware works great except on dis/reconnect

Hi Lloyd,

I did some minor porting to get the patches working with a 2.6.19 kernel, and they work quite nicely. Thanks!!! This is the first time we've used the TI USB-to-serial driver (I've used the Moschip and FTDI drivers before). While everything works great with the MultiTech USB EDGE, GPRS, and CMDA modems, once we start disconnecting and reconnecting them, syslog starts logging "interrupt response timeout" errors from the TI driver or sometimes errors with the tty close operation. In both cases, our USB ports on our system then become unuseable (for *any* device plugged in, be it keyboard, mouse, modem, etc.) until we reboot. Is this a known problem? If so, is it specific to the TI driver? In our other USB-to-serial uses, we currently don't allow users to disconnect those devices (i.e. they are built into the system), so this might be something with an issue on many (or all) USB-to-serial devices in general.

Thanks!

Pearce

Success using stock drivers

Lloyd,

I actually had no troubles using the supplied (unpatched) The 2.4 kernel driver on Slackware 10.2 (2.4.31 kernel and source stock Slackware 10.2 packages), and was up and running in a matter of minutes. No kernel recompile required, I just compiled the modem's driver and fired up minicom. I will have to see if this holds true for the latest 2.4 kernel. Hotplug scripts worked perfect as well under Slackware 10.2.

I believe the 2.6 driver would have worked the other night, as I figured out I needed to use 230K baud 8N1 instead of 115K baud after the 2.4 driver worked.

I still have to finalize the machine I'm going to use with this modem, so I'll give the Debian kernel a shot tonight, and may even have time to try out Puppy Linux.

It is really surprising to find so little information about these modems and their use with Linux on the internet! This modem really is a nice piece of hardware.

If you have anything you'd like me to try out, please let me know.

Hello Dan, I'm sorry, I did

Hello Dan,

I'm sorry, I did not realize you are using a 2.4 kernel. I assume then that you are using the Multitech-supplied driver source (ti_usb-1.1-1.src.rpm or
ti_usb-1.1.tgz.) It is provided as standalone driver code rather than as a patch.

All my information and code here are for later versions of the 2.6 kernel (I probably should make that more clear in th article.) The Multitech-supplied patch applied to the pristine driver source will work for some early 2.6 kernel versions, but not the the 2.6 kernels used with modern distros like Debian Etch and Ubuntu. The last Debian distro to work with the Multitech-supplied patch was Debian Sarge.

Glad you have had success! It would be very useful to me if you would try out your Edge modem with Puppy 4.00 and my driver package installed, to check that it works with Edge. Remember to get the version of Puppy that uses the 2.6.21.7 kernel. I compiled the driver for that kernel version.

Regards,
Lloyd

It worked!

Lloyd,

The precompiled kernel package worked very well on a fresh install of Debian 4.0r3 from a netinstall CD-ROM. I had to put the firmware files from the Multitech OEM CD-ROM in /lib/firmware, and reboot the machine after applying the patch.

Plugged the modem in after the reboot, and the devices was assigned to /dev/ttyUSB0. This worked through minicom using 230K baud and 8N1.

I've got more messing around to do, but this is looking very promising. Thanks for putting this package together!

Thanks for checking this!

Thanks for checking this! This proves that the modified driver works with EDGE, as I expected.

The Puppy driver package is actually far easier to install and use. You just click the install icon, enter the phone PIN and so forth in a nice GUI setup program, then click on "MT-GPRS-Connect" from the Puppy menu and you go online. (If you have never tried Puppy Linux 4.00, you are in for a pleasant surprise.)

I was told by the Puppy developer, Barry Kauler, that he will include my modified version of the USB serial driver in the next release of Puppy Linux. In that case, my driver package would only need to supply the setup program, connection scripts, and possibly the firmware.

I'll have to give Puppy a

I'll have to give Puppy a try sometime. My main goal with this modem is to build an SMS gateway for an application that is undergoing development, so it's not really going to be used for internet access (at least, not at the moment).

Getting this modem to work with a modern version of Debian is a huge plus for this project.

Thanks again for the Debian kernel package!

EDGE version under Linux

Greetings!

I recently was charged with getting the EDGE version of this modem to work under Linux, and noticed how out of date the drivers on the CD were for Linux.

At the moment, I'm trying to get this working on a Slackware 10.2 system (2.6.13.3 vanilla kernel, working hotplug system). The modem is recognized, and I see the device binding to /dev/ttyUSB0, but I cannot seem to talk to the modem using minicom (115200 baud, 8N1).

I just found this site, and will look over the info you have posted to see if it will help me with my modem. Any other tips or tricks you might have to offer would be greatly appreciated.

It's a shame this modem doesn't have better Linux support. It appears to be a really nice piece of hardware!

Edge under Linux suggestions

Hello Dan,

Did you actually download my Debian kernel and try using that with Slackware, or are you using the unpatched driver? The Multitech-provided patches will not apply to the current driver source, and even if you hand-patch them, the driver will not work. The trouble has to do with resetting the configuration, apparently, but I really don't understand the problem, I just was lucky to find a fix that I adapted from a posting about a similar problem with a different driver. As far as I know, my patched version of the Multimodem driver is the only one available for modern versions of Linux.

I would really like to know if this works OK with EDGE. It is tested by me only for GPRS, but the driver is supposed to work for EDGE, and the firmware is included for EDGE.

To see if my driver will work for you , the easy way is to get Puppy Linux 4.00 and install my package for Puppy (called a "pet"), available on this site. This brand new "pet" uses a much smarter approach, providing a replacement driver rather than an entire kernel. Also, my Puppy pet driver package has an easy GUI setup program and includes PPP connection scripts. It "just works."

If that works with your EDGE modem and you cannot use my Multimodem-capable Debian kernel, then I suggest you use the patches I have provided in this article to compile a new driver for your Slackware kernel version. It should not be necessary to replace the whole kernel, just the ti_usb_3410_5052 driver.

By the way, Puppy Linux 4.00 is an extremely fast and full-featured Linux. It doesn't require a Linux partition to be installed. It essentially runs in memory, and saves the user's settings and files to a Linux filesystem that can be contained within a file stored on any filesystem type (including NTFS).

Lloyd

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br> <img> <alt>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
(for spam prevention)
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.