Richard Hobbs

A steam engine, Land Rover, motorbike (and more!) web site, blog, photo album and video gallery by Richard Hobbs!

Browsing Posts in Computing


At my workplace there was a 5 year old, 20″ 2.16GHz 3GB RAM Apple iMac going spare. It had been replaced with a newer iMac and was available for me to use as a replacement for my own desktop if I wanted it.

I have wanted to own a Mac for a long time so I jumped at the chance to use this one as my main machine!

My current desktop at work runs Debian Linux. This is my own choice as it is my favourite operating system. I like Linux, a lot. The thought of switching to a Mac, however, filled me with some joy because I was still going to have to manage lots of Linux machines (which I enjoy doing!), and I also have to look after a few Windows machines, so I figured the Mac would be a streamlined, user-friendly interface, still with a terminal and X11 server which would allow me to look after Linux properly, with Remote Desktop to allow me to look after Windows properly and everything else I need to do (email, web, general usability) would become wonderfully simple and intuitive!

My current system is still simple to use and fits my needs perfectly, but i’ve heard so many good things about Mac OS X, I thought it could improve my life greatly! And yes, it was the latest version – “Lion”.

Unfortunately, though, I experienced a two-stage ROLLER COASTER OF HELL!!

“Stage 1″ was a massive downhill slope of frustration, confusion and anger! Note that I’m quite a calm person generally, so keep this in perspective :-) I wasn’t actually “angry”… but that’s the direction it was sending me in.

Anyway, most of the issues in “Stage 1″ were just config problems. By adjusting some settings and learning a few new shortcut keys things settled down and life became vaguely normal for an afternoon or so.

“Stage 2″, however, was an even steeper downhill slope of frustration, confusion, lack of productivity and more anger!

“Stage 2″ is what caused me to give up the Mac and switch back to my Debian box and unfortunately almost none of the issues in “Stage 2″ are config issues. They are features I’m used to in Linux and Windows which simply don’t exist in the Mac and simple differences in the mac which I know I am never going to get used to.

This was rather annoying because my dream of owning (or at least using) a Mac had finally been realised, but the reality of using it was something I was simply never going to get along with.

Anyway… once I switched back to my Linux box, life became much more normal again and I was a much happier and more productive person! :-)

For comparison, my Linux box is a Dell Optiplex 980 (seen to the right) running Debian 6.0 (squeeze) with the XFCE Desktop Environment (seen below). Also, for the nostalgic among you, I use the old Solaris CDE window manager theme because that’s what I’m familiar with. The computer has an Intel Core i7 870 @ 2.93 GHz (4 cores, 8 threads, 8 MB cache, 3.6 GHz max. “Turbo” frequency), 4 GB RAM and software-RAID.

Here’s a screenshot of my XFCE Desktop Environment from the left-hand monitor (of the two that I have attached) to give you an idea for what it looks like in comparison to the Mac. Click to enlarge.

Screenshot

I’m not going to talk about the good things about Debian, Linux, XFCE, etc… because I would be here forever. Instead I will talk about the bad things I experienced with Mac OS X Lion!

First of all, Mac OS X Lion is a very nice operating system. If you are not as picky as me, or are just a normal computer user, you would probably get on fine with it. From my own point of view though, it’s awful.

