Saturday, June 30, 2007

Super Strat

What happens when you a take a circa. 1986 Fender Squier Stratocaster that you have been playing for the last 20 years and decide it's time for a change? Buy a new guitar? No way! It's hot rod time!

I have been talking about doing this for years. The Seymour Duncan Everything Axe Set looked like the ticket (and ended up being so in a round about way--I could not find it in black so I ordered the pups separately over time).

So, over the last little while I have been collecting the needed parts & tools and during a break from the breakneck speed I am running at work I threw it all together to see what would happen. Can you really have it all in one guitar? Strat quack & humbucker warmth & power. We would soon find out...

Most appointments on this guitar are recent, some go way back (an old Seymour Duncan Classic Stack in the bridge [replaced during this project], the graphite nut, mid pup phase switch & Dunlop Straploks). At some point in the last year or so my wife picked up black vol. & tone knobs & pickup covers for me and they looked great against the original white pickgaurd. Not too dramatic a change, subtle enough and yet it sets the look off quite nicely.

I knew there would have to be some heavy rewiring (since all the pickups were being replaced)--but it would go beyond that. There was no way I would even come close to approximating my favorite Strat tones with the mini-humbuckers pups in the neck (Lil' '59) & bridge (JB Jr.) if they were wired standard. Enter the 3-way On-On-On mini-toggles (there was only one place in town that carried them!). They would serve as Series - Single Coil (aka split or tapped) - Parallel switches for both of those pups. A new 2-way On-On switch would replace the old as a phase switch for the middle (Duckbucker) pup--there is no sense in going the other route since it is intended to sound Start-y. Why would you want to split or put it in parallel? You wouldn't, IMO. There's no need.

That was not all though. Oh no. After all these years, I actually wanted to be able to use the tremolo bar on this guitar without having the thing go out of tune after the first bend. That required some simple yet effective modifications that have worked out incredibly well.

First, I already had a graphite nut in place--shouldn't be any binding there. Next I tossed the cheese ball roller string trees in favor of a couple of new Graphtec string retainers. Finally, for the headstock I replaced the original Gotoh Schaller-style tuners with a new set of chrome PlanetWaves locking tuners.

Then came the bridge. My old bridge block has always been junk. Some kind of cheap alloy with no mass. I wanted a steel block for more sustain and hopefully a more musical tone. Next the bridge. Something had to be done. Years of sweat and grime had coroded the saddles and screws badly. They would have to be replaced. I did my research, priced it all out and made my decision. I would forgo the saddle/screw replacements in favor of a drop in replacement bridge (with included steel block). I went with the Gotoh licensed Wilkinson VSVG bridge from Stewart MacDonald. It turned out to be a solid choice. The intonation screws are inside the saddles and lock down firmly. The saddle height set screws do not protrude out the top or the saddle making general playing and particularly palm muting comfortable. No more chewing up your hand on the bridge during aggressive rhythm attacks. But does it all work? I can say that it does with a resounding YES! You can actually play using the bar, even for dive bomb bends and the instrument still remains in tune. Amazing!

Yes, but how does it sound? That takes us back to the electronics. You know, there is not much room in a Strat control cavity and I was not about to start hacking out chunks of wood with a router or dremel--you can totally destroy the intrinsic tone of a guitar doing that kind of thing. It was not an issue though. Since I have never been a fan of two (or more) tone controls), I simply took out the one between the volume and the other tone pot. Now, it's one each--a master volume and tone (just the way I like it), and I had plenty of room for my mods. The Lil' 59 was already in, so I wired up the Series/Split/Parallel switch and hooked it up in the pickgaurd hole where the tone pot used to be. While I was at it (as I did not have the other replacement pickups yet) I drilled another hole and prewired the second humbucker S/S/P swich and installed that as well. Finally a bit at a time the rest of my parts started showing up and when I found a spare moment, I was ready to begin. To make a long story shorter, I have ended up with what I wanted:
  • Bridge: Series/Split/Parallel Seymour Duncan JB Jr. (I considered two other pups for this spot--another Lil' '59 or a George Lynch Lil' Screamin' Demon)
  • Middle: Phase switchable Duckbucker
  • Neck: Series/Split/Parallel Lil' 59
The Bridge pup sounded too muddy to me, and after consulting with one of the techs at Seymour Duncan, he suggested moving from a 250K (darker) to a 500K (brighter) volume pot--which I did. I think it has made enough of a difference that I can say I am satisfied. Quite a relief. I didn't want to swap pups until I found the right one, if what I already had would suit my needs. I believe it will.

The tone pot is one of the original 250K. For some reason I decided to replace the .047 tone capacitor with the same rated ceramic cap. It sounded awful!! I had another one of the original caps and put that back in as soon as I could. The tone control with the ceramic cap was unusable! Issue resolved...

I should have put in a new 5-way selector while I was at it, but no big deal. The original still works well enough (the screws are rusted though, I should have replaced them when I replaced the pickguard screws).

