Sunday, August 01, 2010

IT From All Angles

Minimize
May 19

Written by: Matthew.Mattoon
Tuesday, May 19, 2009 

This is a follow-up article which will allow you to get mouse control within the Guest OS without having to 'capture' your mouse. Now generally this is not necessary, since Linux in the Datacenter is generally without a GUI, however I use Hyper-V on my Laptop and have a Linux Desktop Guest which this makes it helpful for.


Now in order to do this you will need the linux integration components previously installed. I discussed this in a previous article for Ubuntu and Debian (found here). Additionally I plan on having a follow up article for CentOS, RHEL, and Fedora (however I am slightly slow on these since I am not as familar with them).


I have verified this installation on Debian 5 and Ubuntu 9.04. I have not verified this procedure on previous versions of Ubuntu. When I release my articles on installation of Hyper-V Integration Components on other Linux Distributions I will post updates to ensure these instructions are compatible with those distributions, or I will post reasons that they are not.


If you have the linux integration components installed then that will ensure you have all of the prerequisites for building the input module. This is important as the inputvsc module is dependent on the vmbus module.
 

STEP 1 - Prestage Files
Download iso image from xen.org
http://www.xen.org/files/Satori/inputvsc.iso
Mount iso image as the guests cdrom.
Elevate permissions to root (on Ubuntu use sudo -s)
$ su -
Make directory for install files
# mkdir /opt/inputvsc
Copy install files
# cp -R /media/cdrom/* /opt/inputvsc/

STEP 2 - Install InputVSC Module
Change directory into install directory
# cd /opt/inputvsc
Execute Install Script
# ./setup.pl inputdriver
Verify the error you receive is the expected error by viewing drvinstall.err (the error should occur when 'installing the udev inputvsc rules' - This means that the module will not be loaded automatically)
# cat drvinstall.err
 

STEP 3 - Verify and Test Module
Load module manually
# modprobe inputvsc
Verify module is loaded
# lsmod | grep inputvsc
You should now be able to control your internal mouse without capturing.
 

STEP 4 - Configure Module to Automatically Load
Open /etc/initramfs-tools/modules
# nano /etc/initramfs-tools/modules
Add the following to the end of the file

inputvsc

Rebuild initrd image
# update-initramfs –u

STEP 5 - Reboot and Verify Automatic Loading of Module
Reboot
# reboot
Verify module is loaded
$ lsmod | grep inputvsc
OK and we are all done.


Now that this is done I have noticed a few issues on Debian 5 which I will be attempting to sort out. Ubuntu 9.04 did not have any of these issues. The internal mouse tracked just fine with the external mouse.

  • On startup when at the login screen the first time I click in the guest it captures the mouse. However if I uncapture and click again it does not capture (this is all pre-login).
  • I also have noticed that the guest mouse does not track exactly with my mouse, it is still usable but kind of a pain.
  • The guest viewer window needs to be selected in order to have mouse control within the guest.

Copyright ©2010 Matthew.Mattoon

Tags:

19 comment(s) so far...

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Hi again,

