2019年3月5日火曜日

LinuxMintにraspbianOSのエミュレーター(QEMU)をセットアップする方法

自分はデスクトップパソコンにLinuxMintを住まわせている。
raspberry pi のOS(raspbian)をデスクトップ上で動かしたいな〜と思った事があって、
それほど難しい事でも無いはずなのですが、例によって詰まったので(笑)
Qiitaとかに書く勇気も無いのでここに自分的メモに残しておく。どっかのだれかが役立ててくれるかもしれないことをわずかばかりに願う。

基本的にはおそらく他のホストOS、つまりWindowsとかUbuntuだとか、そういうのと同じなんですけどね。


【用意するもの】
(1)raspbianOSのイメージ。これはraspberry piの公式ページにある。
(2)QEMU用のraspbianOSのカーネル。(1)のrasbianOSのカーネルとバージョンを合わせる必要がある。https://github.com/dhruvvyas90/qemu-rpi-kernel からダウンロードすればいい。ついでに「versatile-pb.dtb」ファイルもダウンロードしておこう。
(3)QEMU をインストールしておく。

この(3)のQEMUが意外にも罠だったのだが、詳細は後述。

【手順】
上記のQEMU用のraspbianOSのカーネルを配布しているサイトに書いてあるとおりやればいい。
つまり、
$ qemu-system-arm \
  -M versatilepb \
  -cpu arm1176 \
  -m 256 \
  -hda /.../2018-11-13-raspbian-stretch-lite.img \
  -net nic \
  -net user,hostfwd=tcp::5022-:22 \
  -dtb /.../versatile-pb.dtb \
  -kernel /.../kernel-qemu-4.14.79-stretch \
  -append 'root=/dev/sda2 panic=1' \
  -no-reboot
↑こんなスクリプトを.shとかに書いて実行するわけだ(おお…なんか技術ブログっぽくなってきたぞ)
(qemu-system-armはQEMUのパッケージをインストールすれば自動的に含まれる)

だが!そうは簡単に問屋はおろしてくれないのでした(日本語変w)

このとおりに実行しても、自分の環境(LinuxMint18.3)ではカーネルパニック(kernel panic)が発生してしまい、起動後すぐにrebootされてしまうのだ。

もしかしたらqemu-system-armコマンドのパラメーターが間違ってるのかなと思って他のブログもいろいろ漁って変えてみたりするのだけれど、どうしてもkernel panicから抜け出せない…

それでQEMU自体が古いのでは…と思って、バージョンを調べてみると
LinuxMintのMint toolでインストールされるQEMUのバージョンは2.5になっていた(2019年2月時点)。ちょっと古いですよね^_^;
QEMU公式の方を見ると、すでに3.0~がリリースされているので、比較的新しいバージョンをソースからビルドした(いきなり3.0以降を使うのはちょっと怖かったので、2.11くらいのものを使いました)
ビルドは、普通に./configure→make→sudo make install でできる。

そうしたら、あっさりと起動



いやはや、こんなことに時間が結構かかってしまって恥ずかしいやら;;;;;;
まあこういう試行錯誤が楽しめる人でないとLinuxを使いこなすのは難しいのかもしれません(なんか昔の2chのコピペみたいだw)



0 件のコメント:

コメントを投稿