Getting the acx mac80211 driver

wolleric
2007-07-03
2013-02-17
  • wolleric

    wolleric - 2007-07-03

    Hi everyone,

    my notebook has a Draytek Vigor 520 WiFi card which uses the TI acx100 chip. To connect to my university's WLAN, I need WPA EAP/TLS support, so I was relieved to hear that the acx driver development is a least heading this way. :) But up to now I couldn't figure out how to get either the softmac or the mac80211 port of the driver. I git-cloned the wireless-dev tree as described in the Wiki, but I was astonished that the driver is obviously that closely bound to a specific kernel tree.
    What if I also want to use driver XYZ which is also only available in it's own git kernel tree? Can these two trees simply be merged? Is there no way of applying the acx driver (and if neccessary the mac80211 layer) to my current 2.6.21-4 kernel tree and then recompile?

    Sorry, but I'm all new to this git stuff and totally confused. :-/

    Greets,
    Eric

     
    • David Planella

      David Planella - 2007-07-04

      Development might be (slowly) heading this way, but the softmac and mac80211 drivers are in a very early stage of development, and I do not think WPA is yet implemented in any of them.

      As far as I can understand, there has been more development effort in the softmac port in the past, so it might not be as 'alpha software' as the mac80211 driver. In any case, development there seems to be stalled and the mac80211 stack is what will be used in the mainline kernel in the future.

      Regarding the mac80211 driver, my experience is that it compiles fine, but on my acx111 chipset it freezes the kernel at some point during initialisation, so I cannot really use it atm. I believe this driver "flavour" is the way to go, but it is still in alpha stage.

      The fact that the mac80211 driver was (not anymore) bound to the wireless-dev tree was because the mac80211 stack had still not made it into the kernel. Some days ago the it was merged to the main kernel tree (2.6.22-rc7), so now in theory you could compile the mac80211 driver against Linus' tree instead of wireless-dev. I say in theory because I haven't had the chance to try it yet.

      Regarding your question about compiling the mac80211 driver against vanilla 2.6.21: no, you cannot do it. As I said, the mac80211 stack got to mainline at 2.6.22-rc7. It might be possible to do what you are saying (add the stack to 2.6.21), of course, but I think it might not be worth the effort. I'd rather advise you to download either the current 2.6.22 or wireless-dev trees. Regarding softmac, it should work with yout 2.6.21 kernel, since the softmac stack was already there. You can get the current acx softmac port from the wireless-2.6-legacy tree.

      Cheers

       
    • Joachim Frieben

      Joachim Frieben - 2007-07-17

      As a matter of fact, the "acx-mac80211.ko" kernel module builds fine when using the "acx-mac80211-20070610.tar.bz2" snapshot.
      However, the trouble begins after creating the entries in the "/proc" directory:

      "...
      creating /proc entry driver/acx__phy
      acx v0.3.36-mac80211: net device phy0, driver compiled against wireless extensio
      ns 22 and Linux 2.6.22.1-20.fc7
      using IRQ 11
      acx: ieee80211_register_hw() FAILED: -22
      ------------[ cut here ]------------
      kernel BUG at include/net/wireless.h:100!
      invalid opcode: 0000 [#1]
      SMP
      last sysfs file: /class/firmware/0000:00:11.0/loading
      ..."

       
    • Sid Boyce

      Sid Boyce - 2007-10-06

      Using acx-mac80211-20071003.tar.bz2

      tindog:/usr/src/linux-2.6.23-rc9-git4 # make modules
        CHK     include/linux/version.h
        CHK     include/linux/utsrelease.h
        CALL    scripts/checksyscalls.sh
        CC [M]  drivers/net/wireless/acx/pci.o
      drivers/net/wireless/acx/pci.c: In function ‘acxpci_e_probe’:
      drivers/net/wireless/acx/pci.c:1458: warning: suggest parentheses around arithmetic in operand of |
        LD [M]  drivers/net/wireless/acx/acx-mac80211.o
        Building modules, stage 2.
        MODPOST 1072 modules
      WARNING: Can't handle masks in drivers/mtd/nand/cafe_nand:FFFF0
        CC      drivers/net/wireless/acx/acx-mac80211.mod.o
        LD [M]  drivers/net/wireless/acx/acx-mac80211.ko
      tindog:/usr/src/linux-2.6.23-rc9-git4 # make modules
        CHK     include/linux/version.h
        CHK     include/linux/utsrelease.h
        CALL    scripts/checksyscalls.sh
        CC [M]  drivers/net/wireless/acx/pci.o
        LD [M]  drivers/net/wireless/acx/acx-mac80211.o
        Building modules, stage 2.
        MODPOST 1072 modules
      WARNING: Can't handle masks in drivers/mtd/nand/cafe_nand:FFFF0
        CC      drivers/net/wireless/acx/acx-mac80211.mod.o
        LD [M]  drivers/net/wireless/acx/acx-mac80211.ko
      ------------------------------------------------------------------
      CHANGES TO drivers/net/wireless/Kconfig, added from acx/Kconfig
      config ACX_MAC80211_PCI
              bool "TI acx100/acx111 802.11b/g PCI"
              depends on ACX_MAC80211 && PCI
              ---help---
              Include PCI and CardBus support in acx.

              acx chipsets need their firmware loaded at startup.
              You will need to provide a firmware image via hotplug.

              Firmware may be in a form of single image 40-100kb in size
              (a 'combined' firmware) or two images - main image
              (again 40-100kb) and radio image (~10kb or less).

              Firmware images are requested from hotplug using following names:

              tiacx100 - main firmware image for acx100 chipset
              tiacx100rNN - radio acx100 firmware for radio type NN
              tiacx100cNN - combined acx100 firmware for radio type NN
              tiacx111 - main acx111 firmware
              tiacx111rNN - radio acx111 firmware for radio type NN
              tiacx111cNN - combined acx111 firmware for radio type NN

              Driver will attempt to load combined image first.
              If no such image is found, it will try to load main image
              and radio image instead.

              Firmware files are not covered by GPL and are not distributed
              with this driver for legal reasons.

      source "drivers/net/wireless/acx/Kconfig" ### Adding this line alone didn't work ###.

      endmenu
      ----------------------------------------------------------------------------------------
      Added parentheses to line 1458 of pci.c.
      ieee->flags &=   ~IEEE80211_HW_RX_INCLUDES_FCS &
                               (~IEEE80211_HW_MONITOR_DURING_OPER |
                               IEEE80211_HW_WEP_INCLUDE_IV);
      From "make modules_install"
      INSTALL drivers/net/wireless/acx/acx-mac80211.ko
      if [ -r System.map -a -x /sbin/depmod ]; then /sbin/depmod -ae -F System.map  2.6.23-rc9-git4-smp; fi
      #

      Booted into runlevel 3, the first time all went well until "iwlist scan wlan0" where I got an oops, ALT-SYSRQ-S/U/B effected a reboot. I didn't write the message down, but it was something to do with binding??? and "owned by CPU1", then the oops. The second time "iwlist scan wlan0" gave a hard hang needing a hard reset. Looks like a problem with MP kernel. Just seen it in /var/log/messages.
      Oct  6 20:10:25 tindog smartd[4248]: smartd has fork()ed into background mode. New PID=4248.
      Oct  6 20:10:32 tindog login[4268]: PAM unable to dlopen(/lib64/security/pam_ck_connector.so)
      Oct  6 20:10:32 tindog login[4268]: PAM [error: /lib64/security/pam_ck_connector.so: cannot open shared object file: No such file or directory]
      Oct  6 20:10:32 tindog login[4268]: PAM adding faulty module: /lib64/security/pam_ck_connector.so
      Oct  6 20:11:13 tindog kernel: Virtual interface added (type: 0x00000002, ID: 5, MAC: 00:13:46:b0:83:d5)
      Oct  6 20:11:13 tindog kernel: updating initial settings on iface activation
      Oct  6 20:11:13 tindog kernel: get_mask 0x00000000, set_mask 0x0036EEFE
      Oct  6 20:11:13 tindog kernel: important setting has been changed. Need to update packet templates, too
      Oct  6 20:11:13 tindog kernel: updating Tx fallback to 1 retries
      Oct  6 20:11:13 tindog kernel: updating transmit power: 15 dBm
      Oct  6 20:11:13 tindog kernel: updating antenna value: 0x4A
      Oct  6 20:11:13 tindog kernel: updating Energy Detect (ED) threshold: 0
      Oct  6 20:11:13 tindog kernel: acx111 doesn't support ED!
      Oct  6 20:11:13 tindog kernel: updating Channel Clear Assessment (CCA) value: 0x00
      Oct  6 20:11:13 tindog kernel: acx111 doesn't support CCA!
      Oct  6 20:11:13 tindog kernel: updating channel to: 1
      Oct  6 20:11:13 tindog kernel: updating: enable Tx
      Oct  6 20:11:13 tindog kernel: FIXME: Possibly broken code in acx_s_update_card_settings() at drivers/net/wireless/acx/common.c:3588
      Oct  6 20:11:13 tindog kernel: updating: enable Rx on channel: 1
      Oct  6 20:11:13 tindog kernel: updating short retry limit: 7, long retry limit: 4
      Oct  6 20:11:13 tindog kernel: updating tx MSDU lifetime: 4096
      Oct  6 20:11:13 tindog kernel: updating regulatory domain: 0x30
      Oct  6 20:11:13 tindog kernel: FIXME: Possibly broken code in acx_s_set_sane_reg_domain() at drivers/net/wireless/acx/common.c:3296
      Oct  6 20:11:13 tindog kernel: setting RXconfig to 2008:0FDF
      Oct  6 20:11:13 tindog kernel: updating WEP key settings
      Oct  6 20:11:13 tindog kernel: ADDRCONF(NETDEV_UP): wlan0: link is not ready
      Oct  6 20:11:13 tindog kernel: get_mask 0x00000000, set_mask 0x00000040
      Oct  6 20:11:13 tindog kernel: setting RXconfig to 2008:0FDF
      Oct  6 20:11:13 tindog kernel: phy0: issue_cmd(): timed out waiting for CMD_COMPLETE. irq bits:0x2000 irq_status:0x2000 timeout:49ms cmd_status:1 (Success)
      Oct  6 20:11:13 tindog kernel: phy0: issue_cmd(cmd:ACX1xx_CMD_CONFIGURE) FAILED
      Oct  6 20:11:13 tindog kernel:
      Oct  6 20:11:13 tindog kernel: Call Trace:
      Oct  6 20:11:13 tindog kernel:  [<ffffffff882e68fd>] :acx_mac80211:acxpci_s_issue_cmd_timeo_debug+0x46b/0x49e
      Oct  6 20:11:13 tindog kernel:  [<ffffffff882e103e>] :acx_mac80211:acx_s_configure_debug+0xa3/0xd7
      Oct  6 20:11:13 tindog kernel:  [<ffffffff882e13e5>] :acx_mac80211:acx_s_initialize_rx_config+0xc6/0xca
      Oct  6 20:11:13 tindog kernel:  [<ffffffff882e2117>] :acx_mac80211:acx_s_update_card_settings+0xb60/0xd59
      Oct  6 20:11:13 tindog kernel:  [<ffffffff8022ce1a>] try_to_wake_up+0x35c/0x36e
      Oct  6 20:11:13 tindog kernel:  [<ffffffff8040718b>] _spin_lock_irqsave+0x9/0xe
      Oct  6 20:11:13 tindog kernel:  [<ffffffff803a0773>] skb_queue_tail+0x17/0x3e
      Oct  6 20:11:13 tindog kernel:  [<ffffffff882e26da>] :acx_mac80211:acx_e_after_interrupt_task+0x5f/0x154
      Oct  6 20:11:13 tindog kernel:  [<ffffffff882e628d>] :acx_mac80211:acx_interrupt_tasklet+0x36c/0x399
      Oct  6 20:11:13 tindog kernel:  [<ffffffff882e5f21>] :acx_mac80211:acx_interrupt_tasklet+0x0/0x399
      Oct  6 20:11:13 tindog kernel:  [<ffffffff802425a2>] run_workqueue+0x87/0x11a
      Oct  6 20:11:13 tindog kernel:  [<ffffffff80242f05>] worker_thread+0xe1/0xf0
      Oct  6 20:11:13 tindog kernel:  [<ffffffff80245df4>] autoremove_wake_function+0x0/0x2e
      Oct  6 20:11:13 tindog kernel:  [<ffffffff80242e24>] worker_thread+0x0/0xf0
      Oct  6 20:11:13 tindog kernel:  [<ffffffff80245cdf>] kthread+0x47/0x74
      Oct  6 20:11:13 tindog kernel:  [<ffffffff8020caa8>] child_rip+0xa/0x12
      Oct  6 20:11:13 tindog kernel:  [<ffffffff80245c98>] kthread+0x0/0x74
      Oct  6 20:11:13 tindog kernel:  [<ffffffff8020ca9e>] child_rip+0x0/0x12
      Oct  6 20:11:13 tindog kernel:
      Oct  6 20:11:13 tindog kernel: phy0: configure(type:ACX1xx_IE_RXCONFIG) FAILED

      In /var/log/boot.omsg

      <4>acx: this driver is still EXPERIMENTAL
      <4>acx: reading README file and/or Craig's HOWTO is recommended, visit http://acx100.sourceforge.net/wiki in case of further questions/discussion
      <4>acx: compiled to use 32bit I/O access. I/O timing issues might occur, such as non-working firmware upload. Report them
      <4>acx: running on a little-endian CPU
      <4>acx: PCI module v0.3.36-mac80211 initialized, waiting for cards to probe...
      <4>ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
      <6>ACPI: PCI Interrupt 0000:01:07.0[A] -> Link [APC2] -> GSI 17 (level, low) -> IRQ 17
      <4>acx: found ACX111-based wireless network card at 0000:01:07.0, irq:17, phymem1:0xFCFFC000, phymem2:0xFCFC0000, mem1:0xffffc2000064c000, mem1_size:8192, mem2:0xffffc20005dc
      0000, mem2_size:131072
      <4>initial debug setting is 0x000A
      <4>acx: need firmware for acx111 chipset with radio ID 16
      <4>Please provide via firmware hotplug:
      <4>either combined firmware (single file named 'tiacx111c16')
      <4>or two files (base firmware file 'tiacx111' + radio fw 'tiacx111r16')
      <4>acx: need to load firmware for acx111 chipset with radio ID 16, please provide via firmware hotplug:
      <4>acx: either one file only (<c>ombined firmware image file, radio-specific) or two files (radio-less base image file *plus* separate <r>adio-specific extension file)
      <4>requesting firmware image 'tiacx111c16'
      #######TRUNCATED########
      <4>either combined firmware (single file named 'tiacx111c16')
      <4>or two files (base firmware file 'tiacx111' + radio fw 'tiacx111r16')
      <4>acx: need to load firmware for acx111 chipset with radio ID 16, please provide via firmware hotplug:
      <4>acx: either one file only (<c>ombined firmware image file, radio-specific) or two files (radio-less base image file *plus* separate <r>adio-specific extension file)
      <4>requesting firmware image 'tiacx111c16'
      ###########Truncared ##########
      <4>initializing max packet templates
      <4>dump queue head (from card):
      <4>len: 24
      <4>tx_memory_block_address: 18C60
      <4>rx_memory_block_address: 12B60
      <4>tx1_queue address: 12094
      <4>rx1_queue address: 11D54
      <4>NVS_vendor_offs:01CD probe_delay:200 eof_memory:1114112
      <4>CCAModes:04 Diversity:01 ShortPreOpt:01 PBCC:01 ChanAgil:00 PHY:05 Temp:01
      <4>AntennaID:00 Len:02 Data:01 02
      <4>PowerLevelID:01 Len:02 Data:001E 000A
      <4>DataRatesID:02 Len:05 Data:02 04 11 22 44
      <4>DomainID:03 Len:06 Data:30 20 30 31 32 40
      <4>ProductID:04 Len:09 Data:TI ACX100
      <4>ManufacturerID:05 Len:07 Data:TI Test
      <4>get_mask 0x00004182, set_mask 0x00000000
      <4>don't know how to get sensitivity for radio type 0x16
      <4>got sensitivity value 0
      <4>got antenna value 0x4A
      <6>FIXME: Possibly broken code in acx_s_set_sane_reg_domain() at drivers/net/wireless/acx/common.c:3296
      <4>got regulatory domain 0x30
      <4>new ratevector: 82 84 0B 0C 12 16 18 24 2C 30 48 60 6C
      <4>setting RXconfig to 2008:0FDF
      <4>acx: chipset TNETW1130, radio type 0x16 (Radia), form factor 0x01 ((mini-)PCI / CardBus), EEPROM version 0x05, uploaded firmware 'Rev 1.2.1.34''ncreating /proc entry driver/acx_
      <4>creating /proc entry driver/acx__diag
      <4>creating /proc entry driver/acx__eeprom
      <4>creating /proc entry driver/acx__phy
      <4>acx v0.3.36-mac80211: net device phy0, driver compiled against wireless extensions 22 and Linux 2.6.23-rc9-git4-smp
      <4>using IRQ 17
      <7>wmaster0: Selected rate control algorithm 'simple'
      ####### Truncated ######
      Setting up network interfaces:
          lo
          lo        IP address: 127.0.0.1/8
      Checking for network time protocol daemon (NTPD): dead
      done    eth0      device: nVidia Corporation MCP55 Ethernet (rev a2)
          eth0      IP address: 192.168.10.10/24
      Checking for network time protocol daemon (NTPD): dead
      acpid: client connected from 3470[101:102]

      acpid: 1 client rule loaded

      done    eth1      device: nVidia Corporation MCP55 Ethernet (rev a2)
                    No configuration found for eth1
      unused    wlan0     device: Texas Instruments ACX 111 54Mbps Wireless Interface
                    No configuration found for wlan0

      # lsmod|grep acx
      acx_mac80211           87560  0
      firmware_class         27904  1 acx_mac80211
      mac80211              152068  2 rc80211_simple,acx_mac80211

      #ifconfig wlan0 up
      # ifconfig wlan0
      wlan0     Link encap:Ethernet  HWaddr 00:13:46:B0:83:D5
                UP BROADCAST MULTICAST  MTU:1500  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
      # iwconfig wlan0
      wlan0     IEEE 802.11g  ESSID:""
                Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
                Retry min limit:7   RTS thr:off   Fragment thr=2346 B
                Encryption key:off
                Link Quality:0  Signal level:0  Noise level:0
                Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
                Tx excessive retries:0  Invalid misc:0   Missed beacon:0

      # cat /proc/cpuinfo
      processor       : 0
      vendor_id       : AuthenticAMD
      cpu family      : 15
      model           : 67
      model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
      stepping        : 3
      cpu MHz         : 3000.000
      cache size      : 1024 KB
      physical id     : 0
      siblings        : 2
      core id         : 0
      cpu cores       : 2
      fpu             : yes
      fpu_exception   : yes
      cpuid level     : 1
      wp              : yes
      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
      bogomips        : 6031.41
      TLB size        : 1024 4K pages
      clflush size    : 64
      cache_alignment : 64
      address sizes   : 40 bits physical, 48 bits virtual
      power management: ts fid vid ttp tm stc

      processor       : 1
      vendor_id       : AuthenticAMD
      cpu family      : 15
      model           : 67
      model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
      stepping        : 3
      cpu MHz         : 3000.000
      cache size      : 1024 KB
      physical id     : 0
      siblings        : 2
      core id         : 1
      cpu cores       : 2
      fpu             : yes
      fpu_exception   : yes
      cpuid level     : 1
      wp              : yes
      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
      bogomips        : 6031.41
      TLB size        : 1024 4K pages
      clflush size    : 64
      cache_alignment : 64
      address sizes   : 40 bits physical, 48 bits virtual
      power management: ts fid vid ttp tm stc

       
    • Sid Boyce

      Sid Boyce - 2007-10-07

      Above problem on openSUSE 10.3 x86_64.

       
    • Sid Boyce

      Sid Boyce - 2007-10-08

      acx-mac80211-vlynq-20071006.tar.bz2 with kernel 2.6.23-rc9-git4. Oops and hard lockup with "ifconfig wlan0 up".
      BUG: spinlock cpu recursion CPU#1,swapper/0
      lock: ffff810115a79c28,.magic:dead4ead, .owner:events/1/10,.owner_cpu:1
      Call Trace:
      <IRQ> [<ffffffff8030b2f9>] _raw_spin_lock+0x5c/0xf8
      [<ffffffff8040718b>]:acx_mac80211:acxpci_i_interrupt+0x22/0x11a
      [<ffffffff80263088>] handle_IRQ_event+0x25/0x53
      [<ffffffff80264338>] handle_fasteoi_irq+0x9a/0xd9
      [<ffffffff8020e227>] do_IRQ+0xf1/0x162
      [<ffffffff8020ad14>] default_idle+0x0/0x3d
      [<ffffffff8020ad14>] default_idle+0x0/0x3d
      [<ffffffff8020c1a1>] ret_from_intr+0x0/0xa
      [<ffffffff8020addf>] cpu_idle+0x8e/0xb1

      BUG: spinlock on CPU#1,swapper/0,ffff810115a79c28
      Call Trace:
      <IRQ> [<ffffffff8030b36e>] _raw_spin_lock+0xd1/0xf8
      Rest of trace the same as previous one above. Hope this helps.

       

Log in to post a comment.

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

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks