Monday, December 19, 2011

Ubuntu Desktop 10.11 on Hyper-V piix4_smbus

So, I needed a small virtual machine that had the Hyper-V Integration Components working it (I need the clean shutdown action).

XP is just too large, but usually works well.  Linux, why not.  And the RedHat family just incorporated the latest of the Hyper-V Linux Integration Components.  Perfect.

Now, the flavor.  RedHat?  No, no license.  Fedora? Well, now that I think of it, I forgot this one before.  CentOS?  Great for a server.  Ubuntu.  Yep, I chose Ubuntu.

I created a VM and installed Ubuntu Server without a hitch.  Just be sure to use a Legacy Network Adapter during the install process.

I then created a VM and tried to install Ubuntu Desktop.  Big fail.
First of all, for the life of me I could not get the installer screen to popup.  I could not figure out what was going on.  After all, the server VM went straight to the language selection.

Well, at the bottom of the screen is this cryptic graphic of a keyboard, and equal sign, and what looks to be a person with arms and legs spread.  After a few reboots I interpreted this symbol to mean; “if you want to install, hit enter now”.
Hey, the language selection pops up!

Now, I select my language and hit enter.  Error message, drop to a prompt.  Fail two.

The error:  piix4_smbus 0000:07.3: SMBus base address uninitialized – upgrade BIOS or use force_addr=0xaddr

I only play a Linux guy on TV.  And a bit of searching showed me that this error is common on VirtualBox and the settings change suggested is not a safe thing to try.  Oh, and that I needed to re-compile my initrd.

This is a brand new build and freshly downloaded media.  Crazy talk!

Well, I looked around and figured out a workaround.
I managed to get the installer to load by selecting the “other options” at the installation selection menu (F6) and setting “acpi=off” (highlight it, enter or spacebar, ESC to close the options dialog).

Oh, and a nice feature, on the Windows 8 Developer Preview I actually had a mouse during the GUI installer of Ubuntu Desktop.

Now, enabling the Integration Components..

I did just a couple things.  Bring up a terminal using “Ctrl + Alt + t”
Then you need to do sudo –i to switch to root for the remainder of the session or type sudo at the beginning on each command.

Using nano (I never got any handle on vi and always have fallen back to nano) added 4 lines in /etc/initramfs-tools/modules  ( “nano /etc/initramfs-tools/modules” ) and add:
hv_vmbus
hv_storvsc
hv_blkvsc
hv_netvsc

Save that.  Then generate an updated initramfs with “update-initramfs –u” and reboot.

If you had rebooted prior to this you may have noticed a storage layer inaccessibility error that is now gone.

I then ran “apt-get update” and “apt-get upgrade” – two hours go by…Not necessary, but it does update all packages.

This entire time I have been using a Legacy Network Adapter with the Ubuntu Desktop VM.  After the update completed I shutdown the VM, removed the Legacy Network Adapter, added a (synthetic) Network Adapter and all was good.

6 comments:

Anonymous said...

Ubuntu isn't part of the RedHat family, it's part of the Debian family, so you may or may not have the latest IC's

BrianEh said...

Thanks for that. Not focusing on Linux I frequently forget what children belong to what family.

I do know that the latest Ubuntu is running a 3.0 kernel, so yes it might not be the latest.

The heartbeat is good, shutdown works. On Win8 the mouse pointer works properly, not on 2008 R2 SP1.

mat said...

G'day

True 3.0 is one of those kernels where the integrations drivers in the mainline kernel start to work ok. They are still not feature complete and tons changes for mousvsc came in after 3.0 - only the vmbus driver left 'staging' (dirty drivers) area with 3.2, later 3.3 might have netvsc and mousevsc outside of staging.

Matthew Mattoon said...

Brian, just a quick note. I am assuming that your title is supposed to be referencing Ubuntu Desktop 11.10 (which stands for release year and month of October 2011, they release every year in April and October).

Also it has been some time since I have used Ubuntu on Hyper-V but I seem to remember that there was another module which would need to be included in the initrd. hv_utils which controlled the graceful shutdown and the timesync. Not sure if they rolled that into vmbus or another one of the modules in the latest version but if you need integrated shutdown you might need to include that.

-matt

BrianEh said...

Hey Matt!

Actaully, I didn't need any additional modules at all. The heatbeat worked without enabling the modules, and I cann't clearly if shutdown from the host did as well, but it definately did after enabling them.

I later installed the latest Fedora into a VM, definately a different experience, not as friendly actually.

I have been pretty happy with the Ubuntu experience.

Anonymous said...

This works in Ubuntu 11.04. I haven't tried 11.10, as the in-kernel integration components turned out to be too unstable for production use, so I switched to CentOS/RHEL.

cat <> /etc/modprobe.d/blacklist-hyperv.conf
# Gets loaded by default but doesn't work with Hyper-V.
blacklist i2c_piix4
EOF