The issues in “Stage 1″…

  • I set up the default built-in “Mail” app as my new mail client (having previously used Thunderbird). IMAP wouldn’t find new mail instantly – I either had to wait or click a button to force it to check. Also, I couldn’t easily mark msgs as read/unread without right-clicking or going through menu. I Installed Thunderbird, configured it up and used that instead.
  • The mouse scrolling was “upside down”. I changed the mouse config to correct this.
  • I couldn’t remove iTunes or iCal from the Dock. This was because they were still running despite me closing the windows down. This was just something I learned – closing stuff doesn’t quit it.
  • I couldn’t click the Terminal icon to open a new Terminal if one was already open. I had to learn to click the Terminal icon and then press Command + N to open a new one. This sucks. I could probably make a shortcut key, but it’s not what I’m used to.
  • I couldn’t open multiple browser tabs in Safari. If only one window is open with no extra tabs, I couldn’t see anything to click on to get another tab. You can do it with a shortcut key or in the menu, but I installed Google Chrome instead.
  • I could close an app, but still Alt+Tab to it. This was because I had closed all the app’s windows, but the app hadn’t been actually quit. It was still running, but with no windows open. Again, just something I had to learn.
  • Ctrl+D quits Terminal, but leaves the window open. I then have to press Command + W to close it. This sucks.
  • Alt+F4 does nothing. I could probably set it up, but it’s just what I’m used to. Command + W or Command + Q does the same thing, depending what you actually want.
  • No keyboard shortcut for “Run”. It turns out there’s no “Run” box anyway. I guess everything has to be mouse based or keyboard shortcuts then. Not ideal for me.
  • The Mac mouse is horrible, there was no right-click, so I plugged my old mouse in. There was a right-click actually, but it wasn’t configured. The scroll wheel was horrible though and the mouse couldn’t seem to detect whether I was right-clicking or left-clicking, so I plugged my old mouse in and used that instead. Maybe the mouse was faulty.
  • The “Home” and “End” keys do not do what I would expect and I have no use for the functionality that they do provide, so they’re useless to me.

So, as you can see, some of these issues were resolved, some I was going to have to live with, some I worked around. This is when things settled down for an afternoon or so. That, however, is when “Stage 2″ hit…

The issues in “Stage 2″ (I cannot resolve them, so I’ve given up on them)

  • I still can’t just click to open new Terminal.
  • I have to quit bash and then ALSO close the window.
  • I can’t display “Spaces/Desktops” on screen at all times so I know what in each one without going to “Mission Control”.
  • I cannot see everything that is on my current “Space/Desktop” without going to mission control.
  • I cannot just select & middle-click to copy/paste.
  • Home & End do not go to start and end of line. They don’t even move the cursor.
  • ~ key in awkward place for switching between windows within an app with the Alt key.
  • #, @ and ” in awkward places.
  • Much slower than my linux box (because it’s an old iMac, and my linux box is a monster by comparison).
  • Lower screen res than my linux box (again, old iMac, and decent monitor plugged into Linux box).
  • I cannot set Windows remote desktop custom resolutions (I can in Linux with “rdesktop”).
  • My particular print driver crashes the app you print through 20% of the time.
  • I cannot enable X11 tunneling through SSH by default.
  • I can’t move the maximize button to right-hand side (CDE-style).
  • The mouse scrolling speed is not linear. Slow scrolling is slower than it should be and fast scrolling is faster than it should be. I can’t find the middle ground!
  • Clicking on a window changes focus, but does not actually click inside that window. Therefore, switching windows to do something is now two clicks instead of one (one click to change focus and another to actually click on the button/link).

So… there we go!

Hopefully you can understand why I gave up and went back to my Linux box… part of it is lack of familiarity, but I have so many shortcut keys built into muscle-memory over the last 20 years that changing them is going to be really difficult. Plus there are other things which are not to do with shortcuts etc… they are just features that I consider to be “missing” from Mac OS X. These “missing” features are perhaps quite specific to me though, or at least to a very small proportion of computer users in general, so I can understand why Apple hasn’t included them.

Anyway, if you can help resolve any of these issues, please feel free to post in the comments below and it might tempt me to try and use a Mac again, but for the time being I think they don’t fit my needs at all, sadly. Everything’s either an extra click or two away, or requires two shortcut keys instead of one, or just isn’t possible.



After a great deal of confusion, and a very interesting call with VMware tech support, we have solved this issue!

In summary, when you have a VMware Guest running on an ESXi host where the ESXi host has an IPMI interface configured which shares a physical RJ45 network socket with the first network card, the VMware Guest cannot communicate with the IPMI interface. This only happens with certain configurations, but I’ll assume you are suffering this issue otherwise you wouldn’t be here reading this post :-)

You can see the issue below!

VMware ESXi IPMI Ping Problem

To give an example, let’s say we have a Dell Poweredge server with 2 on-board network sockets. We’ll call them NIC1 and NIC2. The MAC addresses, for the purpose of this article, are 00:00:00:00:00:01 and 00:00:00:00:00:02, respectively. The server also has an IPMI interface with MAC address 00:00:00:00:00:03. As there are only two physical RJ45 network sockets on the server, the IPMI interface exists inside NIC1 along with the server itself. Therefore, NIC1 contains two MAC addresses (:01 and :03) and NIC2 contains just one (:02).

