Enabling 64-bit Capabilities on HP Workstations

I recently tried installing Ubuntu x64 in VMware on my 32-bit Windows machine. I have done this in the past for other 64-bit operating systems, however not on this particular workstation, which is an HP xw4600. The process is typically very straightforward since VMWare has a “Easy Install” process for known operating systems.

This time around I ran into some issues while the Ubuntu image was booting. Each time I tried to start the VM, I received the following error:

“This kernel requires an x86-64 CPU, but only detected an i686 CPU. Unable to boot – please use a kernel appropriate for your CPU.”

I was almost positive that my processor was 64-bit compatible, but I double-checked Intel’s site to make sure. According to Intel, I was gojod to go. I decided to give VMWare’s compatibility checker a try, and it stated that I was able to run 64-bit virtual machines as well.

I figured the issue was probably due to 64-bit extensions being disabled in the BIOS, so I took a look there. I dug and dug, but could not find any tabs or sections related to 64-bit extensions or virtualization. After looking around some more, I found my answer in a very unlikely location (at least in my opinion).

Under the main Security menu, there is an entry for System Security. There, you will find three values, two of which are disabled by default. These are Virtualization Technology (VTx) and Virtualization Technology Directed I/O (VTd). After enabling both of these items and saving my BIOS settings, I was good to go.

I applaud HP for being careful regarding Virtualization Technology, but they could have made the options or documentation regarding these options a little easier to find.

 




A Week of Software Updates

If you have not been by the site recently, I have updated a few my applications this week, and I have added a pair of new apps as well.

The newcomers include AudioX and RAIDFix.

AudioX is a labor of love several years in the works. A process born in batch files, migrated to Perl, and eventually rewritten in C#, AudioX converts songs between audio formats including FLAC, APE, AAC, MP3, and WAV. I really needed an application to convert my APE audio to FLAC for archival, and to compress my FLAC audio to AAC format for my iPod and MP3 format for my car. AudioX does this for me, managing tags and album art, all while taking advantage of PCs with multiple cores. It’s a great app, give it a try!

RAIDFix is an application I wrote to help the countless people that visit my site looking for a way to enable RAID on their Intel ICH-based Windows PC after they have installed Windows with RAID disabled. I have published walkthroughs on how to accomplish this, but RAIDFix makes it extremely simple. Patching your computer to allow you to enable RAID in the BIOS is now one-click away.

Additionally, Suction received updates to allow the user to specify the text they want used when renaming duplicate files as well as the ability to specify whether this text is prepended or appended to the file name.

MailBin had a bit of work done on the back-end, in order to do away with the flat configuration file used by the program. Instead, MailBin now uses Windows’ standard user config files like the rest of my applications.

All of the applications listed above now take advantage of my new web-based update system. The programs will check this web site to see if there is an update version of the application automatically, alerting you if a new release has been published.

Yay for software!

 

Follow Up: A New Method to Enable Intel ICH RAID after Installing Windows (Plus Updates to the Original)

Bypass this article and fix your Intel RAID Drivers immediately using RAIDFix


I have three pieces of information to share with those of you looking to enable RAID on your Windows PC after having installed Windows without RAID enabled in your BIOS settings. Now that you have rebooted past a handful of blue screens and Googled to find some help, I am here to tell you that you have come to the right place.

I have written on this topic twice before, once when I first figured out how to fix this problem, and again when the drivers had been updated by Intel. Once again there are driver updates, so I wanted to provide you the appropriate registry file as well as the steps required to enable RAID on your system.

But first, I wanted to mention an extremely easy and fast solution.  After studying the problem for some time, I have put together an application named RAIDFix which installs the proper registry keys and drivers to get your Intel RAID up and running in seconds.  As I pointed out in the large link above, fix your RAID issues immediately by clicking here.

If you prefer to fix the problem manually, read on.



Method #2 – The Long, but Tried and True Process

1) Download the Intel Matrix Storage Manager v8.9.0.1023 installer (Dated 7/17/2009) from Intel.

2) Open a command prompt on your machine and navigate to the folder where you saved the IMSM software in step 1.

3) Type “iata89enu.exe -a -p c:\iastor” and press Enter – this will load the installer and extract all of the driver files to C:\Iastor folder.  Close the command prompt.

4) Copy the appropriate iastor.sys file from the C:\Iastor\winall folder to your C:Windows\System32\drivers\ directory

