none
CentOS 6 on Hyper-V - network adapter doesn't work (no checksum feature)

    Question

  • I have installed CentOS 6.0 on Hyper-V Server 2008 R2 SP1. VM has only synthetic network adapter enabled. Installation was successfull (without any network), then I installed Linux Integration Services 3.1 from ISO, everything OK too. Now all Hyper-V modules are installed (including hv_netvsc), but there is no network adapter detected.

    Running dmesg | grep eth returns message *"Dropping NETIF_F_SG since no checksum feature."* Reserching on internet shows that checksum seems to be some critical feature without which CentOS cannot use the network adapter and which is apparently not implemented by Microsoft's LIS3.1 module.

    Is there anything I can do to use synthetic network adapter in CentOS? Or have I done something wrong and it should work as it is? Does synthetic adapter capabilities depend on hardware ethernet card used in the host machine? CentOS kernel version seems to be 2.6.32-71.el6.x86_64, hypervisor is R2 SP1 with all updates installed.

    Saturday, November 05, 2011 7:44 PM

Answers

All replies

  • In case somebody else is having the same problem, here is the solution: the adapter has to be configured manually by adding files /etc/sysconfig/network-scripts/ifcfg-eth0 and /etc/sysconfig/networking/profiles/default/ifcfg-eth0 after successfull installation of LIS3.

    The steps that worked for me:

    • create vritual machine with both network adapter and legacy network adapter
    • install CentOS 6 and Linux Integration Services 3.1
    • create /etc/sysconfig/network-scripts/ifcfg-eth1 and /etc/sysconfig/networking/profiles/default/ifcfg-eth1 files
    • reboot and check whether both network interfaces are up
    • remove ifcft-eth0 and rename ifcfg-eth1 to ifcfg-eth0 at both places
    • turn off, remove legacy adapter in hyper-v machine properties and turn on

    The sources where I have found the most useful info:
    http://social.technet.microsoft.com/Forums/cs-CZ/linuxintegrationservices/thread/35d7fe50-e0bb-40b4-8ecc-37d211444ad9
    http://permalink.gmane.org/gmane.linux.redhat.fedora.general/392526
    http://www.cyberciti.biz/faq/rhel-centos-fedoracore-linux-network-card-configuration/

    • Marked as answer by Jan Svab Sunday, November 06, 2011 6:58 PM
    Sunday, November 06, 2011 6:58 PM
  • If you install the 3.2 Linux Integration Components, this does not happen.  I have CentOS 6.1 x64 installed with 3.2 ICs with Synthetic NIC and it install flawlessly. 

    Here is the link to the 3.2 ICs.  http://www.microsoft.com/download/en/details.aspx?id=28188.  I have not attempted an update from 3.1 to 3.2 yet so I would be interested how it turns out.

     

    Rob McShinsky (VirtuallyAware.com)


    VirtuallyAware - Experiences in a Virtual World (Microsoft MVP - Virtual Machine)
    Friday, January 13, 2012 3:53 AM
  • Hi Rob,

     

    can you tell me the exact steps you follow with version 3.2? I'm still experiencing the problem Jan Svab is.

     

    Thanks

    Saturday, January 21, 2012 10:22 AM
  • The procedure was fairly straight forward. Mine was a clean install of CentOS 6.2 x64.  Logon as root (will be the same password as the user you create during setup).   After logon I insert the 3.2 Integration Components .ISO into the VM.  It auto mounts and opens the window showing all the files.  Double Click on install.sh and choose "Run in Terminal."  Reboot.  Nothing terribly complex.

     

    Rob McShinsky (VirtuallyAware.com)

     


    VirtuallyAware - Experiences in a Virtual World (Microsoft MVP - Virtual Machine)
    Tuesday, January 24, 2012 9:08 PM
  • Hi Rob,

    I'm a complete beginner with Linux I'm afraid, but not with Hyper-V. I'm using Svr 2k8R2 SP1.

    I've just clean installed CentOS 6.2 (64-bit) and then the 3.2 integration components and I'm not seeing the synthetic network adapter from within the guest OS. Running dmesg | grep eth (as root) shows only the loopback interface.

    I tried removing and then putting back the network adapter in the Hyper-V settings (shutting down VM twice to do this). Then, when I ran dmesg | grep eth, in addition to the 'eth0: Dropping NETIF...' line, I got 'udev: renamed network interface eth0 to eth1'. But I'm still only seeing the loopback interface.

    Forgive my naievity but is there some process I need to go through in CentOS to install the network adapter? I suppose I'm assuming at present that it would have been installed automatically.

    By the way, whilst installing the integration components has given me mouse support within the guest OS, it's very sluggish. Is this normal?

    Many thanks, Ian.

     

    Tuesday, January 31, 2012 9:36 AM
  • Hi

    I'm having the exact same problem with two different VM's on two different clusters, however there seems to be several issues (see my post about critical event on reboot).

    The network device seems to work, but as mentioned in the above thread, the network "go to sleep" after being inactive and when initiating new connections there is high packet loss (70%+). When connections are established the packet loss is suddenly back to 0%.

    The hosts are running Hyper-V Server 08 R2 SP1 and the gusts are CentOS 6.2 with LIC 3.2.

    Thanks

    Lars

    Friday, February 24, 2012 2:57 PM
  • Same problem here. Cent OS 6.2 x64, Linux IC 3.2 and no NICs at all. Legacy or other wise, I only see the lo listed. Tried the above with adding the files, no change at all.

    Trying Cent OS 6.0, Legacy worked fine during install and after IC 3.2. Still can't get synthetic to work after installing IC 3.2.

    Monday, February 27, 2012 4:55 PM
  • Hi all, I've experienced the same error and can't get eth0 up at boot even if my ifcfg-eth0 seems ok.

    DEVICE=eth0
    BOOTPROTO=static
    ONBOOT=yes
    NETWORK=192.168.1.0
    NETMASK=255.255.255.0
    IPADDR=192.168.1.4

    I have 2008r2SP1 w/Hyper-V and CentOS 6.2 x64 mininmal w/IC 3.2 and synth driver.

    If I manually setup etho (i.e. ifconfig eth0 192.168.1.4 255.255.255.0 up) after login, it works, but I get no static auto ip on bootup and the same message on my log.

    UPDATE:

    I figured I "forgot" how to correctly configure the network-scripts :)
    As soon as I figured it out, I posted some notes about it on my blog (so next time I'll remember...).
    FWIW, fere's my notes: http://www.pwrusr.com/system-administration/solved-centos-6-networking-and-hyper-v
    • Edited by amatesi Saturday, March 03, 2012 5:00 AM figured how-to configure network-scripts
    • Proposed as answer by Code Chief Monday, March 05, 2012 2:02 AM
    Wednesday, February 29, 2012 11:43 PM
  • Thanks Jan, that helped quite a bit. It worked exactly as you said. I'll add that I used a static MAC address in the ifcfg file (using : to separate each pair of characters in the MAC address).
    Friday, March 02, 2012 8:30 PM
  • Hi, in these few steps the solution:

    1. create /etc/sysconfig/network-scripts/ifcfg-eth0
    2. set the hostname of your virtual machine
    3. create /etc/sysconfig/network and write these lines
        NETWORKING=yes
        NETWORKING_IPV6=no
        HOSTNAME=<your hostname>
        GATEWAY=<address ip of your gateway>
    4. change permission for /etc/sysconfg/network:
        chmod 644 /etc/sysconfig/network
    5. create links for /etc/hosts and /etc/resolv.conf in /etc/sysconfig/networking/profiles/default/ (if resolv.conf does not exists, simply create it)
        ln /etc/hosts /etc/sysconfig/networking/profiles/default/hosts
        ln /etc/resolv.conf /etc/sysconfig/networking/profiles/default/resolv.conf
    6. reboot your VPS
    7. et voilà, your synthetic card now should work

    Francesco Guerricchio

    BinaryDigit
    theachabsolutions.blogspot.com



    Francesco Guerricchio

    Monday, March 04, 2013 11:19 AM