PfSense on a Riverbed Steelhead
-
I have looked at the RbMode script but I didn't dare try it as the registers it is writing to doesn't match up. Now I can confirm that the RbMode will not work with the 1050 as Riverbed's own code suggest this certain model uses ipmi to communicate with the SMBUS to trip the relays as opposed to doing it directly. The corresponding register looks like 0x18 as opposed to 0x24 in the script and dump 0x18 has this weird repeating pattern of the value you set many many times as you see in my last post, so if you were to write to smbus directly, are you supposed to set all 255 registers or something else? Maybe that is what IPMI is doing in the background but I am not ready to risk it to find out. Also the script suggest in the model it was written for the relays are controlled via several bytes, but here a single byte sent to ipmi address 0x30 controls all 4 Ports depending on which bits are set or not.
The original RIOS also suggest there is a SYSFS implementation too, that you can simply echo bypass > /sys/<path to nic> to set the states, so I am guessing the sysfs kernel module is communicates with ipmi which communicates with smbus.
Original Implementation is something along the lines of:
<sysfs -> ipmi -> smbus -> relay>
<python script -> ipmi -> smbus -> relay>Very satisfied I figured it out XD
-
For those using ipmiutil (Linux/Windows) the commands are:
-Read: ipmiutil cmd [-H <ip> -U <username> -P <pw>] 00 20 18 52 07 30 01 00
-Write: ipmiutil cmd [-H <ip> -U <username> -P <pw>] 00 20 18 52 07 30 00 01 00Bus: 00
RSSN: 20
*NetFN&Lun: 18
Command: 52
Data1: 30 01 00 (Read from Register 0x30)
Data2: 30 00 01 00 (Write 0x00 to Register 0x30)*Just thought I mentioned it because ipmitool's syntax is ipmitool raw <netfn> <command> <data>, while ipmiutil's is not just netfn but netfn AND LUN combined: nnnnnnll where n's are the 6bits from the netfn and ll represents the LUN which is 0. Rearranging and adding the LUN to netfn 0x6 we get 0x18. I first didn't realise and entered 06 and it didn't work.
Enjoy your now fully functional repurposed Riverbed!
-
@freska99 Excellent, congrats! Mind posting the contents of the two hw_ctl files so future folks with other models have a roadmap?
-
Thanks =) its nice hearing those relays click in! Ive zipped up a few files that others might find useful hw_ctl.py, hw_ctl.xml, hal.py, hal_common.sh, hal is the hardware abstraction layer.
-
@Okijames I've recently acquired a CX-770 too. Because you actually own a working one, I need to ask you some things. I suspect that mine might have a hardware issue. I'm trying to alleviate things that I might be doing wrong. When your is first powered on, what color are the System, HDD0, and HDD1 LED's? Does yours contain a LOM module that's mounted under the 320GB drive?
Final question, are you able to read your BIOS into an image that I might be able to flash? Thanks in advance... -
@cjohnson Happy to help...
HDD LED colors: Orange at power-on, then blue before POST completes
DOM module: No module on my 570 or 770, RIOS boots from the HDD
Read the BIOS: Sure thing, what tool should I use? FWIW, my BIOS is version 2.15.1236, copyright 2013. Does your BIOS not offer nic bypass control?
-
@Okijames
I'm trying to diagnose what I believe to be a partially functionally borked BIOS in it.LED COLORS: I just want to make sure that I understand fully, all three are orange at power on?
What about if you enter BIOS and just let it sit there? Do they remain orange?LOM not DOM. Lights Out Management. It's a separate modular board that plugs into the mainboard, it's mounted underneath the removable tray that holds the SSD and HDD. You can just see the edge of it, (if it's there) just under the side of the tray where the SSD is mounted. It has a webserver that should be available via the "PRI" port. I tcpdumped the port and looked at the source IP attached to the GARP's it was sending since I didn't know how the port was setup (DHCP vs Static IP etc.).
If you reset the BIOS by pulling the CMOS battery (without the main PSU connected) for 30-ish seconds, then reinstall it; does the serial console (assuming 115200,8n1 config) immediately start showing you stuff on a terminal shortly after you power it on?
As far as capturing the BIOS, I believe that's probably something "flashrom" could do, but I'm not certain exactly if; and/or how you'd do that. Maybe @stephenw10 knows since he's done stuff like this before with Watchdog hardware I think? link text
-
System LED: Red at power-on, Orange at the end of POST just prior to boot (~60sec from power-on). IIRC Blue very late in the boot process, after RIOS is fully up and running. Under pfSense it stays Orange.
HDD LEDs: Orange at power-on, Blue during POST (~40sec from power-on)
LOM: Oops, thought you mistyped. Yes the LOM is there. AFAIK it only offers cli/text via a client using ipmitool, not a web interface. RIOS cli "remote" commands are used to set the IP. See the Riverbed CLI user guide for details.
Behavior after BIOS reset: Defaults to 9600,8,n,1 BTW which aligns with RIOS. ~60sec to show first text via serial console, coincides with an audible beep, offering Delete or F2 to enter BIOS setup. Note if you enter BIOS setup, the System LED remains Red rather than turning Orange.
-
Ahh well crap. It looks like a I've got a hosed up BIOS then. I get nothing via the serial port, nor do I get any POST beeps. I don't even get any beeps/tones if i power it up with no RAM plugged in. On the upside, the LOM card seems to be working though.
I'm certain that the LOM card does offer a webUI. I was hopeful that it had remote KVM capabilities, but it doesn't. You can control power functions as well as look at fan speeds and stuff within it. Assuming that it has a static IP asigned, you can find out what IP it has by tcpdumping the traffic from the "PRI" port after power on. About 20 seconds or so after power on, you'll see GARP's coming from that port. If you point a web browser at the source IP contained within those GARP's, you'll get a login prompt. The OEM (advantech) default credentials for the webUI are admin/admin. On the other hand if it's setup for DHCP, you can check your DHCP server to see what IP it handed out. Obviously, this is a security risk depending on if you're using this interface or not, what network segment it's attached to, if the default creds are still set.....etc.... etc...
Anyhow, I'll keep an eye on this thread to see if someone comes up with an idea on how to dump the stock BIOS. That's only part of the problem though, even if I get a BIOS dump, I have to come up with a way to program it. Maybe I'll have to get on of those USB attached SOIC-8 socketed flash tools?
I'm not certain just yet, but it looks like the BIOS ROM is socketed on these things. So, that'll make surgery SLIGHTLY easier down the line.
If flashrom turns out to be a viable option, maybe I'll get my hand on another (fully working) one of these boxes, boot it up off of a liveUSB, hot-swap my ROM into the socket while it's running, then flash it with an image from you. I found this link Fingers crossed...... -
@Okijames said in PfSense on a Riverbed Steelhead:
Under pfSense it stays Orange.
Game on!
Flashrom can probably detect and read that ROM file from an older device like that. Running it is always some risk though.
Steve
-
@cjohnson Why do you think it's a BIOS problem vs any number of other reasons it could be dead?
PS, I see a pair 770 on ebay for $99ea. Might be more time/cost effective to buy one or both.
-
Warning: Whiskey and tinkering don't always mix. I have now overwritten the RIOS boot HDD with FreeBSD. Yippee Ki Yay!
-
Why do you think it's a BIOS problem vs any number of other reasons it could be dead?
At the time mostly, because of the LED/fan behavior; and a gut feeling based upon experience.PS, I see a pair 770 on ebay for $99ea. Might be more time/cost effective to buy one or both.
This is exactly what I had done already. The second one wasn't here yet and I was working with what I had on hand at the time. The second box has since arrived. I swapped the BIOS ROM over from the working one and it booted right up to RiOS. After that, I shut it down and booted it back up on an ubuntu usb. Flashrom dumped the good ROM to a file; hot swapped in the bad one and dumped that to a file as well.I'm gonna' open 'em both up in a hex editor later and see what the difference(s) between the two is/are before I boot it up again and hot swap/re-flash the bad one with the image from the good one.
I might do some digging around in the RiOS drive while I'm in there flashin' ROMs and see what sorta' goodies I can find related to LED color/controls and bypass relay controls too.
-
@cjohnson Good to hear there's hope for both units. FWIW I overwrote my RIOS drive in pursuit of a BIOS dump. Success on the BIOS dump (adios RIOS) and happy to send your way if you want another working example.
-
for anyone who's wondering....just another fine point of detail about the bypass functionality of the four network interfaces (LAN 0_0, WAN 0_0, LAN 0_1, WAN 0_1) on the right hand side (while viewed from the front) of the box.
- set either/both pairs of those NICs to "no bypass" in BIOS (they're labeled as NIC 3&4, NIC 5&6 in BIOS)
- save the changes and exit BIOS
- put the box in standby state (hold the front power switch down for a few seconds, before POST completes)
- the link status LED (not the activity LED) of the NIC pair you've set to "no bypass" will now be lit up amber
BIOS label "NIC 3&4"
pins 4&5 of LAN 0_0 will be connected to pins 4&5 of WAN 0_0
pins 7&8 of LAN 0_0 will be connected to pins 7&8 of WAN 0_0BIOS label "NIC 5&6"
pins 4&5 of LAN 0_1 will be connected to pins 4&5 of WAN 0_1
pins 7&8 of LAN 0_1 will be connected to pins 7&8 of WAN 0_1this essentially means that with the box in this "standby" state, you'll be passing only PoE (not ethernet data) to/from LAN 0_0 to/from WAN 0_0 and, to/from LAN 0_1 to/from WAN 0_1. as soon as you power it up, the PoE shunt is opened.
-
Hmm, that seems odd. I might have expected the other two pairs to be linked for 100M pass-through. PoE pass-through that gets interrupted seems pretty much pointless!
Steve
-
Thanks for all your guidance. I thought I'd followed it , but my CX-755 is giving an error:
smbmsg: Error performing SMBus IO: Device not configured
Any ideas?
Although I'm learning as I go, apparently not quickly enough. Thx. -
@sambiggs Try loading ichsmb and then smb manually. Post the output of these commands...
kldload ichsmb
kldload smb -
I'd put those into the config.xml, right before the smbmsg commands. This is copied from the PuTTY output:
ichsmb0: <Intel 631xESB/6321ESB (ESB2) SMBus controller> port 0x540-0x55f irq 19 at device 31.3 on pci0 smbus0: <System Management Bus> on ichsmb0 smb0: <SMBus generic I/O> on smbus0 smbmsg: Error performing SMBus IO: Device not configured
-
Had you tried scanning the smbus at all? That can easy lock up requiring a reboot.
Did you try entering all the commands manually first without putting anything in the config file?
Steve