Thursday, April 17, 2014

fun times with the ASRock Rack C2550D4I

An Intel Atom board with 4 cores, passively cooled, ~20 watt TDP, with 12 onboard SATA, one PCI-E 8x, and serious management features?  What's not to like?  This is a perfect board for a NAS build.

So, I got one.  Everything looked cool - it posted with no hassle, I went through and tweaked the BIOS for the heck of it, and then hit a brick wall when trying to install an operating system.

The thing would not boot from USB.  The motherboard only has one USB controller but can only do three ports - they probably used up the other one internally for something or other, maybe the DRAC stuff, this board has a lot of connectivity.  A jumper controls whether you only get one port on the rear or one port through the header.  But I tried all the ports - the devices showed up in the boot menu, but would not boot.  USB DVD drive, multiple flash drives, a USB Micro SD card adapter.  All of these things showed up in the boot menu, but when I chose them there was no read indicator on the device and the screen showed just a lonely, infinitely blinking underscore in the top left corner.

So I went back to read the newegg reviews to see if anyone could help.  The first reviewer was talking all "console redirection" and "remote media" and "you have to install Java".  So I realized I had to use the weird dedicated third Ethernet port to install the OS.  Seems convenient.

Buuuuut... it wasn't.  Here's what you have to do to install an OS ISO via the web management interface (also known as a "DRAC"):

1. Find it

Basically trivial - the C255 Drac uses DHCP so it'll be on your subnet no matter how it's configured.  You can grab the IP from the BIOS (Server Mgmt -> BMC network configuration) or from your DHCP log.  Conveniently, Asrock decided not to give this interface a name, but it has Asrock's OUI (first half of the MAC), which is bc:5f:f4, so you should be able to narrow it down from there.  Or set a reservation from the BIOS, or any other fucking thing you'd like to do.

2. Access it

Go to the IP for the Drac page with a web browser.  This may be the worst embedded webpage I've ever seen.  It almost has it all - you have to accept a self-signed (or otherwise invalid) certificate for the page, install a recent Java (v7), add this certificate as an exception in Java, allow popups, and either allow all downloads automatically or widen popups and accept executable downloads (JNLP) any time you want to do something.  Let's go over that in more detail:
  • Accept the certificate:
This was much easier in Firefox - you just had to access the site via HTTPS and click the correct buttons a couple times.  In Chrome, this is what I had to do: go to the site via https by prepending "https://" to the IP, click the red broken evil lock icon to the left of the URL, then click Certificate Information -> Details tab -> Copy to File button -> Next -> choose option "Cryptographic Message Syntax Standard - PKCS #7 Certificates (.P7B)" -> choose a filename.

Then you have to import this certificate file: Chrome Menu -> Settings -> Show Advanced -> Manage certificates button under the HTTPS/SSL heading -> Import -> Next -> Choose the file we just exported.
  • Install Java:
I'm sure you can figure this out.  Java.com, make sure it's at least Java 7.  Don't forget to untick the "turn my computer into a turd" box(es).
  • Allow Java to accept the site's bullshit:
Trying to use most any feature of the site will cause some supposedly friendly application to start shouting boxes at you, not identifying itself and talking all this trash about the Megarac SP and the folks that vouched for it.  Eventually I realized this is Java itself.  Fix it (on Windows) by going to Start Menu -> Java -> Configure Java -> Security tab -> Edit Site List button -> type your Megarac IP prefixed with "https://" in the weird box under the word "Location" -> click Add.
  • Allow popups:
When you go to the management page in Chrome, to the right of the address bar there's a little angry icon.  Click this and tick all the little things that you would never tick if you weren't forced to.

What the fuck, right?

3. Do it

Now you're in and the site will allegedly work for some features some of the time.  There's a gazillion options, but if you're trying to install an OS to that mother(board), you want Remote Control -> Console Redirection -> Java Console button.  This pops up a popup that you'll need to expand so you can click that you want to execute the binary file from unknown internet sources, and then you have to manually execute that binary file yourself by clicking it.  That spawns a popup which may itself have had a litter of popups - a grandpopup - and the whole family comes at you.   Just tell them all that you're fine, you don't need your windows washed, don't look them in the eyes, give them a fiver to go away or whatever.  Eventually, you get to something pretty cool, which for me is a Java app displaying the BIOS screen over my network.


Five seconds later, this effect wears off.  You realize that this feature would be cool if the server itself were downstairs, or in Pakistan, but when you have the board sitting in an open case right next to you, why do you have to use some of the shittiest software in the world to do it?  Why did those poor developers have to go to all the effort to build this?  It took them so much work they didn't even have time to replace the default Java Swing/AWT/IDGAF skin.  Furthermore, if I wanted my server in Pakistan, I would have gone there and paid like five dollars for it.

Now you click the Media menu option and the only suboption, Virtual Media Wizard.  It isn't a wizard, but that's ok because this is just about the simplest thing we've had to do this whole time.  Browse for your install ISO, connect the virtual DVD drive if you need to, and close the box.  Choose the Power menu option and reboot the server.

When it comes back, hit F11 to choose the boot device, and lo and behold, there's the virtual CDROM.  Choose it.  Install your operating system, and enjoy.

It would be worth it if your server were located in Pakistan.

P.S.: It turned out my failure to boot issue stopped happening when I pulled out the HighPoint RocketRaid 2680SGL that had been in the PCI slot.  Still working on that one, but it's cool that I'll be able to reinstall my operating system or reboot my server later without going downstairs.

P.S.S.: The RocketRaid needed to be flashed to the latest BIOS.  This card claims to have support on Windows, Linux, and Mac, but the flash utility only worked on Windows - extensive searching revealed a Linux version, but this never seemed to see the card.  Fortunately I had a Windows machine, otherwise that motherfucker would have been returned.  When flashing, you need to turn off the "INT13" option, but this didn't really do the trick either.  Finally, I found some sort of "disable option ROM" option in the motherboard BIOS.  Now I don't get to see the status of my attached drives when booting, but that's ok because I'm not using this thing for hardware RAID anyway.  But if you want to do hardware RAID for some reason, watch out - the RocketRaid was damn finnicky, and if I had to do it over again I would have shelled the extra $50 out for the low-tier eight-port LSI card.

No comments:

Post a Comment