カテゴリー別アーカイブ: ハードウェア

GPD Winを購入

ゲーム向け小型PCという触れ込みのGPD Winを購入しました。実際には昨年末頃に届いていたのですが、あまり設定が完了していません。この手の小型PCを購入するのは、VAIO Type U以来です。

今回購入するにあたり、Amazon, AliExpressなど選択肢は複数あったのですが、geekbyingを利用しました。Amazonよりは安かったことと、実際にgeekbyingで購入した人のblog記事を見かけたのが選択の理由です。

購入時の入力フォームが日本語だったため、「住所も日本語で書いたほうがいいのかな?」と思い日本語で一通り書いてフォームを送信したところ、数日してgeekbyingから「英語での住所を教えてくれ」というメールがきました。幸いにしてSPF, DKIMが適切だったので、フィッシングではなかろうという判断をして返信を行い、最終的には無事製品が届きました。タイムラインは以下のような感じです。

  • 2016/11/29 webからオーダーを実施
  • 2016/11/29 $329.00 USDの決済がPayPalで発生
  • 2016/11/30 住所の英語表記を求めるメール受信
  • 2016/12/01 メールの返信
  • 2016/12/10 発送の連絡メール受信 (到着に15~30営業日必要と記載)
  • 2016/12/24 自宅に不在連絡票が届く
  • 2016/12/27 再配達の手配をし受領

現状Windows10のまま使っていますが、USBメモリにDebianを入れてそちらからも起動できるようにしようと思っています。少なくともmulti-arch(i386/amd64) stretch alpha8の起動はできたのでインストールも問題はないと思われます。個々のデバイス認識に関しては調査が必要そうですが。

ゲーム機としての利用を考えていたので、Steamクライアントもインストールした状態です。少なくとも、以下のゲームは普通にプレイできています。

  • DoDonPachi Resurrection (怒首領蜂 大復活)
  • DARIUSBURST Chronicle Saviours
  • Skyrim (Special Editionではない方)

Skyrim Special Editionは実行バイナリが64bit化された点と、GPU用のメモリをメインメモリ4GBから割り当てる点が厳しいようで、自分の手元では正常に動作しませんでした。

Native Debianを動かした時にどれぐらいのパフォーマンスが出るのかは気になるところなので、その環境の整備を進めたいと思っています。

Google認証システムに端末を追加した

最近新しいスマートフォンを購入しました。モバイル回線としてIIJmioのファミリーシェアプランを契約しているので、SIMは3枚あります。USBドングル用に使っているSIMをとりあえず差し替えて使ってみることにしました。

自分のスマートフォン利用の一つにGoogle Authenticator(Google認証システム)があります。これは外部のWebサービス(github等)での2要素認証に利用できます。RFC 6238に準拠しているサービスであれば何でも利用できるようです。

自分のスマホ運用は基本2台(音声通話用・データ通信用)なのですが、この機会に2台でGoogle Authenticatorを使いたいため、別途端末を追加する方法を探したのですが、「あとからの追加」というのはできないようです。新規登録であれば同時に複数台登録は可能なようなので、以下の手順をとりました。

  • github側の2段階認証停止
    • personal settings ->security
    • 念の為recovery codesを記録しておく
    • Two-factor authenticationをOffにする
  • 旧端末側がらgithubの認証情報を削除
  • github上で再度2段階認証を有効化する
  • 画面に表示されたQRコードを新旧端末で確認、登録
  • 同程度のタイミングで両端末にgithub上の認証コードを入力
    • 時間切れに注意。切れそうになったら次のコードが出るまで待つ
  • 完了

基本的に常に身に着けているデバイスではありますが、これ以外にも重要なデータ(Chromeのパスワードマネージャー情報など)が入っているものですから紛失などには気をつけましょう。

なお、新しく購入したデバイスはnextbitのrobinです。+Styleで購入しました。

Nexus5の電源周りで故障っぽい挙動と復旧まで

先週末、Google Play版Nexus5が使用不能に陥りました。最終的に復旧できたので、記録を残しておきます。

問題が発生する前の状況

  • バッテリー残量50%程度
  • AnkerのUSB充電器に接続して充電マークがついたことを確認
  • そのまま就寝

不具合の症状

  • 電源が入らない
    • 10〜20秒電源ボタンを長押ししても何も起きない
    • ボリュームボタン両方+電源ボタン長押しも同様
  • USBケーブルを指しても充電マークが出ない
    • 他の機材に挿して給電できることは確認

