Mini PCI express wireless card for hostap mode



  • Hi,
    I like to build an appliance with pfSense 2.01 (ISO). My hardware only supports on "mini pci express" slot and I'm looking for card which can do hostap. I have tried several cards like Intel 4965, Intel 5100, Atheros AR9287 and Intel 3945 without success.
    Please, can anybody suggest me a card (mini pci express) with the ability of hostap mode.

    Thanks



  • Mini PCI-Express slots can have a USB electrical interface OR a PCI-Express electrical interface OR both? What electrical interfaces are available on your mini PCI-Express slot?

    Of the chipsets you mentioned only the Atheros is likely to support AP mode and then only if its a PCI-Express chip and the slot provides PCI-Express electrical interface. There are USB WiFi chipsets that support AP mode.



  • How can I figure it out? I don't know.
    It's a MSI I3-945GSE board with 2xLAN.
    If it's of interest: All my cards work in client mode perfect.



  • @woni:

    If it's of interest: All my cards work in client mode perfect.

    It is of interest. It means the cards must be compatible with the slot.

    Please put the AR9287 card back in and boot the system. Then please post the output of the pfSense command```
    dmesg


  • Rebel Alliance Developer Netgate

    FYI- the 9287 isn't supported even on 8.3 (pfSense 2.1). It's either in 9.x or CURRENT on FreeBSD.

    The Intel, if it was a Intel 3945ABG using the wpi driver, should support hostap (but you do need to add the license ACK to loader.conf.local)



  • Sorry, it was my fault.
    The AR9287 was not recogniced at all.

    I have seen the advice for ACK in dmesg running Intel 4965 and tried it out, without success.
    But, if you think it works with 3945ABG, I will try it tomorrow (at 7 German time) and give feedback.

    Thanks for your support.


  • Rebel Alliance Developer Netgate

    According to my notes the wpi driver which is used by that card is the only Intel driver that is supposed to support hostap.

    As with the other cards, seeing the dmesg output would help once you have that back in place.

    I have one of those cards, but I have yet to try it in my net6501 to see if pfSense would use it.



  • Ok, I have tested the Intel 3945ABG again.
    In System Log:

    php: /interfaces.php: Cloning new wireless interface wpi0_wlan0
    php: /interfaces.php: Failed to clone interface wpi0 with error code 1, output ifconfig: SIOCIFCREATE2: Operation not supported
    kernel: wpi0: HOSTAP mode not supported

    "ifconfig wpi0_wlan0 list caps" returns

    drivercaps=181e001 <sta,txpmgt,shslot,shpreamble,monitor,wpa1,wpa2>My /boot/loader.conf and /boot/loader.conf.local

    autoboot_delay="3"
    vm.kmem_size="435544320"
    vm.kmem_size_max="535544320"
    kern.ipc.nmbclusters="0"

    legal.intel_wpi.license_ack=1
    legal.intel_ipw.license_ack=1

    and dmesg

    padlock0: No ACE support.
    acpi0: <102109 RSDT1632> on motherboard
    acpi0: [ITHREAD]
    acpi0: Power Button (fixed)
    acpi0: reservation of 0, a0000 (3) failed
    acpi0: reservation of 100000, 3f700000 (3) failed
    Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
    acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
    cpu0: <acpi cpu="">on acpi0
    ACPI Warning: Incorrect checksum in table [OEMB] - 0x53, should be 0x52 (20100331/tbutils-354)
    cpu1: <acpi cpu="">on acpi0
    pcib0: <acpi host-pci="" bridge="">port 0xcf8-0xcff on acpi0
    pci0: <acpi pci="" bus="">on pcib0
    vgapci0: <vga-compatible display="">port 0xcc80-0xcc87 mem 0xfe880000-0xfe8fffff,0xd0000000-0xdfffffff,0xfe840000-0xfe87ffff irq 16 at device 2.0 on pci0
    agp0: <intel 945gme="" svga="" controller="">on vgapci0
    agp0: detected 7932k stolen memory
    agp0: aperture size is 256M
    vgapci1: <vga-compatible display="">mem 0xfe780000-0xfe7fffff at device 2.1 on pci0
    pci0: <multimedia, hda="">at device 27.0 (no driver attached)
    pcib1: <acpi pci-pci="" bridge="">irq 16 at device 28.0 on pci0
    pci1: <acpi pci="" bus="">on pcib1
    em0: <intel(r) 1000="" pro="" network="" connection="" 7.2.3="">port 0xdc80-0xdc9f mem 0xfe9e0000-0xfe9fffff,0xfe9dc000-0xfe9dffff irq 16 at device 0.0 on pci1
    em0: Using MSIX interrupts with 3 vectors
    em0: [ITHREAD]
    em0: [ITHREAD]
    em0: [ITHREAD]
    pcib2: <acpi pci-pci="" bridge="">irq 17 at device 28.1 on pci0
    pci2: <acpi pci="" bus="">on pcib2
    em1: <intel(r) 1000="" pro="" network="" connection="" 7.2.3="">port 0xec80-0xec9f mem 0xfeae0000-0xfeafffff,0xfeadc000-0xfeadffff irq 17 at device 0.0 on pci2
    em1: Using MSIX interrupts with 3 vectors
    em1: [ITHREAD]
    em1: [ITHREAD]
    em1: [ITHREAD]
    pcib3: <acpi pci-pci="" bridge="">irq 18 at device 28.2 on pci0
    pci3: <acpi pci="" bus="">on pcib3
    wpi0: <intel(r) pro="" wireless="" 3945abg="">mem 0xfebff000-0xfebfffff irq 18 at device 0.0 on pci3
    wpi0: Driver Revision 20071127
    wpi0: Hardware Revision (0x1)
    adding chan 1 (2412MHz) flags=0x2b maxpwr=15 passive=0, offset 2
    adding chan 2 (2417MHz) flags=0x2b maxpwr=15 passive=0, offset 4
    adding chan 3 (2422MHz) flags=0x2b maxpwr=15 passive=0, offset 6
    adding chan 4 (2427MHz) flags=0x2b maxpwr=15 passive=0, offset 8
    adding chan 5 (2432MHz) flags=0x2b maxpwr=15 passive=0, offset 10
    adding chan 6 (2437MHz) flags=0x2b maxpwr=15 passive=0, offset 12
    adding chan 7 (2442MHz) flags=0x2b maxpwr=15 passive=0, offset 14
    adding chan 8 (2447MHz) flags=0x2b maxpwr=15 passive=0, offset 16
    adding chan 9 (2452MHz) flags=0x2b maxpwr=15 passive=0, offset 18
    adding chan 10 (2457MHz) flags=0x2b maxpwr=15 passive=0, offset 20
    adding chan 11 (2462MHz) flags=0x2b maxpwr=15 passive=0, offset 22
    adding chan 12 (2467MHz) flags=0x21 maxpwr=15 passive=1, offset 24
    adding chan 13 (2472MHz) flags=0x21 maxpwr=15 passive=1, offset 26
    adding chan 34 (5170MHz) flags=0x21 maxpwr=15 passive=1, offset 27
    adding chan 36 (5180MHz) flags=0xab maxpwr=15 passive=0, offset 28
    adding chan 38 (5190MHz) flags=0x21 maxpwr=15 passive=1, offset 29
    adding chan 40 (5200MHz) flags=0xab maxpwr=15 passive=0, offset 30
    adding chan 42 (5210MHz) flags=0x21 maxpwr=15 passive=1, offset 31
    adding chan 44 (5220MHz) flags=0xab maxpwr=15 passive=0, offset 32
    adding chan 46 (5230MHz) flags=0x21 maxpwr=15 passive=1, offset 33
    adding chan 48 (5240MHz) flags=0xab maxpwr=15 passive=0, offset 34
    adding chan 52 (5260MHz) flags=0xb1 maxpwr=15 passive=1, offset 35
    adding chan 56 (5280MHz) flags=0xb1 maxpwr=15 passive=1, offset 36
    adding chan 60 (5300MHz) flags=0xb1 maxpwr=15 passive=1, offset 37
    adding chan 64 (5320MHz) flags=0xb1 maxpwr=15 passive=1, offset 38
    adding chan 100 (5500MHz) flags=0xb1 maxpwr=16 passive=1, offset 39
    adding chan 104 (5520MHz) flags=0xb1 maxpwr=16 passive=1, offset 40
    adding chan 108 (5540MHz) flags=0xb1 maxpwr=16 passive=1, offset 41
    adding chan 112 (5560MHz) flags=0xb1 maxpwr=16 passive=1, offset 42
    adding chan 116 (5580MHz) flags=0xb1 maxpwr=16 passive=1, offset 43
    adding chan 120 (5600MHz) flags=0xb1 maxpwr=16 passive=1, offset 44
    adding chan 124 (5620MHz) flags=0xb1 maxpwr=16 passive=1, offset 45
    adding chan 128 (5640MHz) flags=0xb1 maxpwr=16 passive=1, offset 46
    adding chan 132 (5660MHz) flags=0xb1 maxpwr=16 passive=1, offset 47
    adding chan 136 (5680MHz) flags=0xb1 maxpwr=16 passive=1, offset 48
    adding chan 140 (5700MHz) flags=0xb1 maxpwr=16 passive=1, offset 49
    power group 0: chan=1 maxpwr=50 temp=-171
            sample 0: index=13 power=47
            sample 1: index=29 power=37
            sample 2: index=47 power=16
            sample 3: index=58 power=6
            sample 4: index=77 power=-13
    power group 1: chan=44 maxpwr=53 temp=-174
            sample 0: index=12 power=46
            sample 1: index=19 power=40
            sample 2: index=32 power=27
            sample 3: index=43 power=17
            sample 4: index=77 power=-15
    power group 2: chan=64 maxpwr=55 temp=-173
            sample 0: index=12 power=50
            sample 1: index=20 power=43
            sample 2: index=33 power=30
            sample 3: index=44 power=20
            sample 4: index=77 power=-11
    power group 3: chan=116 maxpwr=53 temp=-171
            sample 0: index=12 power=40
            sample 1: index=20 power=31
            sample 2: index=36 power=15
            sample 3: index=48 power=4
            sample 4: index=77 power=-23
    power group 4: chan=153 maxpwr=50 temp=-171
            sample 0: index=10 power=38
            sample 1: index=20 power=26
            sample 2: index=32 power=14
            sample 3: index=42 power=5
            sample 4: index=77 power=-26
    wpi0: Regulatory Domain: MoW2
    wpi0: Hardware Type: B
    wpi0: Hardware Revision: ?
    wpi0: SKU does support 802.11a
    wpi0: [ITHREAD]
    uhci0: <intel 82801g="" (ich7)="" usb="" controller="" usb-a="">port 0xcc00-0xcc1f irq 23 at device 29.0 on pci0
    uhci0: [ITHREAD]
    uhci0: LegSup = 0x2f00
    usbus0: <intel 82801g="" (ich7)="" usb="" controller="" usb-a="">on uhci0
    uhci1: <intel 82801g="" (ich7)="" usb="" controller="" usb-b="">port 0xc880-0xc89f irq 19 at device 29.1 on pci0
    uhci1: [ITHREAD]
    uhci1: LegSup = 0x2f00
    usbus1: <intel 82801g="" (ich7)="" usb="" controller="" usb-b="">on uhci1
    uhci2: <intel 82801g="" (ich7)="" usb="" controller="" usb-c="">port 0xc800-0xc81f irq 18 at device 29.2 on pci0
    uhci2: [ITHREAD]
    uhci2: LegSup = 0x2f00
    usbus2: <intel 82801g="" (ich7)="" usb="" controller="" usb-c="">on uhci2
    uhci3: <intel 82801g="" (ich7)="" usb="" controller="" usb-d="">port 0xc480-0xc49f irq 16 at device 29.3 on pci0
    uhci3: [ITHREAD]
    uhci3: LegSup = 0x2f00
    usbus3: <intel 82801g="" (ich7)="" usb="" controller="" usb-d="">on uhci3
    ehci0: <intel 82801gb="" r="" (ich7)="" usb="" 2.0="" controller="">mem 0xfe837c00-0xfe837fff irq 23 at device 29.7 on pci0
    ehci0: [ITHREAD]
    usbus4: EHCI version 1.0
    usbus4: <intel 82801gb="" r="" (ich7)="" usb="" 2.0="" controller="">on ehci0
    pcib4: <acpi pci-pci="" bridge="">at device 30.0 on pci0
    pci4: <acpi pci="" bus="">on pcib4
    isab0: <pci-isa bridge="">at device 31.0 on pci0
    isa0: <isa bus="">on isab0
    atapci0: <intel ich7="" udma100="" controller="">port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xffa0-0xffaf at device 31.1 on pci0
    ata0: <ata 0="" channel="">on atapci0
    ata0: [ITHREAD]
    atapci1: <intel ich7m="" sata150="" controller="">port 0xc400-0xc407,0xc080-0xc083,0xc000-0xc007,0xbc80-0xbc83,0xbc00-0xbc0f mem 0xfe837800-0xfe837bff irq 19 at device 31.2 on pci0
    atapci1: [ITHREAD]
    ata2: <ata 0="" channel="">on atapci1
    ata2: [ITHREAD]
    ata3: <ata 1="" channel="">on atapci1
    ata3: [ITHREAD]
    pci0: <serial bus,="" smbus="">at device 31.3 (no driver attached)
    acpi_button0: <power button="">on acpi0
    atrtc0: <at realtime="" clock="">port 0x70-0x71 irq 8 on acpi0
    uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
    uart0: [FILTER]
    pmtimer0 on isa0
    sc0: <system console="">at flags 0x100 on isa0
    sc0: VGA <16 virtual consoles, flags=0x300>
    vga0: <generic isa="" vga="">at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
    atkbdc0: <keyboard controller="" (i8042)="">at port 0x60,0x64 on isa0
    atkbd0: <at keyboard="">irq 1 on atkbdc0
    kbd0 at atkbd0
    atkbd0: [GIANT-LOCKED]
    atkbd0: [ITHREAD]
    ppc0: parallel port not found.
    est0: <enhanced speedstep="" frequency="" control="">on cpu0
    p4tcc0: <cpu frequency="" thermal="" control="">on cpu0
    est1: <enhanced speedstep="" frequency="" control="">on cpu1
    p4tcc1: <cpu frequency="" thermal="" control="">on cpu1
    Timecounters tick every 1.000 msec
    IPsec: Initialized Security Association Processing.
    usbus0: 12Mbps Full Speed USB v1.0
    usbus1: 12Mbps Full Speed USB v1.0
    usbus2: 12Mbps Full Speed USB v1.0
    usbus3: 12Mbps Full Speed USB v1.0
    usbus4: 480Mbps High Speed USB v2.0
    ad4: 305245MB <wdc wd3200bpvt-22jj5t0="" 01.01a01="">at ata2-master UDMA100 SATA
    ugen0.1: <intel>at usbus0
    uhub0: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usbus0
    ugen1.1: <intel>at usbus1
    uhub1: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usbus1
    ugen2.1: <intel>at usbus2
    uhub2: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usbus2
    ugen3.1: <intel>at usbus3
    uhub3: <intel 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usbus3
    ugen4.1: <intel>at usbus4
    uhub4: <intel 1="" 9="" ehci="" root="" hub,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usbus4
    uhub0: 2 ports with 2 removable, self powered
    uhub1: 2 ports with 2 removable, self powered
    uhub2: 2 ports with 2 removable, self powered
    uhub3: 2 ports with 2 removable, self powered
    SMP: AP CPU #1 Launched!
    Root mount waiting for: usbus4
    uhub4: 8 ports with 8 removable, self powered
    Root mount waiting for: usbus4
    Trying to mount root from ufs:/dev/ad4s1a
    ugen1.2: <chicony>at usbus1
    ukbd0: <chicony 0="" 2="" hp="" basic="" usb="" keyboard,="" class="" 0,="" rev="" 2.00="" 1.30,="" addr="">on usbus1
    kbd2 at ukbd0
    wpi0: HOSTAP mode not supported
    wpi0: timeout resetting Tx ring 1
    wpi0: timeout resetting Tx ring 3
    wpi0: timeout resetting Tx ring 4
    microcode alive notification version 10e02 alive 1
    microcode alive notification version 10e02 alive 1
    pflog0: promiscuous mode enabled
    em1: link state changed to UP
    ipfw2 (+ipv6) initialized, divert loadable, nat loadable, rule-based forwarding enabled, default to accept, logging disabled
    load_dn_sched dn_sched FIFO loaded
    load_dn_sched dn_sched QFQ loaded
    load_dn_sched dn_sched RR loaded
    load_dn_sched dn_sched WF2Q+ loaded
    load_dn_sched dn_sched PRIO loaded
    pid 24232 (squid), uid 62: exited on signal 6
    wpi0: HOSTAP mode not supported</chicony></chicony></intel></intel></intel></intel></intel></intel></intel></intel></intel></intel></wdc></cpu></enhanced></cpu></enhanced></at></keyboard></generic></system></at></power></serial></ata></ata></intel></ata></intel></isa></pci-isa></acpi></acpi></intel></intel></intel></intel></intel></intel></intel></intel></intel></intel></intel(r)></acpi></acpi></intel(r)></acpi></acpi></intel(r)></acpi></acpi></multimedia,></vga-compatible></intel></vga-compatible></acpi></acpi></acpi></acpi></sta,txpmgt,shslot,shpreamble,monitor,wpa1,wpa2>



  • @woni:

    wpi0: HOSTAP mode not supported

    This "agrees" with the FreeBSD wpi man page which doesn't mention hostap support.


  • Rebel Alliance Developer Netgate

    Hmm, OK. Not sure where the note I had about hostap for wpi came from then, since I had it marked a Yes.

    I changed it to No in the spreadsheet.


  • Netgate Administrator

    We discussed this before, here.
    The wpi(4) driver has code to support a hostap mode.
    Perhaps it's limited to certain cards or firmware?

    Steve

    Edit: Reading it again, perhaps the code references hostap but doesn't actually support it?



  • @stephenw10:

    Edit: Reading it again, perhaps the code references hostap but doesn't actually support it?

    I found a number of occurrences of the string HOSTAP inside #if 0/#endif blocks. In particular, the code that sets "HOSTAP supported" in the device capabilities bitmap is enclosed in a #if 0/#endif block.


  • Netgate Administrator

    Exactly, like it was an intended feature but was never implemented.

    Steve



  • I have ordered a new card with Atheros chipset.
    I will give feedback next week.

    Thanks so far



  • Ok, now I have installed Atheros 5416 and what a surprise , it works in hostap mode.
    But, next problem, I can't see this AP from a WiFi-Client.

    
    ifconfig ath0_wlan0 list caps
    drivercaps=6f85ed01 <sta,ibss,[b]hostap[ b],ahdemo,txpmgt,shslot,shpreamble,monitor,mbss,wpa1,wpa2,burst,wme,wds,bgscan,txfrag="">cryptocaps=1f <wep,tkip,aes,aes_ccm,tkipmic></wep,tkip,aes,aes_ccm,tkipmic></sta,ibss,[b]hostap[> 
    

    This the pert from my config.xml

    
    		 <opt1><if>ath0</if>
    			 <wireless><standard>11g</standard>
    				<mode>hostap</mode>
    				<protmode>off</protmode>
    				<ssid>i-access.woni</ssid>
    				<channel>0</channel>
    				 <authmode><txpower>99</txpower>
    				 <distance><regdomain><regcountry><reglocation><wpa><macaddr_acl><auth_algs>1</auth_algs>
    					<wpa_mode>3</wpa_mode>
    					<wpa_key_mgmt>WPA-PSK</wpa_key_mgmt>
    					<wpa_pairwise>CCMP TKIP</wpa_pairwise>
    					<wpa_group_rekey>60</wpa_group_rekey>
    					<wpa_gmk_rekey>3600</wpa_gmk_rekey>
    					 <passphrase><ext_wpa_sw></ext_wpa_sw></passphrase></macaddr_acl></wpa> 
    				 <auth_server_addr><auth_server_port><auth_server_shared_secret></auth_server_shared_secret></auth_server_port></auth_server_addr></reglocation></regcountry></regdomain></distance></authmode></wireless> 
    
    			 <spoofmac><enable><ipaddr>192.168.2.1</ipaddr>
    			<subnet>24</subnet></enable></spoofmac></opt1> 
    
    

    Any idea? Thanks a lot.



  • Channel 0 is "unusual" (Auto?)

    If you have an Android phone you could use app Wifi Analyzer to get an idea what channels are in use in your vicinity, otherwise I suggest you pick 6 or 11 to be comfortably away from 1 which seems to be a common default. Wifi Analyzer will also help you tell if you have sufficient signal strength at your client location.

    Is the card connected to an external (to the box) antenna?



  • The channel 0 means "auto" and there is a external antenna connected to the box.
    I don't have a Android phone.
    I have put my notebook very near to my pfsense accesspoint and could recognize a litte signal of my ap.
    The atheros card have 3 connectionpoints for antenna and I try port 2 instead port 1.
    The signal is now not the best, but I can work so far.

    Near the my pfSense AP I positioned a netgear ap. With the software inSSIDer from my notebook I get for the netgear ap -54dB and for the pfSense ap -61dB.

    I don't know, which of these 3 ports should be the correct one.

    Any idea, to get a stronger signal?


  • Netgate Administrator

    If you only have one antenna it's important to switch off Diversity and to set both the transmit and receive antennas to use the same, correct, number.

    From config.xml:

    
    				<diversity>0</diversity>
    				<txantenna>1</txantenna>
    				<rxantenna>1</rxantenna>
    
    

    Steve



  • Sorry, the problem is not gone. I have less signal strength.
    Any idea or do you know a better mini PCIe wireless card?
    What chipset will be supported for hostap?
    Now, I have spent a lot of time and money to solve the problem.
    Should I give up? ???


  • Netgate Administrator

    Did you try my suggestions above? Reboot after making the changes?
    Also antenna 1 happens to be correct for my card but may not for yours.

    Steve



  • Thanks for response.
    I have tried all antenna (1,2,3) but only 2 is working with the named limitation.
    So, I think, I buy two antennas, connect their and give feedback.

    And sure, I had rebooted after every change.



  • Now, I have build in 2 further antennas. So I have one external and two internal antennas. Without luck. Nothing changed.
    It seems, only antenna 2 is working. It doesn't matter, what I configure. In example the channel: I configure 10 but the system comes up with 1.

    Further, I have recognized that the signal strength is always going down and up.
    I have configuered a <shellcmd>to restart ath0_wlan0 after bootup. This solves the behavior and the channel is 10 which I have configured.

    I think, there is a problem in startup. I would like to try a complete reconfigure-script after startup, but I don't know how.
    Any help woukd be fine.</shellcmd>


Log in to reply