Back to basics – Finding Lenovo drivers and certify hardware, control freak style!

There are many techniques available to find drivers and certify a new hardware model. Here follows the method I normally use. As an example I'm certifying the good old ThinkPad T420 from Lenovo for Windows 7, but you can follow this method for any Lenovo model or Windows operating system. The overview steps are the following:

  • Deploy a clean Windows 7 or Windows 8 image
  • Identify the missing drivers
  • Download the missing drivers
  • Verify that the drivers work on the machine
  • Identify if any driver applications are needed, hotkeys etc.
  • Download any needed driver applications and verify that they work on the machine

Note 1: Lenovo does provide you with model specific guides on how to install a clean Windows 7 installation (see http://support.lenovo.com/en_US/detail.page?LegacyDocID=MIGR-77353) but I wanted to provide you with a generic guide, that works for any hardware or Windows operating system. And without all the vendor crap-ware.

Note 2: Lenovo has started to make deployment-ready packages for some of it's models (ThinkCentre M82, M92, M92p and ThinkPad Helix, X1 Carbon, L430, L530, X131e, T430, T430i, T430s, T430si, T530, T530i, W530, X230 Tablet, X230i Tablet, T430u, X230s, and T431s). Lenovo store these packages on the Microsoft System Center Configuration Manager (SCCM) and Microsoft Deployment Toolkit (MDT) Package Index page, but as of this writing (August 2013), no packages are available for the ThinkPad T420.

Deploy a clean Windows 7 or Windows 8 image

For hardware testing I typically use a MDT 2012 Update 1 offline media which I deploy from a USB stick, because it allows me to lay down a clean Windows image in about 5 – 7 minutes (assuming SSD). But you can use any deployment solution you prefer as long as it's automated.

Identify missing drivers

After deploying a clean Windows image to the Lenovo ThinkPad T420 you need to find out if any drivers are missing. You can either just open device manager and look, or use PowerShell to find out which drivers are missing. The goal is to find the Device ID(s) for the devices that are missing drivers. For a quick look, using device manager is fine, but you can really do magic using PowerShell.

Note: In addition to missing drivers I always check out the Display driver as well, to find out if Windows found a "real" driver instead of the Standard VGA driver.

After deploying the clean Windows 7 image to my ThinkPad T420 device manager show the following (note that I expanded the Display adapters node):

DEV005
Device Manager after deploying a clean Windows 7 image.

To find out about the Device ID for a device missing a driver you simply right-click, select properties, click the Details tab, and select the Hardware Ids Property.

DEV003
Device Manager displaying Hardware Ids for "Base System Device".

What about PowerShell? Well you can simply ask the Win32_PNPEntity class for devices that are not configured by running the below one-liner in a PowerShell prompt:

Get-WmiObject Win32_PNPEntity | Where-Object{$_.ConfigManagerErrorCode -ne 0} | Select Name, DeviceID
DEV004

If you want to get fancy, and output the info to a text file, you just add Export-Csv to the command:

Get-WmiObject Win32_PNPEntity | Where-Object{$_.ConfigManagerErrorCode -ne 0} | Select Name, DeviceID | Export-CSV C:\Drivers.csv
Drivers CSV

To find out if the Standard VGA driver is being used, you can use the below command:

Get-WmiObject Win32_PNPEntity | Where-Object{$_.Name -Match "VGA"} | Select Name, DeviceID 
DEV006

Anyway, no matter if you were using Device Manager or PowerShell you now have a list of device drivers. The trick is now to truncate the Hardware Ids to only included Vendor and Device information, because that will help finding out what device it is when searching for it. As search providers I normally use the Microsoft Update Catalog site (http://catalog.update.microsoft.com) or just plain Google/Bing. Here follows a few truncate examples:

  • PCIVEN_8086&DEV_0084&SUBSYS_13158086&REV_004&306CAAFA&0&00E1 becomes PCIVEN_8086&DEV_0084
  • ACPILEN00685&2890D699&0 becomes ACPILEN0068

You then take the truncated value and search for it. Here follows an example searching the Microsoft Update Catalog site for the ACPILEN0068 device. The result tells you that the device is a Lenovo PM (Power Management) Device.

MicrosoftUpdateCatalog2
Searching the Microsoft Update Catalog site.

After searching for all the devices you can now compile a short list with valid named of the devices that are missing drivers. Here is the listing for the ThinkPad T420.

  • PCIVEN_8086&DEV_0116 = Intel HD Graphics 3000
  • PCIVEN_8086&DEV_0084 = Intel driver update for Intel(R) WiFi Link 1000 BGN
  • ACPILEN0068 = Lenovo Power Management Device
  • PCIVEN_8086&DEV_1C22 = Intel 6 Series/C200 Series Chipset Family SMBus Controller (Synaptics)
  • USBVID_147E&PID_2016 = TouchStrip Fingerprint Sensor (AuthenTec)
  • PCIVEN_8086&DEV_1502 = Intel 82579LM Gigabit Network Connection
  • PCIVEN_8086&DEV_1C3A = Intel Management Engine Interface (MEI)
  • PCIVEN_1180&DEV_E823 = Ricoh PCIe SDXC/MMC Host Controller

Download the missing drivers

When you have the list of missing drivers the next step is to download them. For Lenovo drivers you can use the Lenovo Update Retriever utility. The Update Retriever is a pretty good tool, but it requires that you know the machine type the ThinkPad T420. You would think that the machine type would be ThinkPad T420, but no, Lenovo machines are special. For some (stupid IMNSHO) reason, they use the first 4 characters of the WMI Model Name as machine type. To find out, you can simply open a PowerShell prompt and type:

Get-WmiObject Win32_ComputerSystem | Select Model

The above command tells you that the ThinkPad T420 machine type is 4178 (again, the first four characters of the model number).

DEV007

Now when you know the machine type you can download and install Lenovo Update Retriever. In this example I'm using version 5.00.0007 which is available for download here: http://support.lenovo.com/en_US/detail.page?LegacyDocID=tvan-admin

After installing the Lenovo Update Retriever, use the following guide to download and extract the need drivers

  1. Start Update Retriever, configure it to use a path for the repository (I used D:\LenovoRepository in this example), and click Continue.
  2. On the Manage system list page, use the following settings:
    1. Machine Type: 4178
    2. Operating Systems: Windows 7
    3. Click Add, and then click Save.

      Adding the 4178 machine type (ThinkPad T420)

  3. Accept the license agreement, and on the next page, select the following updates:
    1. Intel AMT 7.1 – MEI and SOL Driver – XP [32] Vista78 [32,64] 7.1.70.1198(83ra30ww_amt)
    2. Intel GT1GT2 Display Driver – 7 [64] 9.17.10.2843(83d637ww)
    3. Intel PRO1000 LAN Adapter Software for Vista7 64-bit 11.15.16.0(83rw18ww_v64)
    4. Lenovo Power Management Driver – XP [32]Vista78 [32,64] 1.67.00.02(giku06ww)
    5. Media Card Reader Driver 2.14.18.01(8ass82ww)
    6. Synaptics ThinkPad UltraNav Driver – Vista78 [32,64] 16.2.19.9(6hgx77ww_v78)
    7. ThinkVantage Fingerprint Software – 78 [64] 5.9.9.7282(g1f814ww)
    8. WiFi Driver for Intel cards – 7 [64] 15.6.1(g1w218ww_s64)
  4. After selecting the updates, click Next and then Finish.
  5. After the download is complete, you need to extract the drivers: Click Manage Repository, and select Export Updates.
  6. Extract the updates to a temporary folder (I used D:\LenovoExported\ThinkPad T420), by typing D:\LenovoExported\ThinkPad T420 in the Folder text box and clicking Next.
  7. Select all drivers and click Finish.

Verify that the drivers work on the machine

After downloading and extracting the drivers you copy them to verify that they work correctly. To update a driver, simply right-click the device in device manager and select Update Driver Software, point to the folder with the drivers and complete the wizard.

In the ThinkPad T420 case you quickly realize that the Fingerprint device cannot find any drivers, even though you downloaded them. This is because they are hidden inside a setup.exe, so you actually have to run through the setup once, and then get the driver from the installation directory. The default folder is C:Program FilesThinkVantage Fingerprint SoftwareTCWBF_Driver.

drv008

After updating all drivers, including the VGA driver you should now a device manager showing nothing but installed devices. And you can now import the drivers to your deployment solutions.

drv009

Device Manager showing all devices installed.

Driver applications

All device drivers for the ThinkPad are installed, but if you want things like on Screen Display, you can install the following software:

  • ThinkPad Hotkey Features Integration – Vista78 [32,64] 3.86.0000(8jvu38ww_v78) )Integration – Vista78 [32,64] 3.86.0000(8jvu38ww_v78)
hotkey001

Optional – Driver cleanup

Even though the drivers you downloaded will work fine, you can save same space in your driver source repository by cleaning out installation files or drivers that are not needed. For example, the Intel PRO and Synaptics driver folder also contain x86 drivers, and they can be deleted.

About the author

Johan Arwidmark

5 1 vote
Article Rating
Subscribe
Notify of
guest
12 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
heuristik
heuristik
8 years ago

currently in the middle of a 8000+ deployment, 18 dell models + 7 lenovos (AIO, Notebook, Desktop). I'm rebuilding the entire driver repository tonight after discovering a tech crossed the source and destination targets on a few packages, and overlapped one or two others. critical point to remember: don't mix these up. the results are not pretty. i typically start my engagements off with a review of the ControlFreak driver methodology, this time it apparently did not sink in. re: thinkpads, worth noting is the wmi variance from other pc mfr's, as lenovo puts their model name in ComputerSystemProduct rather… Read more »

Diagg
Diagg
8 years ago

My blog : http://www.zany-openeyes.fr (in French…) no project page yet, i'll made one as soon as all testing is finished !

Admin
Admin
8 years ago

Wow, sounds very cool. Will test…

Do you have a blog, or a project page?

/ Johan

Diagg
Diagg
8 years ago

Hi Johan, I've just put together some scripts and task sequence to automate what you've described in this nice post.To make it work, you first have to download the Sccm package/cab file/update retriever whatever driver and copy them to a folder inside your deployment share. Then tell MDT where he can find them with this DriverRepository=%DeployRoot%MyFolder customsettings.ini variable.Set where you want the drivers to be staged inside out-of-box Drivers folder with the variable DriverFolder=Windows 8%Architecture%%MODEL% and you're done for settings. Create a standard client task sequence and add those two new step in the State RestoreCustom tasks subfolder:cscript.exe "%SCRIPTROOT%LTIDriversInquisitor.wsf" and… Read more »

Diagg
Diagg
8 years ago

Hi Johan, I've just put together some scripts and task sequence to automate what you've described in this nice post.To make it work, you first have to download the Sccm package/cab file/update retriever whatever driver and copy them to a folder inside your deployment share. Then tell MDT where he can find them with this DriverRepository=%DeployRoot%MyFolder customsettings.ini variable.Set where you want the drivers to be staged inside out-of-box Drivers folder with the variable DriverFolder=Windows 8%Architecture%%MODEL% and you're done for settings. Create a standard client task sequence and add those two new step in the State RestoreCustom tasks subfolder:cscript.exe "%SCRIPTROOT%LTIDriversInquisitor.wsf" and… Read more »

Mr. Finland
Mr. Finland
8 years ago

And, for finding out the computer model, just look at the bottom of the laptop, or the backside of a tabletop. ๐Ÿ™‚ For the newest models, take the battery out. ๐Ÿ™‚

Mr. Finland
Mr. Finland
8 years ago

Deploying a clean image with a USB stick for testing is a fantastic idea! If you want to test all the drivers you have, take ownership of the driver repository, copy your drivers there and enter this command:

For /r %i in (*.inf) do pnputil -i -a %i

You can verify that you have the correct / all the drivers needed! ๐Ÿ™‚

Mr. Finland
Mr. Finland
8 years ago

Fantastic post, but I don't agree with everything here. ๐Ÿ™‚ I like to get an OEM machine (with everything that comes with an OEM-installation) going, updating everything with whatever update solution the OEM installation provides, then copy everything newer than November 2010 from: C:WindowsSystem32DriverStoreFileRepository. Then I go through them one by one, delete every folder that contains a Microsoft provided driver (read the setup informations, takes less than 10 minutes), divide them into categories, folders etc. and boom, you have every driver you need for that model and only the drivers. No driver app. For some things, you still need… Read more »

Admin
Admin
8 years ago

For some audio features you may have to install an updated audio driver as well.

/ Johan

Xandor
Xandor
8 years ago

Lots of nice info as always Johan ๐Ÿ™‚Personally never used the ready packages, as they have, as you said, to much bloat-ware, so I like taking my time, making proper driver package instead, with what you need only ๐Ÿ™‚ Didn't know about the Microsoft Update Catalog tbh, always roamed Google to find the answers myself. hehe. Thanks alot for that one ๐Ÿ™‚ Anyways, regarding your Note2, T420 machine,I was having some questions regarding the new driver packages they had(sccm ready packages), and some other things (as we are a reseller and use alot of lenovo, for us, and other companies).So… Read more »

Mosquat
Mosquat
8 years ago

Nice post – what about audio drivers though…? A generic one tends to be installed on a clean build usually, a bit like the video driver and sometimes the "real" driver offers more functionality like on HP machines.

Rojma
Rojma
8 years ago

Great article! One of the biggest problems we have in Microsoft support is customers downloading the OEM driver packs, which contain hundreds of unneeded drivers, and then importing them into ConfigMgr. Spending a little bit of time to determine what drivers are TRULY needed goes a long way to preventing problems down the line.

Frank Rojas


>