USB stutter and random hangs

I spent some time with my father, during our Christmas holiday, on ACPI table stripping. We did this because someone we know has issues with a Gigabyte motherboard that I sold to her, where USB stalls (mouse stutter) during the first few second of OS X boot time. Another person, Lars from Germany, is also experiencing random hangs on the same Gigabyte GA-Z87M-D3H. So two people with the same motherboard, with different processors, are having issues with the latest BIOS (F11b).

The first thing that I did was to take out the processor and hard drive and installed it in my Gigabyte GA-Z87MX-D3H. Here I had no issues with USB during boot time, and I also can’t remember having seen a single hang when I used this motherboard.

Then I took out the RAM and swapped it with mine. Same problem. No problem with her RAM modules on my motherboard. We ruled out the actual installation of OS X and the hard drive, by swapping the drive. The RAM modes are also fine. I kind of knew this because I used the modules myself before I sold the modules with the PC.

The next step was to go back a couple of BIOS revisions, but that didn’t help either. Then, and this is where my father came in handy with his ACPI know-how, we stripped the factory DSDT (52365 bytes) down to 5922 bytes in under 30 minutes, but the problem persists.

What I did notice was that the PC booted faster with the stripped DSDT. Presumable because it is smaller now, taking less time to load the file, and it executes quicker sans all ACPI errors. We might need to re-investigate DSDT table stripping, because it looks like that people are underrating the importance of it. Probably because they have no clue whatsoever.

Anyway. What I plan on doing today, when I can find the time for it, is to check the PSU. This to rule out that the PSU is the problem. I don’t expect it to be the cause of the problems, because then two people with different PSU’s would have a broken/unsupported PSU. No. My best guess is that the BIOS is the root cause of the USB stalls and random hangs. I know that my GA-Z87MX-D3H has no issues so I may have to extract the USB driver from the BIOS and inject it in the BIOS of the GA-Z87M-D3H.

Yes. I do have a BIOS programmer. That is not the problem, but the BIOS chips are soldered on the motherboard. And I would rather not mess with the motherboard. Yeah. I know. I am forced to do it anyway. Or am I missing something here?

This brings me back to my previous blog post. It would have been great if we could get access to the BIOS source code, because then this problem would have vanished the same day, but we all know that this is not going to happen. Nope. BIOS vendors have to protect their corporate interests, and they will keep telling you that what they do is for your own protection… You just have to life with their bugs and fake security. Or wait for people like me who don’t give a BEEP and rip their BIOS apart🙂

Update: I installed a GPU card on a GA-Z87M-D3H v1.1 motherboard that I got from Gigabyte for my test runs, and that appears to be a good workaround. This also worked on the GA-Z87M-D3H v1.0 that I sold, and thus installing a video card solve the mouse stutter and random hangs on both versions.

Update-2: It turns out that the mouse stutter – mostly seen at boot time and after a sleep wake cycle – is much simpler to solve than I thought. First I fired up Activity Monitor and rebooted… to find out that displaypolicyd (a daemon) was taking way too long at boot time. Yes. I had indeed changed this plist:


Where I replaced Config2 with none (see also this blog post) for the Mac-F60DEB81FF30ACF6/MacPro6,1 setup that I used. The problem was that I forgot that they had setup their hack as Mac-42FD25EABCABB274/iMac15,1. That was the real problem, because they did not make this change for the Mac-42FD25EABCABB274/iMac15,1. This is also why it used to work for me when I used this motherboard, because I did make the change, but they did not. In short. This is their own mistake. And also my own stupid mistake, because I failed to notice the difference.

My only excuse is that I had to work remote on this particular setup, because it is no longer mine. It is now owned and controlled by someone who lives almost 2000 KM away from me. I also no longer have a GA-Z87M-D3H motherboard, because I was asked to return it. In short. This specific problem was not caused by a BIOS bug!

11 thoughts on “USB stutter and random hangs

  1. You’ll see the problem quickliy if you use a debug kernel and check the logs. It’s a common problem on some hardware configs. Check

    Greets CodeMaster

    • The strange thing is that I used this motherboard myself, and without any issues, so why is it acting up now?

      Also. I can’t find any USB related errors in: /var/log/system.log Not even after I patched the kernel with help of but if you can point me to a thread with a solution… that would be great. Thanks!

  2. Hey pike, I know this is sort of unrelated, but I am interested in slimming down my dsdt a bit. The revoboot guides are a few years old so I don’t know how much of that is relevant currently. Could you post the old and new dsdt so I can take a look at what you removed? I know I need to remove unneeded devices, but a lot of things I don’t know if they’re okay to remove even after looking at the acpi spec.

    • Stripping a DSDT is not an easy task and can cause boot failures, so if you don’t know what to do then simple stay far away from it. And yes. I will add the factory DSDT and the modified DSDT somewhere in my Github repository, but probably not any time soon.

    • Thanks. This is good info. By the way. I wasn’t gong to desolder anything myself, because my eyes won’t let me do it. I’m practically blind without my glasses. Have to ask a fellow Googler for help.

  3. The kernel debug kit contains a lot more than just a kprintf->printf. It comes with various special kexts. Just that kprintf won’t show you much.

    • You are right. The kernel debug output is still limited, but what I don’t understand is why the USB stutter could be related to the kernel. I can’t seem to find any evidence that backs it up. Also. If this is the case, then other people should have collected the data already. No?

  4. Pingback: Stripped DSDT for Gigabyte Z87M-D3H | Pike's Universum

  5. Pingback: GA-Z87M-D3H USB keyboard/mouse wake problem | Pike's Universum

  6. Hello Pike i have the same problem on another motherboard with very similar dsdt but i can’t find a proper workaround the mouse stutter only appears on the usb 2.0 ports but not goes away after few seconds and the only thing that fixes is if i plug my keyboard and mouse to a usb 3.0 port. Do you have any idea why this is happening. My board is an ASUS P8-B75V i’m using a patched bios for the MSR 0xE2.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s