Friday, January 27, 2017

Pimp My Quicksilver: Graphics Card Teaser

Look at those 2 large gorgeous 1920x1080 27" HP Monitors hooked up to my nVidia GeForce 7800GS card on my G4 Quicksilver still running Debian Jessie.  Posts on graphics card upgrade and migration to SSDs coming soon...

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.

Tuesday, December 29, 2015

Update on 1400CS

Just a short update on the 1400CS restoration project.  As of the last post from long ago, I had successfully swapped out the broken trackpad but started to have issues with certain keyboard keys not working. I ended up disassembling the PowerBook one more time and cleaning out the keyboard slot on the laptop's motherboard. I used a little bit rubbing alcohol and a soft lint cloth to clean out the slot as well as sprayed it with a can of compressed air for good measure.  Either way, those two things seemed to have done the trick! All keys are functional and I am officially stoked.

Once I was able to restore all functionality to the keyboard I started to research what kinds of PCMCIA Ethernet cards would work with the PowerBook. To make a long story short, I eventually learned about a particular card and adapter that would work with the 1400CS PowerBook.  I purchased an Asante FriendlyNet Ethernet PCMCIA/Cardbus Adapter for PC and Mac on eBay for a measly $7.00.  The immediate mark of compatibility on the included box brought my hopes up.  I read through the included documentation, ran through the included installer and installed the necessary extension into my system's Extensions folder, but still no go, even after a reboot.  Honestly, I have no idea of what I am doing as this is my first real go with an older version of Mac OS.  I have also purchased a Transcend PCMCIA ATA Adapter that should convert a CompactFlash CF Card to work in the other PCMCIA slot.  We will see though.

Anyways, the previous owner of this old gem did not bother wiping the hard drive, so it is still running an old version of Mac OS 8 and includes software such as Photoshop, an ancient version of Microsoft Office for Mac, and VirtualPC to name a few.  When I started up VirtualPC it booted a Windows 95 VM and quite quickly for that matter. Not bad for this old beast of a laptop.

Lastly, and sadly, there is another reoccurring issue with the laptop that has been more than a little frustrating and unusual.  My current theory is a bad PRAM battery and why would it not be considering the PowerBook's age.  Here is what happens. I will be happily computing away (and by computing I mean trying to learn Mac OS 8) and the machine will completely lock up on me.  I am unable to power off the laptop in any way, shape, or form other than to pull the charging cable and battery out at which point the unit still seems to have some form of power and current flowing through it as the green light on the lower right-hand side of the display is still illuminated. Only for a couple of minutes though.  At this point, I usually leave it to sit for a couple of hours and then it works again for awhile.

On that same note, I am still searching for a working internal CD drive to use to install a Linux OS, but if nothing else, I will search for and use an external one somehow.  I see WeLoveMacs have some in stock still, but its hard to justify paying $150 for one.  The PowerBook already has a floppy drive installed, so I suppose I could utilize that for a Linux OS install although the complexity increases tenfold when going that route and I do not exactly have a huge handful of floppy disk lying around to make it happen.

Thoughts, ideas, comments, suggestions on these issues?  I would welcome any and all.

Tuesday, October 20, 2015

Useful Twerks, I mean Tweaks

I know. Another long hiatus of no posts.  Life has been a whirlwind with my second daughter being born pre-mature as well as me preparing myself for graduate school come this spring 2016. Regardless, I want to keep posting here as often as I can. So today, I thought I would write up a small post with a couple of updates on what I have been working on and cover a couple of useful tweaks I have discovered I could make on my Debian systems to improve useability and productivity.

The first tweak is targeted at just the iBook and PowerBook owners.  Out of the box, the scroll direction feels unnatural and counterintuitive.  Luckily, I was able to discover what trackpad settings could be used to reverse the scroll direction. Once in place, you should be able to pull down on the page and have the browser scroll up and vice versa. To put this configuration in effect, open up your synaptics.conf file and add the following lines:

Option "VertScrollDelta" "-111"
Option "HorizScrollDelta" "-111" 

Once those two options have been added, reboot and enjoyed reversed scrolling.

The other tweaks I thought would be useful to share is the ability to spice up and add a bit of color to your bash shell. Add the following lines to either your ~/.bashrc file or /etc/bashrc.bash file.

export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'

To apply the changes, run the following command (assuming you edited the file in your home directory):

source ~/.bashrc

Why stop there though?  If you are a heavy user of vim like myself, you have the ability to add highlighted syntax to your text editor.  Browse to /etc/vim/vimrc and uncomment the line below.  You will need to make the edit as the root user if you do not already have root privileges.

syntax on

Yep.  That is it. The change is immediate. 

