Re: KERNEL 2.6.29 and Agere Systems Soft Modem (chipset 11c1:0620)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

[Index of Archives]     [Linux Media Development]     [Asterisk]     [DCCP]     [Netdev]     [X.org]     [Xfree86]     [Fedora Women]     [Linux USB]

  Powered by Linux