2016年07月17日

[小さな機械の相棒]RaspberryPi2(Raspbian-Jessie)でx86のWindowsを動かす

Screenshot.png

Author:試作E型
-----


エイです。
ちょっと時間ができたので、実験してみたいことをやってみました。

何をしたかったか、と言うと、
「RaspberryPi2上でUOが動かないか?」
と言う実験をしたかったのですが…
結果的には手前の段階でムリと判断したので、その部分までを記事にまとめておきます。

■行なったこと
・RaspberryPi2(Raspbian-Jessie)上でのQEMUのインストール
・QEMU上にWindows98SEの環境作成


■QEMUのインストール
最初はソースコードからビルドしていたのですが、Jessieでは普通にリポジトリに転がっていたので、そちらを使います。

今回はターゲットがx86なので、x86版のものをインストールします。
$ sudo apt-get install qemu-system-x86

とりあえずこれでQEMUが使えるようになります。

■Windows98SEの環境作成

Windows98SEのイメージは自宅にのところにあったディスクから生成します。
(OEM版ですが)
イメージの生成はWindows機なりLinux機なりでデータバックアップ系ソフトを使って行ないます。
手順は省略。

イメージの生成が完了したら、RaspberryPi2上にSamba経由で送りこみます。

まずは仮想ディスクイメージを作成しておきます。実験のため2Gのディスクイメージ(UOを入れる分まで考慮すると足りないのですが…実験なので)を作成しました。
$ qemu-img create Windows98.img 2000M


そして、OSインストーラのイメージと、仮想ディスクイメージを使い、QEMUを起動します。
$ qemu-system-i386 -m 512 -cdrom Windows98SE_OEM.iso -hda Windows98.img -boot d -net nic -net user

メモリは768Mぐらいまでは何とか都合がつけられます。

そして普通にWindows98をインストール…となるわけですが、
非常に時間がかかります。
だいたい2時間〜ぐらいでしょうか。

