Schlagwort-Archive: EeePC

Intel US15W “Poulsbo” Ultra Mobile chipset, SSDs and SATA TRIM

I have bad news. A lot of (very slow) netbooks with Intels US15W chipset—also known under its codename “Poulsbo”—use a PATA-to-SATA bridge chip, simply because of the fact that the chipset doesn’t feature SATA at all. So what netbook vendors did back in ~2008 was to add this bridge chip in order to get an Atom-based notebook at a low price with a back then already standard SATA interface. Apparently SSDs were not the standard back then: they used standard HDDs with either SATA I (1.5 GBit/s) or SATA II (3 GBit/s).

Since the Intel Atom of this generation, Z5xx mostly, isn’t really a fast processor anyway, it really makes not much of a difference if the ATA (IDE) i.e. “parallel ATA” or SATA i.e. “serial ATA” interface is used. Speed will always be limited by the processor, making the Atom Z500 series a bad choice for a real SATA-based system. BUT 2.5 inch disk drives from 2008 were mostly SATA, so they kind of had to add the PATA/SATA bridge to get it. In this view–and only in this view!–it makes perfectly sense to even think about adding such a PATA-to-SATA bridge chip.

The problem

Actually there wouldn’t be a problem, and with SATA HDDs there is none. Specifically, the problem is the PATA-to-SATA bridge chip they used. It doesn’t know about SATA TRIM. Which, by itself, is not a problem either, BUT for unknown reasons it doesn’t correctly relay the TRIM command, thus TRIM is never sent to and never received by the SATA SSD, therefor TRIM doesn’t work.

“Not so bad,” one might think. “Then I use an SSD with a good garbage collection mechanism and I’m okay.” Right? Wrong!

How the operating system handles SATA TRIM…

Every operating system I know of will check the ATA interface and the HDD/SSD for its supported features i.e. capabilities. Windows supports SATA TRIM since version 7 (2009). Therefor Windows up to Vista simply ignores the TRIM feature, even if it is supported by the SSD: it doesn’t check for it, doesn’t use it and will simply ignore it. Not even third party programs are able to use TRIM on Windows prior to Windows 7, which is normal, because every program that wants to send TRIM relys on kernel functions which were not yet implemented before Windows 7. On Linux and Mac OS X it is the same. Linux supports TRIM since Kernel version 2.6.33 (February 2010), Mac OS X since version 10.6.6 (special MacBook Pro version, February 2011) and 10.6.8 (June 2011), but only for selected Apple SSD hardware (which can be hacked to work with any SSD).

But if the operating system does have support for the TRIM command, it will ask the HDD on the ATA or SATA bus about its capabilities (features). A SATA SSD (or ATA SSD) will report that it supports TRIM through the standard ATA protocol. So far the used PATA-to-SATA bridge chip does everything right. So the SSD reports to Linux, Mac OS X, Windows and any other operating system and tool that it has TRIM capability.

Windows (and FreeBSD/NetBSD/OpenBSD, Linux, Mac OS X and any other OS with TRIM support) will then try to use this reported feature. And here the problem with this particular configuration starts, because as soon as Windows tries to use TRIM, this command will not “get through” the PATA-to-SATA bridge chip. One way to deal with this may be to simply ignore it, but apparently Windows does not do that… and hangs. My guess is that it somehow checks for a successful TRIM command, which fails, and any further disk input/output is therefor impossible from this point on. (Which is why the installer does not really crash: the mouse cursor is moving normally, only without any further disk i/o nothing can be done, not even to cancel the installation.)

Linux continues to work. This may be either because it doesn’t check for a successful TRIM command or because the US15W chipset may already be blacklisted. I did not do research any further, because quite frankly I don’t care that much. It is only important to notice that dispite the reported TRIM feature and all the trim functions enabled in Linux, trim still does not happen on the SSD. But the system will not hang, only you will not know about the non-working TRIM.


