Atheros Wireless Issue Introduced in Upgrade



  • Hello, I upgraded from 1.2-RC4 to 1.2.1-RC2 and my wireless setup was messed up in the process.

    The Effect
    The symptoms observed were that the ssid was no longer being broadcast, nor could any client trying to connect anyway get any response. I used kismet and saw absolutely no sign that my wireless card (a D-Link Atheros card) was alive.

    My router's dmesg said:

    
    ath0: <atheros 5212="">mem 0x40000000-0x4000ffff irq 21 at device 10.0 on pci2
    ath0: [ITHREAD]
    ath0: using obsoleted if_watchdog interface
    ath0: Ethernet address: 00:15:e9:ae:28:3d
    ath0: mac 7.9 phy 4.5 radio 5.6
    isab0: <pci-isa bridge="">at device 31.0 on pci0
    isa0: <isa bus="">on isab0
    atapci0: <intel ich2="" udma100="" controller="">port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x2460-0x246f at device 31.1 on pci0
    ata0: <ata 0="" channel="">on atapci0
    ata0: [ITHREAD]
    ata1: <ata 1="" channel="">on atapci0
    ata1: [ITHREAD]
    uhci0: <intel 82801ba="" bam="" (ich2)="" usb="" controller="" usb-b="">port 0x2440-0x245f irq 23 at device 31.4 on pci0
    uhci0: [GIANT-LOCKED]
    uhci0: [ITHREAD]
    usb0: <intel 82801ba="" bam="" (ich2)="" usb="" controller="" usb-b="">on uhci0
    usb0: USB revision 1.0
    uhub0: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usb0
    uhub0: 2 ports with 2 removable, self powered
    pci0: <multimedia, audio="">at device 31.5 (no driver attached)
    acpi_button0: <power button="">on acpi0
    speaker0: <pc speaker="">port 0x61 on acpi0
    atkbdc0: <keyboard controller="" (i8042)="">port 0x60,0x64 irq 1 on acpi0
    atkbd0: <at keyboard="">irq 1 on atkbdc0
    kbd0 at atkbd0
    atkbd0: [GIANT-LOCKED]
    atkbd0: [ITHREAD]
    sio0: configured irq 4 not in bitmap of probed irqs 0
    sio0: port may not be enabled
    sio0: configured irq 4 not in bitmap of probed irqs 0
    sio0: port may not be enabled
    sio0: <standard pc="" com="" port="">port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
    sio0: type 8250 or not responding
    sio0: [FILTER]
    sio1: configured irq 3 not in bitmap of probed irqs 0
    sio1: port may not be enabled
    fdc0: <floppy drive="" controller="">port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
    fdc0: does not respond
    device_attach: fdc0 attach returned 6
    sio1: configured irq 3 not in bitmap of probed irqs 0
    sio1: port may not be enabled
    fdc0: <floppy drive="" controller="">port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
    fdc0: does not respond
    device_attach: fdc0 attach returned 6
    pmtimer0 on isa0
    orm0: <isa option="" roms="">at iomem 0xc0000-0xc9fff,0xca000-0xca7ff,0xca800-0xd7fff,0xe0000-0xeffff pnpid ORM0000 on isa0
    ppc0: parallel port not found.
    sc0: <system console="">at flags 0x100 on isa0
    sc0: VGA <16 virtual consoles, flags=0x300>
    sio1: configured irq 3 not in bitmap of probed irqs 0
    sio1: port may not be enabled
    vga0: <generic isa="" vga="">at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
    uhub1: <vendor 2="" 9="" 0x0409="" product="" 0x55ab,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on uhub0
    uhub1: 4 ports with 4 removable, bus powered
    ukbd0: <alps 0="" 3="" electric="" m2452,="" class="" 0,="" rev="" 1.00="" 1.01,="" addr="">on uhub1
    kbd2 at ukbd0
    Timecounter "TSC" frequency 996771548 Hz quality 800
    Timecounters tick every 1.000 msec
    Fast IPsec: Initialized Security Association Processing.
    hptrr: no controller detected.
    ad0: 8063MB <quantum fireballlct08="" 08="" a05.0x00="">at ata0-master UDMA66
    acd0: CDROM <compaq crd-8484b="" 1.04="">at ata1-master PIO4
    WARNING: Expected rawoffset 0, found 63
    Trying to mount root from ufs:/dev/ad0s1a
    fxp0: link state changed to UP
    xl0: link state changed to UP
    pflog0: promiscuous mode enabled
    ath0: ath_chan_set: unable to reset channel 6 (2437 Mhz, flags 0x490 hal flags 0x150)
    ath0: unable to reset hardware; hal status 0
    ath0: unable to reset hardware; hal status 0
    ath0: unable to reset hardware; hal status 12
    ath0: unable to reset hardware; hal status 0
    ath0: unable to reset hardware; hal status 0
    ath0: unable to reset hardware; hal status 0
    ath0: unable to reset hardware; hal status 0
    ath0: unable to reset hardware; hal status 12
    bridge0: Ethernet address: e6:cc:fc:c2:75:a3
    ath0: unable to reset hardware; hal status 12
    ath0: promiscuous mode enabled
    fxp0: promiscuous mode enabled
    ath0: unable to reset hardware; hal status 12
    fxp0: promiscuous mode disabled
    ....</compaq></quantum></alps></vendor></generic></system></isa></floppy></floppy></standard></at></keyboard></pc></power></multimedia,></intel></intel></intel></ata></ata></intel></isa></pci-isa></atheros> 
    

    The Solution or more like "fix"
    Some searching led me to this post - what I took away from it is that in the switch from FreeBSD 6.x to 7 one change with the Atheros cards is that setting them to automatically select their own channels would result in them trying to operate on channel '0' which is non-sense.

    So I then used kismet again to see what channels were in use around me and picked a channel far from the other noise. I bound my wireless nic to that and a brief moment later the dmesg issues were gone and my client machines could see my router's ssid being broadcast.

    A secondary issue/concern
    While I was troubleshooting this issue, I decided to reset my router to factory defaults. I'm not sure if doing so helped create my secondary problem or not. Once my machines could see the ssid from my AP - they could only associate with it, but not connect to anything.

    The issue was there were no forwarding rules in my routing table for the wireless interface. Hence adding those rules resulted in everything working normally again.



  • Thanks for the report, we are looking into it.  If you happen to stumble across any more information, please share.



  • We fixed the problem you noted a long time ago so this is obviously something different. Post the contents of your /tmp/ath0_setup.sh



  • Here's the results:

    # cat /tmp/ath0_setup.sh 
    #!/bin/sh
    # pfSense wireless configuration script.
    
    # enable shell debugging
    set -x
    /bin/ps awwuxx | grep hostapd | grep ath0 | awk '{ print $2 }' | xargs kill
    
    /sbin/ifconfig ath0 down
    /sbin/ifconfig ath0 mode '11g'
    /sbin/ifconfig ath0 channel '9'
    /sbin/ifconfig ath0 -mediaopt turbo
    /sbin/ifconfig ath0 ssid 'orion'
    /sbin/ifconfig ath0 -hidessid
    /sbin/ifconfig ath0 -mediaopt adhoc
    /sbin/ifconfig ath0 protmode 'rtscts'
    /sbin/ifconfig ath0 -pureg
    /sbin/ifconfig ath0 apbridge
    /sbin/ifconfig ath0 wme
    /sbin/ifconfig ath0 authmode open wepmode off 
    /sbin/ifconfig ath0 txpower '99'
    /sbin/ifconfig ath0 mediaopt hostap
    /sbin/ifconfig ath0 mtu 1500
    /sbin/ifconfig ath0 up
    /usr/sbin/hostapd -B /var/etc/hostapd_ath0.conf
    
    


  • That shows you have the channel set to 9, what does it show when you set the channel to auto and then what does it show when you run it?



  • Sorry, took some time to catch everyone off the wireless. Seems to me that running ifconfig while it wasn't functioning returned that it was using channel 0, but maybe I just read that. Anyway, looks okay now and seems to be working fine. Hope this is helpful.

    # cat /tmp/ath0_setup.sh
    #!/bin/sh
    # pfSense wireless configuration script.
    
    # enable shell debugging
    set -x
    /bin/ps awwuxx | grep hostapd | grep ath0 | awk '{ print $2 }' | xargs kill
    
    /sbin/ifconfig ath0 down
    /sbin/ifconfig ath0 mode '11g'
    /sbin/ifconfig ath0 channel any
    /sbin/ifconfig ath0 -mediaopt turbo
    /sbin/ifconfig ath0 ssid 'orion'
    /sbin/ifconfig ath0 -hidessid
    /sbin/ifconfig ath0 -mediaopt adhoc
    /sbin/ifconfig ath0 protmode 'rtscts'
    /sbin/ifconfig ath0 -pureg
    /sbin/ifconfig ath0 apbridge
    /sbin/ifconfig ath0 wme
    /sbin/ifconfig ath0 authmode open wepmode off
    /sbin/ifconfig ath0 txpower '99'
    /sbin/ifconfig ath0 mediaopt hostap
    /sbin/ifconfig ath0 mtu 1500
    /sbin/ifconfig ath0 up
    /usr/sbin/hostapd -B /var/etc/hostapd_ath0.conf
    
    

Log in to reply