ガジェット 情報技術

PINE64でx86エミュレータQEMU を動作させる

更新日:

PINE64は、15ドル程度の安価なシステムでありながら、
RPI3より高速ということもありかなりの活躍が見込めます。

さて、その高速なCPUを使用して早速x86エミュレータを動作させてみたいと思います。

なぜ、x86のエミュレータを使用する必要があるかについては、
やはりサードパーティー製のアプリケーションやドライバが充実しているという点が挙げられます。

Windowsやx86-Linuxでしか動作しないライセンスサーバや簡単なアプリケーションを動作させる場合、
中古などでPCを仕立てる必要があり、数万の出費になることは、確実です。

また、edison等、1ボードシステムは、インテルからも発売されていますが、
評価用ボード等の動作に必要なものを一式そろえてしまうと結構な額になってしまうのが難点です。

そこで、rpiやこのPINE等の安価なarmシステムでx86エミュレータを動作させることで、
これらの問題を解決しようというものです。

Debian Linux on QEMU-x86 on PINE64

さて、今回はPINE64にx86エミュレータ QEMU-x86を導入します。

QEMUはx86に限らずARMやPOWERPC等幅広いCPUアーキテクチャをサポートしています。
また、カーネルの支援を受けずに動作するため、VBOX等カーネルの支援を必要とするエミュレータに比べ、
システムを不安定にさせたりセキュリティホールを突かれる心配も少なくなります。

また、ARMを動作させるQEMUは、Android開発でしばしば使用されているかと思います。
(ビジネスでは、もう少し高速なプロプライエタリなARMエミュレータを使用しているかと思いますが。)

x86エミュレータ QEMU-x86の導入

さて、PINE64は、Debian Jessieが導入されていることが前提で手順を進めていきます。
現時点では、Debianを使用している場合は、Jessieだと思いますので、再度インストールは不要だと思います。

インストール自体は至って簡単です。

apt-get update
apt-get install qemu-system-x86

インストールを許可したらしばらくすると、インストールは完了します。

 

Debianの起動イメージを作成

では、QEMUを動作させるため、Debianの起動イメージを作成する必要があります。

QEMUはx86マシン、起動イメージはそのマシンに搭載されたプライマリのハードディスクになります。

まず、起動イメージを作成します。

~# qemu-img create debian.img 2G
Formatting 'debian.img', fmt=raw size=2147483648

無事、エラーも無く完了したら、次は起動イメージの内容をインターネットからダウンロードします。

wget http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/i386/iso-cd/debian-testing-i386-netinst.iso

test/i386/iso-cd/debian-testing-i386-netinst.iso
--2016-09-17 02:11:01--  http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/i386/iso-cd/debian-testing-i386-netinst.iso
Resolving cdimage.debian.org (cdimage.debian.org)... 2001:6b0:e:2018::173, 2001:6b0:e:2018::165, 130.239.18.173, ...
Connecting to cdimage.debian.org (cdimage.debian.org)|2001:6b0:e:2018::173|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://caesar.acc.umu.se/cdimage/daily-builds/daily/arch-latest/i386/iso-cd/debian-testing-i386-netinst.iso [following]
--2016-09-17 02:11:02--  http://caesar.acc.umu.se/cdimage/daily-builds/daily/arch-latest/i386/iso-cd/debian-testing-i386-netinst.iso
Resolving caesar.acc.umu.se (caesar.acc.umu.se)... 2001:6b0:e:2018::142, 130.239.18.142
Connecting to caesar.acc.umu.se (caesar.acc.umu.se)|2001:6b0:e:2018::142|:80... failed: Connection refused.
Connecting to caesar.acc.umu.se (caesar.acc.umu.se)|130.239.18.142|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 375390208 (358M) [application/x-iso9660-image]
Saving to: ‘debian-testing-i386-netinst.iso’

 

これで、ダウンロードは、完了です。

 

qemuを起動

さて、ここからは、仮想環境での作業が主になってきます。

以下のコマンドを入力して、qemuを起動します。
しかし、私の環境はDisplayを接続できる環境にないので、代わりにVNCを使用します。

~# qemu-system-i386 -hda ./debian.img -cdrom debian-testing-i386-netinst.iso -boot d -m 256 -vnc 0:0

VNCは、RealVNCを使用しました。
VectorのRealVNCページ : http://www.vector.co.jp/soft/dl/win95/net/se324464.html

 

上記で、しばらく待つと以下のように起動します。

qemu上でのDebianLinuxインストール画面(VNC)

