Windows環境でQEMUとqemu-rpi-kernelを使用したRaspbianシステムの実行方法
Raspbianは,Linuxシステム(Debianベース)であり,ARMプロセッサ上で動作します.
一般的なWindowsパソコンにはARMプロセッサ以外のプロセッサが搭載されているため,QEMUを使用してプロセッサのエミュレーションを実施します.
本ガイドでは,Windows環境でRaspbianを実行するための詳細な手順を,図解付きで解説します.
【目次】
- QEMU Binaries for Windowsのインストール手順
- Qemu kernel for emulating Rpi(QEMU用Raspberry Piエミュレーションカーネル)の入手
- Raspbianイメージのダウンロード
- Raspbianシステムの起動と設定
- WindowsからRaspbianシステムへのリモートアクセス
謝辞
本ガイド作成にあたり,以下の情報源に多大なる貢献をいただきました:
- Raspberry PiのQEMUエミュレーション解説: https://azeria-labs.com/emulate-raspberry-pi-with-qemu/
- Windows用QEMUバイナリ: https://qemu.weilnetz.de/w64/
- Raspberry Pi用QEMUエミュレーションカーネル: https://github.com/dhruvvyas90/qemu-rpi-kernel
QEMU Binaries for Windowsのインストール手順
- まず,QEMU Binaries for Windowsの公式Webページにアクセスします
- 最新版のインストーラーをダウンロードします
* 本ガイドではqemu-w64-setup-20180430.exeを使用しています.
- ダウンロードしたインストーラーを実行します
- インストールウィザードが起動したら「Next」をクリックして進めます
- ライセンス条項を確認します
- コンポーネントの選択画面では,デフォルト設定のまま「Next」をクリックします
- インストール先フォルダも既定のまま「Install」をクリックして開始します
- インストールが進行します
- インストール完了を確認します
QEMU用Raspberry Piエミュレーションカーネルの入手
- GitHubのdhruvvyas90/qemu-rpi-kernelリポジトリにアクセスします
- 必要なファイルは,stretch系列の最新版カーネルとversatile-pb.dtbの2つです.
まずは,stretch系列の最新版カーネルをダウンロードします
- ファイルページで「Download」をクリックしてダウンロードを開始します
- ダウンロードしたファイルは,後で使用しやすい場所に保存します
- リポジトリのメインページに戻ります
- 次に,versatile-pb.dtbファイルをダウンロードします
- 同様に「Download」をクリックしてダウンロードします
- このファイルは,先ほどのカーネルファイルと同じディレクトリに保存します
Raspbianイメージのダウンロード
- qemu-rpi-kernelリポジトリの指示に従い,Raspbianイメージを入手します
- 日本国内のミラーサイトを利用してダウンロードします:
http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2017-12-01/
- イメージの.zipファイルを選択します
- ダウンロードが完了するまでお待ちください.ファイルは整理しやすい場所に保存します
- ダウンロードした.zipファイルを展開し,.imgファイルを取り出します
Windowsでの圧縮ファイル展開には7-Zipが便利です:インストール手順 »
- 展開した.imgファイルは,先ほどのカーネルファイルと同じディレクトリに配置します
Raspbianシステムの起動と設定
- Windowsコマンドプロンプトを起動し,準備したファイルのディレクトリに移動します.dirコマンドで必要なファイルが揃っていることを確認します
- 以下のQEMU起動コマンドを実行します:
"C:\Program Files\qemu\qemu-system-arm.exe" -kernel kernel-qemu-4.9.59-stretch -cpu arm1176 -m 256 -M versatilepb -dtb versatile-pb.dtb -no-reboot -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -redir "tcp:10022::22" -hda 2017-11-29-raspbian-stretch.img
- セキュリティ警告が表示された場合は,「アクセスを許可する」を選択します
- Raspbianに搭載されている主要な開発ツール:
※ エミュレーション環境のため,動作は実機より遅くなります.
- bluej: Java開発環境BlueJ
- geany: 統合開発環境Geany
- greenfoot: Java学習環境Greenfoot
- scratch2: ビジュアルプログラミング環境Scratch 2
- システムの終了は,メニューから「shutdown」を選択します
WindowsからRaspbianシステムへのリモートアクセス
この節では以下を実施します:
RaspbianでSSHサーバーを有効化し,続いてWindows側からSSH接続を確立します.
- Raspbianのメニューから「Terminal」を選択して端末を起動します
- 端末で以下のコマンドを実行し,SSHサーバーを起動してIPアドレスを確認します:
- sudo service ssh start:SSHサーバーの起動
- ifconfig -a:ネットワーク設定の確認
sudo service ssh start ifconfig -a
- Windowsのコマンドプロンプトで「netstat -an」を実行し,ポート10022の状態を確認します
ポートが見つからない場合は,Raspbianシステムの起動に問題がある可能性があります.
netstat -an
- コマンドプロンプトを管理者権限で起動し,以下のコマンドでファイアウォールの設定を行います:
ポート10022/UDPの通信を許可します.
netsh advfirewall firewall add rule name ="raspbian" dir=in protocol=udp localport=10022 action=allow
- Windows用SSH クライアントMobaXTermを起動します
MobaXTermが未インストールの場合は,公式サイトからMobaXTerm Home Edition(インストーラー版)をダウンロードしてください:
https://mobaxterm.mobatek.net/
詳細なインストール手順はこちらのガイドをご参照ください.
- MobaXTermで「Start local terminal」を選択します
- 以下のSSH接続コマンドを実行します:
ssh -X -p 10022 pi@localhost
* 既定のパスワードは「raspberry」です
* パスワード入力時は画面に文字が表示されませんが,これは正常な動作です.
接続確認のメッセージが表示されたら「Yes」を選択します
MobaXTermのGUIからも接続が可能です:
- 接続を終了する場合は「exit」コマンドを実行します
接続が正常に終了すると,MobaXTermのローカル端末に戻ります.これでWindowsからRaspbianへのリモートアクセス環境の構築は完了です.
トラブルシューティング
よくある問題と解決方法:
- QEMUの起動に失敗する場合:
- コマンドラインのパラメータが正しいか確認します
- イメージファイルとカーネルファイルが同じディレクトリにあることを確認します
- ファイル名とバージョン番号が正確に一致しているか確認します
- SSHでの接続に失敗する場合:
- Raspbianでsshサービスが起動していることを確認します
- ファイアウォールの設定を再確認します
- ポート10022が他のアプリケーションで使用されていないか確認します
- システムの動作が遅い場合:
- QEMUのメモリ割り当て(-m パラメータ)を増やすことで改善する可能性があります
- ホストマシンの負荷状況を確認します
セキュリティに関する注意事項
開発環境として使用する際の推奨事項:
- 初期パスワード「raspberry」は必ず変更してください
- 必要なポート以外は開放しないようにしてください
- 定期的にシステムの更新を行ってください
- 重要なデータを扱う場合は,適切なバックアップを取得してください
応用的な使用方法
本環境の活用例:
- ARM向けアプリケーション開発とテスト
- Raspberry Pi用プログラムの動作確認
- Linuxシステム管理の学習
- ネットワークプログラミングの実践
- クロスプラットフォーム開発の検証
注意:本ガイドは基本的な環境構築手順を示したものです.実際の運用に際しては,セキュリティやパフォーマンスについて十分な検討を行ってください.
- QEMUの起動に失敗する場合: