Compiling ACX for the new Ubuntu 9.10

Anonymous
2009-11-01
2013-02-17
  • Anonymous - 2009-11-01

    I have a wireless pci card USR 5416, which has the chipset ACX 111. It worked fine in Ubuntu 9.04, but it is no more supported in Ubuntu 9.10, so I need to manually compile the acx module.
    I followed these instructions http://acx100.sourceforge.net/wiki/Distribution_list/Ubuntu
    but I found an error:

        andrea@andrea-desktop:/usr/src/acx-20070101$ sudo make -C /lib/modules/2.6.31-14-generic/build M=`pwd`
         password for andrea:
        make: Entering directory `/usr/src/linux-headers-2.6.31-14-generic'
          CC   /usr/src/acx-20070101/wlan.o
        In file included from /usr/src/acx-20070101/acx.h:2,
                         from /usr/src/acx-20070101/wlan.c:49:
        /usr/src/acx-20070101/wlan_compat.h:224: error: conflicting types for ‘irqreturn_t’
        include/linux/irqreturn.h:16: note: previous declaration of ‘irqreturn_t’ was here
        make: ***  Error 1
        make: ***  Error 2
        make: Leaving directory `/usr/src/linux-headers-2.6.31-14-generic'

    Could someone help me in solving this problem?

    Thank you very much.

     
  • Anonymous - 2009-11-02

    Seconded - I have the exact same problem

     
  • KDJ

    KDJ - 2009-11-11

    And after I comment out the irqreturn_t in wlan_compat.h I get this:

    LD      /home/ken/Install/acx/acx-20080210/built-in.o
      CC   /home/ken/Install/acx/acx-20080210/wlan.o   
      CC   /home/ken/Install/acx/acx-20080210/conv.o   
      CC   /home/ken/Install/acx/acx-20080210/ioctl.o  
      CC   /home/ken/Install/acx/acx-20080210/common.o 
      CC   /home/ken/Install/acx/acx-20080210/usb.o

    /home/ken/Install/acx/acx-20080210/usb.c: In function ‘acxusb_e_probe’:

    /home/ken/Install/acx/acx-20080210/usb.c:848: error: ‘struct net_device’ has no member named ‘open’

    /home/ken/Install/acx/acx-20080210/usb.c:849: error: ‘struct net_device’ has no member named ‘stop’

    /home/ken/Install/acx/acx-20080210/usb.c:850: error: ‘struct net_device’ has no member named ‘hard_start_xmit’

    /home/ken/Install/acx/acx-20080210/usb.c:851: error: ‘struct net_device’ has no member named ‘get_stats’

    /home/ken/Install/acx/acx-20080210/usb.c:856: error: ‘struct net_device’ has no member named ‘set_multicast_list’

    /home/ken/Install/acx/acx-20080210/usb.c:858: error: ‘struct net_device’ has no member named ‘tx_timeout’

    /home/ken/Install/acx/acx-20080210/usb.c:861: error: ‘struct net_device’ has no member named ‘change_mtu’

    make: ***  Error 1

    make: ***  Error 2

    make: Leaving directory `/usr/src/linux-2.6.31.5-1mnb'

     
  • _Nik_

    _Nik_ - 2010-09-07

    Hi Andrea DFC,
    i had your's same problem, and i founded a patch here on sourgeforge:
    http://sourceforge.net/tracker/?func=detail&aid=2867707&group_id=75380&atid=543747
    fixing that wasn't the solution for compiling acx module for me, now when i try to compile i get this error:

    $ sudo make -C /lib/modules/2.6.32-24-generic/build M=/usr/src/acx-20080210
    make: ingresso nella directory «/usr/src/linux-headers-2.6.32-24-generic»
      CC   /usr/src/acx-20080210/ioctl.o
    /usr/src/acx-20080210/ioctl.c: In function ‘acx_s_scan_add_station’:
    /usr/src/acx-20080210/ioctl.c:506: warning: passing argument 1 of ‘iwe_stream_add_event’ from incompatible pointer type
    include/net/iw_handler.h:517: note: expected ‘struct iw_request_info *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:506: warning: passing argument 3 of ‘iwe_stream_add_event’ from incompatible pointer type
    include/net/iw_handler.h:517: note: expected ‘char *’ but argument is of type ‘struct iw_event *’
    /usr/src/acx-20080210/ioctl.c:506: warning: passing argument 4 of ‘iwe_stream_add_event’ makes pointer from integer without a cast
    include/net/iw_handler.h:517: note: expected ‘struct iw_event *’ but argument is of type ‘long unsigned int’
    /usr/src/acx-20080210/ioctl.c:506: error: too few arguments to function ‘iwe_stream_add_event’
    /usr/src/acx-20080210/ioctl.c:513: warning: passing argument 1 of ‘iwe_stream_add_point’ from incompatible pointer type
    include/net/iw_handler.h:542: note: expected ‘struct iw_request_info *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:513: warning: passing argument 3 of ‘iwe_stream_add_point’ from incompatible pointer type
    include/net/iw_handler.h:542: note: expected ‘char *’ but argument is of type ‘struct iw_event *’
    /usr/src/acx-20080210/ioctl.c:513: warning: passing argument 4 of ‘iwe_stream_add_point’ from incompatible pointer type
    include/net/iw_handler.h:542: note: expected ‘struct iw_event *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:513: error: too few arguments to function ‘iwe_stream_add_point’
    /usr/src/acx-20080210/ioctl.c:523: warning: passing argument 1 of ‘iwe_stream_add_event’ from incompatible pointer type
    include/net/iw_handler.h:517: note: expected ‘struct iw_request_info *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:523: warning: passing argument 3 of ‘iwe_stream_add_event’ from incompatible pointer type
    include/net/iw_handler.h:517: note: expected ‘char *’ but argument is of type ‘struct iw_event *’
    /usr/src/acx-20080210/ioctl.c:523: warning: passing argument 4 of ‘iwe_stream_add_event’ makes pointer from integer without a cast
    include/net/iw_handler.h:517: note: expected ‘struct iw_event *’ but argument is of type ‘long unsigned int’
    /usr/src/acx-20080210/ioctl.c:523: error: too few arguments to function ‘iwe_stream_add_event’
    /usr/src/acx-20080210/ioctl.c:531: warning: passing argument 1 of ‘iwe_stream_add_event’ from incompatible pointer type
    include/net/iw_handler.h:517: note: expected ‘struct iw_request_info *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:531: warning: passing argument 3 of ‘iwe_stream_add_event’ from incompatible pointer type
    include/net/iw_handler.h:517: note: expected ‘char *’ but argument is of type ‘struct iw_event *’
    /usr/src/acx-20080210/ioctl.c:531: warning: passing argument 4 of ‘iwe_stream_add_event’ makes pointer from integer without a cast
    include/net/iw_handler.h:517: note: expected ‘struct iw_event *’ but argument is of type ‘long unsigned int’
    /usr/src/acx-20080210/ioctl.c:531: error: too few arguments to function ‘iwe_stream_add_event’
    /usr/src/acx-20080210/ioctl.c:549: warning: passing argument 1 of ‘iwe_stream_add_event’ from incompatible pointer type
    include/net/iw_handler.h:517: note: expected ‘struct iw_request_info *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:549: warning: passing argument 3 of ‘iwe_stream_add_event’ from incompatible pointer type
    include/net/iw_handler.h:517: note: expected ‘char *’ but argument is of type ‘struct iw_event *’
    /usr/src/acx-20080210/ioctl.c:549: warning: passing argument 4 of ‘iwe_stream_add_event’ makes pointer from integer without a cast
    include/net/iw_handler.h:517: note: expected ‘struct iw_event *’ but argument is of type ‘long unsigned int’
    /usr/src/acx-20080210/ioctl.c:549: error: too few arguments to function ‘iwe_stream_add_event’
    /usr/src/acx-20080210/ioctl.c:559: warning: passing argument 1 of ‘iwe_stream_add_point’ from incompatible pointer type
    include/net/iw_handler.h:542: note: expected ‘struct iw_request_info *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:559: warning: passing argument 3 of ‘iwe_stream_add_point’ from incompatible pointer type
    include/net/iw_handler.h:542: note: expected ‘char *’ but argument is of type ‘struct iw_event *’
    /usr/src/acx-20080210/ioctl.c:559: warning: passing argument 4 of ‘iwe_stream_add_point’ from incompatible pointer type
    include/net/iw_handler.h:542: note: expected ‘struct iw_event *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:559: error: too few arguments to function ‘iwe_stream_add_point’
    /usr/src/acx-20080210/ioctl.c:574: warning: passing argument 1 of ‘iwe_stream_add_value’ from incompatible pointer type
    include/net/iw_handler.h:569: note: expected ‘struct iw_request_info *’ but argument is of type ‘char *’
    /usr/src/acx-20080210/ioctl.c:574: warning: passing argument 4 of ‘iwe_stream_add_value’ from incompatible pointer type
    include/net/iw_handler.h:569: note: expected ‘char *’ but argument is of type ‘struct iw_event *’
    /usr/src/acx-20080210/ioctl.c:574: warning: passing argument 5 of ‘iwe_stream_add_value’ makes pointer from integer without a cast
    include/net/iw_handler.h:569: note: expected ‘struct iw_event *’ but argument is of type ‘long unsigned int’
    /usr/src/acx-20080210/ioctl.c:574: error: too few arguments to function ‘iwe_stream_add_value’
    make: ***  Errore 1
    make: ***  Errore 2
    make: uscita dalla directory «/usr/src/linux-headers-2.6.32-24-generic»

     
  • KDJ

    KDJ - 2010-09-08

    try acx_karmic.patch

    I had to use it on Mandriva 2009.1

    diff -Naur old_acx-20080210/ioctl.c acx-20080210/ioctl.c
    --- old_acx-20080210/ioctl.c    2009-11-09 13:48:14.000000000 +0200
    +++ acx-20080210/ioctl.c    2009-11-09 13:51:31.000000000 +0200
    @@ -489,6 +489,7 @@
     static char*
     acx_s_scan_add_station(
        acx_device_t *adev,
    +   struct iw_request_info *info,
        char *ptr,
        char *end_buf,
        struct client *bss)
    @@ -503,14 +504,14 @@
        iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
        MAC_COPY(iwe.u.ap_addr.sa_data, bss->bssid);
        acxlog_mac(L_IOCTL, "scan, station address: ", bss->bssid, "\n");
    -   ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_ADDR_LEN);
    +   ptr = iwe_stream_add_event(info,ptr, end_buf, &iwe, IW_EV_ADDR_LEN);
    
        /* Add ESSID */
        iwe.cmd = SIOCGIWESSID;
        iwe.u.data.length = bss->essid_len;
        iwe.u.data.flags = 1;
        log(L_IOCTL, "scan, essid: %s\n", bss->essid);
    -   ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid);
    +   ptr = iwe_stream_add_point(info,ptr, end_buf, &iwe, bss->essid);
    
        /* Add mode */
        iwe.cmd = SIOCGIWMODE;
    @@ -520,7 +521,7 @@
            else
                iwe.u.mode = IW_MODE_ADHOC;
            log(L_IOCTL, "scan, mode: %d\n", iwe.u.mode);
    -       ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_UINT_LEN);
    +       ptr = iwe_stream_add_event(info,ptr, end_buf, &iwe, IW_EV_UINT_LEN);
        }
    
        /* Add frequency */
    @@ -528,7 +529,7 @@
        iwe.u.freq.m = acx_channel_freq[bss->channel - 1] * 100000;
        iwe.u.freq.e = 1;
        log(L_IOCTL, "scan, frequency: %d\n", iwe.u.freq.m);
    -   ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_FREQ_LEN);
    +   ptr = iwe_stream_add_event(info,ptr, end_buf, &iwe, IW_EV_FREQ_LEN);
    
        /* Add link quality */
        iwe.cmd = IWEVQUAL;
    @@ -546,7 +547,7 @@
        iwe.u.qual.updated = 7;
        log(L_IOCTL, "scan, link quality: %d/%d/%d\n",
                iwe.u.qual.level, iwe.u.qual.noise, iwe.u.qual.qual);
    -   ptr = iwe_stream_add_event(ptr, end_buf, &iwe, IW_EV_QUAL_LEN);
    +   ptr = iwe_stream_add_event(info,ptr, end_buf, &iwe, IW_EV_QUAL_LEN);
    
        /* Add encryption */
        iwe.cmd = SIOCGIWENCODE;
    @@ -556,7 +557,7 @@
            iwe.u.data.flags = IW_ENCODE_DISABLED;
        iwe.u.data.length = 0;
        log(L_IOCTL, "scan, encryption flags: %X\n", iwe.u.data.flags);
    -   ptr = iwe_stream_add_point(ptr, end_buf, &iwe, bss->essid);
    +   ptr = iwe_stream_add_point(info,ptr, end_buf, &iwe, bss->essid);
    
        /* add rates */
        iwe.cmd = SIOCGIWRATE;
    @@ -570,7 +571,7 @@
            if (rate & 1) {
                iwe.u.bitrate.value = *p * 500000; /* units of 500kb/s */
                log(L_IOCTL, "scan, rate: %d\n", iwe.u.bitrate.value);
    -           ptr_rate = iwe_stream_add_value(ptr, ptr_rate, end_buf,
    +           ptr_rate = iwe_stream_add_value(info,ptr, ptr_rate, end_buf,
                            &iwe, IW_EV_PARAM_LEN);
            }
            rate >>= 1;
    @@ -625,7 +626,7 @@
        for (i = 0; i < ARRAY_SIZE(adev->sta_list); i++) {
            struct client *bss = &adev->sta_list[i];
            if (!bss->used) continue;
    -       ptr = acx_s_scan_add_station(adev, ptr,
    +       ptr = acx_s_scan_add_station(adev, info, ptr,
                extra + IW_SCAN_MAX_DATA, bss);
        }
        dwrq->length = ptr - extra;
    diff -Naur old_acx-20080210/pci.c acx-20080210/pci.c
    --- old_acx-20080210/pci.c  2009-11-09 13:48:14.000000000 +0200
    +++ acx-20080210/pci.c  2009-11-09 13:53:34.000000000 +0200
    @@ -1437,6 +1437,17 @@
    
     static void dummy_netdev_init(struct net_device *ndev) {}
    
    +static const struct net_device_ops acx_net_device_ops =
    +{
    +      .ndo_open = acxpci_e_open,
    +      .ndo_stop = acxpci_e_close,
    +      .ndo_start_xmit = acx_i_start_xmit,
    +      .ndo_get_stats = acx_e_get_stats,
    +      .ndo_set_multicast_list = acxpci_i_set_multicast_list,
    +      .ndo_tx_timeout = acxpci_i_tx_timeout,
    +      .ndo_change_mtu = acx_e_change_mtu,
    +};
    +
     #ifdef CONFIG_PCI
     static int __devinit acxpci_e_probe(struct pci_dev *pdev, const struct pci_device_id *id)
     {
    @@ -1547,17 +1558,11 @@
        }
    
        ether_setup(ndev);
    -   ndev->open = &acxpci_e_open;
    -   ndev->stop = &acxpci_e_close;
    -   ndev->hard_start_xmit = &acx_i_start_xmit;
    -   ndev->get_stats = &acx_e_get_stats;
    +   ndev->netdev_ops = &acx_net_device_ops;
     #if IW_HANDLER_VERSION <= 5
        ndev->get_wireless_stats = &acx_e_get_wireless_stats;
     #endif
        ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def;
    -   ndev->set_multicast_list = &acxpci_i_set_multicast_list;
    -   ndev->tx_timeout = &acxpci_i_tx_timeout;
    -   ndev->change_mtu = &acx_e_change_mtu;
        ndev->watchdog_timeo = 4 * HZ;
        ndev->irq = pdev->irq;
        ndev->base_addr = pci_resource_start(pdev, 0);
    diff -Naur old_acx-20080210/usb.c acx-20080210/usb.c
    --- old_acx-20080210/usb.c  2009-11-09 13:48:14.000000000 +0200
    +++ acx-20080210/usb.c  2009-11-09 13:55:26.000000000 +0200
    @@ -778,6 +778,17 @@
     static void
     dummy_netdev_init(struct net_device *ndev) {}
    
    +static const struct net_device_ops acx_net_device_ops =
    +{
    +      .ndo_open = acxusb_e_open,
    +      .ndo_stop = acxusb_e_close,
    +      .ndo_start_xmit = acx_i_start_xmit,
    +      .ndo_get_stats = acx_e_get_stats,
    +      .ndo_set_multicast_list = acxusb_i_set_rx_mode,
    +      .ndo_tx_timeout = acxusb_i_tx_timeout,
    +      .ndo_change_mtu = acx_e_change_mtu,
    +};
    +
     static int
     acxusb_e_probe(struct usb_interface *intf, const struct usb_device_id *devID)
     {
    @@ -845,20 +856,14 @@
        /* Register the callbacks for the network device functions */
    
        ether_setup(ndev);
    -   ndev->open = &acxusb_e_open;
    -   ndev->stop = &acxusb_e_close;
    -   ndev->hard_start_xmit = (void *)&acx_i_start_xmit;
    -   ndev->get_stats = (void *)&acx_e_get_stats;
    +   ndev->netdev_ops = &acx_net_device_ops;
     #if IW_HANDLER_VERSION <= 5
        ndev->get_wireless_stats = (void *)&acx_e_get_wireless_stats;
     #endif
        ndev->wireless_handlers = (struct iw_handler_def *)&acx_ioctl_handler_def;
    -   ndev->set_multicast_list = (void *)&acxusb_i_set_rx_mode;
     #ifdef HAVE_TX_TIMEOUT
    -   ndev->tx_timeout = &acxusb_i_tx_timeout;
        ndev->watchdog_timeo = 4 * HZ;
     #endif
    -   ndev->change_mtu = &acx_e_change_mtu;
     #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) && defined(SET_MODULE_OWNER)
        SET_MODULE_OWNER(ndev);
     #endif
    diff -Naur old_acx-20080210/wlan_compat.h acx-20080210/wlan_compat.h
    --- old_acx-20080210/wlan_compat.h  2009-11-09 13:48:14.000000000 +0200
    +++ acx-20080210/wlan_compat.h  2009-11-09 13:49:05.000000000 +0200
    @@ -217,13 +217,6 @@
     /*=============================================================*/
     #define WLAN_PACKED    __attribute__ ((packed))
    
    -/* Interrupt handler backwards compatibility stuff */
    -#ifndef IRQ_NONE
    -#define IRQ_NONE
    -#define IRQ_HANDLED
    -typedef void irqreturn_t;
    -#endif
    -
     #ifndef ARPHRD_IEEE80211_PRISM
     #define ARPHRD_IEEE80211_PRISM 802
     #endif
    
     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks