?

Log in

Proliant DL380 G5

An acquaintance of mine has a neighbor that just gives him surplus equipment from his work [Unnamed State University]. He has maxed out his need for rackmounted servers, so he gave me an old HP Proliant DL380 G5. Dual quad-core Xeons, and most notably to me an 8-bay hot swappable hdd array. The G5 has a P400 Smart Array controller for the drives, and I did not know anything about it.

I decided to install CentOS 6.9 on it, so I didn't have to muck with the hpsa driver settings. It was just another variable that I didn't want to have to control, and I did not really understand what the array controller was going to do.

I tried to install CentOS from the LiveDVD, but it has selinux set to enforcing by default, so I couldn't get it to boot. I fell back to installing from the DVD1 installation. I burned the iso to an 8GB flash drive [it wouldn't fit on the 4GB I had]. When the Proliant starts up, it runs through some system checks, and eventually gets to a place where you can choose to -- <F1> Continue -- <F8> Use ROM Based Setup Tool -- <F9> Use System Maintenance Tool -- <F10> PXE Boot .

I started to ROM based tool, and checked the boot order to make sure that it tried to boot from USBKey before it tried to boot from the HDD. I plugged the installation USB into one of the front panel ports and exited the tool. The box rebooted itself, I chose <F1> and we were off.

I thought that I chose to include cciss0 and cciss1 in the partitioning scheme when I went through the disk setup. I also thought that I chose to set cciss0 as the boot volume. Be careful to remember this. Other than that decision, and choosing to set it up as a software development workstation, the rest of it was clean and automatic.

I pulled the media out and rebooted. It went through its power up sequence, I chose to <F1> again and it informed me that it was attempting to boot from USB, then attempting to boot from Hard Drive C: . And there it sat for five minutes. I headed off to Google. The standard answer to this is that I need to reinstall grub using the rescue CD.

I plugged my installation drive back in and rebooted to the CentOS startup screen and chose to rescue my installation. It reported that my system was mounted at /mnt/sysimage and dropped me into bash. I tried to install grub:
chroot /mnt/sysimage
grub-install /dev/cciss/c0d0

To which it replied:
/dev/cciss/c0d0 does not have any corresponding BIOS drive.


@#*&^$@#*

Internet says that when this happens, you have to do it the hard way:
grub
device (hd0) /dev/cciss/c0d0
root (hd0,0)
At this point it is *supposed* to tell me
Filesystem type is ext2fs, partition type 0x83
but it in fact tells me
Filesystem type is Unknown, partition type [some number I don't remember]


@#*&^$@#*

One person on the Internet said, "Hey this works 'grub-install /dev/cciss/c0d0p1'." I have one of those, let's try it.
/dev/cciss/c0d0p1 does not have any corresponding BIOS drive.


Reboot and contemplate. Sadly, these are not ten second laptop reboots. Rescue again. Let's look at the other disk, as it is on the sysimage.
ls /dev/cciss
/dev/cciss/c0d0
/dev/cciss/c0d0p1
/dev/cciss/c0d1
/dev/cciss/c0d1p1
/dev/cciss/c0d1p2
/dev/cciss/c0d1p3 [I feel like there were three partitions, but I may be misremembering this, I know there was at least two]

Let's see what grub has to say about c0d1
grub
device (hd0) /dev/cciss/c0d1
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83

Hey, look it at what I found. Exit grub, back to bash.
grub-install /dev/cciss/c0d1

Grub install is successful. Let's reboot and double check the boot order.

<F8> to get to the ROM based setup. Hmm, no granularity down to boot disk. On the reboot, after the P400 Smart Array Initialization [can't miss it because it has the old school spinning slashes to report its progress] completes, you have 1 or 2 seconds to hit F8 and get into the array controller specific set up.

This will be the second you get the option to hit F8 to set something up. Right before the array controller initialization, you can hit F8 to set some other miscellaneous thing up. In the array controller set up, you can pick your boot disk. The P400 has two logical disks, and mine was set to disk0, i.e. c0d0. I switched it to disk1, pulled the rescue media and the system booted all the way. In retrospect, the grub-install on c0d1 may not have been necessary.

Probably the most frustrating thing, to my super-naive self, was that the Internet likes to talk about the BIOS, but you just can't <F2> into the BIOS when it powers up, and there is nothing that says, BIOS on the startup screens except when it reports the BIOS version.

The next thing I'm contemplating is taking out the 2x4 arrays of 72GB/15k RPM drives and putting in some SSDs. The first time I powered it up, the drives spooling up sounded like a jet starting its engines.

So, now I have a dual-quad-core rackmount server [with 4-whole-GB of RAM], feeding [VGA!] video into my old 32" Samsung TV in my basement. Now, If I add a cheap Quadro GPU, and I'll be all current with my technology for 2010. This isn't complaining. I lost my Mac to my kids and my work laptop is so locked down that it is basically useless for anything except surfing the web. This was free from spare parts and will suit me for a couple of years for the needs that I have.

GPIO and Spurious Hits

I built a simple power relay controller and then wired some buttons in it to turn on different extension cords. The buttons hit input GPIO pins to set and then the relay is controlled with GPIO pins set up for output. The simplistic thing to do is roll and poll, but the Internet is smart and says, "Use interrupts!" So I did.
CodeCollapse )

Everything is fine as long as no one pushes a button. The first time someone pushes a button, I start to get spurious triggers, which is apparently endemic in the Raspberry Pi. The workaround is to ... poll and see if a button is pressed for an longer-than-transient amount of time. [sigh]

Who decided ...

... that 1NT should be 12-14?

Half the problem

Here's half an hour of my life that I will hopefully get back because I won't have to cull through three hundred spreadsheets and five hundred requirements. It compiles but I haven't actually tested it.
Automating little jobs with python instead of VBACollapse )

If you know software people in Fort Worth

There is a job that needs this:
Candidate must be knowledgeable of complete software development process and test philosophies. Must have experience in the following:
C++
OpenGL
OOD/OOA/OOP
Rhapsody
Software Integration
Test Planning and Unit Test
Real-time embedded systems display systems
Real-time operating systems (VxWorks or Green Hills)
Excellent oral and written communication skills

To: Serve as a member of the Joint Strike Fighter Pilot Systems Software HMD development team.

9+ yrs of experience, pays in the vicinity of $120k.

So we all stood there ...

saying, "Was that an earthquake?" "I don't know. What do you think?" "I don't know. What do you think?"

Notes to self

You don't have to allocate an EBS volume on which to save images. EC2 will make them for you.

NFS is a strange strange beast.

Somebody has a ...

new website [not me]! Now I have to figure out how to mention in a tweet.