5) Click here to download the registry file, or copy the text below and save it as “Intel.reg”

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_8086&DEV_2822&CC_0104]
"ClassGUID"="{4d36e97b-e325-11ce-bfc1-08002be10318}"
"Security"=hex:01,00,04,90,00,00,00,00,00,00,00,00,00,00,00,00,14,00,00,00,02,\
  00,4c,00,03,00,00,00,00,00,14,00,ff,01,1f,00,01,01,00,00,00,00,00,05,12,00,\
  00,00,00,00,18,00,ff,01,1f,00,01,02,00,00,00,00,00,05,20,00,00,00,20,02,00,\
  00,00,00,18,00,9f,01,12,00,01,02,00,00,00,00,00,05,20,00,00,00,21,02,00,00
"Service"="iaStor"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\0001]
"InfPath"="oem39.inf"
"InfSection"="iaStor_Inst_RAID"
"ProviderName"="Intel"
"DriverDateData"=hex:00,c0,44,67,a7,e4,c9,01
"DriverDate"="6-4-2009"
"DriverVersion"="8.9.0.1023"
"MatchingDeviceId"="pci\\ven_8086&dev_2822&cc_0104"
"DriverDesc"="Intel(R) ICH8R/ICH9R/ICH10R/DO/PCH SATA RAID Controller"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"Tag"=dword:00000019
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
  52,00,49,00,56,00,45,00,52,00,53,00,5c,00,69,00,61,00,53,00,74,00,6f,00,72,\
  00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="Intel RAID Controller"
"Group"="SCSI Miniport"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters]
"queuePriorityEnable"=dword:00000000
"BusType"=dword:00000008

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port0]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port1]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port2]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port3]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port4]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\Port5]
"AN"=dword:00000000
"LPM"=dword:00000000
"LPMSTATE"=dword:00000000
"LPMDSTATE"=dword:00000001
"GTF"=dword:00000000
"DIPM"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Parameters\oromVersion]
"MajorVersion"=dword:00000007
"MinorVersion"=dword:00000005
"HotfixNumber"=dword:00000000
"BuildNumber"=dword:000003f9

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor\Enum]
"0"="PCI\\VEN_8086&DEV_2822&SUBSYS_82771043&REV_02\\3&11583659&0&FA"
"Count"=dword:00000001
"NextInstance"=dword:00000001

6) Double-click on the .reg file and click yes when asked if you want to merge the data into your registry.

7) Reboot the computer and change the SATA configuration in your BIOS to RAID – Windows should load without any issue.

8 ) Install the Intel Matrix Storage Manager software to complete the driver installation/configuration.

9) Celebrate the fact that you have now enabled RAID without having to reinstall Windows.
Good luck with your RAID install!  Feel free to ask questions here if you need help.



Method #3 – Peregrinus’ Hack

A reader named Peregrinus discovered that there might be an even easier method to get your computer up and running again. Instead of expanding drivers and manually adding registry information to your computer, you can fix the problem with one small registry tweak.

I do have to add the disclaimer that I have not tried this method, so your mileage may vary. Peregrinus stated that this worked for him, so I am publishing this information on his recommendation.

1) With RAID disabled, boot into Windows and start Regedit.exe

2) Navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\iaStorV

3) In the right-hand column, you should see a value named Start. Double-click this entry and change the data from 1 to 0.

4) Reboot with RAID enabled – Windows should load just fine. Now install the Intel Matrix Storage Manager as you usually would. This time around, it should detect your hardware and install without any issues.

 

Follow up: Securing Windows Remote Desktop with CopSSH

Awhile back, I posted a guide detailing how you can configure CopSSH on your home computer and use it to securely route your Windows Remote Desktop traffic in order to add an extra layer of security to the whole process.

Typically, once Putty was configured and used to create the SSH tunnel to the remote machine, all I would need to do is simply create a loopback RDP connection on port 3390, and I was in business.  In my testing of Windows 7, I found that when attempting to create a loopback connection on port 3390, I would receive an error that a connection was already established.  The exact error reads as follows:

Your computer could not connect to another console session on the remote computer because you already have a console session in progress.

I changed Putty’s configuration to forward on port 3391 instead of 3390, and the problem was solved.  I’m not sure why Windows 7 establishes some sort of connection on 3390, but at least the workaround is pretty painless.

I just wanted to pass along this info for anyone having issues with RDP tunneling.

 

Suction Updates – Version 1.1.3 Released

Suction version 1.1.3 fixes a few bugs hanging around in the 1.1.1 release.  With the help of Gary M. who reported these bugs and tested fixes, I was able to knock out a few annoying issues.

