ディスプレイに接続しなくても、Raspberry Pi用Ubuntu MATEのイメージをセットアップし、Raspberry Pi 3で使えるように編集しました。
その編集手順をメモしておきます。
書き込み手順のページはこちらです。 /archives/1308
背景
Ubuntu CoreがRaspberry Pi 3できちんと動くようですが、Ubuntu SSOアカウントが必要です。(https://developer.ubuntu.com/core/get-started/raspberry-pi-2-3)
また、Ubuntu WikiでRaspberry Pi 3用のイメージファイルが公開されていますが、そのままではapt upgradeコマンドで起動しなくなってしまったりと扱いにくい状態((Ubuntu Wikiで配布されているイメージファイルは/boot/config.txtを編集することで問題なくアップデートできるそうです。
詳細はこちら。))なのでUbuntu MATEのイメージファイルを編集し、公開しています。
公開後、しばらくは問題なく扱えていました。以下の方法でのデバイスドライバの開発も問題なく行えていました。

2017年2月17日に、アップデートが発表されました。 https://ubuntu-mate.org/blog/ubuntu-mate-xenial-point-2-raspberry-pi/
個人的に大きな変化だと思っているのは
- カーネルのアップデート(4.1.19-v7+ -> 4.4.38-v7+)
- raspi-config の追加(今までは手動でのインストールが必要)
- SSHサーバがデフォルトではオフ(今まではデフォルトでオン)
- 初回起動時はWiFiが有効にならない(https://bugs.launchpad.net/bugs/1572956)
以上4点です。
このアップデートにより、以前のイメージ作成方法で作成したイメージは、カーネルのヘッダが実際のカーネルのバージョンと一致しなくなってしまいました。 (apt-getでインストールせず、debパッケージをダウンロードしてインストールしたためです。) そこで、再度Ubuntu MATEのイメージを編集し、書き込み後そのまま使用できる状態にします。
手順
- 公式サイトからUbuntu MATEのイメージファイルをダウンロード
- Raspberry Piで初期設定
- イメージファイルをバックアップ
- バックアップしたイメージファイルの編集
- 編集したイメージファイルの圧縮
以上の手順でイメージファイルの作成をします。 作成したイメージファイルはこのエントリの最後で公開しています。
イメージファイルの準備と書き込み
Ubuntu MATEのイメージファイルをダウンロードし、microSDに書き込みます。
まずは、ダウンロードしてきます。ブラウザでUbuntu MATEのサイトから、または以下のコマンドでダウンロードします。
cd ~/Downloadswget https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xzUbuntu
書き込む前に、/dev/mmcblk*として認識されているディスクがないことを確認します。
ls /dev/mmcblk*ここで、ls: /dev/mmcblk* にアクセスできません: そのようなファイルやディレクトリはありませんと返ってくることを確認してください。
UbuntuでmicroSDに書き込む際は以下のコマンドで書き込みできます。
sudo umount /dev/mmcblk0xzcat ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz | sudo dd of=/dev/mmcblk0 bs=1M書き込みが終わったら、microSDの準備完了です。
macOS/OS X
macOSの場合はddコマンドのオプションが異なります。 microSDを指す前と指す後で2回以下のコマンドを実行します。
diskutil list/dev/disk2 (external, physical)が増えており、これがmicroSDであることがわかります。
ここで違うdiskを選択すると、最悪の場合OSが起動しなくなる場合があります。
diskutil umountDisk /dev/disk2xzcat ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz | sudo dd of=/dev/rdisk2 bs=1mここで、ofに/dev/disk2ではなく、/dev/rdisk2を指定します。
rdiskはdiskと違い、アンバッファモードなのでバッファモードより書き込みが数倍速いです。
時間がかかりますが、Ctrl+Tできちんと動いている確認できます。
Raspbianのイメージ書き込みの場合はconv=syncオプションが必須なようですが、逆にこのイメージではこのオプションをつけると書き込みがうまくいきません。
書き込みが終わったら、EjectしてmicroSDの準備完了です。
diskutil eject /dev/disk2Raspberry Piのセットアップ
GUIでの設定が必須ですので、Raspberry Pi 3にモニタとキーボード、マウスを接続します。 設定に関してはこちらのサイトが大変丁寧にまとまっていましたので紹介しておきます。 第48回「ラズベリーパイにUbuntu MATEをインストール!」 | Device Plus - デバプラhttp://deviceplus.jp/hobby/raspberrypi_entry_048/
初期設定後、Terminalを起動します。Ctrl+Alt+Tで起動します。 まずは自動アップデートを無効にします。
sudo systemctl disable apt-daily.servicesudo systemctl disable apt-daily.timeraptのパッケージリストを更新してアップグレードしておきます。少々時間がかかります。
sudo apt updatesudo apt upgradeよく使うパッケージでまだインストールされていない、gitをインストールしておきます。 curl、wget、raspi-configなどはすでにインストールされているようです。
sudo apt install gitデバイスドライバのビルドの際に必要なカーネルのソースをダウンロード・インストールしておきます。
sudo apt install dkms raspberrypi-kernel-headersnet.ifnames=0を/boot/cmdline.txtに書き加えます。これを書き換えることによって有線LANがeth0として認識されるようになります。
/etc/udev/rules.d/70-persistent-net.rulesではなく、/lib/udev/rules.d/80-net-setup-link.rulesによってeth0が認識されているのでこのイメージを書き込んだmicroSDはどのRaspberry Piに差しても起動させることができます。
(/etc/udev/rules.d/70-persistent-net.rulesで認識させている場合、MACアドレスでethの番号が決まります。初回起動時とは異なるRaspberry Piに接続するとeth0ではなく、eth1やeth2として認識されます。)
sudo vi /boot/cmdline.txt書き換え後は以下のようになります。
ubuntu@ubuntu:~$ cat /boot/cmdline.txtnet.ifnames=0 dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet splashここまでの作業が完了したら再起動し、再びきちんと起動することを確認しておいてください。
Raspberry Piを何かに組み込んだまま使う場合はGUIを使うことはないと思いますので、アンインストールします。 これだけで1GB以上空き容量を確保できますのでお勧めです。 アンインストールするにあたり、起動時にConsoleで起動するように設定します。ついでにSSHを有効にしておきます。 raspi-configを起動します。
sudo raspi-config![]()
再起動するか確認されるので"Yes"を選択し、再起動します。

再起動後、使用しないパッケージをアンインストールします。
GUI関連のパッケージをアンインストールしています。
こうすることでmicroSDの空き容量を増やせますし、apt upgradeで更新の際に更新するパッケージの数を減らすことができます。
sudo apt purge libreoffice-* youtube-* sonic-pi thunderbird mincraft-pi scratchsudo apt autoremove完全にGUIを無効にする場合はさらにパッケージを削除します。
sudo apt purge mate-* ubuntu-mate-* account-plugin-* gnome-* network-manager brltty brasero dvd+rw-tools firefox vlc* rhythmboxsudo apt autoremoveここまでの作業が完了したら再起動し、再びきちんと起動することを確認しておいてください。 Ubuntuマシンでの操作に移るのでシャットダウンします。
sudo poweroffPCでのセットアップ
シャットダウン後、microSDを取り外してUbuntuマシンに差し込みます。 先ほどとは異なり、今回はmicroSDのデータを読み込みます。
cd ~/sudo dd if=/dev/mmcblk0 of=ubuntu.imgディスクイメージをマウントします。
sudo kpartx -a ~/ubuntu.imgsudo mount /dev/mapper/loop0p2 /mnt/マウントしたイメージを編集します。
cd /mnt/home/ubunturm .sudo_as_admin_successfulrm .bash_history && touch .bash_historyrm .viminform .lesshstcd /mnt/etcsudo rm -rf NetworkManagerついでにログファイルもきれいに消しておきます。
sudo find /mnt/var/log/ -type f -name \* -exec cp -f /dev/null {} \;ディスクイメージの圧縮時に圧縮率が高まるように、未使用領域をゼロ埋めします。
sudo dd if=/dev/zero of=/mnt/dummy bs=4096sudo rm /mnt/dummyゼロ埋めした/mnt/dummyを削除したらアンマウントして圧縮します。
cd ~/sudo umount /mntsudo kpartx -d /dev/loop0xz -vk ubuntu.img ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi-no-gui-20170806.img.xz以上でイメージファイルの準備は完了です。
作成したイメージファイル
今回作成したイメージを以下に公開しておきます。
ユーザ名、パスワードはどちらも"ubuntu"です。必要に応じて変更してください。
ある程度の動作確認はすませてありますが、すべてについて検証できているわけではありません。 不具合が出ても対処できる環境で先にテストしてからの使用をお願いします。
初期設定済み版
https://github.com/Tiryoh/UbuntuMATE_image/releases/download/v0.3/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi-configured-20170807.img.xz File size : 1018MB MD5 hash : f9866e712fef03280c1e98ecbcc9bf92
ライセンス表記
- Ubuntu MATE 16.04.3

- GPLv3 License
初期設定済み+GUI削除版
https://github.com/Tiryoh/UbuntuMATE_image/releases/download/v0.3/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi-configured-nogui-20170806.img.xz File size : 806MB MD5 hash : 41c2a68d9fd3052a2350667b2c70f1ef
ライセンス表記
- Ubuntu MATE 16.04.3

- GPLv3 License
初期設定済み+GUI削除+ROS Kineticインストール版
https://github.com/Tiryoh/UbuntuMATE_image/releases/download/v0.3/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi-configured-nogui-ros-20170806.img.xz File size : 910MB MD5 hash : 461d624b427f9a9c7333024ee625bfa2
ライセンス表記
- Ubuntu MATE 16.04.3

-
GPLv3 License
-
ROS Kinetic
- BSD License
まとめ
microSDにそのまま書き込めばすぐにRaspberry Pi 3上でUbuntuが使えるようになるイメージデータの作成方法を紹介しました。 また、紹介した方法で作成したイメージデータを公開しています。
参考サイト
- Comment #31 : Bug #1652270 : Bugs : linux-raspi2 package : Ubuntuhttps://bugs.launchpad.net/ubuntu/+source/linux-raspi2/+bug/1652270/comments/31
- Raspberry Pi のバックアップ | えぼのブログhttp://evo.check.jp/pc/raspberrypi/backup.html
- [RaspberryPi]ディスクイメージを縮小する | BYLOMEDIAhttp://blog.bylo.jp/develop/2014/04/643/
- sstea備忘録 : Raspberry Pi のディスクイメージをバックアップするhttp://sstea.blog.jp/raspi/backup_image.html
関連記事
- Raspberry Pi 3B/3B+用Ubuntuイメージで初回起動に時間がかかる問題をなんとかする2019年6月現在公開されているRaspberry Pi 3 Model B/B+用64bitUbuntuイメージを使ってオフラインでUbuntuをセットアップしようとすると、外部ネットワークへの接続待ちで数分待つことがあります。長いんですよね…… 素直にLANケーブルを接続すればよいのですが、そうでなくても動くように
- (Updated )Raspberry Pi 3用UbuntuMATEのイメージ書き込み方このエントリではRaspberry Pi 3で使えるUbuntuMATEのイメージの書き込み手順を説明します。
- (Updated )Raspberry PiのUbuntu MATEでデバイスドライバをビルドする方法Raspberry PiのUbuntuMATEでデバイスドライバをビルドする方法をメモしておきます。
- (Updated )Raspberry Pi 3にUbuntu 14.04をインストールする方法RaspberryPi2までは公式のファームウェアをmicroSDカードに書き込むだけで使えていました(RaspberryPi2にUbuntu14.04をインストールする方法 | Memoteki)が、RaspberryPi3からはそう簡単ではなくなってしまったので対応方法を2種類メモしておきます。
- Raspberry Pi 3(Raspbian)をディスプレイなしでセットアップする方法[Windows][Etcher]Raspberry Pi 3にRaspbianをインストールし、HDMIディスプレイ、キーボード、マウスなしでセットアップする方法を紹介します。PCからSSHでログインできるように設定します。 作業する際に使用するPCのOSはWindowsです。今回は前回よりもmicroSDへの書き込みに便利なソフトウェアを紹介します