These two colorful tweaks add a great amount of readibility within the terminal, especially the colored syntax highlights.  Such a configuration makes it easy to spot typos within configuration files and code as well as pick out certain kinds of items with much more speed and agility.

In terms of new hardware, I have scored an ATI FireGL X3 graphics card with 256 MB of VRAM.  This particular card is documented as being the second fastest graphics card available for G4 Quicksilvers. The fastest graphics card, the Nvidia GeForce 7800 GS, I also already own! Speaking of the Nvidia card, I have been able to get 2D acceleration working with the Nvidia Card as well using the procedure I explained in detail over at PowerPC Liberation, so hopefully I can post on that soon too.  Before that though, I want to test the latest Rage 128 patch mentioned here to see what kind of performance I can manage with a nearly 15 year old card.

Speaking of graphics, a university also provided me with a couple of spare G4 towers and an older 17" Apple Studio Display with an ADC connector.  When hooked up to my G4 Quicksilver project machine, it looks magnificent with its 1280x1024 resolution.  The Apple Display Connector is a real bugger though as finder adapters for other display outputs is not as feasible and the Apple branded adapter costs well over $100.

Lastly, I also purchased some royal blue heatsinks for the QS's RAM and they look fantastic, but in terms of performance and temperature difference, I am not sure how they fare. Not only that, but I also scored a Sonnet Serial ATA PCI card for the G4 upgrade project. With that in mind, my next post should get us back on track with the Pimp My G4 Quicksilver project where I wrap things up with the CPU upgrade for the time being. 

Wednesday, July 29, 2015

Pimp My Quicksilver - Part IV:B CPU

As promised, this particular post will be short and sweet. First off, I have had to drop the upgraded CPU clock speed back down to 1.33 GHz as so far it seems to be offering the most stability with both operating systems. Research in that department continues.

However, I was still allowed to move forward with the jump to a 32-bit SMP kernel within Debian.  What follows is basically the 2 steps I had to take in order to do so.  Even then it is nothing outrageous.

1. Run the following command to search for the most current and appropriate 32-bit SMP PPC kernel within the Debian repositories.

sudo apt-cache search linux-image

This should return a list of about 3 different kernel image packages as well as the corresponding meta-packages and headers for each of them.  Look for the SMP image called linux-image-[insert version here]-powerpc-smp.  You do NOT want the powerpc64 version as no G4 PowerMac or CPU upgrade for it was ever 64-bit capable.  I have left the kernel image version out as it may vary over time.

2.  Install the SMP linux image.  Right now the current version on my Debian Jessie install is 3.16.0-4.

sudo apt-get install linux-image-3.16.0-4-powerpc-smp

After installing this image, I had no need to manually update my yaboot.conf file as that was done so automatically.  Would not hurt to double check though to make sure the default kernel is now your SMP one.

3.  Reboot

Reboot your machine to allow it to boot using the newly installed multiprocessor capable kernel.  Once you are logged in, there are multiple ways you can verify your system is now taking advantage of multiple CPUs, but I will cover the ones I am more familiar with.  The first command you can run will help you verify that your system is seeing both CPUs.

cat /proc/cpuinfo.

Here are the results of mine:

Okay.  Both CPUs are recognized, but are both being utilized by the running system? This is where the command line tool top can come in and provide this information.  In a terminal, simply type top and you should see a great deal of information and usage statistics about your running system.  You can type the 'h' key for help on different options you have at your disposal for arranging the layout of the information provided by top as well as what information is displayed.  We want to hit the '1' key to provide usage statistics on separate CPUs as can be seen from this screenshot:

Since both CPUs appear here with a % of use, we can be assured that both CPUs are being fully utilized by Debian.  Great.  How about we take it even one step further by looking at which CPU a particular process is running on?  That would provide even more assurance and give us an idea of how and what work is divided up amongst the two CPUs.  To do this, will need to use the ps command line tool.  This tool basically provides a snapshot of your system's running processes. Again, while in a terminal, type the following and hit Enter:

ps -eF

Look for the PSR column, which stands for processor.  In our case, the resulting number will either be a 0 or a 1 since we only have 2 CPUs and numbering always starts at 0 in computer science. Here is a screenshot hightlighting the command running on the QS.

If you are curious, the -e flag tells the system to include all processes and the -F flag stands for full format, which adds in some additional information to each listed process including the aforementioned PSR column.

That is it for this post.  I barely scratched the surface of what the ps and top tools are capable of, so I would encourage to explore them further.  All sorts of neat things are possible. The next (and last) post on the CPU upgrade will take a more in depth look at performance improvements in the system with more everyday tasks put to the test and some CPU spec comparisons.