対処

  • Google公式の手順にしたがってみる
    • 純正アダプタ・ケーブルはもはやどれかわからない状態なので、Kindle Fireのものを使って数分充電+電源ボタン長押し→改善せず
    • 充電をPCのUSB端子から10分程度充電、一度ケーブルを抜いたあと1秒ほど待って再度接続→バッテリーアイコンは表示されず
  • 20〜30秒ほど電源ボタンを押して見る、ボリュームボタン+電源ボタンを押して見る→反応なし
  • 再度AnkerからUSBケーブルで充電してみる→ここでなぜかバッテリーアイコンが出現
  • 電源ボタンを長押し→無事起動、この時点でバッテリー残量は60%程度

考察

何がなんだかよくわかりませんでした。問題発生の前後のバッテリー残量を見る限り、完全放電状態になったわけではなさそうです。ブートローダー画面を拝むことは一度もなかったので、その状態に入れたわけでもないです。

特定のバージョンのファームウェアで問題が起きることはあるようですが、これに当たったわけでもないようです。とにかく電源周りをいじりつつ給電したりしなかったりしたらなんとなく復旧したという感じです。

復旧後、速やかにバックアップをとりました。以前はrsync backup for Androidというdropbear+rsyncが動くツールがあったのですが、今はストアから姿をけしているようです。仕方がないのでRoot Explorerでデータフォルダをsmb経由でコピーするという手法をとりました。

追記(2016/08/24)

最近再発して、今度は以下の状況と手順で復帰しました。

  • 状態: 電源が入らない、充電されない
    • 電源ボタン長押し→動作せず
    • PCに接続→動作せず
  • ボリュームボタン+電源ボタン長押し
    • 充電器より充電→充電表示が出る
    • 電源ボタン長押し→起動、この時のバッテリー残量10%程度

2016年4月FSIJ月例会 BBG-SWD

先日FSIJ月例会がありました。タイトルは「SWDプログラマの決定版 BBG-SWD」です。

一口でまとめると、ARMによるSWD(Serial Wire Debug)をBeagleBone Green上で使えるようにしたという話でした。

そもそもの背景には、gniibeさんが販売しているハードウェアFST-01FSM-55の製造過程があります。実際にハードウェアの製造を行うSeeed Studioでは、ファームウェアの書き込みにST-Link/V2というJTAGデバッガを、Windows上で動作するST Micro提供のソフトウェアで使っているという問題があります。ファームウェア書き込み部分も自由ソフトウェア、ハードウェアで置き換えることを目的としているそうです。これによって、”Respects Your Freedom Hardware product“の認証を取得する資格が得られるようです。ST Microのプロプライエタリなソフトウェアを介さないので、その部分でマルウェアを仕込まれるような可能性も低減できます。

ソフトウェアのリポジトリはhttp://git.gniibe.org/gitweb/?p=bbg-swd.gitにあります。この中には、BeagleBone Greenのbone-kernelと呼ばれる種類のLinux kernelに含まれるPRUSS(Programmable Realtime Unit SubSystem)のドライバ(uio_pruss)を介して動作するプログラムと、それをOpenOCDで利用可能にするためのOpenOCDへのパッチから構成されています。

gniibeさんはこの成果をhackster.ioのIoTコンテストに応募したそうですが、ファイナリストまでは選出されたものの受賞には至らなかったとのことでした。

Raspberry PIを筆頭としたワンチップマイコンは広く流行っていますが、こういった低レイヤーまで自由なコンピューティング環境を提供しているものはなかなか無いようです。

有志によるリバースエンジニアリングの成果でそれなりに自由なOrange PIシリーズは、熱に弱いという問題があるそうです。自分も購入したのにここ数ヶ月使っていなかったので知りませんでした…

今の時期暖かくなってきましたが、そんな環境でも動作するというgniibeさんのおすすめはWandboardだそうです。

NAS生存確認

VGAが映らないと思っていたhp microserverは生きていました。単にディスプレイ側のVGAケーブルが緩んでいるというくだらないオチでした。

hpのマニュアルに「接触不良の確認」という項目が複数あったので、もしやと試したら見事にそれがヒットしました。基本的なところをきちんと確認しようと改めて思いました。

もしかするとルーターマシンもマザーボードはまだ生きている可能性が出てきたので、確認したいところです。

PCルーターとNAS死亡

自宅で使っているPCルーターのHDDがは、1か月ぐらい前からSMARTが警告を発するようになったので、入れ替えようとしたら死んでしまいました。ついでにNASも使えなくなりました。

ルーターの中身は普通のmicro ATX、Haswell世代のマシンだったのですが、ファンは回れどBIOS画面まで到達しない状態になってしまいました。PCルーターはいろいろなアプリケーションサーバーを兼ねていたので、死なれてしまうと非常に困ります。

