Windows環境でQEMUとqemu-rpi-kernelを使用したRaspbianシステムの実行方法

Raspbianは,Linuxシステム(Debianベース)であり,ARMプロセッサ上で動作します.

一般的なWindowsパソコンにはARMプロセッサ以外のプロセッサが搭載されているため,QEMUを使用してプロセッサのエミュレーションを実施します.

本ガイドでは,Windows環境でRaspbianを実行するための詳細な手順を,図解付きで解説します.

目次

  1. QEMU Binaries for Windowsのインストール手順
  2. Qemu kernel for emulating Rpi(QEMU用Raspberry Piエミュレーションカーネル)の入手
  3. Raspbianイメージのダウンロード
  4. Raspbianシステムの起動と設定
  5. WindowsからRaspbianシステムへのリモートアクセス

謝辞

本ガイド作成にあたり,以下の情報源に多大なる貢献をいただきました:

QEMU Binaries for Windowsのインストール手順

  1. まず,QEMU Binaries for Windowsの公式Webページにアクセスします

    https://qemu.weilnetz.de/w64/

  2. 最新版のインストーラーをダウンロードします

    * 本ガイドではqemu-w64-setup-20180430.exeを使用しています.

  3. ダウンロードしたインストーラーを実行します
  4. インストールウィザードが起動したら「Next」をクリックして進めます
  5. ライセンス条項を確認します
  6. コンポーネントの選択画面では,デフォルト設定のまま「Next」をクリックします
  7. インストール先フォルダも既定のまま「Install」をクリックして開始します
  8. インストールが進行します
  9. インストール完了を確認します

QEMU用Raspberry Piエミュレーションカーネルの入手

  1. GitHubのdhruvvyas90/qemu-rpi-kernelリポジトリにアクセスします

    https://github.com/dhruvvyas90/qemu-rpi-kernel

  2. 必要なファイルは,stretch系列の最新版カーネルとversatile-pb.dtbの2つです. まずは,stretch系列の最新版カーネルをダウンロードします
  3. ファイルページで「Download」をクリックしてダウンロードを開始します
  4. ダウンロードしたファイルは,後で使用しやすい場所に保存します
  5. リポジトリのメインページに戻ります
  6. 次に,versatile-pb.dtbファイルをダウンロードします
  7. 同様に「Download」をクリックしてダウンロードします
  8. このファイルは,先ほどのカーネルファイルと同じディレクトリに保存します

Raspbianイメージのダウンロード

  1. qemu-rpi-kernelリポジトリの指示に従い,Raspbianイメージを入手します
  2. 日本国内のミラーサイトを利用してダウンロードします:

    http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2017-12-01/

  3. イメージの.zipファイルを選択します
  4. ダウンロードが完了するまでお待ちください.ファイルは整理しやすい場所に保存します
  5. ダウンロードした.zipファイルを展開し,.imgファイルを取り出します

    Windowsでの圧縮ファイル展開には7-Zipが便利です:インストール手順 »

  6. 展開した.imgファイルは,先ほどのカーネルファイルと同じディレクトリに配置します

Raspbianシステムの起動と設定

  1. Windowsコマンドプロンプトを起動し,準備したファイルのディレクトリに移動します.dirコマンドで必要なファイルが揃っていることを確認します
  2. 以下の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
    
  3. セキュリティ警告が表示された場合は,「アクセスを許可する」を選択します
  4. Raspbianに搭載されている主要な開発ツール:

    ※ エミュレーション環境のため,動作は実機より遅くなります.

    • bluej: Java開発環境BlueJ
    • geany: 統合開発環境Geany
    • greenfoot: Java学習環境Greenfoot
    • scratch2: ビジュアルプログラミング環境Scratch 2
  5. システムの終了は,メニューから「shutdown」を選択します

WindowsからRaspbianシステムへのリモートアクセス

この節では以下を実施します:

RaspbianでSSHサーバーを有効化し,続いてWindows側からSSH接続を確立します.

  1. Raspbianのメニューから「Terminal」を選択して端末を起動します
  2. 端末で以下のコマンドを実行し,SSHサーバーを起動してIPアドレスを確認します:
    • sudo service ssh start:SSHサーバーの起動
    • ifconfig -a:ネットワーク設定の確認
    sudo service ssh start
    ifconfig -a
    
  3. Windowsのコマンドプロンプトで「netstat -an」を実行し,ポート10022の状態を確認します

    ポートが見つからない場合は,Raspbianシステムの起動に問題がある可能性があります.

    netstat -an
    
  4. コマンドプロンプトを管理者権限で起動し,以下のコマンドでファイアウォールの設定を行います:

    ポート10022/UDPの通信を許可します.

    netsh advfirewall firewall add rule name ="raspbian" dir=in protocol=udp localport=10022 action=allow
    
  5. Windows用SSH クライアントMobaXTermを起動します

    MobaXTermが未インストールの場合は,公式サイトからMobaXTerm Home Edition(インストーラー版)をダウンロードしてください:

    https://mobaxterm.mobatek.net/

    詳細なインストール手順はこちらのガイドをご参照ください.

  6. MobaXTermで「Start local terminal」を選択します
  7. 以下のSSH接続コマンドを実行します:
    ssh -X -p 10022 pi@localhost
    

    * 既定のパスワードは「raspberry」です

    * パスワード入力時は画面に文字が表示されませんが,これは正常な動作です.

    接続確認のメッセージが表示されたら「Yes」を選択します

    MobaXTermのGUIからも接続が可能です:

  8. 接続を終了する場合は「exit」コマンドを実行します

    接続が正常に終了すると,MobaXTermのローカル端末に戻ります.これでWindowsからRaspbianへのリモートアクセス環境の構築は完了です.

    トラブルシューティング

    よくある問題と解決方法:

    • QEMUの起動に失敗する場合:
      • コマンドラインのパラメータが正しいか確認します
      • イメージファイルとカーネルファイルが同じディレクトリにあることを確認します
      • ファイル名とバージョン番号が正確に一致しているか確認します
    • SSHでの接続に失敗する場合:
      • Raspbianでsshサービスが起動していることを確認します
      • ファイアウォールの設定を再確認します
      • ポート10022が他のアプリケーションで使用されていないか確認します
    • システムの動作が遅い場合:
      • QEMUのメモリ割り当て(-m パラメータ)を増やすことで改善する可能性があります
      • ホストマシンの負荷状況を確認します

    セキュリティに関する注意事項

    開発環境として使用する際の推奨事項:

    • 初期パスワード「raspberry」は必ず変更してください
    • 必要なポート以外は開放しないようにしてください
    • 定期的にシステムの更新を行ってください
    • 重要なデータを扱う場合は,適切なバックアップを取得してください

    応用的な使用方法

    本環境の活用例:

    • ARM向けアプリケーション開発とテスト
    • Raspberry Pi用プログラムの動作確認
    • Linuxシステム管理の学習
    • ネットワークプログラミングの実践
    • クロスプラットフォーム開発の検証

    注意:本ガイドは基本的な環境構築手順を示したものです.実際の運用に際しては,セキュリティやパフォーマンスについて十分な検討を行ってください.