So... how does it sound? (I'm getting to it, be patient.)

First, wired straight I do not think you would ever be able to approximate Strat tones by any means. My favorite Strat positions have always been the 4 (mid/neck), 5 neck, and 2 (mid/bridge): in that order. If I could get those, I would be happy. With the switching options on the bridge & neck, I can approximate those tones. I think (aside form the 5 position) the Duckbucker really helps in those instances for sure--and, for the first time, I have really started using the mid pickup on it's own. That's something I rarely if ever did in the past. The Duckbucker actually sounds pretty good on it's own. The Lil' '59 sounds very good in series (standard humbucker mode) and so does the JB (now that I have that 500K volume pot--it really only provided a slight difference, but it cleaned it up enough for me tone-wise to make it musically useful to me). It can do heavy rock, has decent sustain, and nice harmonic responce--works for me. My Warmoth has a full-sized JB, perhaps they share some characteristics but they are obviously not the same pups. Don't expect a mini-JB to match the awesome might of the original, but the Jr. can hold it's own as long as you don't expect it to knock you down like it's big daddy.

So there you have it. A hot-rodded 1980-something Japanese made Squier Stratocaster given a new (and useful) lease on life. It was not too long ago that the frets were so worn out, and in such bad shape that I thought it was done for. My local luthier saved the day and made it more playable then ever. It made the perfect guitar to do some experimenting with, and in the end it's now worth more then ever before in all respects. With all of the tonal options available on it (19 variations based on the current switching configuration), it truly is an incredibly versatile instrument.

Oh, and I even did my own setup on the bridge for it. I must not have done too badly. It plays well and the intonation is correct (it should be considering the software I bought). Not too bad, huh? ;-)

Thursday, June 14, 2007

Ubuntu Edgy Server Troubles

One thing leads to another but finally it all worked out (for now).

First, I found that my VIA C3 Linux Software RAID server (scroll down in this link for details) couldn't take a simple cp backup without taking a dive. Unreal.

I got a reasonable deal on a 500GB external drive. USB 2 of course. That was my first problem. The junk board didn't have USB 2 connections so I had to upgrade it with a two port USB 2 PCI card. Great.

My first attempt at backing up my /data & /home partitions with a simple tar command (no compression) ended in a kernel crash. Next I tried an arcane cp | tar type command (to maintain file permissions). I will have to see if I can find it again. Anyway, it ended the same way. What's going on here?

Time for some custom kernel action. I built a couple on my VMWare build server (basically the same OS sans the RAID setup, and the kernel source & build tools installed.) I have the VMWare build box on the AMD64 box--much faster kernel builds. It's very easy to do. Customize you configuration and use these instructions to build your packages. Nothing to it. I got rid of extemporaneous fluff that wasn't needed for my C3 box, configured it so that Reiserfs and RAID 1 & 5 were compiled into the kernel (as opposed to modules), and hoped that would do the trick. No dice.

I was even reduce to running simple cp -av commands for the back up, I mean really, what OS is going to choke on a copy command? Still no luck. It still broke.

Ok, one more shot with software and then we are trying something drastic. I grabbed the latest stable linux source from and again compiled yet another kernel. Surely the bugs were gone and I would see success. Nope. It was apparent (and I had a hunch all along that this was the case) that the processor just could not deal with the load. Sure, there was enough memory on the board but it just wasn't going to happen. The C3 is just too weak.

Drastic Measures

I pulled my Windows 2000 drive out of the AMD64 box (with all my neato PCI cards in it: RME Hammerfall; NTSC/HDTV tuner card; etc.) and put my RAID disks into the case. I used a standard (none C3 specific) kernel to boot and everything was running smoothly--except no ethernet. Oh brother...

The kernel modules for the NIC was loaded but ifconfig showed nothing but the loopback. I was forced to track down the configs to make it work. You would think it would all be in /etc/network but not quite. I will spare you the details and get to the point: you make changes in two places--or perhaps one really (if you have the right NIC driver loaded). In my case I made changes to /etc/network/interfaces & /etc/iftab.

Here is what interfaces looks like (I have a static IP address for it, makes like easier on my network & it is a server--if you believe it or not):

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo eth1
iface lo inet loopback
# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
# The primary network interface
iface eth1 inet static

The only real change I made here was replacing eth0 with eth1. Even without modifying the next file, it would come up after a lengthy wait while the system autoconfigured the NIC. The next file /etc/iftab could have remedied this issue without even touching the previous file I believe--you'll see why shortly:

# This file assigns persistent names to network interfaces. See iftab(5).
# eth0 mac 00:00:0d:33:50:83
eth1 mac 02:R2:D2:C3:P0:07

I could have just changed the MAC address of the NIC for eth0 and I'll bet everything would have come up just fine. Instead, in my case, eth0 disappears and eth1 takes over. No big deal. It comes up just as it should. I may go back and "fix" it for semantics I suppose but I doubt it since if it ain't broke, don't fix it.

