Lenovo X300: Windows 7 64bit and Drivers

My Lenovo X300 is currently running Windows 7 RC (7100) x86 (32 bit). I've got 4GB of RAM installed (2x2GB SODIMM 5300 @ 667MHz). Any 32bit version of Windows can only use roughly 3GB at most though. The rest of the 32bit address space gets reserved for other components. This means 1GB is not being utilized at all in my system, even when it's running out of resources.

It's possible to create a ram-disk that takes advantage of the unused RAM, but I can't think of any practical uses of this in my case (too small for a page-file, not much use for anything else).

As soon as I get some spare time I plan to install Windows 7 RTM 64bit, which should make full use of the 4GB RAM.

The next step after that may be to try and upgrade to 6GB or 8GB of RAM. I'm not 100% sure if the X300 supports this at a hardware/BIOS level. This Lenovo page says it only supports up to 2GB per SODIMM and up to 4GB max, but this type of information is often wrong, either referring to the 32bit OS 4GB limit or to the max SODIMM stick size at time of printing.

I've checked and 4GB of SODIMM 5300 667MHz sticks do exist (although very expensive). The X300 is running on the Intel GM965 platform. According to this and this thread, notebooks running Intel GM945 or PM945 can not address more than 3GB of memory regardless of the OS, i.e. it's a hardware chipset limitation. GM965 on the other hand can.

So the chipset is good, but can the BIOS and other Lenovo components support 4GB+? I've opened a thread here but won't be holding my breath for a definitive response. I guess there's no way of really knowing unless someone actually tries it (please leave a comment if you have!).

And while we're on the topic of the Intel GM965 chipset, if running Windows 7 make sure to get the latest graphic drivers from the Intel support site (the Lenovo X300 site doesn't get updated all that often). Upgrading the driver increased my Windows Performance Index score for graphics from 2.9 to 3.5 (and gaming graphics is now 4.9). Hopefully the new drivers will also cure the vanishing icons on the taskbar and the Aero crashes.

Installing Windows 7 x64 RTM

I got my licenses and ISO images for Windows 7 through my MSDNAA membership. The first step was to make a bootable DVD with the x64 ISO, but since I didn't have any blank DVDs lying around, I made a bootable USB instead by following this guide (in step 7 I had to mount the x86 32bit Win7 ISO to issue the command BOOTSECT.EXE/NT60 H: ). I then went into the BIOS, set the USB as the first boot device, restarted, formatted my main partition and away it went. The rest of the installation was very quick, about 15 minutes till I had a browser window open to Google. This was a hell of a lot faster than my RC installation from DVD, which took ages and sounded like a dying floppy-disk drive.

The only little snag was that after copying the installation files to the HD and self-restarting, the computer booted from USB again instead of continuing the installer. I just unplugged the USB and restarted to finish it off, then went in the BIOS and excluded USB from the boot list.

Post Installation Setup

First thing I did was install Google Chrome as I can't stand IE (personal choice) and ran Windows Update to install all important and recommended drivers & patches. I went in to device manager and everything seemed to have been correctly detected and installed. No 'unknown devices' whatsoever. Some other steps I took:

  • Checked the Intel GM965 display driver and it had the latest version installed (
  • Enrolled my finger-prints to work during logon (Start/type 'finger'/click Use your fingerprint with Windows).
  • Changed the boot delay during startup from 30 seconds to 5 seconds:
  • -- Click Start menu
  • -- Type: bcdedit /set {bootmgr} timeout "5"
  • -- Press Ctrl+Shift+Enter
  • -- See here for more info.
  • Disabled UAC (User Access Control). It gets in my way most of the time and annoys me a lot more than it helps (some of my development services, tools and environments require manual tweaking of folder permissions to get them working as expected). I'm pretty responsible with what I run on my PC, which I think is 10 times more important than UAC (an irresponsible user will just develop the click-ok syndrome and won't be any safer with UAC on).
  • On-Screen Volume Up/Down display: to get this working I had to install the Lenovo System Interface Driver and the Lenovo Hotkey driver

Software Compatibility Snags

