Thursday, December 15, 2011

ATI Video Drivers for Radeon Mobility X1400

I recently re-purposed my old 17" laptop (read: desktop replacement) by Velcroing it to the underside of the kitchen cabinets. When I did this, the laptop screen had to open down instead of up -- meaning that the screen was now upside-down. Piece of cake to fix, just select the "rotate screen 180*" button in the ATI software, right? Negative.

It turns out that Windows XP Service Pack 3 broke the ATI software. Because I wasn't using this feature at the time, I missed out on all of this drama -- as well as the opportunity to download the updated device drivers. Now the device drivers (if they ever did exist) are buried in some archive that I can't get to or find after hours of Googling. I could find many drivers for the ATI cards, and even the ATI Radeon Mobility cards, and even the ATI Radeon Mobility X(number) cards -- but not the X1400.

I think this is because Dell and Lenovo (and probably other OEMs) packaged this card with their PCs and didn't want people downloading device drivers from ATI that would cause problems because they would have to field the tech support calls. Which is what this ATI site confirms.

Anyway, I searched and searched and couldn't find any drivers, until I found this:
http://www.hardwareheaven.com/modtool.php

That's right, someone actually wrote a tool to modify the ATI drivers so they would work with other cards. Now I can download the drivers meant for the 22 other models and they will work with my card, which is conveniently left out of the list.

And it works! I now have a laptop working with an upside-down screen!

Posting Code Snippets on Blogger

As you can see by my previous post, I figured out how to post code snippets on Blogger.com.

Thanks to this site: http://alexgorbatchev.com/SyntaxHighlighter

and to Google Sites for hosting the files: http://sites.google.com

Resynchronizing Windows Update

I had a problem with Windows Update not synchronizing correctly and leaving all of my WSUS managed clients sitting at 99% all of the time. I found this handy .vbs script to get me out of the jam:

Set fso = CreateObject("Scripting.FileSystemObject")
Set objAutomaticUpdates = CreateObject("Microsoft.Update.AutoUpdate")
objAutomaticUpdates.EnableService
objAutomaticUpdates.DetectNow

Set objSession = CreateObject("Microsoft.Update.Session")
Set objSearcher = objSession.CreateUpdateSearcher()
Set objResults = objSearcher.Search("IsInstalled=0 and Type='Software'")
Set colUpdates = objResults.Updates

Set objUpdatesToDownload = CreateObject("Microsoft.Update.UpdateColl")
intUpdateCount = 0
For i = 0 to colUpdates.Count - 1
intUpdateCount = intUpdateCount + 1
Set objUpdate = colUpdates.Item(i)
objUpdatesToDownload.Add(objUpdate)
Next

If intUpdateCount = 0 Then
WScript.Quit
Else
Set objDownloader = objSession.CreateUpdateDownloader()
objDownloader.Updates = objUpdatesToDownload
objDownloader.Download()

Set objInstaller = objSession.CreateUpdateInstaller()
objInstaller.Updates = objUpdatesToDownload
Set installationResult = objInstaller.Install()

Set objSysInfo = CreateObject("Microsoft.Update.SystemInfo")
If objSysInfo.RebootRequired Then
Set objWMIService = GetObject _
("winmgmts:{impersonationLevel=impersonate(Shutdown)}!\\localhost\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
objOperatingSystem.Reboot()
Next
End If
End If

Thursday, October 13, 2011

Windows Update Service Missing

Fix: Download the Windows Update Agent and force it to install.

Step 1. Download the Windows Update Agent:
WindowsUpdateAgent30-x86.exe
WindowsUpdateAgent30-x64.exe

Microsoft KB 949104


Step 2. Force the installation
If installing the agent fails because it is already installed, you can force the install:

WindowsUpdateAgnet30-(x86/x64).exe /wuforce


Finally, you probably want to run a spyware scan (eg. Spybot Search & Destroy or Malwarebytes) because chances are pretty good you've got something. I routinely disable System Restore in these scenarios because that garbage likes to hide in there.