Ok, so the network is now working, but I forgot to mention during all of the crashes when the drives were in the C3 box I was doing reiserfsck check on the md devices all the time--even on the external drive. I will have to say ReiserFS is pretty dang solid. When it did come up with errors reiserfsck --fix-fixable /dev/mdx would generally do the job. Unfortunately, since you cannot unmout your root filesystem that one was a bit of a trick. A couple of times though --fix-fixable didn't work and I had to use the more drastic --rebuild-tree (absolutely back up your partition before running this command). Since I was now able to actually get a good backup onto the external HDD without the OS dying, it was a good time for --rebuild-tree where needed. It was nice and fast, and it worked without any issues on the partition that needed it.

So now you would think all was right with the world. The server running smoothly on nice fast hardware--life is good. However, I had this nagging feeling that / needed to be checked--since it had been crashed several times. You can't unmount root when it's running of course, so an extensive test required outside intervention. Enter everyone's favorite LiveCD, Knoppix.

I wanted to get Knoppix to assemble /dev/md0 (my RAID1 root device) with mdadm but I was never able to get it to work for me. Instead I ran a simple reiserfsck check on each unmounted partition that was part of the array. It's RAID1 (mirroring) so each disk is simply a copy of the others. The first two disks came out fine, no corruptions. The third, hdg1 was not so fortunate. reiserfsck wanted a --rebuild-tree on that one. Uh, no thanks... since I had no idea what that would do to the other two drives when it was rebooted without Knoppix. Enter the aforementioned mdadm, an extremely useful & powerful tool for RAID administration even if it is not well documented (at least I should say, I didn't find everything on it that I was looking for even though "google is [my] friend.") I decided that the simplest fix would be to "fail " the drive with the corrupted partition, reformat it, and then put it back into the array. I don't know about you kids but this was what I came up with (via this article) and it worked perfectly well for me:

# Fail the corrupted partition
mdadm /dev/md0 --fail /dev/hdg1 --remove /dev/hdg1

# Reformat the partition
mkreiserfs /dev/hdg1

# Add the partition back into the RAID device
mdadm /dev/md0 --add /dev/hdg1

The OS knew right what to do and added hdg1 right back in as the spare drive for the RAID1 device (which was the initial configuration of this particular configuration--two drives mirroring with one spare).

Ok, so now I am confident that all my partitions are clean, even the external drive, and my RAID1 & 5 devices are working properly. What else could possibly go wrong now?

I really cannot say what change(s) I made that caused the following disaster but the recovery was really quite simple in the end--even if it did take almost all day to finally stumble upon it. Here's the list of things that went terribly wrong in no particular order:
  • Samba ceased to start automatically
  • Webmin ceased to start automatically or not at all.
  • /etc/mtab & mount would only display the root filesystem as being mounted (even though nothing had been changed in /etc/fstab). mount -a would not resolve the issue either, but even though they were not listed /home & /data were still available. Very, very strange. Totally disconcerting.
  • Swap would not automatically start.
I would manually start Webmin and proceeded to change various boot time options. One option that caused me terrible grief was the and/or options at boot time. Do yourself a favor and don't enable these in Webmin. The box would lock up hard and keep the root filesystem in a read-only state. This causes a world of grief because the OS needs writing capabilities. In this state you couldn't even manually start some of the services you wanted. Fortunately I found a command that would undo this particular disaster:

mount -w -n -o remount /

I've seen this before, but in the midst of my sorrows, I couldn't remember it. Once / was back in rw mode, I could then start Webmin again. Play around with boot time settings, and still have problems. Something was wrong with the init scripts. Something terribly wrong, and I hadn't a clue how to fix it.

I decided that I would try to find a package through aptitude search that would allow me to reset the init scripts to "factory default" since I had obviously blown mine up somehow. Wonderful tool aptitude, highly recommended. This is what I did:

sudo -s
apt-get update
apt-get upgrade

# After finding what I was looking for
# via aptitude search I issued the
# following command

aptitude remove initscripts

# Ugly messages follow about breaking
# things and uninstalling other important
# packages but I went ahead with the removal
# anyway (making note of the other packages
# that were getting whacked as well).
# Time to put everything back based on my
# notes of the
packages removed

aptitude install initscripts ubuntu-minimal system-services upstart-compat-sysv

Reboot... The moment of truth... And there it was! Everything, was back to normal. All the filesystems mounted--showing up in /etc/mtab & when the mount command was executed. Samba & Webmin started automatically. "No runs, no drips, no errors." "All was right with the world."

And there you have it. Many disasters and many (recovery) lessons learned. Using Knoppix to run reiserfsck on the root partition RAID1 drives was nice. I wish I could have figured out how to make it assemble the RAID device under Knoppix though. That would have been even better, and a necessity to checking a RAID5 device if your OS blows up completely.

Now, I have to find a permanent home for the drives (an the OS that lives on them). A box with good airflow & a CPU /MoBo /RAM with enough capacity to meet my seemingly simple needs. I'm not leaving them in the AMD64 box. I need to put that back together so we can use it as the big workstation with all the toys in it.

Well, when all is said and done, at least when I move the drives again I should be better prepared for some of the weirdness that may occur...