Silicom PXG6BPi or PXG4BPi FreeBSD driver source code Needed…

  • Everything went great from upgrading from version 2.1.5 to 2.2 except I didn't think about compiling the drivers for the Silicom PXG6BPi/PXG4BPi bypass Copper NIC card. 
    I looked high and low through all my back ups for the source files for the drivers.  I need the driver source files for the bypass.ok and if_silbpi.ko so I can recompile them for kernel v10.1.  I have sent a message to company but no reply as of yet.

    Right now Pfsense will get to the silbpi0 interface, error just displaying a load of text scrolling up the screen, then crash and reboot.

    You can PM me if you have them or know where can download them from.  Tanks again for a all the support of the community!!!!

  • Netgate Administrator

    Is the source not available on the Silicom site?
    I seem to remember it was if you registered on the site some while ago. There was a thread about it I think.


  • Yes, you can download the drivers from but like you said you have to have an account.  But, to get on you have to send a request to them to get an account.  I am still waiting on a response from them.

    Thanks for the quick reply.

  • Netgate Administrator

    See:  ;)

    As I said in that thread though the drivers are old (and still are).


  • Thanks so much for the link.  I downloaded the drivers now the fun in trying to set up FreeBSD 10.1 on VMware.  I will let you know how it goes.  And thanks again!!!

  • I was able to get the two drivers compiled and load fine.  Had a few issues that I had to fix with the code that kept raising errors.

    bypass.ko compiled just fine.
    if_silbpi.ko required code fixes.

    Only issue I have now is with "Configuring WLAN1 interface…" will not load causes a crash and reboot.  This is a USB WiFi interface.

    Thanks again for your help.

  • Netgate Administrator

    Hmm, well that's good. Surprising though, I would have expected fairly extensive changes.
    I assume you're familiar with coding, drivers, BSD?

    What usb wifi device do you have?


  • The interface comes up as run0 and run1 because I have two USB Wifi nics.

    I can break out of the loading and bring up the interface using ifconfig run0 up or ifconfig run0_wlan0 up and causes kernel panic, crashes and reboots.

    I was looking at this bug thread on FreeBSD:

    Index: sys/dev/usb/wlan/if_run.c

    –- sys/dev/usb/wlan/if_run.c (revision 268563)
    +++ sys/dev/usb/wlan/if_run.c (working copy)
    @@ -3948,9 +3948,19 @@
    static void
    run_update_beacon(struct ieee80211vap *vap, int item)
    +    if (vap == NULL)
    +        return;
    struct ieee80211com *ic = vap->iv_ic;
    +    if (ic == NULL)
    +        return;
    +    if (ic->ic_ifp == NULL)
    +        return;
    struct run_softc *sc = ic->ic_ifp->if_softc;
    +    if (sc == NULL)
    +        return;
    struct run_vap *rvp = RUN_VAP(vap);
    +    if (rvp == NULL)
    +        return;
    int mcast = 0;
    uint32_t i;

    @@ -3971,6 +3981,12 @@

    setbit(rvp->bo.bo_flags, item);

    • if (rvp->beacon_mbuf == NULL) {
    • rvp->beacon_mbuf = ieee80211_beacon_alloc(vap->iv_bss,
    • &rvp->bo);
    • if (rvp->beacon_mbuf == NULL)
    • return;
    • }
      ieee80211_beacon_update(vap->iv_bss, &rvp->bo, rvp->beacon_mbuf, mcast);

    i = RUN_CMDQ_GET(&sc->cmdq_store);

    Looks like the if statement if (rvp->beacon_mbuf == NULL) { has made it into head but the first if statements have not.

    I was able to compile the if_run.c module with the changes but since pfsense has it built into the kernel can't load the driver to check to see if this will prevent my issue.  Any ideas?  Thanks!!!

  • stephenw10 thanks for your help.  I was wondering.  Where do you disable the interface from the command prompt so pfsense will stop trying to load it.  I tried modifying the config.xml on the run0 and run1 but WLAN1 and WLAN2 still want to come up.

    Also, can you point me in the direction of maybe where to get the current snapshot and I can try compiling the kernel with the mods to the if_run.c into the Pfsense kernel to see if it fixes the kernel panic when trying to bring up the interface.

  • Netgate Administrator

    You can probably just stop the run firmware from loading to stop the interfaces coming up. Can't you just unplug them?

    To build pfSense you need access to the pfsense-tools repo which means jumping through a couple of hoops, nothing too taxing. See:

    I'm not sure if this applies to USB drivers but with other network drivers it's possible to load a newer/modified driver to override the in kernel driver as long as you do it at boot using loader.conf.local. You can't kload the modules after boot as you've probably found.


  • Well, I could unplug them but they are inside my pfsense box and I would have to tear it apart.  I modded a Neoware thin client case so I could put external antenna on it.  I tried adding to loader.conf.local the line if_run_load="YES" but when it boots it says run already loaded.

  • Netgate Administrator

    Maybe not for USB drivers then.  :(


  • I am surprised I am the only one with this issue with this run0 USB interface.  I remember when Pfsense 2.0 was in dev hostap setting was an issue with the php setting it in the web interface.  But this is now a driver issue and hostap with in the driver according to that bug report.  But will not be sure unless the dev team was nice enough to try that fix with their code.  Or I get the nerve up and compile the Pfsense kernel myself and like you said go through the hoops to set up an account.

    If I could just disable the interfaces from coming up for now so I can finish the upgrade…  :o

  • Netgate Administrator

    Can you not just remove those sections from the config.xml file?

    I have a run USB device and it works fine. It won't run as client but in hostap mode no issues. Might not be the same chipset as yours.


  • I tried removing those from the config.xml, cause interface mismatch, kernel panic and reboot.  :-\

  • Is there a way to upgrade from the Pfsense command prompt using the latest.tgz.  Since the console menu is not loaded.

  • Netgate Administrator

    The command called by the console menu is:

    php -f /etc/rc.initial.firmware_update

    You could try that.


  • Thanks for the command!!!  I looked high and low for that.  Well, I was able to roll back to Pfsense 2.1.5.

    I am wondering why when it gives you interface mismatch, it crashes and it doesn't prompt you for setting up your interfaces?

    I will be cracking the box open here in a few days when I get my 6 port version of the card in.  Right now I have the 4 port of the bypass card installed.  It's been a rock solid card.  What I am going to do is get away from the USB Nics I have installed on the box so my interfaces will stop going up and down on them.  The axe drivers for it never could keep the interface up for a very long time before I had to reset it.  I looked into that issue too and with the newer 9.x and newer of the kernel should fix that issue according to forum threads on FreeBSD.

    My thing is getting the two run USB WiFi interfaces to come up with out a kernel panic and crash.  I will get you the actual USB WiFi interface when I take the unit apart.  When I bought the USB WiFi stick it was one that was recommended; I remember that.

    They are rock solid under Pfsense 2.1.5 and I know it's kernel 8.3 but the issue does seem like the issue I posted the link to….

  • Netgate Administrator

    Dropping to the interface assign menu is the expected behaviour, hard to say why your system isn't doing that. You say it only started after you enabled the interfaces? Are they identical? It might be worth trying only one.


  • It only started it after I upgraded the system to Pfsense 2.2 because Pfsense 2.1.5 both of the Wifi interfaces work perfectly.

Log in to reply