MC7304 Legacy Linux Operation

Hi,

I have been given the task of getting the MC7304 to work with some legacy software running Linux kernel 2.6.21. I just need it to present as a tty device that accepts Hates (AT) commands.

Is this possible?

I have seen comments that it requires QMI drivers and the drivers require kernel 3.2. This would seem to rule it out but is there any other way to make the MODEM work with generic drivers?

Thanks!

Both tty and QMI work well with me on 2.6.32

Got a 7304 too… How do I “mount” it as a /dev/tty and send AT commands ? (from Perl or Bash on Ubuntu)
My modem is current : /dev/cdc-wdm1

Ok, I was looking at the QMI driver but the ‘correct’ driver is the sierra driver, which does go back to 2.6.21.

I now have this working but, like Sune, I just have /devcdc-wdm1.

So I am in the same situation of needing to get the modem to act as an AT device rather than as a QMI device.

Any ideas?

I have it working to ATI commands - the short version is that I patched the driver (sierra.c) to add the device code for the MC7304 and the MODEM showed up as /dev/ttyUSB[0-2] and ttyUB2 is responding to ATI.

Can you (ctrob67) please cut/paste the Patch or give a URL for the patch (attach it?)… I love to try it out :smiley:

Sorry - not been back as last post effectively closed the issue for me but chanced back here again.

This patch is nothing particularly clever and it may be possible to achieve without patching (as I have with other drivers by writing the new device id to a driver file node). The patch just adds the new device id to its list of supported devices:

diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 74a9375…d1a343b 100644
— a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -297,6 +297,7 @@ static const struct usb_device_id id_table[] = {
{ USB_DEVICE_AND_INTERFACE_INFO(0x0F3D, 0x68A3, 0xFF, 0xFF, 0xFF),
.driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist
},

  • { USB_DEVICE(0x1199, 0x68C0) }, /* Sierra Wireless MC7304 */

    { }
    };