So, since now we know about the WHY? we can start asking about the HOW? to get around it. The logical answer: disable TRIM support on Windows. The other possiblity would be to make the SSD not report that it has TRIM capability. But this would mean to modify the firmware of the SSD, something only a very very very qualified hacker could do or the manufacturer of the SSD, both very unlikely…

So there we go: disable TRIM on Windows 7 and newer. How would we do that? The solution is not trivial, but can be accomplished with a bit of know-how.

First, you need the following things prepared:

  • Means for partitioning and formatting an NTFS volume on a TRIM-disabled SSD.
  • Means to change the windows registry in order to disable TRIM.

For the first one there are a couple of possibilities, all of which come down to using either an operating system that doesn’t support TRIM or one that at least doesn’t crash when partitioning and formatting the target drive and partition. I would like to point out two:

  • Partition the HDD/SDD and format the target NTFS partition using Linux: parted or fdisk and mkntfs (from NTFS-3G).
  • Use Windows installation media (USB pen drive or DVD) of a Windows prior to Windows 7 to partition the drive and format the partition. Ideal: Windows Vista.

This is necessary because Windows 7, 8, 8.1 and 10 installation media will stall when formatting any partition with NTFS, because it will try to TRIM the whole partition. Windows Vista on the other hand will not use TRIM at all, therefor the creation of an NTFS partition will be successful and it will not hang.

For the second task we need a Windows live system, such as Windows PE. It will, of course, also work to remove the SSD from the netbook, connect it to another PC running Windows and to import the registry hive there. If this is not an option or too complicated (when performing an upgrade this has to be done twice!) the live media is the better solution.

  • BartPE, at this time the only Windows live environment I know of.
  • Theoretically any Windows PE or Windows RE system that includes/supports running the Registry Editor regedit.exe works.

There are other Windows live solutions around, but BartPE seems the most easy to create and is available free of charge.

To create a BartPE live boot media (either USB or DVD) you need a copy of Windows, preferrably the one you try to alter the Windows Registry with, so I would suggest a Windows 7 version of BartPE. I did my modification with a Windows 8.1 version of BartPE and it worked, and I assume that a Windows Vista version will also work, nevertheless it seems logical to use the same version. Note that Windows Enterprise Edition is available free of charge for download and can be tested for 90 days for free, so you will have no problem to get a Windows version for the use with BartPE.

So, if you don’t have a bootable live Windows like BartPE yet, there will be a lot of downloading to do:

  • Download a Windows ISO image. If you register with Microsoft, Windows 10 Enterprise is free.
  • Use WinBuilder to create a bootable Windows PE live media, either a USB pen drive or a DVD.

Once you have done all that, start with a normal installation of Windows 7 or newer. Select the already prepared NTFS partition as installation target but do not format that partition! The Windows installation routine will copy all necessary files from the installation media to the NTFS partition and also copy and configure the boot loader and prepare the next installation steps after restarting the computer from the HDD or SSD. Luckily no TRIM is needed to write files.

When the Windows 7, 8/8.1 and 10 installation program reports that it has finished copying all files it will display a count-down in order to restart the computer automatically. You can start the reboot, but do NOT start the freshly installed Windows from the SSD!

Instead, do one of the following: 1) turn the PC off when the display gets dark, i.e. the reboot is in progress and the BIOS resets and initializes all the integrated devices. When you turn the computer back on again later, make sure to boot from the prepared Windows PE live media. 2) during the reboot, select the prepared Windows PE live media to boot from right away.

Selecting the live media as boot device requires you to know exactly what type of BIOS (or UEFI) your computer has. Some BIOS/UEFI implementations use the Escape key for a “BBS POPUP” i.e. the boot selection menu. Others expect the F5 key. Some want the F8, F9, F10, F11 or F12 key pressed during BIOS initialization. And so on. You really have to look into it. Try it first, so you already know how to boot from the live media when you need it after the first part of the Windows installation.

Disable TRIM in the Windows Registry

