Jump to content

Lion 10.7.2 on Virtualbox - mouse issues


9 posts in this topic

Recommended Posts

I have updated my Virtualbox Lion VM to 10.7.2, and everything is working very nicely, but the mouse pointer is now moving in a very choppy way. No other way to describe it really...

 

It was fine before the update, and isn't CPU related. As soon as I move the mouse out of the Virtualbox window the cursor is its usual happy smooth self.

 

Just wondering if anyone has any suggestions? I have tried enabling all of the USB related flags in the org.chameleon.Boot.plist, but it hasn't helped.

 

Thanks.

Link to comment
Share on other sites

Hi.

I have exactly the same problem with VMWare. I am using VMWare Player, and updated to 10.7.2. Since the update, the mouse lags in such a way that when you click you are actually clicking in a different place than where the pointer is. It's a bit difficult to describe, but will be very apparent if you try clicking on the desktop background and move your mouse around, you will see that the mouse pointer will be off from the selection square.

Moving the mouse a little will sync it back in place.

It's also very apparent when using hot corners.

Anyway, tried to reinstall Darwin401 or Darwin500 VMWare tools as-well as latest VMSvga2 and it doesn't make any difference :-(

Link to comment
Share on other sites

Ralph9, your description fits exactly what I'm seeing. The delay isn't in what you see on the screen. It's a delay in response to mouse-motion (and sometimes motion events are dropped.) For instance, it's difficult to select text in a Terminal or editor window. Unless you move the mouse slowly, it doesn't get selected. Or say, if you hover over an icon in the dock, then quickly move to another icon, the first icon remains selected while the mouse cursor is already over another icon. If you now click, the system runs the app under the first icon. So the system believes the mouse cursor is still over the first icon. I had this happen a lot, where I click and it activates something else that's not under the mouse cursor.

This wan't in OS 10.7.1, and it's not in Snow 10.6.8 either.

I tried switching to PS/2 mouse, but unfortuantely, in Workstation 8, it's impossible to turn off the virtual USB mouse in the guest (mouse.vusb.enable doesn't work anymore), so I can't be sure whether the guest is using the USB or PS/2 mouse.

I tried other display options too - Apple's NDRV, and VMsvga2 with acceleration disabled (similar to VMwareGfx), but get same thing.

Link to comment
Share on other sites

Hi Zenith,

 

My guest is using the USB emulation.

If I connect a usb mouse directly to the virtual machine, it works without any problem though, so I'd say the problem is definitely with the virtual usb.

 

Not too sure what to try next... This is quite an irritating issue!

Link to comment
Share on other sites

Hold on... I found something.

 

Replaced IOHIDFamily.kext in OS 10.7.2 with the one from OS 10.7.0 and the problem is gone :)

 

This kext was the same in 10.7.0 and 10.7.1, so it's on the install DVD in BaseSystem.dmg.

 

It's also an opensource kext, so the sources are available to see what they changed that broke it. Maybe I'll take a look later.

 

Edit: I took a look at the code, and am pretty sure the problem is caused by the following code in IOHIDSystem.cpp

	_cursorHelper.setOverdueTime(0);
_cursorHelper.desktopLocationPosting().fromIntFloor(0, 0);
_cursorHelper.clearEventCounts();

<later>
if (cursorCoupled != cursorEnabled) {
	_cursorHelper.setOverdueTime(0);
	_cursorHelper.desktopLocationPosting().fromIntFloor(0, 0);
	_cursorHelper.clearEventCounts();
	_cursorLogTimed();
	vblES->cancelTimeout();
	cursorCoupled = cursorEnabled;
}

I didn't try and fix it. Will stick with the kext from 10.7, and hope this goes away in the future.

Link to comment
Share on other sites

Good work sir! I can confirm that this has also fixed the issue on VirtualBox. Many thanks.

 

Hold on... I found something.

 

Replaced IOHIDFamily.kext in OS 10.7.2 with the one from OS 10.7.0 and the problem is gone :)

 

This kext was the same in 10.7.0 and 10.7.1, so it's on the install DVD in BaseSystem.dmg.

 

It's also an opensource kext, so the sources are available to see what they changed that broke it. Maybe I'll take a look later.

 

Edit: I took a look at the code, and am pretty sure the problem is caused by the following code in IOHIDSystem.cpp

	_cursorHelper.setOverdueTime(0);
_cursorHelper.desktopLocationPosting().fromIntFloor(0, 0);
_cursorHelper.clearEventCounts();

<later>
if (cursorCoupled != cursorEnabled) {
	_cursorHelper.setOverdueTime(0);
	_cursorHelper.desktopLocationPosting().fromIntFloor(0, 0);
	_cursorHelper.clearEventCounts();
	_cursorLogTimed();
	vblES->cancelTimeout();
	cursorCoupled = cursorEnabled;
}

I didn't try and fix it. Will stick with the kext from 10.7, and hope this goes away in the future.

Link to comment
Share on other sites

Hi Zenith,

 

I tried to fallback as you suggested but that breaks the VM quite badly and I cannot boot :-(.

Logs show failed dependencies in: AppleACPIButtons.kext and IOUSBHIDDriver.kext

and

(com.apple.stackshot[33]): Job appears to have crashed: Abort trap: 6

 

Thanks, and I really appreciate your help!

Link to comment
Share on other sites

 Share

×
×
  • Create New...