Reiterating from my previous comment - awesome article. a real lifesaver - really.
i have the same question as per your previous article on Linux Integration Components... this time, what I did to fix it DIDNT work... :( im stumpted.


On step 2, executing the install script, the prompt displays:

sh: cannot create drvinstall.err: Read-only file system
grep: drvinstall.err: No such file or directory
*** The drivers have been installed successfully. ***

I tried my previous solution for making the drive rw

# mount -o remount,rw /dev/hda2 /

and then reran the setup, but i cannot get it to install... i get the same error. Can you help!??

(Im so close to linux vm mouse bliss....)

By Stuart on   Saturday, July 11, 2009

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Hi Stuart,

My gut tells me that you are not copying the LIC files from the mounted CD to the local hard disk. Make sure that is what you are doing (this is Step 1 on the mouse integration article).

This could also be something to do with your config, however we will not be able to get enough detail out in these comment blocks to resolve it. Please use my email me form on the home page to send me a detailed message describing your environment, I can then follow it up with any questions I have.

-matt

By Matthew Mattoon on   Monday, July 13, 2009

Re: Hyper-V Guests: Mouse Integration on Linux VMs

I now have a Kubuntu 9.04 install running with the integration components under Hyper-V R2 thanks to your two articles.

Your article is the place I found clear instructions for the roll back of the kernel version.

Good job.

By Bob on   Sunday, September 27, 2009

Re: Hyper-V Guests: Mouse Integration on Linux VMs

I am trying to get mouse intergration working on Ubuntu 9.10

I've made a working kernel build (2.6.32.3) with the hyper-v drivers. However I can't get this mouse thing to work. I first had a problem with the vmbus driver. On my system it was named hv_vmbus.ko nad it was located in the /lib/modules/kernel_ver/kernel/drivers/staging/hv/ directory and not ......../kernel/drivers/vmbus/

I changed this in the setup.pl script, to work around this error. However that got me into a field of hurt. it seems to fail on the hid driver. I started the installation of this manually with make -s -C hid which gives the same errors as the auto build via setup.pl

Should I just give up building the mouse driver on this machine? Or is there a solution to this?

By Bert on   Wednesday, January 20, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Hi Bert,

The mouse integration was not written for the new kernel, as such it does not reflect the correct module names in the setup.pl and some of the MAKEFILEs of the setup, I have been working on making the appropriate edits, however at this point I am not done verifying the instructions.

For those who don't know the version of the ICs this was written for used the module names (vmbus, storvsc, blkvsc, netvsc) where as the Linux Kernel uses (hv_vmbus, hv_storvsc, hv_blkvsc, hv_netvsc). My assumption is that once these references are corrected and the installation run then it should work...

-matt

By Matthew Mattoon on   Wednesday, January 20, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Thanks for you really quick awnser Matt.... If you ever need something tested or verified, don't hesitate to contact me, I'd love to help you out. Best instructions about Linux and Hyper-V i found on the web, keep up the good work!

By Bert on   Thursday, January 21, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Thanks for the instructions on how to get the enlightened mouse driver loaded, I've found this website very useful as an information resource for Linux systems running as Hyper-V guests.

My question follows on from Bert's above. I'm trying to get this working on kernel 2.6.32-14, but unfortunately, it's a no-go. I've managed to fix the issues that occurred when building the hid driver, only for it to fall flat on its face trying to build the inputvsc driver. I haven't managed to fix this part yet (and it looks like I won't be able to any time soon). Have you had any luck in this respect?

By Dave on   Wednesday, March 03, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Hi Dave,

I have not been able to fix this yet. I have been quite busy with work, however the crux of the issue is the module rename which took place when the ICs were put into the Linux Kernel.

-matt

By Matthew Mattoon on   Thursday, March 04, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

error on ubuntu 9.10 kernel 2.6.31

/opt/dist/hid/hid-input.c:95: error: redefinition of ‘input_get_drvdata’
include/linux/input.h:1278: note: previous definition of ‘input_get_drvdata’ was here
/opt/dist/hid/hid-input.c: In function ‘input_get_drvdata’:
/opt/dist/hid/hid-input.c:97: error: ‘struct input_dev’ has no member named ‘private’
/opt/dist/hid/hid-input.c: At top level:
/opt/dist/hid/hid-input.c:100: error: redefinition of ‘input_set_drvdata’
include/linux/input.h:1283: note: previous definition of ‘input_set_drvdata’ was here
/opt/dist/hid/hid-input.c: In function ‘input_set_drvdata’:
/opt/dist/hid/hid-input.c:102: error: ‘struct input_dev’ has no member named ‘private’
/opt/dist/hid/hid-input.c: In function ‘hidinput_connect’:
/opt/dist/hid/hid-input.c:1189: error: incompatible types when assigning to type ‘struct device’ from type ‘struct device *’
make[3]: *** [/opt/dist/hid/hid-input.o] Error 1
make[2]: *** [_module_/opt/dist/hid] Error 2
make[1]: *** [default] Error 2
make: *** [public] Error 2

By qweqwe on   Wednesday, April 07, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Is thers now a solution for HyperV Mouse integration with Linux kernel 2.6.32 ?

I've installed Ubuntu 10.04 on a machine. using the other hyperv (network...) interface is now easy - there is no need to do compilation. But I found no solution for mouse

By Gilles Vollant on   Sunday, May 02, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

I have enabled the IC on Ubunto 10.04 and they seem to work OK.

