ZYNQ搭載のRaspberry Pi型ボード「Zynqberry」にUbuntu 19.04をインストールすることに成功しました。
やりかたを説明します。
① まず新しいSDカードを用意し、2つのパーティションに分けておきます。
第一パーティションはFAT32で100~300Mバイトくらいにし、第二パーティションはext4で4GB以上にします。
(後ほどデスクトップ環境を入れることを考えると8GBくらいは必要)
② 第一パーティションにはZynqberryのUbuntu14.04で使ったのと同じ中身のファイル(devicetree.dtb、devicetree.dts、u-boot.rgba、eEnv.txt、uImage)を入れておきます。
次に第二パーティションを作ります。
③ ホスト側マシン(Ubuntu 18.04LTSを推奨)に必要なパッケージをインストールする。
$ sudo apt install qemu-user-static debootstrap
※最初、Ubuntu 14.04でやっていたところ、不完全なイメージが作られインストールに失敗しました。
④ SDカードの第2パーティションをマウントする。
$ sudo mount -o loop /dev/sdb2 /mnt
⑤ debootstrapを使ってARM向けUbuntuをSDカード上に展開する。
$ sudo debootstrap --foreign --arch armhf disco /mnt http://ports.ubuntu.com/
※discoにすると19.04が、xenialにすると16.04LTSが、bionicにすると18.04LTSが、cosmicにすると18.10が入る。バージョン番号とコードネームの対応はhttps://ja.wikipedia.org/wiki/Ubuntuを参照。
⑥ Ubuntuの初期設定をするためにQEMUを使ってホスト側マシンでログインする。
$ sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin/
$ sudo chroot /mnt
/usr/bin/groups: cannot find name for group ID 0
I have no name!@ubuntu:/#
⑦ debootstrapで初期設定をする。
I have no name!@ubuntu:/# ./debootstrap/debootstrap --second-stage
⑧ rootパスワードの設定とユーザの作成
I have no name!@ubuntu:/# passwd
I have no name!@ubuntu:/# su
root@ubuntu:/# passwd
root@ubuntu:/# apt update
root@ubuntu:/# apt install <任意のパッケージ>
root@ubuntu:/# adduser zb ←作成したいユーザ名
⑨ 仮想環境から出る。
root@ubuntu:/# exit
I have no name!@ubuntu:/# exit
⑩ 基板にSDカードを挿入し、Zynqberryの電源を入れます。
起動中にWelcome to Ubuntu 19.04!と出ています。
rootではログインできないので、先ほど作成したユーザでログインします。
⑪ 作成したユーザでsudoできるよう、visudoで権限を与える。
⑫ netplanでネットワークの設定をする
$ sudo vi /etc/netplan/50-cloud-init.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
dhcp6: no
#addresses: [192.168.1.80/24]
#gateway4: 192.168.1.1
#nameservers:
#addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
$ sudo netplan apply
※Ubuntu14以前は/etc/netword/interfacesで設定していたが、15以降はnetplanで設定するようになった。
sshdの設定などを行い、SSHでログインしたところ。
⑬ その他の細かい設定
・コンソール経由で自動ログインされるよう
systemctrl edit --force serial-getty@ttyPS0
で設定する。
・時刻が日本式で表示されるよう
$ ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
・.emacsファイルの作成
(keyboard-translate ?\C-h ?\C-?)
(global-set-key (kbd "C-h") 'delete-backward-char)
これで一応動くようにはなったのですが、やはり重い。
Linaroの14.04を動かしていたときには結構軽快だったのですが、19はARM用に最適化されているわけではないのでしょう。
最近のコメント