The 1.1.3 release includes:

  • Fix for the auto-exit bug that would cause the application to remain open when initiated from the context menu
  • Fix for the logging location bug (Suction would log its actions in folder being suctioned)
  • Fix for the logging bug that would leave logging enabled when all logging was disabled
  • Tweaks to the context menu code to better handle registry entries (No more random errors when removing the context  menu entry)

Download version 1.1.3 here

 
Posted in: C#, Programming, Software, Technology by DrNathan No Comments

Concurrent Programming – Is There Such a Thing as Too Many Threads?

Is there such a thing as too many threads?  Of course there is.  Well, for the time being, that is.

I am currently putting together an audio conversion application, and I was doing some testing to see what number of concurrent conversions produced the best results in respect to time.  Conventional wisdom says that “bigger/more is better”, but not necessarily in this case.

During my testing, I converted a series of 15 songs from FLAC format to AAC format, all on the same PC armed with a 3.0 GHz Quad Core processor and 4 GB of memory.  The drive on which the data was stored and written to is a Seagate Barracuda SATA drive.  I simply ran the conversion using one thread and incremented the thread count after each iteration until I had 8 concurrent threads running.

The results are as follows:

1 Thread – 125 Seconds
2 Threads – 64 Seconds (-61s)
3 Threads – 45 Seconds (-19s)
4 Threads – 36 Seconds (-9s)
5 Threads – 37 Seconds (+1s)
6 Threads – 35 Seconds (-2s)
7 Threads – 35 Seconds (-0s)
8 Threads – 35 Seconds (-0s)

As you can see, performance pretty much plateaus around the 4 Thread mark and barely increases after that.

It makes sense that a 4-core machine gets good performance when 4 separate threads are running.  The processor was not being utilized 100% however, which is why I decided to try increasing the concurrent thread count.

I would assume that the extra overhead involved with managing additional threads, along with the cost of constant context-switching at the core-level outweighs the benefits of having additional processes running at the same time.  Initially, I thought that the hard drive might be the limiting factor here, but when running the same conversion from two SATA drives in RAID 0 configuration, the results were almost identical.  Using memory streams instead of the hard drives for temporary file storage also had little effect (+/- 1 second) on the results.

So there you have it, more threads is not necessarily always better.  I really could have told you that before I tried this little experiment, but I liked the process of producing tangible results showing that this is the case.

 

Fix Terminal Services Remote Web Access/Remote Web Workspace “Invalid Server Name” Issues

A friend of mine was recently having issues using Microsoft’s Terminal Services Remote Web Access.  It seems that when he tried to remotely administer any workstations he had upgraded to Windows XP SP3 or servers he had upgraded to SBS 2003 SP1, he would receive an error stating that an “Invalid Server Name” had been specified.

After digging around a bit, I found this Microsoft KB article that remedied the issue.  I won’t go into details here, but if you are experiencing this problem, a quick registry key deletion and an IE plugin tweak will get you back to work in no time.

 

MailBin Updates

mbinOver the past few days, I have made some changes to MailBin that fix some lingering bugs as well as enhance performance.  Make sure to check the MailBin page frequently for program updates!

 
Posted in: Programming, Software by DrNathan No Comments

MailBin – Remotely Queue up NZB Files Using Gmail

Written from the ground up in C#, MailBin is a small application that checks your Gmail account for NZB,  Zip, and .Torrent files, allowing you to remotely queue up Usenet and BitTorrent downloads at any remote location.  It’s a great tool for when you find something you want to download while away from home, but you want it to be ready by the time you get there.

MailBin - Queue NZB files in Newsbin remotely

If you are an avid fan of Usenet or BitTorrent, and happen to use a newsreader/torrent client that will auto queue files (Like Newsbin or uTorrent), give it a try!

Visit the MailBin download page

 

Another Seagate Drive Bites the Dust

Yet another Seagate drive I own bit the dust a few days ago.  The current victim is a Barracuda 7200.11 500 GB drive.  I can’t quite recall when I bought it, but it is still under warranty for quite some time.

Before anyone asks – yes, I updated the firmware.  No, not the original “fix” put out by Seagate – the for-real, 100% fixed and working firmware they put out after that.  This was your good-old run-of-the-mill “whir, click…whir, click” death that typically signifies a dead logic board.

Alas, I know Seagate would never consider simply replacing the board and returning my drive (along with its precious data) to me.  A company that charges for an advance replacement would surely never adopt such a policy…

 
Posted in: Random, Rants by DrNathan 2 Comments , ,