This is a step-by-step guide to disable the TRIM command for Windows. BTW, I was surprised to find that this is actually a registry key, and only that. If I would have had to guess, I would have guessed it must be a boot loader parameter. But it isn’t… (it appears that boot parameters have been discontinued by Microsoft…)

You have just started from the prepared BartPE (or any other Windows PE based live media). Now run regedit.exe. In the registry editor select HKLM i.e. HKEY_LOCAL_MACHINE. From the “File” menu select “Import Hive…” and load C:\Windows\System32\Config\SYSTEM. When asked for a name, give it a temporary name that you can easily identify, like “TEMP”. (Note: when you upgrade an existing Windows you have to do this on the C:\$Windows.~bt folder before, reboot, continue with the installation and on the next reboot load the registry hive again with the C:\Windows folder!)

Now, all you have to do is find all “ControlsetXXX” keys in the hive and change the Control\Filesystem\DisableDeleteNotification from 0 to 1. So, if you chose “TEMP” as name, the registry path will be HKEY_LOCAL_MACHINE\TEMP\ControlSet001\Control\Filesystem. In this path you will find the DWORD entry “DisableDeleteNotification”. Double-click it and change the value from 0 to 1. Check if there are other control sets, like HKEY_LOCAL_MACHINE\TEMP\ControlSet002, and change it there too.

Now, select HKEY_LOCAL_MACHINE\TEMP, go to the menu and unload the hive („File“ menu, „Unload Hive…“ while „TEMP“ is selected in the registry tree).

Reboot and continue with the installation, i.e. your BIOS boot selection will be the internal SSD. Windows 7, 8, 8.1 and 10 will now no longer use TRIM and therefor it will no longer stall.

Note: when you upgrade from a previous version of Windows, you need to do the registry change twice: once for the registry have in a directory called $Windows.~bt after rebooting for the first time, and a second time in the Windows directory when rebooting the second time. This is due to the way the Windows installer is built. It will have to move the previous Windows installation from C:\Windows away, which cannot be done when the installation program is run from that very Windows installation. It will use an intermediate installation step, which is in the $Windows.~bt directory. When the actual installation is performed after the first reboot, the old Windows installation will normally be moved to C:\Windows.old and the new one will be placed in C:\Windows, where the registry change is necessary once more.



Installing Windows Vista on an ASUS Eee PC 1101HA

I’m installing Windows Vista on this Netbook for a friend.

The reason to choose Vista is that he has a 32-bit license i.e. “Product Key” for Windows Vista that he doesn’t otherwise use at the moment. The reason not to use the original Windows XP (the Product Key sticker is on the back of this very Eee PC) is that Windows XP is depricated and no longer supported as of 8th April 2014, hence it will no longer receive security updates. On the other hand, according Microsoft Support Lifecycle Windows Vista will be supported until 11th April 2017.

Hardware sepcifications

The ASUS Eee PC 1101HA isn’t very fast. It uses parts optimised for low power consumption.

  • Processor: Intel Atom Z520 1.33 GHz
  • Chipset: Intel US15W Ultra Mobile chipset
  • Memory: 1 GB 533 MHz DDR2
  • Graphics: Graphics Media Accelerator 500 (GMA500)
  • Display: 11.6 inch 1366×768
  • Ethernet: Atheros AR8132 10/100
  • WiFi: Atheros AR9285 802.11 b/g/n
  • Bluetooth: ?

Performace isn’t great but sufficient for general office tasks. Windows Experience Index (on Vista from 1.0 to 5.9) reports a 2.7 score for the processor, and a 2.9 score of graphics performance. So the CPU plus the chipset, which includes the graphics, really is what makes it slow on the one hand, but it’s also what makes it burn only a few watts of electrical power on the other hand. The detailed score after all updates on Windows Vista SP2:

  • CPU: 2.7
  • Memory: 4.2
  • Graphics (Aero): 2.9
  • Graphics (3D business & gaming): 3.0
  • Disk: 5.9 (with a SATA-SSD installed)

ASUS support

