Wednesday, August 25, 2010

Comparing bluetooth carkits

Bluetooth carkits come in three main categories: those with bluetooth HSP, those with bluetooth HFP, and ones that do bluetooth SAP. Some implement multiple of these profiles and allow you to choose.

  • HSP (head set profile) is the simplest profile: your carkit is basically a speaker-microphone combo, and will play the received audio and send your voice to the telephone. The telephone connects to the cellular network and handles the call. HSP is commonly used in bluetooth earpieces.
  • HFP (hands free profile) is the most common protocol in carkits with a display: your phone still handles the call, and the carkit provides the two-way audio function just like HSP. But the carkit also has basic control over the phone: it can access the received/dialled/missed call lists. It can also instruct the phone to dial a number, to accept or to reject an incoming call. Most carkits also access the phonebook.
  • SAP (SIM access profile, also known as rSAP or SIM) is the most complex of the three: this carkit contains a cell phone ! The mobile phone will disconnect from the network, and lend its SIM card to the carkit phone. Calling is now done by the carkit phone. The carkit will typically also sync the phonebook of the phone via another bluetooth profile.
this is my list of pros and cons for all:

  • HSP pro: your phone can do everything it wants, and you speak to the carkit the way you'd speak into your phone. You still have 3G, and if your phone does smart tricks like voice commands, that probably still works over the carkit. You can seamlessly disconnect the bluetooth kit during a call and continue the call on your phone.
  • HSP con: your phone is the only place to control calls, see caller ID, etc. Also, your phone emits radiation inside your car.

  • HFP pro: you can still use your phone to control calls, but also the carkit display and buttons. On your phone, you'll still have 3G. In my experience, things like voice commands for your phone won't work anymore, but maybe your carkit has similar functionality. As with HSP, you can seamlessly disconnect/connect the carkit during a call.
  • HFP con: your phone emits radiation inside your car, although with a suitable cradle, your mobile phone may benefit from an external antenna. Depending on phone and carkit, you may not hear your personal ringtone anymore.

  • SAP pro: no more phone radiation inside your car! The carkit has an external antenna, which means better reception. Battery usage on your mobile phone is minimal.
  • SAP con: you can't seamlessly switch from carkit to mobile phone. Getting in your car during a call means ending the call and redialing from your carkit phone. Your phone can't do 3G anymore while connected to the carkit. Not all phones support this profile (most notably the iPhone doesn't). You don't hear your fancy personal ringtone anymore, because it's now you carkit phone that's ringing.

Tuesday, August 3, 2010

Am I running in a VMware virtual machine ?

That's an easy question, and the answer isn't too difficult either:
  1. Query the MAC address of the local network card. If it starts with "00:50:56", that indicates that it's a VMware VM.
  2. List devices on the PCI bus. If there's devices with vendor ID 15ad, you can be sure that this is a VMware VM.
  3. Look at the BIOS information (DMI). If you see Manufacturer "VMware, Inc", and the serial number starts with "VMware", and the Product Name is "VMware Virtual Platform", that's again very clear.
  4. In a typical VMware VM, you should find the VMware Tools running: the vmmemctl driver, maybe the vmxnet network card driver maybe, the vmware-guestd or VMwareUser or VMwareTray processes, ...
And here's a practical list of tools you'd use to run these checks:
  1. use "/sbin/ifconfig eth0" on Linux, "ipconfig /all" on Windows. You can do this as a normal user.
  2. use "/sbin/lspci" on Linux. Also possible as a normal user.
  3. use "dmidecode" on Linux, or the third-party tool CrystalDMI on Windows. This is only possible with administrative privileges.
  4. use "ps auxfw" and "ls /proc/vmmemctl" on Linux, Task Manager on Windows. Can be done as a normal user.
P.S. I posted earlier how you can see which version of ESX/ESXi you're running on. This technique diggs further in the dmidecode/CrystalDMI information.