So, onto this server we install ESXi 4.1 (in this case) and then install a Guest virtual machine. The guest can be any operating system. Our ESXi host is setup so “vmnic0″ (NIC1) and “vmnic1″ (NIC2) are both configured and plugged into the same subnet.

I believe this next bit is irrelevant in relation to this problem, but here is some extra config from our server anyway – the Management Network has “vmnic0″ as primary, and “vmnic1″ as failover/standby, the vMotion network has “vmnic1″ as primary and “vmnic0″ as failover/standby, and the virtual machines are load balanced (so each one boots up onto either “vmnic0″ or “vmnic1″ depending on whatever criteria ESXi uses).

So, we boot up our guest and try to ping the IPMI interface, but it’s not working. No ping response. We then try to ping the IPMI interface from a physical machine elsewhere on the network and it works fine.

We then build another guest on either the same ESXi host and another one on a different ESXi host. The guest on the different ESXi host can ping the IPMI interface on the main ESXi host just fine, but it cannot ping it’s own local IPMI interface. As for the second guest we just built on the same ESXi host as the first, that can ping the local IPMI interface just fine.

So what is going on? Why, on a single ESXi host, are either some, or all, of your guests unable to ping or communicate with the local IPMI interface?

If we dig deeper we can see that when the ping goes out, it requests are ARP response, but doesn’t get one. This response, of course, is what is needed to actually send the ping packet to the right place, but it’s not getting a response, so the ping fails.

The Solution!!

So… if the guest is running on the same physical interface as the IPMI interface that is built into the server, the guest will be unable to ping or communicate with the IPMI interface. The exact reason why this happens is unclear at this stage, but this is what happens.

If we specify that the guest must use only “vmnic1″ (NIC2) instead of letting it either use “vmnic0″ (NIC1) in particular or letting it choose which NIC it wants at boot time, then it all works fine because the IPMI interface is on NIC1 and the ping traffic therefore flows out onto the network and back in the right socket rather than simply getting lost somewhere inside the server or ESXi.

In summary, when the guest and the IPMI interface are both running in the same socket, they are unable to communicate.

I do not know whether this is a bug in VMware, a problem with Dell’s hardware, or just the way networking works, but hopefully I’ll find out one day! :-)

How to Configure The Solution

In summary – Either edit the “VM Network” on your ESXi host, go to the “NIC Teaming” tab and move “vmnic0″ down into either “Unused Adapters” or “Standby Adapters” depending on your preference OR, the preferred approach which is documented below, create a new network in your vSwitch which has “vmnic0″ in either “Unused Adapters” or “Standby Adapters” then edit the virtual machine settings and change the “Network label” for that particular guest’s Network adapter.

In Detail:

  • Connect to vCenter using the vSphere Client (you might be able to do this by connecting directly to the ESXi host as well, but I’m not 100% certain).
  • Select the ESXi host and select the “Configuration” tab. Under the “Hardware” section, click “Networking”.
  • To the right of “vSwitch0″ (in my case), click “Properties”.
  • Click “Add…”, select “Virtual Machine” and click “Next”.
  • Set the “Network Label” to whatever you want and click “Next”.
  • Check the settings and if OK, click “Finish”.
  • Select the new network you just created and click “Edit…”.
  • Select the “NIC Teaming” tab, check the “Override vSwitch failover order” checkbox and move “vmnic0″ to either “Unused Adapters” or “Standby Adapters”, depending on your preference.
  • Click “OK” and then “Close”.
  • Now select the virtual machine(s) you wish to be able to ping or access the local IPMI port and click “Edit virtual machine settings”.
  • Select the Network adapter (in my case “Network adapter 1″), select the new network you just created in the “Network label” drop-down and click “OK”.

That should be it!! You should now be able to ping and communicate with the local IPMI port on the ESXi host on which your guest VM is running!

Any comments or suggestions, please let me know by posting a comment to this post – this procedure may not be completely perfect, so any improvements are gratefully received!

Please also note that here I have simply documented the procedure that worked for me. I therefore take no responsibility if this has any undesired effects. You should understand what you are implementing here and decide for yourself that it is the right thing to do rather than blindly following my instructions! Anyway, I hope you find this article at least useful! :-)