I have to say that this took me by surprise. Apparently, Windows XP and Windows 7 (x86 i.e. 32-bit) are supported operating systems for the Eee PC 1101HA. This of course means: Windows Vista is not supported directly by ASUS.

This is also reflected when visiting the ASUS support site. You can download all required drivers for Windows XP and for Windows 7. The BIG problem was to find the display driver for Windows Vista.


Installing Windows Vista failed initialy due to the hard disk drive being not supported. I don’t really know what this means, but the hard disk drive was not found and the Windows installation pointed towards loading it from an external source (a floppy disk, CD or DVD or a USB drive). I guess it failed due to the chipset, Intel US15W, not being supported by stock Windows Vista from 2007.

So, I got the chipset drivers from the intel page, unpacked them on another computer that also ran Windows Vista, and put them on an USB pen drive. I had this pen drive connected when I re-tried to install Windows Vista and this time it worked without even a notification if a driver from an external source (the USB pen drive) was used or not.
Anyway, it worked. And that is what matters.

After Windows Vista was installed, I had the greatest trouble finding a driver for the graphics. It used “Standard VGA” and was limited to a 800×600 resolution.

It took some time to find out that the graphics is an onboard graphics card, Intel calls it “Integrated Graphics Device” (IGD), and that it actucally is an Intel Graphics Media Accelerator (GMA) 500. The problem is thou that this one requires a very special driver, because the regular GMA500 driver doesn’t support this particular chipset.

I eventually found it as “Intel US15 Ultra Mobile Integrated Chipset drivers”. It all comes down to the one major truth, that the only hard part was to identify and find the driver, because firstly ASUS doesn’t provide any Vista drivers for this Eee PC and secondly Intel has a blurry way of naming their drivers.

Also, in order to download the drivers, I needed to install the LAN drivers for internet connectivity. Stock Windows Vista has four devices it lacks drivers for:

  1. ACPI: I got lucky and Windows Vista solved this problem all by itself, once connected to the internet!
  2. Ethernet (Atheros AR8132): use Windows 7 driver from ASUS
  3. Graphics (Intel GMA500): use Intel driver
  4. WiFi (Atheros AR9285): provided from Vista Service Pack 1

Luckily, the Ethernet drivers package for Windows 7 provided by ASUS also includes the Windows Vista drivers.

So, these are the initial drivers required after Windows Vista is installed:

  2. Intel Graphics Media Accelerator 500 for Atom processor driver for Windows Vista*32, Version 4.0.2 (08/11/2009), size: 27.72 MB
  3. Intel INFupdate utility

Strange enough, I got a Security Warning message every time after startup with the Intel GMA files, specifically IgfxTray.exe, IgfxExt.exe, hkcmd.exe and PersistenceThread.exe, all of which are located in C:\Windows\system32. While selecting “Unlock” in the preferences of these files did not work, removing their streams completely did. For this I had to use the command line and the Sysinternals streams.exe utility.

Windows Update

I was also surprised that using Windows Update I wasn’t able to install any Service Pack. Firstly, Windows Update installed about 250 GB worth of pre-SP updates. Then it presented Service Pack 1, but installation failed. Maybe a download problem? So I decided to download it from Microsoft directly. I installed it, which worked. I then used Windows Update to download remaining updates, so again I got 250 GB worth of SP1 updates. Then Windows Update failed to present Service Pack 2 altogether. I manually downloaded Service Pack 2 and installed it, again, which worked. Once more, starting Windows Update I then got 250 GB worth of SP2 updates.

All in all I downloaded around 1.5 GB updates:

  • ~250 MB updates after installation (pre-SP)
  • 434 MB for the Service Pack 1 (Five Language)
  • ~250 MB updates (post-SP1)
  • 348 MB for the Service Pack 2 (Five Language)
  • ~250 MB updates (post-SP2)

Looking back it would have been better to download SP1 and SP2 first, install both, and only then check for remaining updates. For what it’s worth, it was interesting to see if and how updating works. I would have expected Windows Update to perform better.