Now I would like to add this Xen Citrus Project Satori mouse driver. I try this but get the message “Vmbus driver not isntalled! Please install it and rerun.” but “lsmod | grep hv_” shows the module loaded just fine. Has anyone added the synthetic mouse driver successfully and could post the setup.pl script? Thanks, Dave

By Dave on   Sunday, May 16, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Hi Dave

The mouse driver inputvsc is unable to see the vmbus driver. This is because it is not there it doesn't see the hv_vmbus as the same driver. In order to use the mouse integration you will need to use the actual ICs plus the inputvsc unfortunately I have not been able to get the ICs working on ubuntu 9.10 or 10.04 due to grub2.

By Matthew Mattoon on   Monday, May 17, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Thanks Matthew. I modified the setup.pl with the proper paths and am now getting the same compilation errors as qweqew_on got listed above. Any hints appreciated. - Dave

By Dave on   Monday, May 17, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

I edited some Makefiles for paths but cannot get osd.c to compile getting complaints about INIT_WORK. Sure wish someone with more Linux development skills than I (I'm a .NET person and Linux newbie) could make a version of this for Ubuntu 10.04 - thanks, Dave

By Dave on   Monday, May 17, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

I am very new to LINUX and I recently installed SUSE Enterprise Server 11. I installed it on a Hyper V virtual slice and then installed the Virtual Server Software inside SUSE Linux Enterprise Server Version 11. And when I try to boot to XEN SUSE Enterprise Server 11 - 2.6.27.19-5 I get to a point where it sits at "loading console font lat9w-16.psfu -m trivial GO:loadable" and it never moves on. I am guessing I need to boot into XEN instead of SUSE Linux Enterprise server because its running on Hyper V.

Any advise is much appreciated.

Tommy

By tommypa on   Friday, May 21, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Tommy,

A few things that jump out at me as incorrect (full disclosure - I am not terribly familiar with SLES)...

When you install SLES into a VM on Hyper-V you mentioned you entered the guest and then installed Virtual Server Software (I believe this is how SLES refers to either KVM or XEN - which are both different virtualization hypervisors) this is not needed and is probably causing your problems...

Instead follow the following steps...

1) Install SLES inside of guest.
2a) Install the Linux Integration Components version 2.1 RC (available on connect.microsoft.com) - note this is pre-release software - but in my experience stable.
2b) Alternative to 2a is to install Linux Kernel 2.6.32 (I believe the easiest, supported way to do this is to install SP1 for SLES 11 - I read an article stating that 2.6.32 was included in the service pack).
3) Switch your network card in the Virtual Machine settings to Synthetic instead of Emulated
4) Configure the modules to load at startup... 2a should do this automatically, 2b you will need to configure hv_vmbus + hv_netvsc + hv_storvsc + hv_blkvsc to start at boot.

Now mouse integration will not work with either of these options, you will need to use the older version of SLES I believe in order to get this done. No real hope for mouse integration on newer distributions until *fingers crossed* the inputvsc code is included in the kernel code.

-matt

By Matthew Mattoon on   Saturday, May 22, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

I downloaded the the Linux_IC_V2 software and created and ISO and mounted it in Hyper V. When I tried to install it I get the following error. "An error occurred while loading the archive" Then it says "null" under that error. This is so painful.

Any ideas?

By tommypa on   Tuesday, May 25, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

Hi,
I updated SLES 11 with SLES11SP1.
Now installation of the Satori mouse driver brings:
Vmbus driver not installed!
Pleas install it and rerun.

Getting the mouse to work is of utmost importance when using Linux in Hyper-V.
It doesn't make sense otherwise.
Couldn't Citrix jump in here?

By AndreasM on   Tuesday, June 08, 2010

Re: Hyper-V Guests: Mouse Integration on Linux VMs

I would love to get a copy of this, I cannot download it anywhere. Microsoft Connect no longer has it and also no longer is publishing the RC version. With no date of the expected RTM I am in desparate need of this. Thanks

By Keith on   Thursday, July 22, 2010

Your name:
Your email:
(Optional) Email used only to show Gravatar.
Your website:
Title:
Comment:
Security Code
Enter the code shown above in the box below
Add Comment   Cancel 

Search IT From All Angles Blog

Minimize