diff --git a/.travis.yml b/.travis.yml
index 0fdf5a8b7318756f856ccd722cc252c5f3cf5382..094e996c93a3b851daed9d6a831cddb201119b53 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,19 +4,47 @@ matrix:
   include:
     - env: TARGET=x86_64-unknown-linux-gnu
       rust: nightly
+
     - env: TARGET=thumbv6m-none-eabi
       rust: nightly
+      addons:
+        apt:
+          sources:
+            - debian-sid
+          packages:
+            - binutils-arm-none-eabi
+
     - env: TARGET=thumbv7m-none-eabi
       rust: nightly
+      addons:
+        apt:
+          sources:
+            - debian-sid
+          packages:
+            - binutils-arm-none-eabi
+
     - env: TARGET=thumbv7em-none-eabi
       rust: nightly
+      addons:
+        apt:
+          sources:
+            - debian-sid
+          packages:
+            - binutils-arm-none-eabi
+
     - env: TARGET=thumbv7em-none-eabihf
       rust: nightly
+      addons:
+        apt:
+          sources:
+            - debian-sid
+          packages:
+            - binutils-arm-none-eabi
 
 before_install: set -e
 
 install:
-  - sh ci/install.sh
+  - bash ci/install.sh
 
 script:
   - bash ci/script.sh
diff --git a/ci/install.sh b/ci/install.sh
index 6e7fcc28d43fdbf9ece49b16c5a4596d8c32427d..efb4882830138063d170932b560ebf29f61aff5e 100644
--- a/ci/install.sh
+++ b/ci/install.sh
@@ -1,4 +1,4 @@
-set -ex
+set -euxo pipefail
 
 main() {
     case $TARGET in
diff --git a/ci/script.sh b/ci/script.sh
index 5b9cea7f4a80c046a8b680340e01ef5dd3aeca24..6b85502462240cc3f8bcfd4a0cf81f0e88462fe3 100644
--- a/ci/script.sh
+++ b/ci/script.sh
@@ -1,4 +1,4 @@
-set -ex
+set -euxo pipefail
 
 main() {
     if [ $TARGET = x86_64-unknown-linux-gnu ]; then