で、冒頭のSSが、インストールが完了したWindows98です。
ものすっっごく遅いですが(汗

あくまで体感ですが、900MHzまで盛った状態で、Pentium 133MHz程度の速度しか出ていないような感じです。
当時、Windows98をインストールした人ならだいたいの速度が推測できるかなーと思うのですが、実用的とはほぼ言えず…

また、ネットワークがうまく認識させられなかったため、オンラインゲームをする、と言う目的はどうあがいても達成できない、と言うことになったので、ここで実験終了ということにしました。

とりあえず、ARM環境でx86のエミュレーションはできる、と言うところまでは確認できたので、これで良しとします。

この他にWindowsXPをインストールしてみようとしたのですが、インストール途中で進まなくなってしまったので、こちらは諦めました。
やっぱり時間がかかります(汗

このせいで賞味丸二日かかりました(汗
posted by ダイ&エイ at 15:39 | Comment(0) | TrackBack(0) | コンピュータ:ソフトウェア | このブログの読者になる | 更新情報をチェックする

2016年06月28日

駆け込みながらwindows7(64bit)をwindows10にしてみよう

windows10に今更アップグレード


Author:試作D型
-----


どうもダイです。

windows10の無償アップデート終了まで一ヶ月程度となりましたが、ちょっとwindows10での動作確認をしてみたくなりまして、現行使用しているマシンを一旦windows10にアップグレードしてみようか、ということになりました。
元々windows7と運命を共にするとも思っていたのですが、アップグレードしてもどうせロールバックすれば良いやと軽い気持ちで始めたのが運の尽き。どっぷり沼にはまってしまいました;


以下はその顛末です。windows update問題も含めて大体20時間以上、アップグレード完了までかかりました…(汗


大変長ったらしいので、折り畳みにしておきます。


全体の7割近くがインストールやダウンロードの待ち時間というのがなんとも…
posted by ダイ&エイ at 14:11 | Comment(1) | TrackBack(0) | コンピュータ:ソフトウェア | このブログの読者になる | 更新情報をチェックする

2016年05月15日

[小さな機械の相棒]RaspberryPi2で無線LANが切れる時の対策

Author:試作E型
-----


エイです。
RaspberryPi関連の記事は久しぶりです。

我が家のサーバ用にしているRaspberry Pi 2(Ubuntu Mate 15.04)には、無線LANアダプタとして、BUFFALOのWLI-UC-GNMが接続されています。
ただ、これで接続していると、しょっちゅう接続が切れて行方不明になることがあります。
有線だと無論そんな現象は無いので、ちょっと使用するのを躊躇われてしまっていたのですが…

いちおう解決したので、記録に残しておきます。

…どうやら、無線LANアダプタのパワーマネジメント機能により、一定時間で接続が切れることがある様子。
以下のコマンドで確認してみると、Power Management:onになっていました。

$ iwconfig wlan0


とりあえず、パワーマネジメント機能をOFFにすれば解決するようです。

参考:Raspberry Piで無線LANの反応が悪い時の対処法

http://denshikousaku.net/fix-sluggish-response-of-raspberry-pi-wifi-adaptor

参考:Ubuntu 無線Lan がなまら遅い(速度にムラがある)ときの対処

http://nemoplus.hateblo.jp/entry/2014/06/06/003439

以下のコマンドをコンソールから入力し、パワーマネジメント機能をOFFにします。
※スーパーユーザ権限ではない(sudoを付けない)場合、権限が無いと文句を言われるので注意。

$ sudo iwconfig wlan0 power off


我が家の場合はこれだけで接続が切れることがなくなりました。
他にも方法があるようなのですが、とりあえず解決してしまったので…(汗
(ubuntu 15.04の場合は/sys/module/8192cuが見つからなかった)


なお、この場合だと、再起動の度に入力してやらないといけないので、設定を恒久的に残しておきたい場合は以下の手順を実行します。

・/etc/init.d/の配下にwirelessと言うスクリプトを作成する。

$ sudo nano /etc/init.d/wireless


内容は以下の通り。
#!/bin/sh

/sbin/iwconfig wlan0 power off


・その後、以下のコマンドを実行して、起動時に実行するようにする。

$ sudo chmod 0755 /etc/init.d/wireless
$ sudo update-rc.d wireless defaults


この設定は再起動後から有効になります。


なお、Pingを打ってみると、
・マネジメントON: 平均50ms程度
・マネジメントOFF: 平均<1ms程度
になっていることが確認できました。
パワーマネジメント機能で応答速度の制限がかかっている様子。
SSH接続の時にもたつくなぁと思っていたのも、どうやらこれが原因だったらしいです。

この変更から一週間ほど経過していますが、無線LANの接続が切れることがなくなりました。
以前はアクセスしないと丸一日〜二日程度で切れてしまっていたので、だいぶ改善したことになります。

我が家では固定IPのSVNサーバとして使っているため、度々接続が切れる上、再接続するにはアダプタを挿抜しなければいけないと言うのはかなり不便です。
(だいたいHPの更新感覚の問題で、SVNを更新しようとした時には接続が切れている)


これで安心して無線で使えます。
posted by ダイ&エイ at 07:22 | Comment(0) | TrackBack(0) | コンピュータ:ソフトウェア | このブログの読者になる | 更新情報をチェックする

2016年01月13日

[小さな機械の相棒]Raspbian(Jessie)でChromium最新版とFlashを動かす

Raspbian(Jessie)でChromium最新版とFlashを動かす
Author:試作E型
-----


エイです。
最近めっきり寒くなりましたねぇ…

そういえば、新しくRaspberryPi2の2台目を購入しました。
今回はElement14取扱品のため、中国生産Lotと思われますが…
ヒートシンクとセットで\5,180(送料/税込)だったので、実験用にと購入に踏み切りました。
これで元々のRaspberryPi2はサーバとして立ち上げっぱなしにできます。

さて、Moonlightを動かそうと思った時にできなかった、Raspbian(Jessie)での環境構築について少し書き残しておこうと思います。
コアはChromium(できるだけ最新版)+PepperFlash(12.0.0.77)でのFlashコンテンツの再生についてです。

とりあえず、元となるOSイメージ(Raspbian(Jessie))は各自インストールして下さい。
(手順は一般的、かつ長くなるので、他を参照したほうが無難かと)

RaspberryPi公式から、Raspbian(Jessie)のイメージを取得し、SDカードに書き込めばOKです。
https://www.raspberrypi.org/downloads/raspbian/
2015/11/21版のフルを使いました。

そしてChromium他のインストール、と進むわけですが…

続きの手順は折り返しにて。
Distribute相互依存。
posted by ダイ&エイ at 07:36 | Comment(0) | TrackBack(0) | コンピュータ:ソフトウェア | このブログの読者になる | 更新情報をチェックする

2016年01月05日

[小さな機械の相棒]RaspberryPi2+Raspbianでゲームストリーミングを楽しむ

RaspberryPi2でゲームストリーミングを楽しむ

Author:試作E型
-----


エイです。
ちょっと時間が空いたので、手付かずだったRaspberryPi2関連のネタを。

昨年(元々はGTX960を購入した時)から実験してみたいなぁと思っていたけど、なかなか実験できなかった、
「RaspberryPi2上で、ゲームストリーミングで遊べないか」
のを確認できたので、手順や結果などを残しておきます。

なお、サウンド(ALSA)はアナログ固定にしないとイヤホンジャックからは出力されなかったので、参考手順を併記しておきます。
Raspbianを動かしていた時には設定していたはずだけど、長いこと弄っていなかったので忘れていました。

参考:Raspberry Piで音を出すまで
http://qiita.com/plsplsme/items/57b8d79d3725497fd69b

ターミナルから以下のコマンドを実行する。
$ amixer cset numid=3 1


これで出力をイヤホンジャックに固定できます。

■手順
参考:http://embedded-software-architecture.com/?page_id=140

今回は設定していないが、ゲームパッドの設定方法もある様子。
(パッド推奨ゲームは入れていないため)
ゲームパッドそのものは、XBox360用コントローラが自動で認識された。

前提条件:
・Raspbian(Wheezy)が起動するところまでは完了しているものとする。
Raspbianのセットアップ手順については省略。初期設定が完了していればOK。
なお、Raspbian(Jessie)では最終動作まで確認できなかったが、手順は記載しておく。
・ホストPCに最新版(2016/01/05の実験時点では358.91)のGeForce Experience+ドライバがインストールされていること。

1. MoonLightのインストールの準備
/etc/apt/sources.listに、以下の1行を追加。
deb http://archive.itimmer.nl/raspbian/moonlight wheezy main


Jessieの場合は以下。
deb http://archive.itimmer.nl/raspbian/moonlight jessie main


2. MoonLightのインストール
ターミナルで以下を実行
$ sudo apt-get update
$ sudo apt-get install moonlight-embedded

※証明されていない云々と言われるが続行する。

3. MoonLightを使う
ターミナルで以下を実行(X Windowを起動したままでOK)
$ moonlight pair <ホストPCのIPアドレス>


ペアリング用のPINコード(4桁)がターミナルに表示されるので、それをホストPCのGeForce Experienceの画面で入力し、ペアリングを完了させる。

ペアリング完了後、
$ moonlight stream <ホストPCのIPアドレス>

で実際にゲームを実行する。
デフォルトではSteamのBigPictureモードになる、はず。
画面はフレームバッファに描画されるので、Xとは干渉しない。
また、キーボードとマウスがデフォルトの入力デバイスになっている。

なお、対応ゲームの確認は
$ moonlight list <ホストPCのIPアドレス>


直接起動するゲームの選択は
$ moonlight stream <ホストPCのIPアドレス> -app "<listで表示されたゲーム名>"

※ゲーム名は長くてもフルで入力すること。コピー&ペーストが確実。
(MGSVがかなり長い。Fallout4は短かいので楽)

ホストPCからもサウンドを出したい場合は
$ moonlight stream <ホストPCのIPアドレス> -localaudio


詳しくは説明書(https://github.com/irtimmer/moonlight-embedded/wiki/Usage)やmoonlightのヘルプを参照のこと。


■結果
SteamのbigPictureモードから、MetalReaperOnline/MGSV/RoboCraft等を操作し、プレイ可能なことを確認しました。
動作はTegra250を積んでいるIconiaTab A200のLimeLightと比較して、かなり軽量。
Androidだからと言う可能性や、通信の所に関係しているかも。
(A200は802.11g(Max54Mbps)、RaspberryPi2は有線(100Mbps))

なお、クライアント側の画面解像度/フレームレートは1280x720(HD)/60FPS。これはデフォルト、かつRaspberryPi2に接続しているディスプレイ(1280x1024)の横解像度が一杯一杯のため。
クライアント側が1920x1080(FHD)/60FPSだとどうなるかは未確認。
ホストの画面解像度は、フルスクリーンモードでプレイしている場合、勝手に縮小して表示してくれるので、特に気にする必要はないです。


結果、冒頭の写真のような感じになりました。
音にほんの少しの遅延が出る場合があることを除き、ローカルで実行しているのとほぼ変わらない操作が可能でした。
少なくともHD解像度ならまったく問題なくプレイできます。
RaspberryPi2本体については、多少OCしているとは言え、ここまで実用範囲とは思ってなかったのでちょっと嬉しかったです。

posted by ダイ&エイ at 16:30 | Comment(1) | TrackBack(0) | コンピュータ:ソフトウェア | このブログの読者になる | 更新情報をチェックする