qemu上でのDebianLinuxインストール画面(VNC)

 

早速インストールしていきたいと思います。
今回はGUIでのインストールはやめて、昔ながらのテキストベースで進めたいと思います。
(QEMU上だとGUIは遅すぎるのと正常に立ち上がらない可能性があるので。)

DebianLinuxインストーラの起動完了

DebianLinuxインストーラの起動完了

 

言語は、英語で行きます。
エミュレータ上にまで日本語はいらないかと思いまして。

ロケーションは、Other -> Asia -> Japanと選択していきます。

ロケーションの選択

ロケーションの選択

 

localesの選択は、「United States」-en_US.UTF-8を選択します。

localesの設定

localesの設定

 

キーボードの選択は、私が使用しているキーボードは英語キーボードのため、
「American English」を選択します。

キーボードの選択

キーボードの選択

 

その後、最低限の環境構築のため、インストールが開始されます。

最小限の使用環境が作成される。

最小限の使用環境が作成される。

 

ホスト名の設定は、「pine64-x86」としました。
ドメイン名は、普段家で使用しているものに設定しました。どれも任意で設定する内容です。

rootパスを設定します。これも任意です。

rootパスワードの設定

rootパスワードの設定

次に、通常使用するユーザを設定します。
任意で設定してください。

普段使用するユーザの設定

普段使用するユーザの設定

 

インストール中のハードウェア検出

インストール中のハードウェア検出

 

インストールするハードディスクを選択します。
QEMU環境は、1つのハードディスクのみ用意しているので、ここでは、悩みません。

ハードディスクの選択

ハードディスクの選択

 

インストールするハードディスクのパーティションに変更を加えてよいか選択します。

インストールするハードディスクへの警告

インストールするハードディスクへの確認1

 

一択ですので、そのままEnterです。

インストールするハードディスクへの警告

インストールするハードディスクへの確認2

ここもそのままEnterです。

パーティションの設定

パーティションの設定

 

インストーラが提案したパーティションの設定は、希望の内容なので、そのままFinishを選択します。

インストーラの自動パーティション設定

インストーラの自動パーティション設定

 

改めて確認してきましたが、そのままYesを選択します。

ハードディスクに対する変更の最終確認

ハードディスクに対する変更確認

 

すると、ハードディスクへのインストールが開始されます。

インストーラによるパーティション作成

インストーラによるパーティション作成

 

この後Baseシステムのインストールに進んでいきますが、かなりの時間を必要とします。

APTの取得先を設定します。
Baseシステムがインストール出来たあとは、APTの取得元を選択します。

APTの取得元の選択

APTの取得元の選択

プロキシサーバの設定は不要なため、そのまま何も記載せず、enterします。

そして、しばらくするとインストールが完了します。
再起動した後、QEMUをkillで終了します。

以下コマンドを入力し、QEMUを仮想イメージから起動するようにします。

~# qemu-system-i386 -hda ./debian.img -m 256 -vnc 0:0

Debian Linux SID起動画面

Debian Linux SID起動画面

 

これで、無事、Debian LinuxがQEMUにインストール出来ました。

 

ネットワーク環境の整備

次に、qemuは、ホスト環境のネットワークインターフェースとブリッジして外部に接続させます。

そのほうがネット接続に対する制限は少なくなります。

まず、bridge-utilsをホスト環境にインストールします。

~# apt-get install bridge-utils
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
bridge-utils
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 31.8 kB of archives.
After this operation, 142 kB of additional disk space will be used.
Get:1 http://ftp.us.debian.org/debian/ jessie/main bridge-utils arm64 1.5-9 [31.8 kB]
Fetched 31.8 kB in 1s (30.9 kB/s)
Selecting previously unselected package bridge-utils.
(Reading database ... 231546 files and directories currently installed.)
Preparing to unpack .../bridge-utils_1.5-9_arm64.deb ...
Unpacking bridge-utils (1.5-9) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up bridge-utils (1.5-9) ...

そして、/etc/network/interfacesを以下のように記載します。(EthernetをQEMUとPINE64でブリッジします)

auto lo

iface eth0 inet manual

auto br0
iface br0 inet dhcp

bridge_ports eth0
bridge_stp off
bridge_maxwait 1

 

その後、以下を入力し、起動すればブリッジが有効になった状態でQEMUが起動出来ます。

~# qemu-system-i386 -hda ./debian.img -m 256 -net nic -net tap

-ガジェット, 情報技術

Copyright© 日々生活を楽しむ , 2019 All Rights Reserved Powered by AFFINGER5.