At the end of next month (February 2013), W3C will once again have a booth at Mobile World Congress to share with the congress participants news from all the mobile-relevant work happening in W3C, and our views on the importance of the Web as platform that connects devices together.
To illustrate this, we are working on a demonstration that illustrates the ability of the Web on various connected devices: laptop, tablet, phone and TV.
Anyone who has had to work on setting up a network at Mobile World Congress has probably experienced the same as I have: setting up a reliable WiFi network in the midst of many other booths with WiFi networks and the unavoidable overlap of WiFi frequencies is at best a challenge, at worse impossible.
So this year, I’ll be trying an alternative set up, using bluetooth as a way to connect devices to the network, instead of (or in addition to) WiFi. It is to early too tell whether that alternative will work or if it will be necessary at all — the congress organizers have made (unclear to me at least) claims that the WiFi situation should be better this year. But I thought I would document what I’ve managed to set up so far, in case this can help others, and, more likely, in case I need a similar set up in the future.
I had originally thought of buying a bluetooth network hub, but they were rather expensive, and it didn’t seem that there was a lot of choice in this space. I then realized a simple and cheaper alternative: a laptop with bluetooth should be able to act as networking hub via bluetooth.
To set up an ubuntu laptop in that way, I’ve used the blueman package to provide a network service from bluetooth, installing along the bluez-compat package that provides the necessary
To route the network from bluetooth to the laptop active network interface, I’ve bridged the created pan1 network interface to the ethernet one.
For the demonstration, I will need to expose locally-defined (in
/etc/hosts) domain names to the bluetooth interface.
blueman relies on
NetworkManager to create that interface, and since Ubuntu 12.04,
dnsmasq as a DNS cache (apparently to deal with better access to VpN, although with mixed results).
So the easiest way to avoid that problem was to stop
NetworkManager to use this
dnsmasq plugin by commenting out
dns = dnsmasq in the
With this done, I have been able to connect an Android phone running Android 4.2, an Android tablet running Android 3.2, and an iPad running iOS 4.3. For Android, once the two devices are paired (and assuming to above set up has been correctly done), one of the services one can pick from the laptop is internet access, and once selected, the connection works. For the iPad, no additional service selection is needed (presumably, it uses all the available services).
I have not been able to connect an iPhone that way; although I have not found a reliable confirmation of this, I think it is not possible to do.
One problem that I hit with the iPad is that it would not resolve the locally-defined names I was using with the pseudo
.local TLD; because iOS reserves
.local for mDNS resolution, I had to use a different TLD (e.g.
.lan) to make it work.
I will likely have more mobile devices to test in that connection set up; I think there is a limit of the number of devices that can be simultaneously connected that way (7?), but I haven’t confirmed it yet.