27.8.09

Ubuntu and the HP Mini 5101

I just got a new HP Mini 5101 netbook and the first thing I had to do was rip out Windows and install Ubuntu. I'm just more productive that way.

Unfortunately, not all of the hardware works "out of the box". After two days of Google research, I've got two important things working.

Bluetooth and wired networking work fine with the default installation of Ubuntu 9.04. The trouble spots come from ACPI, WiFi and sound.

Getting the WiFi interface up and working was easy. Just install the linux-restricted-modules package and reboot. Everything comes up on its own then.

Sound was a little more tricky. You need to do two things:
  1. Install the linux-backports-modules package for your kernel version (sudo apt-get install linux-backports-modules-`uname -r`)
  2. Add the line options snd-hda-intel model=laptop to the file /etc/modprobe.d/alsa-base.conf then reboot.
ACPI is much more complex as it seems to cause a lot of problems booting — enough so that you can't get past kernel errors when you start up. You can get around this by adding acpi=off to the kernel parameters in your grub startup, however this doesn't give you battery information, disables the second CPU core and can cause system lockups. My current workaround — as strange as it is — is to boot only while on battery power, but the battery has to be mostly charged. This has worked every time so far, although I'm not sure why.

I wrote this entry on my new HP Mini and I have to say the best thing about this netbook is the keyboard. It's almost full sized so I don't feel cramped or like I need a special keyboard wand.

More as I find other things that don't quite work as expected. I haven't tried the webcam yet, but I'm not sure that I even care about it at this point.

13.8.09

VMware Server and Multi-Core CPUs

It's always been confusing to me as to what to do with VMware Server guests running on a host that has a multi-core processor.

First, just to clarify, from the information I have gathered VMware will assign a single physical processor to each virtual processor on a guest machine. If you have a multi-core processor, and your host operating system recognises each core as a separate CPU, then each virtual CPU on a guest will be assigned to a single core on your host.

You can get really fancy with assigning specific cores by tinkering with the VMX configuration file.

I've noticed that once I change my guest machine to use multiple CPUs, the CPU usage on my host shoots up to almost 100% and seems to stay there. Curiously though, this doesn't seem to affect any of the other processes running on the host. The answer, as stated in the VMware Knowledge Base, is that the host is executing the "system idle" process on the guest.

On Windows, when your processor isn't doing anything, Windows will execute a sort of 'do nothing' command that shows up in Task Manager as the "System Idle" process. It literally does nothing, and any unused CPU cycles go to this process. (Don't ask me why, I'm just the messenger here.) Unfortunately, VMware seems to translate this as an actual process and executes it on the host, but there it also does nothing. However, the host doesn't recognise this translation as an idle process and shows the VMware process itself as using those CPU cycles. So, even though it looks like your host is doing a lot while your guest is doing nothing, neither are really doing anything.

That still doesn't make me feel comfortable when I first see high CPU usage on my systems, but as long as it isn't causing any problems then I'll just leave things be.