Page 1 of 2 12 LastLast
Results 1 to 10 of 16

Thread: AVM Fritz WLAN USB Stick and openSUSE 11.0

  1. #1
    Tilman Schmidt NNTP User

    Default AVM Fritz WLAN USB Stick and openSUSE 11.0

    Trying to get the gadget named in the subject to work with openSUSE 11.0.
    YaST tells me I have to get a driver and/or firmware from the vendor.
    The vendor offers me a proprietary driver which I'll have to compile for
    my kernel.
    Trying to do so fails with an error message because of a type redefinition,
    and after removing that, another error because it uses GPL-only functions.
    Tentatively overriding the GPL check produces a module which loads and
    detects the device but doesn't actually succeed in producing a wireless
    connection; instead it makes the kernel oops and hang on shutdown.
    Any chance of getting that device to work? Or do I have to file AVM in
    the "Linux unfriendly" category?

    TIA
    T.

  2. #2
    Join Date
    Mar 2008
    Location
    Phuket, Thailand
    Posts
    26,595
    Blog Entries
    38

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0

    Quote Originally Posted by Tilman Schmidt View Post
    Trying to get the gadget named in the subject to work with openSUSE 11.0.
    I removed your previous duplicate thread. Please, only one post on a subject.

  3. #3
    Join Date
    Jun 2008
    Location
    Kansas City Area, Missouri, USA
    Posts
    7,235

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0

    Tilman Schmidt wrote:
    > Trying to get the gadget named in the subject to work with openSUSE 11.0.
    > YaST tells me I have to get a driver and/or firmware from the vendor.
    > The vendor offers me a proprietary driver which I'll have to compile for
    > my kernel.
    > Trying to do so fails with an error message because of a type redefinition,
    > and after removing that, another error because it uses GPL-only functions.
    > Tentatively overriding the GPL check produces a module which loads and
    > detects the device but doesn't actually succeed in producing a wireless
    > connection; instead it makes the kernel oops and hang on shutdown.
    > Any chance of getting that device to work? Or do I have to file AVM in
    > the "Linux unfriendly" category?


    They are certainly not "Linux friendly" if they are not GPLing their driver.

    I don't have the device, but I'm willing to look at their code. To determine
    where in the code that the oops is occurring, please install the objdump
    package, and determine which file in the module contains the bad routine. Then
    issue the command

    objdump -d -l (path to binary) > dump_of_bad_routine

    In the output file, find the entry point of the routine that is failing, add the
    failure offset to it, and you will have the line number in the source file that
    failed.

    Larry









  4. #4
    Join Date
    Jun 2008
    Location
    Kansas City Area, Missouri, USA
    Posts
    7,235

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0

    Tilman Schmidt wrote:
    > Trying to get the gadget named in the subject to work with openSUSE 11.0.
    > YaST tells me I have to get a driver and/or firmware from the vendor.
    > The vendor offers me a proprietary driver which I'll have to compile for
    > my kernel.
    > Trying to do so fails with an error message because of a type redefinition,
    > and after removing that, another error because it uses GPL-only functions.
    > Tentatively overriding the GPL check produces a module which loads and
    > detects the device but doesn't actually succeed in producing a wireless
    > connection; instead it makes the kernel oops and hang on shutdown.
    > Any chance of getting that device to work? Or do I have to file AVM in
    > the "Linux unfriendly" category?


    They are certainly not "Linux friendly" if they are not GPLing their driver.

    I don't have the device, but I'm willing to look at their code. To determine
    where in the code that the oops is occurring, please install the objdump
    package, and determine which file in the module contains the bad routine. Then
    issue the command

    objdump -d -l (path to binary) > dump_of_bad_routine

    In the output file, find the entry point of the routine that is failing, add the
    failure offset to it, and you will have the line number in the source file that
    failed.

    Larry









  5. #5
    Join Date
    Mar 2008
    Location
    Phuket, Thailand
    Posts
    26,595
    Blog Entries
    38

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0

    Quote Originally Posted by lwfinger View Post
    Tilman Schmidt wrote:
    > Trying to get the gadget named in the subject to work with openSUSE 11.0.
    .....


    They are certainly not "Linux friendly" if they are not GPLing their driver.
    Thread locked for move to new location.
    AVM Fritz WLAN USB Stick and openSUSE 11.0 - openSUSE Forums

    Move complete. Thread unlocked.

  6. #6
    Tilman Schmidt NNTP User

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0

    oldcpu schrieb:
    > Tilman Schmidt;1837649 Wrote:
    >> Trying to get the gadget named in the subject to work with openSUSE
    >> 11.0.

    >
    > I removed your previous duplicate thread. Please, only one post on a
    > subject.


    Sorry, still trying to cope with the limited NNTP support on this news server.
    In fact I *did* post only once, as a cross-post to opensuse.org.help.hardware
    and opensuse.org.help.network-internet.wireless, but apparently the server
    for the opensuse hierarchy doesn't grok that so you saw it twice.

    Are there other non-standard limitations like that in this hierarchy?
    Where can I read up on them?

    TIA
    T.

  7. #7
    Tilman Schmidt NNTP User

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0

    Larry Finger schrieb:
    > Tilman Schmidt wrote:
    >> Trying to get the gadget named in the subject to work with openSUSE 11.0.
    >> YaST tells me I have to get a driver and/or firmware from the vendor.
    >> The vendor offers me a proprietary driver which I'll have to compile for
    >> my kernel.
    >> Trying to do so fails with an error message because of a type
    >> redefinition,
    >> and after removing that, another error because it uses GPL-only
    >> functions.
    >> Tentatively overriding the GPL check produces a module which loads and
    >> detects the device but doesn't actually succeed in producing a wireless
    >> connection; instead it makes the kernel oops and hang on shutdown.
    >> Any chance of getting that device to work? Or do I have to file AVM in
    >> the "Linux unfriendly" category?

    >
    > They are certainly not "Linux friendly" if they are not GPLing their
    > driver.
    >
    > I don't have the device, but I'm willing to look at their code. To
    > determine where in the code that the oops is occurring, please install
    > the objdump package, and determine which file in the module contains the
    > bad routine. Then issue the command
    >
    > objdump -d -l (path to binary) > dump_of_bad_routine
    >
    > In the output file, find the entry point of the routine that is failing,
    > add the failure offset to it, and you will have the line number in the
    > source file that failed.


    Sorry for the delay in replying. I got put off by the "thread locked"
    message. I'll be back soonish with the results of the check you proposed.
    (It's a machine I don't always have access to.)

    Thanks,
    Tilman

    [Dropped opensuse.org.help.hardware from the list of groups in the hope
    of avoiding the "duplicate posting" problem which seems to have caused
    the locking of the thread. Hope that's ok.]

  8. #8
    Tilman Schmidt NNTP User

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0 [SOLVED]

    Larry Finger schrieb:
    > Tilman Schmidt wrote:

    [...]
    >> Any chance of getting that device to work? Or do I have to file AVM in
    >> the "Linux unfriendly" category?

    >
    > They are certainly not "Linux friendly" if they are not GPLing their
    > driver.


    Granted. However, between black (vendors blocking any effort to use their
    device with Linux) and white (vendors maintaining a fully functional GPLed
    driver within the official kernel source tree), there are a lot of shades
    of grey, from sharing specs to publishing a GPLed but out-of-tree driver,
    or even different hues like the oft-deplored binary-only parts, somtimes
    accompanied by limited-functionality open source drivers.

    > I don't have the device, but I'm willing to look at their code.


    Thanks for that offer, but in the meantime I have already received a
    pointer to a solution for Ubuntu published on the web
    (http://forum.ubuntuusers.de/topic/av.../#post-1402740)
    which cleared everything up. There are really two problems:
    (a) changes in the kernel to which the code has to be adapted, and
    (b) the new measures against non-GPL USB drivers in the Linux kernel.[*]

    So without much further ado, here's how I got it to work:

    - Download the AVM driver fwlanusb-1.00.00.tar.gz from the AVM website.

    - Unpack with the command "tar -tvzf fwlanusb-1.00.00.tar.gz", producing
    a directory "fritz".

    - Apply the following patch to adapt the source for use with kernel
    release 2.6.25:

    --------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<
    diff -rup fritz~/src/defs.h fritz/src/defs.h
    --- fritz~/src/defs.h 2007-07-05 15:00:00.000000000 +0200
    +++ fritz/src/defs.h 2008-07-11 17:47:08.000000000 +0200
    @@ -60,7 +60,7 @@

    #define UNUSED_ARG(x) (x)=(x)

    -typedef unsigned long uintptr_t;
    +//typedef unsigned long uintptr_t;

    /*---------------------------------------------------------------------------*\
    \*---------------------------------------------------------------------------*/
    diff -rup fritz~/src/wext.c fritz/src/wext.c
    --- fritz~/src/wext.c 2007-07-05 15:00:00.000000000 +0200
    +++ fritz/src/wext.c 2008-07-28 02:37:10.000000000 +0200
    @@ -68,7 +68,7 @@ static int fwlanusb_get_name (
    struct net_device *dev, struct iw_request_info *info,
    union iwreq_data *wrqu, char *extra) {

    - strcpy(wrqu->name, "IEEE 802.11b/g");
    + snprintf(wrqu->name, IFNAMSIZ, "IEEE 802.11b/g");
    return 0;
    }

    -------->8-------->8-------->8-------->8-------->8-------->8-------->8-------->8

    - Bypass the measures against non-GPL USB drivers introduced with
    kernel release 2.6.25. This is of course frowned upon, so I won't
    explain how to do it.

    - Run the driver's "install" script as root, with the command
    "sudo ./install"

    - Plug in the stick, watch it being detected in the syslog, configure
    as described in the driver's Readme.html file, enjoy (with bad
    conscience).

    HTH
    T.
    [*] Introduced by commit 782e70c6fc2290a0395850e8e02583b8b62264d8, which
    claims in its description: "There are no known closed source USB drivers
    in the wild, so this patch should cause no problems." Oh well.

  9. #9

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0

    All of this sounds reasonable, yet I get an additional error:

    make
    make -C /lib/modules/2.6.31.3-1-default/build SUBDIRS=/media/500GB/fritz/src modules
    make[1]: Entering directory `/usr/src/linux-2.6.31.3-1-obj/i386/default'
    make -C ../../../linux-2.6.31.3-1 O=/usr/src/linux-2.6.31.3-1-obj/i386/default/. modules
    CC [M] /media/500GB/fritz/src/driver.o
    /media/500GB/fritz/src/driver.c: In function net_init:
    /media/500GB/fritz/src/driver.c:317: error: struct net_device has no member named priv
    /media/500GB/fritz/src/driver.c:318: error: struct net_device has no member named open
    /media/500GB/fritz/src/driver.c:319: error: struct net_device has no member named stop
    /media/500GB/fritz/src/driver.c:320: error: struct net_device has no member named hard_start_xmit
    /media/500GB/fritz/src/driver.c:321: error: struct net_device has no member named get_stats
    /media/500GB/fritz/src/driver.c: In function net_rx:
    /media/500GB/fritz/src/driver.c:405: error: struct net_device has no member named priv
    /media/500GB/fritz/src/driver.c: In function net_tx:
    /media/500GB/fritz/src/driver.c:436: error: struct net_device has no member named priv
    /media/500GB/fritz/src/driver.c: In function net_stats:
    /media/500GB/fritz/src/driver.c:458: error: struct net_device has no member named priv
    make[4]: *** [/media/500GB/fritz/src/driver.o] Error 1
    make[3]: *** [_module_/media/500GB/fritz/src] Error 2
    make[2]: *** [sub-make] Error 2
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/usr/src/linux-2.6.31.3-1-obj/i386/default'
    make: *** [fwlanusb.o] Error 2

    Not sure what to do about it, I found a hint here

    Ilap's tech: Cisco VPN Client on Karmic Koala

    stating "I looked at the source code and seemed that the Linux kernel 2.6.31 replaced the old net_device structure with a new one and is using that new structure for the net_device operations. This structure called net_device_ops (const struct net_device_ops *netdev_ops)."

    Alas I am too casual a programmer to fix it myself, I would be happy if you could help me out.

  10. #10

    Default Re: AVM Fritz WLAN USB Stick and openSUSE 11.0

    Quote Originally Posted by Tilman Schmidt View Post
    ....
    and after removing that, another error because it uses GPL-only functions.
    Tentatively overriding the GPL check produces a module which loads
    .. and breaks at least two licenses at the same time (GPL and the license of AVM).

    Very interesting, that such a thread, clearly explaining illegal activities and breaking one of the most important bases of FOSS (the most important free software license in linux) remains open for nearly one year.

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •