最近ではこちらのページに
Further releases can be found at http://cdimage.ubuntu.com/ubuntu/releases/. Please note that even though these images are labelled "+raspi3" they are compatible with the Raspberry Pi 2 and 3 (and 4 in the case of 19.10).
このように記載されており公式でイメージが動くようになっているのでwikiを参考に進めてみてください。
追記終わり
はじめに
この記事は筆者が RaspberryPi 3 で公式1 の Ubuntu 16.04.3 イメージを動かすまでの手順をメモしたものです。
(大まかな手順は Wiki2 によるが、なぜか公式のイメージは RaspberryPi 2 用しかなく3 こまったりしたので)
内容
環境
Windows 上で作業していたのでイメージの導入などはそれ前提です。もちろん読み替えれば別の OS 上でも作業可能です。
-
7-Zip
- ファイルの展開作業に用います
-
rufus
- イメージファイルを MicroSD カードに焼くのに使います。
- UNetbootin とかでもよいです
RaspberryPi 上での作業は普通に Ubuntu を操作しているだけです。
なお、基本的な Linux の知識などを仮定して書いています。
あと、面倒なので Wi-Fi にはつながずに有線で作業していました。
イメージを用意する
RaspberryPi 公式のダウンロードページ には Ubuntu のイメージはないので別の場所から取得します。
(ちなみに Ubuntu 公式のダウンロードページ からたどるのもかなり困難です)
直接のリンクが Wiki の Download にありますが、日本国内のミラーから落としたほうが早いはずなのでそのようにします。
(ミラー情報 によると富山大学だけのようです)
上記のリンクからファイルをダウンロードして適当な場所に展開してください。(Windows だったら 7-Zip で展開しましょう)
raspi2
という文字が見えますが後の手順で対応するので問題ないです。
余談
RaspberryPi 用のイメージ配布についてハッキリとはわかっていないのですが以下の通りのようです。
イメージを MicroSD カードに焼く
dd
コマンドが使える環境であれば Installation をサクッとやれば良いのですが、Windows だとそういうわけにもいきません。
ということで rufus を使ってイメージを MicroSD に焼いてください。細かい部分は省略します。
成功すると system-boot
というドライブ名に書き換わるはず。
RaspberryPi 3 向けに調整する
正直この手順に従うだけなのですが、Windows でやるにあたり若干わかりずらかったのでちょっと書きます。
まず、次のように system-boot
直下の config.txt
を編集します。
- kernel=uboot.bin
- device_tree_address=0x02000000
+ kernel=vmlinuz
+ initramfs initrd.img followkernel
次に、 bcm2710-rpi-3-b.dtb
を /lib/firmware/4.4.0-1065-raspi2/device-tree
からコピーして system-boot
直下に配置するのですが、 /lib
を Windows から参照するのは難しいのでイメージから抽出することにします。
ubuntu-16.04.3-preinstalled-server-armhf+raspi2.img
を 7-Zip で開くと、1.img
というファイルがあります。
さらに 1.img
を開くと Linux でいう /
相当のファイル群が見えるので指定のパス(/lib/firmware/...
)からファイルをコピーして配置するだけです。
起動する
ここまでくれば普通に起動させることはできます。電源とディスプレイを用意して接続すれば Ubuntu のログイン画面(CUI)が表示されるはずです。
(cloud-init
に時間かかっていました。もし systemd-modules-load.service loaded failed
などと出ているときはこのページが参考になります)
初期の user/password
は ubuntu/ubuntu
です。初回ログイン時にパスワードを変更するよう促されるので一回はログインしておきましょう。
SSH する
ifconfig
などで IP アドレスを調べて SSH でつないでおきましょう。こうすることでコピペが可能になります。
(私の場合はキーボードを使い慣れているもの(HHKB)を使えるほうが大きかったです)
ホスト名を変更する
$ sudo hostname お好みのホスト名
$ sudo vim /etc/hostname
$ sudo vim /etc/hosts
+ 127.0.0.1 お好みのホスト名
余談
avahi-daemon
を入れておくと対応した環境からは お好みのホスト名.local
でアクセスできるようになり捗る。
パッケージを更新する
まずは参照先を日本のミラーにする。
arm 向けのミラーはちょっと特殊な感じ4。
$ sudo sed -i.bak -e "s%ports.ubuntu.com%jp.archive.ubuntu.com%g" /etc/apt/sources.list
それから、RaspberryPi 3 用のリポジトリを追加する。
$ sudo add-apt-repository ppa:ubuntu-raspi2/ppa-rpi3
パッケージを最新の状態にする。
$ sudo apt update
$ sudo apt upgrade
もしエラーが出たら下記の対処をする5。
$ sudo dpkg-divert \
--divert /lib/firmware/brcm/brcmfmac43430-sdio-2.bin \
--package linux-firmware-raspi2 \
--rename --add /lib/firmware/brcm/brcmfmac43430-sdio.bin
$ sudo apt upgrade
おわり
ここまでやれば普通に SSH したり再起動したりしても問題ないはずです。
ちなみに安定性などは全く検証していないのでわからないです。
書き上げた後にこの記事を見て不安になっているところです
Ubuntu 16.04 LTS の非公式イメージを使っていた所、突然死することが何度もあり不安定