I recently saw a post somewhere that showed the internals of one of the newer high end Drobo machines. It appeared to use the same motherboard as the Drobo Pro I have sitting here on my desk gathering dust so I decided to take another look at what I could do with the thing. I had previously opened the machine up to get around the rebooting problem by disconnecting all the batteries with some success and in the process discovered the on board serial ports. It turns out they have a dual core processor in them running completely different OS code on each. One running Linux and the other running VXWorks. The linux one gives a plain old shell with lots of interesting stuff running on it. The VXWorks one doesn’t give much though. From what I can see the VWWorks side handles the actual disk access, while the Linux side handles the “UI” side of things, such as iSCSI on the Drobo Pro or file sharing on the Drobo Pro FS.
To get to the meat of the matter, I downloaded the firmware for the Drobo Pro FS and tried loading it into the Drobo Pro, which of course it rejected as I was expecting. I then had a look at the firmware files and saw they both had a very similar header. After patching the firmware file with the correct header values (an exercise for the reader to find the correct 12 bytes to alter) I was able to load the Drobo Pro FS firmware successfully into my Drobo Pro.
At first it didn’t seem to boot, but after putting some fresh disks in and rebooting the unit, up it came. 🙂 At the moment the device doesn’t show up in the Drobo Dashboard, but it does present a public share, so it’s not a complete loss. I also took the opportunity while I had a serial cable plugged into the board to enable the telnet and ssh servers to allow me to poke around some more.
It looks like the control software on the unit is expecting there to be two ethernet ports while the physical hardware only has 1. I may need to patch the binary…