そこでNASとして稼働していたhp microserver(初代)を代理として利用することを考えたのですが、こちらはこちらでVGAからの出力が出なくなってしまいました。電源は入るしヘルスLEDは正しく青が点灯するのですが…

今のところ、HDDをUSB経由で余っていたノートPCに接続してその場をしのいでいます。ごく普通にUSB起動させ、内蔵NICのfirmware+kernel moduleを使うことでなんとかなっています。

マザーボード自体、電源、ケースなど怪しいところが多いので、この機会に新しいパーツをそろえようと思います。特にケースは10年ぐらい使っていると思うので寿命だと思った方がよさそうです。

microserverの方は…一度ばらして各部の接触不良をチェックしつつサポートに連絡して、いざとなったらリモートアクセスカードを追加することを考えています。あるいは単純にケースだけをHDDのエンクロージャ代わりにするのもありかもしれません。

DoCoMo L-02C購入

思うところがあって、USBのLTEモデムDoCoMo L-02Cを購入しました。

現在個人でIIJmioのファミリーシェアプランを使っています。SIMが3枚使えるのですが、今までNexus 5とF-05Eと2つの端末でしか使っていませんでした。

F-05EのrootをとってIIJmioでテザリングできるようにしたのですが、先の年末年始帰省の道中、新幹線で端末経由のUSBテザリングに不満をもったのがきっかけです。USBドングルで通信できればもっとバッテリーが持つのではないかと。

昨日届いたのでファームウェアのアップグレードを試みたのですが、どうもWindows10上だと途中で必ずこけるようで、結局Windows7マシン上でやる羽目になりました。

Linuxからは、usb-modeswitchを使えばごく普通のUSB serialとして認識できるようなので、そこまで使えるようセットアップを進めていきたいところです。

Rowhammer問題私的まとめ

確認できた範囲の情報を記録しておこうと思います。

Rowhammer問題

PC Watchの記事「DRAMスケーリングの課題と打開策」にて解説がなされています。以下当該記事より引用:

Row Hammer問題は、DRAM技術が微細化したことで深刻になり始めたメモリセル間の干渉によって発生するエラーの問題だ。 DRAMメモリセルの同じRow(行)に対する連続したアクセスが、隣接したRowのセルのデータを不安定し、エラーを生じさせる。この問題は2012年頃から話題になり始めた。Intelはメモリ制御に関する特許(Row hammer condition monitoring, US 20140006704 A1など)の中で言及した。そして、今年(2014年)6月のコンピュータアーキテクチャ学会「ISCA (International Symposium on Computer Architecture)」でRow Hammerに関する論文が発表されたことで、コンピュータ業界で広く知られるようになった。

ハードウェアについてあまり詳しくないのですが、高密度化、高速化したメモリで、特定のセル(row)に高い頻度でアクセスすると隣接するrowのメモリ内容が化ける、という現象のようです(Rowhammerの論文PDF)。

攻撃への応用

Googleのセキュリティ対策チーム”Project Zero”が、この現象を応用して攻撃に利用する、という記事を公開しました(“Exploiting the DRAM rowhammer bug to gain kernel privileges“)。応用例として、ChromeのNaClサンドボックス上で本来実行できないはずの命令を実行させたり、カーネルの権限上昇を行う手法が解説されています。

確認手段

