Intel JouleでROS Indigoを使えるようにする

最近Intel JouleがデフォルトでUbuntuに対応しましたが、バージョンが14.04ではなく16.04です。ROSで情報量の多いIndigoを利用するには、何らかの手段で14.04をインストールする必要があります。内蔵eMMCは16.04用に残しておいて、14.04は外部ストレージに入れることにしましょう。

Intel JouleにはmicroSDのスロットがありますが、これは低速のため使えません。そこで、USB 3.0対応のSDカードリーダを利用することにします。USB 3.0に対応したセルフパワーのハブも用意しましょう。以下、Intel Jouleは最新のBIOSに更新済みでUbuntu 16.04が導入済みであるものとします。

手順はいくつかのサイトにまとめられていますが、細かいポイントが微妙に異なっていましたので、そこを重点的に記載しておきます。

  1. USB 3.0対応のUSBメモリにUbuntu 14.04のインストーラ(Liveイメージ)を入れます。16.04ではありませんのでご注意下さい。
  2. Intel JouleにUSBハブを接続し、USBメモリを差します。
  3. Intel Jouleを起動します。USBメモリからLiveイメージが起動します。
  4. Liveイメージを使うかインストールするか選択できますので、インストールを選択します。
  5. パーティショニングで、先頭に500MB割り当ててfat16でフォーマット、残り全体をext4でフォーマットします。先頭が/dev/sdb1, 残りは/dev/sdb2となります。swap領域は設定しません。※パーティショニングは事前にgparted等で済ませておいても大丈夫です。
  6. /dev/sdb2をルートファイルシステムとしてUbuntuをインストールします。
  7. インストールが完了したら、/dev/sdb1, /dev/sdb2をマウントします。ここではそれぞれ /mnt/efi, /mnt/rootfs にマウントするものとします。
    $ sudo mkdir /mnt/efi /mnt/rootfs
    $ sudo mount -t vfat /dev/sdb1 /mnt/efi
    $ sudo mount -t ext4 /dev/sdb2 /mnt/rootfs
  8. eMMC内のEFIディレクトリを丸々/dev/sdb1 (/mnt/efi)にコピーします。通常、eMMCのEFIディレクトリは /boot/efi としてマウントされているようです。
    $ sudo cp -a /boot/efi/EFI /mnt/efi
  9. /dev/sdb2の/bootディレクトリ (/mnt/rootfs/boot) を丸々/dev/sdb1のEFIディレクトリ (/mnt/efi/EFI) の下にコピーします。
    $ sudo cp -a /mnt/rootfs/boot /mnt/efi/EFI
  10. USBメモリを抜いて、再起動します。
  11. BIOS画面でInternal Shellを選択します。
  12. シェルから起動します。vmlinuzから始まる行は、改行を入れずに1行で入力して下さい。rootfsは/dev/sdb2ではなく/dev/sda2になりますのでご注意を。
    FS1:\> FS0
    FS0:\> cd EFI
    FS0:\EFI> cd boot
    FS0:\EFI\boot> vmlinuz-4.4.0-59-generic.efi.signed initrd=/EFI/boot/initrd.img-4.4.0-59-generic root=/dev/sda2 ro rootfstype=ext4
  13. しばらく待つと、Ubuntu 14.04が起動します。初回起動時のみ、場合によっては何分も待たされますので、すぐに画面が表示されなくても心配せず辛抱強く待ってみて下さい。/tmpディレクトリが見つからない、等のシステムメッセージが表示された場合は、自動修復を選択すれば大丈夫だと思います。

ここまで済めば、あとはROS Indigoをインストールするのみです。Indigoインストールの詳細は公式Wikiを参考にして下さい。

2017/02/01更新: typoを修正しました。

“Intel JouleでROS Indigoを使えるようにする” への1件の返信

コメントを残す

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