Barracuda 310 NICs
-
You, kind sir, are a genius! That has worked to a T! :) Really appreciate your help with this.
Now I maybe "overstaying my welcome", but I have seen your Watchguard posts and looks like you have written a script to get an activity light on the LED's. Would it be possible on the cuda as well? Right now I have 2 LED's (Traffic and "Spyware Download") out of the 3 that are always on and might look neater if they were activity lights of sort… :D
Also, the LED in the left hand corner (red) turns off as soon as the NIC board gets enabled with the 0x3f command.
-
Thanks for saying so but really I'm no genius. The only reason I know any of this is because it's so similar to what we did on the Watchguard box and that took me days, weeks even when I first did it. ;)
Anyway controlling the LEDs will probably be easy. Are the wires to the front panel connected directly to the LEDs are via some logic chip?
Perhaps I didn't make this clear but the values I read from my box are very unlikely (but not impossible!) to be the same as on your box. You need to read the 0x378 register first and then modify it and write it back. Did your box coincidentally return '37' also?
Being able to read the reset button would require a lot more effort so lets ignore that, at least for now.
So we have the 5 output lines:
| Pin | Bit in 0x378 | Function |
| 5 | 3 | Enable NIC Bypass relays. 1=bypass disabled |
| 6 | 4 | ? |
| 7 | 5 | Red LED? |
| 8 | 6 | Yellow LED ? |
| 9 | 7 | Green LED ? |This assumes the connections are the same as in the spam filter references in the blog post above which seems reasonable.
You wrote 0x3f, 00111111 and that switched the NICs and turned off the red LED. The other LEDs remain on? That implies an inverted logic which is common. One side on the LED is supplied with ~3V and you switch it on by pulling the other side to 0V, logic low.
If you write out 0xff all the leds should turn off.
There's a problem here though because you wrote both bits 3 and 4 to high we don't actually know which pin is switching the NIC relays.
Reboot the box and read in the initial value at 0x378. You'll have to re-fetch the two programs.
Steve
-
Hey Steve,
Sorry work has got in the way over the last few. I have read the IO port without doing amy writing and I get back a zero '0' with no modifications.
You are correct. The parallel port wires go into some sort of a board, where the LED's are soldered on to.
-
No problem. So we need to narrow down which pins do what by writing to one bit at a time.
First try just pin 5 to make sure the relays are controlled by that. Try:./writeio 0x378 0x08
If that's true then we can leave that connected and try the leds.
Try setting pin 9 to high:./writeio 0x378 0x88
and pin 8:
./writeio 0x378 0x48
and pin 7:
./writeio 0x378 0x28
Did any of that do anything useful? :)
Steve
-
Yes, that has actually worked well. :D So to start with, when the cuda boots up, I have (looking from left to right) LED 1,2,3 ON, HDD blinks (as it should) and Power solid.
When I issue:
./writeio 0x378 0x08
Relays click and the front ports come on. LED 1,2,3 are all on as per boot.
./writeio 0x378 0x88
LED 3 turns off.
./writeio 0x378 0x48
LED 2 turns off and LED 3 turns on
./writeio 0x378 0x28
LED 1 Turns off and LED 2 turns on.
Hope that helps. Thanks again.
M
-
Ok, that's what we expected, great. :)
Still don't know what pin 6 does though. I would guess it's for 'patting the watchdog' if it's used. Probably not important here.
I'll try to knock together some code in the morning. We can probably use much of the code given in the linked site above.Steve
-
Ok, that's what we expected, great. :)
Still don't know what pin 6 does though. I would guess it's for 'patting the watchdog' if it's used. Probably not important here.
I'll try to knock together some code in the morning. We can probably use much of the code given in the linked site above.Steve
Awesome, thanks so much! Appreciate the help.
-
Right, try this. See attached files. They have a .png extension because the forum only allows certain types, just remove it. Set the file permissions.
I find it amusing that in his blog post Jim Barstow apologises for his code claiming he's not a C programmer. He's got plenty on me! ;) Any real programmer would cringe at my code but it seems to work. It has limited error checking. It can't do more then one thing at once so if you want to change two LEDs you have to call it twice, for example:./BCHW32 red on ./BCHW32 green off
Let me know if that works at all. I spent some time late last night trying to debug something before I realised that the laptop I was testing on didn't have a parallel port. ::)
Steve
-
I actually have an application that could take advantage of this daughterboard and a Load Balancer 340 coming in the mail sometime in the next 2 weeks. The front nics in the 340 are just plain connectors with no watchdog circuit http://imgur.com/hcsuwTB I would be down to trade my plain board for anyone's board with the relays/watchdog circuit. If you are not good at soldering, just clip the black/blue wire from your parallel port and separate them with electrical tape. I don't want anyone damaging their motherboard! I have enabled forum members to email me, so hit me up. Thanks in advance!
-
Never heard back from Maxpol, maybe my code set fire to his box. ;)
Steve
-
Your code is good, I've basically done exactly the same thing on my own 310 - annoyingly, I was probably working it out myself around the time this thread was happening, I never thought to look on here, despite knowing you (stephen) as a helpful guy from my previous experimentation with a Lanner unit. The Barracuda came up for £1 on eBay about 5 minutes from home, so I figured it was worth a try.
cron410, where are you located? If you're in the US then you're probably out of luck, but if you're located in the UK then I could look into disconnecting my watchdog circuit from my 310 - it's an older revision than the one pictured here (pretty sure mine uses a PATA disk, from memory) but given that Barracuda have written the firmware to apply to all hardware revisions I would imagine that the behaviour is identical to this unit. I'm certainly 99% sure I've used the same values as maxpol did to activate my front ports and de-activate the LEDs (red disappears after bootloader, yellow disappears after fully booted, leaving only the green as a "everything's OK" indicator).
I intend to get pfSense working and pop it back on eBay as a fully-featured average-spec firewall rather than just a web filter but given that I don't really have time to write anything in the UI specifically for toggling the front ports on and off from the web interface, I don't 100% need the NIC module at this point in time.
-
I need your help. I am a victim of purchasing a barracuda 310 and the front NIC's are now working. I followed you procedure and I am getting a funny number back.
I did this : ./readio 0x378
And I am getting back: Reading 378 :0
I changed the parallel port in bios to a different number and ran ./readio and I keep getting back xxx:0
Now I'm not good with numbers but I know 0 means nothing. So I did ./writeio 0x378 0x0 and nothing happen.
Please I hope you get this message or anyone that can help me. I just purchased this off ebay and its a shame I may have to junk it.
Many Thanks!
-
I got it to work read on in the topic. I issue this command ./writeio 0x378 0x08 the LAN/WAN ports started to work .
But when I rebooted the box I had to fetch and redo the instructions. The lan ports are dead again after reboot.
What should I do?
Thanks
-
Sorry I figured that out I just loaded Shell pkg and added the command in it and rebooted and it works. All is well.
Thanks much!
-
So all good then? Glad you got it working. :)
You should be able to use the BCHW program rather than using writeIO to set the bits directly.
Steve
-
Once again Stephenw10 you are the man. I didn't see the post for BCHW. I just set it on the barracuda 310 and it works like a charm.
Thanks for letting me know and getting back to me so fast.
Many tanks!
-
Steven,
Sorry I know this is an old post but your the only person I can find that seems to have figured out the barracuda nic issue. Your programs work great for pfSense but I am trying to use them in Debian and apparently they are not compatible.. Is this something you could possibly recompile for debian/ubuntu?
Or point me in the direction of a comparable program to do the same?? I know nothing of programming or I would attempt to do it myself..
Thanks
-
Hi, sorry for the delay.
The source code for BCHW is listed above, you can probably try just compiling it in Debian. It's all pretty basic C libraries etc.
Alternatively the entire thing only sets bits on the parallel port for which there are many programs available. I'd be very surprised if there wasn't already code to do it, possibly even already on your box.Steve
-
Thank you everybody! Especially Stephenw10…
I got pretty much everything I needed from this thread to repurpose a long-out-of-warranty Barracuda Web Filter 410... Only slightly different than the 310 (one PCIe slot controls both NICs instead of 2 PCI slots)... After getting FreeBSD to see the Lib32 libraries, by adding the path with ldconfig, I was able to successfully run ./BCHW32 bypass off, which clicked the relays and activated the front NICs... When it rebooted, the command had to be run again. To remedy this, I put BCHW32 in / , added the following to a file, named BypassOff.sh, and placed the file in /usr/local/etc/rc.d:cd /
./BCHW32 bypass off
./BCHW32 red off
./BCHW32 yellow off
./BCHW32 green offNow, when the power is lost, the NICs go to Bypass Mode, and when power is restored and pfsense loads, the script runs and the NICs light up...
Now, we can start configuring, testing, using, the various packages available for use with pfsense... -
<resurrecting_very_old_thread>I, like the last poster, has hard a very hard time finding anyone else online whose re-purposed a 310 for Pf. I have one sitting behind me, it has the watchdog/relay type front nic board.
I don't have Pf loaded as of yet, but I read through most of the thread here and I'm left still wondering.. what are you all doing so that the nics are enabled after a power cycle/loss? It is some sort of Pf/cron jobs addon thing?
Thanks!</resurrecting_very_old_thread>