userlandで試験を行うツールがgithubで公開されています(“https://github.com/google/rowhammer-test“)。また、memtest86 6.0.0 Free editionにもRowhammerテスト機能が追加されているようです。 rowhammer_testを実行して、実際にエラーが起きると以下のような出力をして停止します。

Iteration 11 (after 16.41s)
  32.448 nanosec per iteration: 1.40176 sec for 43200000 iterations
check
error at 0x7f032bcde188: got 0xffffffffffdfffff
  (check took 0.122344s)
** exited with status 256 (0x100)

自分はデスクトップ(non-ECC)x2、ノート(non-ECC)x1、サーバー(ECC)x1に対して実施してみましたが、以前から挙動が若干怪しげなデスクトップマシン1台でのみ検出されました。 Google Groupsにてある程度報告が上がってきていますが、発生するときは数十~数百程度の試行回数で発生するようです(上記自分の例では11回目で発生)。自分の他のマシンでは1万以上行っても問題が出ませんでした。 自分はVirtualBox環境下でこのテストに引っかかったのですが、GroupsではXen guest上でエラーを検出できたという報告もありました。Cygwinでも確認できるよそうです。

対処方法

2ちゃんねるソフトウェア板のMemtest86スレッドにてメモリアクセスに関するパラメータを試行錯誤している様子があります。

>スケーリングによってDRAMが直面する問題として
>「Refresh」、「Write Recovery Time (tWR)」、「Variable Retention Time (VRT)」の3つを挙げている。

tREFIとtREFIx9, tRFCだけでなくtWRも関係してくるわけか・・・

BIOS等でこれらのパラメータを変える、特にリフレッシュ時間(tREFI)を短くすることで改善が見込めるようです。

ところで、ちょうど今日のタイミングで2chのdatアクセスが閉じられてしまいました(窓の杜の記事:「2ちゃんねる”の配信仕様が本日より変更。専用ブラウザーの更新・乗り換えを」)。そのままでは、Debianパッケージにもなっているnavi2chJDなどが利用できない状態です。Memtest86スレッドのような貴重な情報を得られる場だけに残念です。

追記(2015/3/16)

マシンを再起動する機会があったので、tREFIを設定してみました。設定可能な最小値として800(usec?)に設定したところ、iteratin 3000を超えて問題なくテストが進んでいます(当該マシンのデフォルト値は1700ぐらい)。前回は11回でエラーが発生したことを考えると、かなり改善されているようです。割と思い処理(動画エンコード)を差せているのですが、それほど目立った性能低下も感じられません。

ELECOM UCAM-C0220Fを使う

ふと思うところがあって、安価なUSBカメラを購入しました。エレコムの200万画素で安価(1000円程度)なモデルです。

最終的な目的の用途とは異なるのですが、とりあえず自宅の様子をストリーミングさせてみました。かつてはgstreamerを使っていろいろと余計な苦労をする羽目になったのですが(Google Slideの資料9ページ目参照)、いまどきはffmpeg/libavを使ってVorbis/TheoraやWebMにエンコードし、icecastに配送させるのが簡単だと思います。

このデバイスは映像入力をUVCクラス、音声(マイク)入力をAudioクラスとした複合デバイスに見えます。

 % lsusb
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 8564:1000
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 004: ID 056e:7016 Elecom Co., Ltd
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 % arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=UCAMC0220F
    UCAM-C0220F, USB Audio
    Default Audio Device
sysdefault:CARD=UCAMC0220F
    UCAM-C0220F, USB Audio
    Default Audio Device
front:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    Front speakers
surround40:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    IEC958 (S/PDIF) Digital Audio Output

ffmpegでalsaデバイスとしてこのオーディオデバイスを使うと、定期的に”[alsa @ 0x15fcc00] ALSA buffer xrun.”というエラーが出ます。どうもUSB audioとしての動作が何かおかしいようです。この状態でoggfwdを続けていると、icecast側から接続を切られてしまいます。まあ自分の主目的は映像をとることなのでその用途には十分使えそうです。

積みハード2014

昨年かっただけで触っていないハードウェアやデジタルガジェットがいくつもあるので、反省とともに記録しておきます。

Cloud Flash

PQI Air Cardと同じような製品で、本体はmicroSDカードスロットとWiFi APを持ったSDカードです。デジカメに差して、ワイヤレスで画像などが転送できるというものですが、中身はarmベースのLinuxが入っています。

ちょっといじればtelnetできるようになったり、さらにはPQIのファームウェアを書きこんでPQI Air Cardと全く同じものにすることも可能だそうです(Linux搭載無線LAN内蔵SDカードアダプタCloudFlashが値下げで1,980円!めちゃくちゃ魅力的だし間違った使い方も可能)。

Leap Motion

両手の10本指をトラッキング可能なデバイスです。Linux, Windows, Macのデバイスドライバがあります。インターフェースとしてwebsocketサーバと提供しており、アクセスすれば情報がjsonで取得できるので、割と簡単にアプリケーションが書けます。SDKも各種用意されています。

一応こいつは新年にようやく開封して、Windows上ではある程度使えるようにはしました。Blenderのプラグインをいれることによって、3DモデリングがLeap Motionである程度行えるという、なかなか未来感のあるデバイスです。

Leap MotionとBlenderについては改めて記事にしようと思っています。

USB BB弾ランチャー

かつてUSBミサイルランチャーというものが流行ったことがあるのですが、こちらはBB弾を発射できるものです。上海問屋で安売り(1980円)していた時に買いました。しかし箱から出してすらいません…

多分http://www.donya.jp/item/25694.htmlこれと同じものじゃないかと思うのですが、カメラはついてたかどうかも定かでないです。

他にもあるような気がするのですが、思い出すか見つけ出すかしたらちゃんと触ろうと思います。