So far I've hit only two x64 compatibility snags. The first was with Talend Open Studio 3.1. After installing it and trying to run the main executable, the program would crash with a Java JVM exit code of 1 and would dump out all the JVM parameters but no actual error message. After trying different versions of Talend and scratching my head for a while, I figured out the error was probably caused because the Talend 32-bit launcher executable was trying to invoke the 64-bit Java SDK I had installed. The trick was to also download and install the 32-bit JDK, after which Talend worked flawlessly.

This highlights an interesting point: Windows 7 x64 can run any 32-bit compiled program. There's actually two Program Files folders, the normal C:\Program Files, and also a C:\Program Files (x86) folder. 64-bit applications get installed in the first, 32-bit in the latter, and the x86 folder seems to get filled up pretty quick (i.e. many programs don't have x64 equivalents). Also, it seems that a 32-bit program cannot invoke a 64-bit program or load a 64-bit library or extension. I imagine this can potentially get pretty ugly...

The second major compatibility problem I encountered was to do with Apache 2.2 and the PHP PDO pgsql driver. I installed the latest version of Apache 2.2 and the latest PHP 5.3. I then configured the http.conf file to load PHP and the php.ini file correctly, then edited the php.ini file to load the php_pdo.dll and php_pdo_pgsql.dll extensions, but the pgsql driver didn't show in phpinfo(). I then enabled all extensions, but still no luck.

I tried different versions of Apache and different versions of PHP 5.2.x yet still no luck. I also tried the latest versions of XAMPP and WAMPServer (both came with PHP 5.3) but the pgsql driver still wouldn't load... I went around in circles for hours until I finally installed WAMP 5.1.7 which comes with some older versions of Apache 2.2 and PHP 5.2 and all of a sudden the driver got loaded. I have no idea what was causing this. I don't know if it's an x64 issue or if it was just me being stupid, but I went over the config files line-by-line countless times and everything seemed right. I'm too scared to play around with it any more right now as I really need psql working.

UPDATE: Hit another compatibility issue. CISCO VPN Client installer throws an error message saying "Error 28011: Windows 64-bit is not supported by CISCO Systems VPN Client". This client is supplied for free by my University for logging in to their intranet. A Google search shows this is a well known problem and that CISCO has a new product called the AnyConnect Client, but I could not find a free download for this anywhere. Instead, I used the latest NCP Secure Entry Client beta which supports Win x64 and allows IPSec VPN tunneling. It also allows importing .pcf profiles so I was able to connect to my intranet within minutes. It's not free though, but you can get the 30 day trial until you find a better solution (at least that's what I'm planning to do).

UPDATE2: You can also try Shrew Soft VPN Client which is free, supports IPSec and can import .pcf CISCO profiles. I managed to connect to my intranet with this, but couldn't resolve any private addresses or IPs.

Closing Thoughts

So far x64 has been more trouble than it's worth already. The whole x86 vs x64 mix of applications seems messy and troublesome to me. Fingers crossed I don't run into bigger problems further down. The only advantage of x64 is that my system can now use an extra 1GB of RAM that I already had installed (and potentially down the track up to 8GB, but that's if the X300 can physically support it).


  1. Richard, did you get the camera to work in the X300/x64 Win 7 install?

    So far X64 has been dreamy - like you looking for another 1GB of ram so look fwd to getting that up and running.

    My only major install failure is the camera - won't show up, no matter what. Writing this has inspired another visit to the bios so will advise if things get better.


  2. Hi James,

    Wasn't sure about the camera as I never used it. In Device Manager I can see Imaging Devices > Integrated Camera, so I'm guessing it's detected.

    Just tried going to http://www.testmycam.com/ and I got to see my ugly mug looking back at me, so seems to be working. If you're still not having any luck, trying installing the latest driver from the Lenovo support site: http://www-307.ibm.com/pc/support/site.wss/MIGR-70600.html

  3. Hi Richard,
    I can confirm the X300 supports 8Gb, as I have it running on mine right now!
    I ordered the Kingston kit KVR667D2S5K2/8G and it went in seamlessly.
    It also worked on my wifes Dell D530 which needed a BIOS update first. I now have to order her a kit too!


  4. Hi Tom,

    That's great news! Thanks for posting. I'll definitely have to have a go at that. Just a matter of finding a decently priced 8GB kit in aus :(


Post a Comment

Popular posts from this blog

Wkhtmltopdf font and sizing issues

Import Google Contacts to Nokia PC Suite

Can't delete last blank page from Word