Ubuntu で Raspbian システムを起動(QEMU、qemu-rpi-kernel を使用)
【概要】Ubuntu 環境で QEMU エミュレータを使用し、ARM プロセッサ向けの Raspbian システムを起動する手順を解説する。QEMU のインストール、カーネルイメージのダウンロード、Raspbian イメージの準備、システム起動、SSH によるリモート接続までの一連の作業を図解で説明する。
【目次】
Raspbian は Linux システム(Debian ベース)である。ARM プロセッサで動作する。
Ubuntu が動作するパソコンには ARM 以外のプロセッサが搭載されているため、QEMU を用いてプロセッサのエミュレーションを行う。
このページでは、Ubuntu マシンで Raspbian が動作するまでの手順を図解で説明する。
謝辞
先人に感謝:
- Qemu kernel for emulating Rpi on QEMU: https://github.com/dhruvvyas90/qemu-rpi-kernel
Ubuntu で QEMU のインストール
- 更新可能な全パッケージの更新
# パッケージリストの情報を更新 sudo apt update sudo apt-get -yV upgrade - QEMU のインストール
# パッケージリストの情報を更新 sudo apt update sudo apt -y install qemu qemu-kvm qemu-system-arm
「続行しますか? [Y/n]」と表示されたときは、y キーを押してから Enter キーを押す。
Qemu kernel for emulating Rpi on QEMU のダウンロード
- GitHub の dhruvvyas90/qemu-rpi-kernel の Web ページを開く。
- buster 系列の最新版を選ぶ。
- ページが変わる。Download をクリックする。
- ダウンロードが始まる。ダウンロードしたファイルは分かりやすいディレクトリに保存する。
- 次に、versatile-pb.dtb もダウンロードする。前の Web ページに戻り、versatile-pb.dtb を選ぶ。
- ページが変わる。Download をクリックする。
- ダウンロードが始まる。ダウンロードしたファイルは、先ほどのファイルと同じディレクトリに保存する。
Raspbian のダウンロード
- 先ほどの Web ページ(https://github.com/dhruvvyas90/qemu-rpi-kernel)の指示を確認する。
- この記載に従い、次の Web ページを開く。ここでは国内のサイトを使用する。
- 最新版のディレクトリの下の .zip ファイルを選ぶ。
- ダウンロードが始まる。ダウンロードが終わるまで待つ。ダウンロードしたファイルは分かりやすいディレクトリに保存する。
- ダウンロードした .zip ファイルを展開(解凍)する。展開すると .img ファイルができる。
unzip 2019-09-26-raspbian-buster.zip
- この .img ファイルは、先ほどダウンロードした kernel-qemu-x.x.xx-buster(Qemu kernel for emulating Rpi on QEMU のファイル)と同じディレクトリに配置する。このディレクトリのパスを記録しておく。
Raspbian システムの起動
- 端末を開き、先ほどファイルを配置したディレクトリに移動する。
- ls コマンドで、ファイルがあることを確認する。
- 端末で、次のコマンドを実行する。
qemu-system-arm -M versatilepb \ -cpu arm1176 \ -m 256 \ -hda 2019-09-26-raspbian-buster.img \ -net nic \ -net user,hostfwd=tcp::5022-:22 \ -dtb versatile-pb.dtb \ -kernel kernel-qemu-4.19.50-buster \ -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \ -no-reboot
- アプリ紹介
エミュレータのため、動作速度は低下する。
- bluej: Java 開発環境 BlueJ
- geany: 開発環境 Geany
- greenfoot: Java 開発環境 Greenfoot
- scratch2: Scratch バージョン 2
- Raspbian システムの終了は、左上のメニューで shutdown を選択する。
Ubuntu から Raspbian システムにログイン
ここで行うこと
Raspbian システムで SSH サーバを稼働させる。その後、Ubuntu から SSH サーバに接続する。
- Raspbian システムのメニューで Terminal を選ぶと端末が開く。
- 端末で次のコマンドを実行し、SSH サーバを開始する。あわせて IP アドレスを確認する。
- sudo service ssh start: SSH サーバの開始
- ifconfig -a: IP アドレスの確認
sudo service ssh start ifconfig -a - 端末で次のコマンドを実行する。ファイアウォールを、ポート 5022/tcp について解除する。
# パッケージリストの情報を更新 sudo apt update sudo apt -y install ufw sudo ufw allow 5022 - Ubuntu の端末から Raspbian システムに SSH でログインする。
ssh -X -p 5022 pi@localhostパスワードは raspberry である。
パスワードを入力するとき、画面には何も表示されない。これは正常動作である。
確認表示が出たら「yes」と入力する。
- 「exit」で接続を終了する。