Jesus Christ I need to get back to this blog.
Okay, long, in-depth story which will hopefully be funnier to read than it was to live through. Happy ending, I promise.
My wonderful lover has opted to buy us both new computers; starting with barebones kits. That’s not as a big a deal to a physicist, and possibly also witch apparently. I just upgraded from something that ran well because I oiled it and cleaned it every single day (metaphorically) to something that would probably run well if I poured orange juice on it. However, first there was its construction.
Usually, I deal with latent static charge by simply contacting the metal chassis and grounding myself. In this case, given the exposure time, it seemed wise to go ahead and get one of the anti-static grounding straps for my wrist.
As a man who has built several complete devices transistor by transistor, including my share of audio equipment, this didn’t feel like it would be a big deal. The only issue with building a computer is that you have to subject yourself to the whims of the hardware designers, and operating system designers, when those whims may have nothing to do with what you’re accustomed to and, occasionally, don’t even make any sense. It went more like this. I’ll be brief.
1. Find metal hex nuts for case, install them. Line up motherboard, attach screws. Notice that you didn’t line it up right, and it isn’t grounded. Remove screws. Remove and move hex nuts. Line up properly. Attach screws. Notice that you once again have it out of alignment, detach screws, board, and nuts. Line everything up, double check each of the available screw holes. Screw it in, one by one. Properly attach motherboard, except for the fact that you were supposed to do the backplate first. Ignore freaking backplate.
2. Line up the processor properly, check. Double check that you’ve lined up the processor properly, check. Ease processor into socket. Notice that it went in a lot easier than last time, and pray to the computer building gods (who would that be? Brigid?) that you didn’t just break anything. Seal processor down with lever. Struggle to attach cooling unit. Struggle more. Attach argumentative cooling unit.
2 ½. Look around, try and find the fan plug. Not find the fan plug. Find something that looks like it might do the job, even though it has an extra pin. Connect. Double check that that actually makes any sense. Does make sense, great. Pop in memory. Attach faceplate cables. Completely overlook the faceplate fan.
3. Attach power supply to case. Attach power cables to motherboard, one by one. Wrap a motherload of electrical tape around the non-modular power supply’s dangling cables. Keep graphics card on standby. Spend an hour trying to figure out where the SSD is even supposed to go in this tower case. Finally find out, on account of girlfriend’s keen eye, install it. Notice that you just installed it backwards. Slide it out, install it again. Pop SATA 3 cables on.
~4. Plug in keyboard, mouse, monitor, turn it on, get to BIOS. Pat self on back. Select “optimize”, because what harm could that do? (Hint: Quite a bit, as it turns out.) On a whim, select option to search for hidden processor cores. Save changes. Restart. Notice that nothing is happening, save for the blue LED lamp, and you can’t even get to BIOS.
4. Punch self in kidney.
Well, to be fair, I slid my Hitachi 2TB from my old computer in at that point too. I knew I could boot. This mistake was actually made after I went back into BIOS settings, just to ensure that everything was in order, without doing nearly enough research.
3 again. Take deep, deep breath. Count to ten. Look up BIOS, try and find reset jumper; fail. With girlfriend’s assistance, because you know they don’t make them to come out easy, remove all power cables and pop the CMOS battery out. Push power button for thirty full seconds, drain all capacitors completely. Pop battery back in. (This is what you do when you can’t even find the jumper; it’s just as effective. Just don’t do it without good cause.) Pray to Morrigan, Celtic goddess of battle and change, for wisdom. Turn computer on, notice that it’s nice and alive again.
4. Never, ever, ever do that again.
At this point I could boot to my 2 TB easily enough. Unfortunately, while Ubuntu immediately noticed all the awesome new hardware, thanked me for it in its own Unixy way, and went to town like a child at a ball pit; Windows did something quite different. Windows is keyed not to users, but to motherboards. When it noticed that it was on the wrong motherboard, it immediately assumed that it was pirated, and rather than presenting me with some eloquent message about how I’m a pirate asshole (which I am not) and refusing to run, it flashed a blue screen covered in gibberish UTF-8, and restarted, before I ever got to the desktop.
As it turns out, this OEM software was licensed entirely to my last machine. I did not realize that, but I was thoroughly pissed off at the underhandedness of a deal like that. In any case, whilst there may be a way to confuse Windows into thinking it’s on the same machine; I am not a pirate, and I needed to get a non-preinstalled copy of Windows 7. That cost us about a third of what the machines did.
(For those who are curious, I did find the secondary fan socket and plug in the faceplate fan later.)
Once it arrived, I plugged it onto the 120 GB SATA 3 SSD. It took quite a while to install, I unplugged every other drive first just to be safe, and afterward, I could successfully boot to WIndows 7. (I refuse to buy Windows 8.) The problem was, now I couldn’t get back over to Linux, where all of my work was. GRUB would not load. It hadn’t changed, but the system wouldn’t see it.
Next up, I tried boot-repair, but it kept telling me, even when running on its own LiveUSB, that I was running a program like Synaptic in the background. That could not make less sense. So, I cut out an even slice at the end of the SSD, of about 17 GB, and popped a new root partition of Ubuntu on there. The install worked flawlessly; but the machine still couldn’t see it.
So, I spent quite a while bouncing from forum to forum, trying to figure out why my BIOS was not detecting GRUB. I reinstalled it on the HDD to be safe, and removed my SSD partition. (Ubuntu installs in maybe twenty minutes anyway.) Eventually, I discovered that the culprit might be this Infinity 2.2 TB feature, a feature that allows you to boot from drives that are larger than 2.2 TB. That’s a progressive feature, but I don’t actually own one of those and I’m not likely to pick a 4 TB up any time soon. When I disabled it, GRUB popped up.
However, GRUB couldn’t find Windows. Minor loss as an engineer, but I will ultimately need it for unit-testing and I have a lot of games written exclusively for Windows that I would like to play. I found myself at an impasse; GRUB didn’t see Windows, and Infinity only saw Windows. I would still like it if I could find a way to get GRUB to recognize Windows; but I messed with the partition flags a bit when I was trying to get SSD GRUB to boot and I imagine that the problem might be there.
So, at this point, on the occasion that I do want Windows, I simply hit F11 on boot, select 2.2 TB Infinity as my boot device, punch a key to select a disk, and pick the SSD. The funny thing is, even after that, and even with Windows on the SATA 3 SSD, Ubuntu still boots faster; off of a SATA 2, mind you.
So, I’m back in business. I haven’t forgotten about the builder tutorial at all, but I have been lightly sidetracked with another project involving easing the interface between Java and GLSL. (The builder so far has, in fact, been quite useful for that.) I’ve also noticed a number of chunks in my builder tutorial that could be optimized by migrating them fully to NIO/NIO-2; as there aren’t any old java.io packages holding me back. (NIO is blisteringly faster.)
Add constructing the other machine afterward and you can seen why I’ve been away. I have suspended nothing on this blog, and it’s good to be back to it. We’re just about to get to the fun part in the builder tutorial, and I’m looking forward to it. (Especially on this beast.)