PDA

View Full Version : Winmodem support under 2.6.17_FC4



dshaw256
2nd July 2006, 10:38 PM
I hope somebody can point me in a direction. I wasn't which forum to post this in, but I figured it's a problem with a laptop modem so I went with the obvious.

I have a Lucent/Agere Winmodem in my Toshiba Tecra laptop. I found a source-based driver package (ltmodem-2.6-8alk) that provides support under FC4. This package compiles perfectly for the 2.6.16 series of kernels.

A recent yum update brought down kernel-2.6.17-1.2139_FC4 and the related kernel-devel package. I cannot compile my drivers under this kernel. I get the following errors:

/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:123: error: syntax error before string constant
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:123: warning: type defaults to ‘int’ in declaration of ‘MODULE_PARM’
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:123: warning: function declaration isn’t a prototype
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:123: warning: data definition has no type or storage class
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:125: error: syntax error before string constant
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:125: warning: type defaults to ‘int’ in declaration of ‘MODULE_PARM’
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:125: warning: function declaration isn’t a prototype
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:125: warning: data definition has no type or storage class
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:130: error: syntax error before string constant
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:130: warning: type defaults to ‘int’ in declaration of ‘MODULE_PARM’
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:130: warning: function declaration isn’t a prototype
/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.c:130: warning: data definition has no type or storage class
make[2]: *** [/home/david/projects/modem/ltmodem-2.6-8alk/lt_modem.o] Error 1
make[1]: *** [_module_/home/david/projects/modem/ltmodem-2.6-8alk] Error 2
make: *** [module] Error 2
The errors refer to this section of code:

MODULE_PARM(vendor_id, "i");
MODULE_PARM_DESC(vendor_id, "Vendor ID of the Lucent Modem e.g. vendor_id=0x11c1");
MODULE_PARM(device_id, "i");
MODULE_PARM_DESC(device_id, "Device ID of the Lucent Modem e.g. device_id=0x0440");

static int Forced[4] = {-1,-1,-1,0};

MODULE_PARM(Forced, "4i");
MODULE_PARM_DESC(Forced, "Forced Irq,BaseAddress,ComAddress[,NoDetect] of the Lucent Modem e.g. Forced=3,0x130,0x2f8");
I don't know the code in the modem package, but it appears that MODULE_PARM is a macro, and given that it's clean under 2.6.16 but not under 2.6.17, I'm assuming that it's defined in the kernel headers. So I'm further assuming that this was changed in the 2.6.17 kernel.

I don't know at this point whether I need to wait on the Linmodem developers to catch up with the kernel (they appear to be following a totally different track with the support package, one that I'm not as happy with), or whether I can expect the kernel developers to fix the MODULE_PARM macro in a subsequent release of 2.6.17. Or do I say the heck with it and invest in a hardware modem. All three approaches are fraught with potential peril.

I'd appreciate some informed advice!

Thanks,

old_guy
13th July 2006, 02:46 PM
Hey,

I ran into the same issue building the driver on my Toshiba Laptop with FC5. I haven't needed the modem so I haven't built the driver for it in a while. I googled around and, from I can tell(I'm by no means a kernel coder) it sounds like MODULE_PARM is being phased out. Alas, 2.6.17 seems to be where this has happened. From what I read it was being replaced with something else called module_param and my attempts to modify the ltmodem source code and use this didn't work. It complied, but locked my computer up when I attempted to use the modem! So much for my brief career as a driver hacker.

Anyway, I think you have a few options. My experience with Hardware modems and Linux has been very good. I picked up an old 56k serial port modem at a garage sale for a few bucks and it's been humming along at the cabin just fine. You might run into problems with a USB modem, but if you do a little research first you should be able to find a modem that will work. If you did get the driver to build under 2.6.16 you could also drop back down to that and wait for the ltmodem folks to catch up and fix this issue.

If I can find a solution to this I'll let you know.

dshaw256
13th July 2006, 10:09 PM
Thank you, sir, for the background information.

The guys who support my particular driver have taken a new approach to the problem and have created a version that compiles clean, but installation is a bit fuzzy. Part of the driver runs in kernel mode and part is a "helper application" that runs in user mode. I'm still trying to get my mind around the installation and use of this thing. If I can make it work, so much the better. If not, I know I can get a working PC card modem for around $30. I'm actually leaning toward throwing hardware at the problem; getting kind of tired of the driver dance!

Thx again,

dshaw256
14th July 2006, 09:08 PM
Well, with quite a bit of support and encouragement from Robert Luckoff, I got the "martian" split-mode driver to work correctly, so I'm good at this point. If anybody else has problems with Lucent/Agere WinModems, drop a note and I'll be able to help.