How to use 6LoWPAN on VMware Ubuntu Linux in MacOS

Raspberry Piを使って6LoWPANを試していたけど、ぶっちゃけRPiを持ち運ぶも面倒だし、Linux Kernel 3.18.3 とかで普通に6LoWPANは使えるから、OS上の仮想Linuxで使いたくなるのは自然の道理。

という事で、Virtual Box上のUbuntu Linuxから6LoWPANで物理デバイス(nRF51)と6LoWPAN(IPv6 over Bluetooth)で疎通を行うことにした。けどVirtualBoxのHost Controllerとの相性がダメなのか、仮想OSへBluetoothのつなぎが出来ない。色々と試してみたけど、どうやっても出来なかったから、VMwareを使うことに。

これでRPiを使う必要もなくなるし、VM上でサクサク6LoWPAN、IPv6の実験が出来る便利な環境になる。ルーティング・カーネルのテスト、6LoWPANもめちゃ簡単にテストできるようになるから、VM上のLinuxを使うのはお勧め。方法は簡単でカーネル取ってきてビルドするだけ。ぶっちゃけRaspberry Pi/Edison…etc とかarm向けのビルドも全部一緒のノリで出来ると思われ(全部検証したわけじゃないけど、だいたい一緒)。

カーネルの設定はこちらに載せている通りにすればOK。一応、Ubuntu Server 14.04にdpkg -i で打ち込んでバッチリ動いている。自分がビルドしたKernelパッケージはこちら。

3.18.3 Linux kernel for Ubuntu
build config

ダウンロードしてきたらインストール&再起動で最新カーネルに変えたら終了。めちゃ簡単。こんな感じ。

MacのUSBポートにはnRF51、BroadcomのBluetoothドングル(市販の普通のもの)を挿して、nRF51 BluetoothドングルがMac上のVM Linuxを介してIPv6 over Bluetoothとして疎通している。

何を思っているかというと、WiFiが使えなくてルータがない、シリアルも無くても、VMのUbuntu上でIPv6 over Bluetoothで疎通をしてネットワークを作ってテスト・開発・検証できる(Macは対応している訳じゃないからね)。VM上のLinuxを6LoWPANルータみたいな感じで使えるし、便利な環境も作れるようになる。

このイメージを配ったら、誰でもRPiとか無くてもすぐ6LoWPANを使った開発が進められるよーになると思っている。もちろん、Bluetoothの方は必要になるけどね。

ちなみに、VMのMacはYosemiteの環境で、VirtualBox上のUbuntu LinuxからBluetoothを利用・終了するときは、次のコマンドをMacOS上で行う必要がある。ただ、Host Controllerが突然dieするのは乗り越えられなかった…VMwareでは以下は不要。

# Load
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
sudo kextunload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
sudo kextunload -b com.apple.iokit.IOBluetoothHostControllerUSBTransport

# Unload
sudo kextload -b com.apple.iokit.IOBluetoothHostControllerUSBTransport
sudo kextload -b com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport
sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist

「How to use 6LoWPAN on VMware Ubuntu Linux in MacOS」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください