diff --git a/Vagrantfile b/Vagrantfile
index c24bfe685909d91303d3c44599cf056efcd6d155..cea12895002dcefea8805acfc1cfa5e152ebf51b 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -33,11 +33,14 @@ Vagrant.configure(2) do |config|
   # your network.
   # config.vm.network "public_network"
 
+  # Virtualbox requires a private network to use NFS
+  config.vm.network "private_network", type: "dhcp"
+
   # Share an additional folder to the guest VM. The first argument is
   # the path on the host to the actual folder. The second argument is
   # the path on the guest to mount the folder. And the optional third
   # argument is a set of non-required options.
-  config.vm.synced_folder ".", "/Firmware"
+  config.vm.synced_folder ".", "/Firmware", type: "nfs"
 
   # Provider-specific configuration so you can fine-tune various
   # backing providers for Vagrant. These expose provider-specific options.
@@ -85,6 +88,8 @@ Vagrant.configure(2) do |config|
     tar -jxf gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2
     exportline="export PATH=$HOME/gcc-arm-none-eabi-4_8-2014q3/bin:\$PATH"
     if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
+    exportline2="export HEXAGON_TOOLS_ROOT=$HOME/Qualcomm/HEXAGON_Tools/7.2.10/Tools"
+    if grep -Fxq "$exportline2" ~/.profile; then echo nothing to do ; else echo $exportline2 >> ~/.profile; fi
     . ~/.profile
     popd
     # setup ccache
diff --git a/cmake/toolchains/Toolchain-hexagon-7.2.10.cmake b/cmake/toolchains/Toolchain-hexagon-7.2.10.cmake
index 4e27436ec7f6739106526fe80893bfb695607b94..1ab6fd40603a751b5e50afaf8afdbb292a9c789e 100644
--- a/cmake/toolchains/Toolchain-hexagon-7.2.10.cmake
+++ b/cmake/toolchains/Toolchain-hexagon-7.2.10.cmake
@@ -34,8 +34,12 @@ include(CMakeForceCompiler)
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
 include(common/px4_base)
 
-if(NOT HEXAGON_TOOLS_ROOT)
-	set(HEXAGON_TOOLS_ROOT $ENV{HOME}/Qualcomm/HEXAGON_Tools/7.2.10/Tools)
+if ("$ENV{HEXAGON_TOOLS_ROOT}" STREQUAL "")
+	message(FATAL_ERROR
+		"The HexagonTools version 7.2.10 must be installed and the environment variable HEXAGON_TOOLS_ROOT must be set"
+		"(e.g. export HEXAGON_TOOLS_ROOT=/opt/HEXAGON_Tools/7.2.10/Tools)")
+else()
+	set(HEXAGON_TOOLS_ROOT $ENV{HEXAGON_TOOLS_ROOT})
 endif()
 
 macro (list2string out in)
@@ -239,3 +243,12 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
 # for libraries and headers in the target directories
 set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+# The Hexagon compiler doesn't support the -rdynamic flag and this is set
+# in the base cmake scripts. We have to redefine the __linux_compiler_gnu
+# macro for cmake 2.8 to work
+set(__LINUX_COMPILER_GNU 1)
+macro(__linux_compiler_gnu lang)
+  set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "")
+endmacro()
+
diff --git a/src/lib/dspal b/src/lib/dspal
index 95e91546f42e6d88d34a2bb29d0f428a8706c9e4..c8e885aac51aa34855bb3880d3dc916b9e278083 160000
--- a/src/lib/dspal
+++ b/src/lib/dspal
@@ -1 +1 @@
-Subproject commit 95e91546f42e6d88d34a2bb29d0f428a8706c9e4
+Subproject commit c8e885aac51aa34855bb3880d3dc916b9e278083