Another thing to consider is time. The hardware isn’t really fast. Every update takes quite long to complete. Doing all the updates took the netbook a day to finish – that was including me looking after it from time to time to see if user input was required (like: restarting it).

But, there was one thing that surprised me in the positive sense: A problem was detected and a solution was found: Windows Vista pointed me to downloading the ASUS ACPI driver, installation was simple and successful. This very driver also installs the EeePC Tray Utility which then complained on every startup about the missing VGA driver (which was solved once the Intel GMA500 driver was installed). But the point is: Windows Vista pointed me to installing the ACPI driver! That was great!

SSD over HDD

An SSD in a netbook is always a good upgrade choice. Especially netbooks get carried around a lot, and sometimes (due to their size) get used in strange places. The idea behind it: an SSD does not contain any rotating parts. While rough handling will not affect an SSD any more than the rest of the netbook, it will greatly affect a HDD with rotating discs inside and might even damage it, destroying vital data.
Another advantage is of course energy consumption: while the HDD constantly has to spin, consuming energy, the SDD only requires power when data is written or read. That is, disregarding the power required for the internal controller of any disk drive i.e. SSD and HDD likewise.

The bad news is that Windows Vista does not support SATA TRIM. Even though this exact hardware setup would support the TRIM feature, Windows Vista will not take advantage of it. On Windows before Windows 7 the SSD will solely rely on the internal garbage collector and/or overprovisioning, since it is not being informed which blocks on the file system have been deleted and are no longer in use by the operating system. On the other hand, Windows 7 will use the TRIM feature by default. On Linux, the “discard” mount option will make sure it is used as a live feature. Various tools will provide means to manually initiate trim throughout the whole file system (e.g. fstrim). Likewise, such a manual invokation of the trim command is also possible on the NTFS partition, but only when booted from Windows 7. This would make NTFS be trimmed (once), including a Vista installation that would be started from that partition afterwards. Since the operating system has to support TRIM, which Vista does not, this would only be useful on dual-boot installations of Windows 7 and Windows Vista; simply put, on a Vista-only installation: no luck with TRIM. (Linux doesn’t have the capability to trim NTFS.) On Linux, only ext4, swap and btrfs among others support trimming i.e. discard. On ext2 and NTFS, trim is not (yet) supported, propably never will be.

Windows 7?

Windows 7 would definitely be a better choice as a replacement for Windows XP on such a limited hardware. The featureset of Windows 7, like the support for SATA TRIM, is also a point in favor for the newer Windows. Only, who has an unused Windows 7 32-bit license lying around? With Windows Vista, there are a couple of computers around that used the 32-bit flavour and that have been dumped in favour of a newer computer, be it a desktop of notebook. I don’t know why, but that is my experience. A lot of computers were updated from Vista to 7, sometimes even from a 32-bit version of Vista to a full 64-bit version of Windows 7. That left a couple of Vista licenses available and ready to be used to upgrade older Windows XP installations.

The other possibility is of course to buy a 32-bit version of Windows 7. But I would rather install, say, Ubuntu Linux or Debian GNU/Linux or openSUSE Linux or… yeah, any Linux distribution at all. Just be sure to use a lightweight one, because of the limited performance of the ASUS Eee PC 1101HA. But that is a completely different story. Only so much: Ubuntu 12.04.4 LTS works out-of-the-box. SSD-TRIM optimizations have to be manually enabled, but there are a few good guides like the one from Debian and the one from Arch. IMHO, depending on the available memory, using RAM drives (like tmpfs) is also a good idea.



This article is incomplete. Some links are missing, and overall it could have been better. But I spend long enough writing it by now and I will not update it, so it stays as it is. I just hope that it will be of any use, or even help an EeePC 1101 owner. I’m sure btw that you’ll figure out how to use streams to remove the security warning and how to get the SATA-chipset drivers from intel unpacked in order to copy them to an external USB pen drive so that the Windows Vista installation can access the internal SATA drive.