NDIS problems with pfSense
-
The 2K drivers are for the 8191SU, which if I'm not mistaken is their USB device.
"pciconf -lv" yields the following:
none2@pci0:2:0:0: class=0x028000 card=0x817110ec chip=0x817110ec rev=0x10 hdr=0x00
class = network
re0@pci0:3:0:0: class=0x020000 card=0x0d77105b chip=0x816810ec rev=0x06 hdr=0x00
class = network
subclass = ethernetwith the former device being the wireless adapter. Inside the INF file I used, the first line under the [Realtek.NTx86] header is
%RTL8191seva.DeviceDesc% = RTL8192se.ndi, PCI\VEN_10EC&DEV_8171&SUBSYS_817110ECIf I had to guess, I'd say "card" from pciconf represents the VENdor+DEVice (apparently in reverse order?) and chip represents the SUBSYStem?
With regards to loading ndis > rtl8192se_sys directly after a fresh boot, I still get the error. The exact output is as follows:
[2.0.1-RELEASE][root@pfSense.localdomain]/root(3): kldload ndis
[2.0.1-RELEASE][root@pfSense.localdomain]/root(4): kldstat
Id Refs Address Size Name
1 4 0xc0400000 1178ad8 kernel
2 1 0xc6646000 19000 ndis.ko
[2.0.1-RELEASE][root@pfSense.localdomain]/root(5): kldload rtl8192se_sys
kldload: can't load rtl8192se_sys: File exists
[2.0.1-RELEASE][root@pfSense.localdomain]/root(6): kldstat
Id Refs Address Size Name
1 4 0xc0400000 1178ad8 kernel
2 1 0xc6646000 19000 ndis.ko
EDIT: I just found a Win2K folder in the driver package I was using, and tried building that one instead… I get the same result. However, attempting to load it in my FreeBSD VM spews some stuff but seems to load it fine anyways:
bsdFu# kldload rtl8192se_sys
no match for NdisMCreateLog
no match for NdisMCloseLog
no match for NdisMWriteLogData
no match for ExCreateCallback
no match for ExNotifyCallback
bsdFu# kldstat
Id Refs Address Size Name
1 18 0xc0400000 bb5504 kernel
4 1 0xc5988000 108000 rtl8192se_sys.ko
5 1 0xc5a90000 d000 if_ndis.ko
6 2 0xc5a9d000 19000 ndis.koOf note (to me) is that there is an "if_ndis.ko" module loaded, which I don't have on my pfSense box. Could this be causing the trouble?
-
Okay, so I tried adding the if_ndis.ko from my VM… it happily loaded up, so I attempted to load my Win2K driver again. SSH just went kaput on me, so I flipped over to the screen and see the following (so close! so damn close!)
no match for ExCreateCallback
no match for ExNotifyCallback
no match for IoWMIQueryAllData
no match for IoWMIOpenBlock
ndis0: <realtek rtl8191se="" wireless="" lan="" 802.11n="" pci-e="" nic="">port 0xd800-0xd8ff mem
0xfebfc000-0xfebfffff irq 17 at device 0.0 on pci2
ndis0: [ITHREAD]
ndis0: NDIS API version: 5.1
NDIS dummy called…Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0x0
fault code = supervisor read, page not present
instruction pointer = 0x20:0x0
stack pointer = 0x28:0xc691e60c
frame pointer = 0x28:0xeebab890
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 54195 (kldload)</realtek> -
Don't have any suggestions to fix your issue, but wanted to offer some advice from experience with NDIS - I wouldn't bother. Your chances of ending up with something that works highly reliably are slim to none. At best you may end up with something that functions but stops working at random and requires a kick on occasion (ifconfig down && up). At worst, you may never get it to work, or may end up with something that kernel panics randomly. You can get Atheros wireless cards that work well for $5-10 on ebay, IMO it's not worth messing with something that you probably won't be able to get working reliably. Don't mean to rain on your parade, just offering advice from experience that you're probably wasting your time, unless you just want to do it for kicks anyway and like the learning experience.
-
The Realtek website seems incredibly flaky, I've clicked in the link in my post several times and ended up at different pages each time! the 'SU' is, as you say, a USB model. ::)
Steve
-
I'll have to crack open the case again and see how the wifi is done in this box. I seem to recall it just being mini-PCIe, and if the antenna connectors are standard, maybe I can go ahead and get an Atheros card for it. Can you recommend any model in particular that's good (emphasis primarily on stability, then performance, then ease of setup – in that order)? I will need AP functionality with it -- I am aware some cards don't support AP mode.
-
I am using an Atheros card, which I happened to have already, which is reported as:
[2.0.1-RELEASE][root@pfsense.fire.box]/root(2): cat /var/log/dmesg.boot | grep ath ath0: <atheros 2413="">mem 0xfdbe0000-0xfdbeffff irq 18 at device 6.0 on pci4 ath0: [ITHREAD] ath0: AR2413 mac 7.8 RF2413 phy 4.5</atheros>
Interestingly this isn't listed on the ath(4) man page
Apart from the occasional missed beacon warning in the logs (which doesn't actually cause a problem) it has worked perfectly.
It's miniPCI though so probably not suitable for you. ::)Steve
Edit: A better list of cards is on the ath_hal(4) page. I'm fairly confident that any of these would support access point mode but probably best to double check that.
-
Hmmm, once upon a time, I stumbled across a spreadsheet someone had made, indicating what cards support what modes, blah blah blah… I think it was a Google doc spreadsheet. Does anyone know what I'm referring to? That might be a handy reference at this point :)
-
You are reffering to JimP's excellent research effort:
https://spreadsheets.google.com/ccc?key=0AojFUXcbH0ROdHgwYkFHbkRUdV9hVWljVWl5SXkxbFE&hl=enProblem is it doesn't help much with Atheros since there are too many to list!
The one card that is listed has today been reported as not working though it was in an unusual config. ::)Steve
-
Excellent, thanks! That's the one I was looking for. "Multi" sounds interesting… is there a feature in the pfSense UI somewhere to set up multiple access points or will I have to do that from the shell? I was looking at the tutorial -- would I create new interfaces and assign them the same adapter?
-
I've never tried it and it looks like there's nothing in the wiki. I believe it's done through the GUI in Interfaces: (assign): Wireless:
Here you can configure clones of wireless interfaces, which can be assigned as separate independent interfaces. Only available on wireless chipsets that support this, with limitations on the number that can be created in each mode.
I assume it has to be on the same channel.
Steve
-
So… I ordered this particular card, and just snapped it in tonight. Hop onto the web config interface, add an interface, and get ath0 :)
Within half an hour, I've gotten an 802.11g access point up and running with WPA2-AES, and have successfully connected and gotten online with it (its WAN port is actually connected via ethernet to my current router, which is connected to the internet on its WAN port).
pfSense FTW!