Tuesday, May 24, 2016

Pimp My Quicksilver: Part VI: PCI FireWire

A heads up: this post is going to be pretty boring as well, but probably even more so than the PCI USB one due to the fact that I do not currently have any Firewire devices to test with at the moment.  Not even an older Firewire iPod. That should change in the future as I plan on purchasing and using external storage devices via Firewire. For now, it is just nice to know that I have the availability.

I purchased a Sonnet Tempo from Amazon for $54.98.  I wanted the card due to the fact that it has 2 Firewire 800 ports (and one 400).

As before, I also used the lspci -v command in Debian to make sure the card showed up and was available and active.  Sure enough we are good to go with the card using the firewire_ohci kernel driver.
0001:10:13.0 FireWire (IEEE 1394): Texas Instruments TSB82AA2 IEEE-1394b Link Layer Controller (rev 01) (prog-if 10 [OHCI])
    Subsystem: Device 0ee4:3884
    Flags: bus master, medium devsel, latency 16, IRQ 53
    Memory at 80083000 (32-bit, non-prefetchable) [size=2K]
    Memory at 80088000 (32-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: firewire_ohci


This is not to be confused with the onboard firewire device of which shows up as using an LSI Corporation controller and chipset versus the TI one this card utilizes as seen above.

Great. A quick check using System Report in OS X Leopard shows the card successfully appears there as well.


So there you have it.  Additional Firewire 400 and 800 connectivity.  Yay.  Up next, is the much more exciting transition to Ultra ATA connected SSDs. From there, we will move straight to a SATA controller and SATA SSDs (Specifically used for the boot drives of each respective OS. I will store my precious data on more reliable drives both internally and externally).

P.S. With each of these upgrades, I have grown more fond of the G4 QS.  I will keep this baby going as long as I possibly can. Also, I am pumped at having Core Player installed as it plays back even higher quality 720p video (Mr. Robot Season 1) on my current measly ATI Radeon card that came as the stock graphics card for these systems flawlessly.  Impressive!

Sunday, April 10, 2016

Pimp My Quicksilver: Part V: PCI USB 2.0

With the CPU upgrade out of the way, I decided to step back and tackle a smaller upgrade.  I purchased a Syba SD-NECU2-5E1I 6-Port USB 2.0 PCI Card with NEC chipset, which as many of you may know are known to generally work really well with G4 and G5 PowerMacs running OS X. It cost me a whopping $6.29.

My particular 2002 Quicksilver only comes with 2 available USB 1.1 ports which happen to be on the backside. These 2 ports are about enough for just a keyboard and mouse. (Aside: Apple claims these were dual channel USB ports and with the 2 ports available on the included keyboard gave you a total of 4).  Of course you could probably connect an externally powered hub, but not only would you still be limited to the slow speeds (which would in fact be slower if all devices on the hub saturated the available bandwidth which had a theoretical maximum of 12 Mbits/s), but you would then likely end up dealing with other power-related connection issues from using a hub.

So for a couple of dollars I decided to make the jump to add some additional USB ports that were 2.0 to add additional connectivity choices in the future for such devices as flash drives, USB Bluetooth, external hard drives, charging my mobile devices, etc.  As I mentioned, the card I purchased had a total of 6 USB ports. There are 5 ports available on the outside and one port only available internally.  More on that in a moment. If 6 ports is too much for you, there are also 2 and 5 port variations available as well.

Installation was simple enough and a quick check from within both Debian and OS X gave me signs that the new card was recognized properly (I was not too worried).


Running lspci -v | grep NEC shows us the card is available and working in Debian.
0001:10:12.2 USB controller: NEC Corporation uPD72010x USB 2.0 Controller (rev 04) (prog-if 20 [EHCI])
    Subsystem: NEC Corporation uPD72010x USB 2.0 Controller
    Flags: bus master, medium devsel, latency 16, IRQ 52
    Memory at 80080000 (32-bit, non-prefetchable) [size=256]
    Capabilities: <access denied>
    Kernel driver in use: ehci-pci


Currently, the only 2 devices I have planned to plug into these newly available USB ports are a D-Link Bluetooth 2.0 USB adapter and a 1 TB Seagate External HD for backups. Here is a shot of the installed card.


As you can see from the photo, the 5th outside USB port on the end is nearly cut off from being accessible, but I am able to safely plug in most cables and devices without any issues.  Honestly, I would not have been too upset if I could not, as again, there would have still been 5 other USB ports available. I tested the ports out with an external HD, flash drive, keyboard, and mouse without any issues in either Debian or OS X Leopard.  My plan is to install the bluetooth adapter in the internal port as it is not a device i would need to be add/remove on a regularly frequent basis.

Wells that is all I am going to cover with this one. Kind of boring, but definitely a useful and worthwhile upgrade for any G4 PowerMac in my opinion.  If you would like to know about anything else regarding this upgrade, feel free to drop me a comment or shoot me an email. On a side note, each of the 4 PCI slots on this QS has a dedicated bus bandwidth of 33 MHz and is 64-bit, so I still have 3 left to fill at this point!

On the upgrade purchasing front, I have picked up a 430W Thermaltake TW2 Power Supply (may go higher Wattage in the future), a 20-24 pin Startech ATX adapter for the upgraded power supply connectivity, a couple of shorter 18mm blue SATA cables, a NF-F12 120mm Noctua Fan (read great things about these all over the web), and a Sonnet Tempo PCI Firewire card, which I will be covering next.  I  contacted the individual who used to make the QS ATX adapters, but he no longer has any available and is not interested in making any more unfortunately. That means I will be using the instructions on this page to try and create one myself.  No small feat, but I will try to make the most of it and use it as a needed learning opportunity.

Sunday, March 6, 2016

Pimp My Quicksilver - Part IV:C CPU

Finally.  The last post of this 3 part sub-series on upgrading the CPU on the G4 Quicksilver (QS).  This post mostly consists of a numbers comparison between the old and new processors to see how much of a performance gain we obtained via various benchmarking tools and performance tests.  I decided this route as I think its pretty obvious that there were some significant improvements all around and I was curious to read up more on some of the benchmarks I ran within Debian.

However, before we start to play the numbers game, let us take a look at and compare the specifications of each CPU, so we have an idea of the difference in terms of hardware.  I wanted to display this information in a table-like format using screenshots of the System Information section of the Geekbench results as I believe displaying it in this way it much more helpful for the reader to process and understand.  I will go over  some of the different specifications in a little more detail below.


Not only is the number of processors doubled, but the the clock rate/frequency has increased by 333.25% (((1332 x 2) / 800) * 100).  Not only that, but the upgraded processor also includes 2 MB of L3 cache per CPU whereas the stock lacked a level 3 cache at all.  Having a decent sized level 3 cache should lead to less cache-misses, which leads to fewer fetches of required data from system memory.  Of course this can be variable depending on the software/workload the system is under, but either way, there should be some big improvements in that department as well. One other aspect not covered by the above screenshot is for Altivec support, of which, both support, but at the moment we do not really care.

Onto the testing methodologies and tools.  For actual software benchmarking tools I have decided to again use Geekbench as well as the CPU benchmarking tools within the hardinfo software (a.k.a System Information tool) available in the Debian repos. I ran Geekbench v2.2.7 (download here), the last to support OS X PowerPC, both before the CPU upgrade and after. Here are screenshots of summary results for each:



Again, the results are easy to decipher with results showing double the performance in both the integer and floating point section and even a slight increase in memory (?).  You will notice the stream summary has actually dipped 20 points.  Why is that?  I read through Geekbench 2's documentation on the different stream tests, but am still having a tough time wrapping my head around the drop.  Stream tests try to test performance of work done between just the processor and memory (no file I/O).  My theory is that somehow the level 3 cache affects this in some manner due to it caching data instead of needing to pass it back to system memory. If anybody else could clarify I would appreciate it thoroughly.

Great, so what about on the Debian/Linux side of the coin? Let me first give an overview of handful of tests I could and did perform on each CPU.  I will briefly cover what each is or does.  I found a bit of concrete documentation of most of these in the package's code on GitHub, but some additional research and knowledge retrieval from my Computer Science degree helped to fill in most of the remaining gaps. So here are the benchmarks I ran:

CPU Blowfish - Lower is better. My conclusion is that this is running a stress test on the CPU using the blowfish encryption cipher.   Interestingly, this particular cipher has no known cryptanalysis of it to date.

CPU CryptoHash - Lower is better. Another CPU stress test utilizing a cryptographic hashing function to measure performance.

CPU Fibonacci - Lower is better. A test of the Fibonacci function using recursive programming and parallel processing.

CPU N-Queens - Lower is better. A mathemical puzzle/computer science problem of trying to place N number of Queens on an NxN chess board in such a manner that no two queens attack each other.

FPU FFT - Lower is better.  According to the documentation in the code, "a number crunching benchmark using LUP-decomposition to solve a large linear equation."

FPU Raytracing - Lower is better. According to almighty and faithful Wikipedia, "... a technique for generating an image by tracking the path of light through pixels in an image plane and simulating the effects of its encounters with virtual objects.  As you may have noted it tests out the CPU's floating point performance."  I find that interesting that it deals with graphics although I know many operations for graphics are still executed on the CPU, especially on these older systems with older graphics cards.

Here are the results:


With double the performance results we saw earlier with Geekbench, I was not surprised to see a similar outcome here.

Now onto every day tasks.  For this I decided to execute the following tasks and timed each of their executions until completion with all of them only being completed while booting up or booted within Debian.  For the 3 tasks, I am going to 1) Open Ice Weasel and browse to DuckDuckGo (an excellent replacement for Google's search engine) and have the page start displaying input 2) Boot the system to Debian and type the first character at the login screen and 3) Run apt-get update.  A nice array of different tasks that most users will encounter on an almost if not daily basis. Here are the results across the 2 different CPUs.


Not a surprise here either.  Basically, double the performance for the first 2 tasks.  The Debian boot up task is more I/O bound so nothing to look at there for performance gains, but I will refer back to these numbers when I start upgrading the hard drives.

I am a bit glad the CPU portion is over, but I am a bit sad as well as we all know CPU upgrades can offer the biggest performance benefits as can clearly be seen from my results above.  However, I still have the move to SSD IDE drives, the move to SATA HDs, and then SATA SSDS, so there is still some performance gains to be had there.  Plus, I have not covered graphics upgrades as well, which will mostly depend on whether it will support 2D and 3D acceleration, which as most of know can be quite a headache on our Big Endian machines, but the march of progress continues on that front as well.  If you have not heard yet, as of Mesa 11.0.3, 3D acceleration is working with the nouveau driver although not quite at the performance it could be.  I have tested this on my PowerMac G5 and plan to test it out on my QS by upgrading to Stretch (which is already using a later version of Mesa for that matter) after first making a backup clone onto an SSD before making the jump to the SSD.

Before I sign off here, I want to note that I have recently installed 3 royal blue RAM heat sinks on each of the 3 sticks of RAM for even perhaps a small minute drop in temperature and small minute increase in performance due to the lower temperatures, but I have no concrete evidence to support that wild claim and will not discuss it any further than that.  Here are a few photos of the QS's internals so far with the few upgrades I completed.




I also picked up an ATI FirePro XL3 graphics card with 256 MB of VRAM. Hailed as the second fastest GPU upgrade for a G4 PowerMac right behind the NVIDIA 7800 GeForce GS, which I also happen to own. More on that when I cover the graphics portion of this series.

Next up is a 6-port USB PCI card upgrade.