PINE64は、15ドル程度の安価なシステムでありながら、
RPI3より高速ということもありかなりの活躍が見込めます。
さて、その高速なCPUを使用して早速x86エミュレータを動作させてみたいと思います。
[ad#ad-1]
なぜ、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
上記で、しばらく待つと以下のように起動します。
早速インストールしていきたいと思います。
今回はGUIでのインストールはやめて、昔ながらのテキストベースで進めたいと思います。
(QEMU上だとGUIは遅すぎるのと正常に立ち上がらない可能性があるので。)
言語は、英語で行きます。
エミュレータ上にまで日本語はいらないかと思いまして。
ロケーションは、Other -> Asia -> Japanと選択していきます。
localesの選択は、「United States」-en_US.UTF-8を選択します。
キーボードの選択は、私が使用しているキーボードは英語キーボードのため、
「American English」を選択します。
その後、最低限の環境構築のため、インストールが開始されます。
ホスト名の設定は、「pine64-x86」としました。
ドメイン名は、普段家で使用しているものに設定しました。どれも任意で設定する内容です。
rootパスを設定します。これも任意です。
次に、通常使用するユーザを設定します。
任意で設定してください。
インストールするハードディスクを選択します。
QEMU環境は、1つのハードディスクのみ用意しているので、ここでは、悩みません。
インストールするハードディスクのパーティションに変更を加えてよいか選択します。
一択ですので、そのままEnterです。
ここもそのままEnterです。
インストーラが提案したパーティションの設定は、希望の内容なので、そのままFinishを選択します。
改めて確認してきましたが、そのままYesを選択します。
すると、ハードディスクへのインストールが開始されます。
この後Baseシステムのインストールに進んでいきますが、かなりの時間を必要とします。
APTの取得先を設定します。
Baseシステムがインストール出来たあとは、APTの取得元を選択します。
プロキシサーバの設定は不要なため、そのまま何も記載せず、enterします。
そして、しばらくするとインストールが完了します。
再起動した後、QEMUをkillで終了します。
以下コマンドを入力し、QEMUを仮想イメージから起動するようにします。
~# qemu-system-i386 -hda ./debian.img -m 256 -vnc 0:0
これで、無事、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