I forgot to mention that agrmodemlib.o needs to be renamed agrmodemlib.o_shipped before the make, to mark it as a prebuilt binary blob. Otherwise 'make clean' will delete it. -- Nick Zhuravlev www.auriga.com On Sat, Dec 12, 2009 at 12:19:01PM -0500, John McGowan <jmcgowan@xxxxxxxx> wrote: > KERNEL 2.6.29 and Agere Systems Soft Modem (chipset 11c1:0620) > ============================================================== > > The following is using Fedora Core11. > > Using agrsm06pci-2.1.80~20090825.tar.gz as the source for > the modules to work with this modem: > > > Attempting to compile the modules for kernel 2.6.29 (Fedora Core 11 with its > PAE configuration) led to > agrsm06pci-2.1.80~20090825/agrsoftmodem.c:263: error: too few arguments to function `__request_region' > > Examining > /usr/src/linux/include/linux/ioport.h > > I see > #define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name), 0) > > #define __request_mem_region(start,n,name, excl) __request_region(&iomem_resource, (start), (n), (name), excl) > > extern struct resource * __request_region(struct resource *, > resource_size_t start, > resource_size_t n, > const char *name, int flags); > > #define request_mem_region_exclusive(start,n,name) \ > __request_region(&iomem_resource, (start), (n), (name), IORESOURCE_EXCLUSIVE) > > > and it appears that __request_region has gained another argument, a flag > which may specify exclusivity along with request_region(start,n,name) > which uses a value of zero for that argument. > > I changed the code > > // return(request_region(start, n, name)); > return(__request_region(&ioport_resource, (start), (n), (name))); > > in agrsoftmodem.c to > > // return(request_region(start, n, name)); > // return(__request_region(&ioport_resource, (start), (n), (name))); > return(__request_region(&ioport_resource, (start), (n), (name), 0)); > > It seems that request_region was originally used, > then changed to use the more kernel-specific __request_region and > while request_region did not change, __request_region did. > > I am no C-programmer but I *seem* to have gotten it to work. > > > MODPROBE: > ========= > After installing I find that modprobe will not find it. > Howver, > insmod -f [filename] > is used in > /etc/init.d/agr_softmodem > > /sbin/insmod -f /lib/modules`uname -r`/kernel/drivers/char/agrmodem.ko; \ > /sbin/insmod -f /lib/modules/`uname -r`/kernel/drivers/char/agrserial.ko; \ > /usr/lib/AgereSoftModem/AgereMdmDaemon > > so one may want to edit the material on using modprobe (which cannot > find the module while insmod can specify the module by path/filename > and so the attempt to load the modules in agrsm-test.txt from > agrsm-tools-0.0.1-2.noarch.rpm using modprobe fails). > > service agr_softmodem (start|stop) > > can be used to start/stop it (inserting/removing the modules and so > creating/removing /dev/ttyAGS3) in Fedora Core11.