ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
-
Upload
yuki-mizuno -
Category
Technology
-
view
575 -
download
1
description
Transcript of ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
ておくれ
About Me• Yuki Mizuno(みっきー)
• 職種:大学生
• 趣味:パケット観察
• Seccamp2013 NW
• coinsカーネル実験中
「」
【一つ】カーネルのコンパイルとパラメタの設定 【二つ】カーネルのリモート・デバッグ 【三つ】システムコールの追加 【四つ】デバイス・ドライバの作成 【五つ】/proc ファイル・システムの作成 【六つ】定期的な仕事 【七つ】ファイルシステムの追加 【八つ】ユーザレベルでのファイルシステムの追加 【九つ】その他 【十】別のオペレーティングシステムでの実験
ゲームon Linux「」
「 」
SteamOS© Valve Corporation
SteamOS
• Valve社が開発 • Debian GNU/Linuxがベース • 現在ベータ版 • 2014年中に登場するらしい • 自由なソフトウェア[要出典]
対応ゲームが多い
SteamOSに関して いろいろ調べてみた件
インストール
システム要求
!
Processor: Intel or AMD 64-bit capable processor Memory: 4GB or more RAM Hard Drive: 500GB or larger disk Video Card: NVIDIA graphics card (AMD and Inter graphics support coming soon!) Additional: UEFI boot support USB port for installation
システム構成
!
Processor: Intel Core i5-2500S Memory: 8GB DDR3-1333 Hard Drive: 2TB HDD Video Card: NVIDIA GeForce GTX 750 Ti (AMD and Inter graphics support coming soon!) Additional: UEFI boot support USB port for installation
インストールする
インストールする
インストールする
SteamOSのいいところ
• GPUのドライバを自動インストールしてくれる • ゲームできる環境が一発でできあがる • Linuxだと思わせない完成度
SteamOSのダメなところ
• 某***dows Updateを思い出させる起動時の自動アップデート
• 動かないSteamゲームがあるところ
カーネルを調べる
カーネルを調べる
カーネルを調べる
カーネルを調べる
カーネルを調べる
カーネルバージョン
Linux 3.2.57 Linux 3.10.112014/7/7 1:00時点の最新版比較
カーネルの変更点
https://gist.github.com/mzyy94/c5b8d99e0d1f6934ca52
カーネルの変更点
• 沢山のデバイスを扱えるようにドライバが有効に • デバッグ用にハイパーバイザーサポートが有効に • defconfigで’y’のものが多数’m’に変えられている
気になった点
CONFIG_NR_CPUS=512
CONFIG_EFI_STUB=y
CONFIG_FIREWIRE=m
CONFIG_SECURITY_TOMOYO=y
# CONFIG_SECURITY_SELINUX_DISABLE is not set
普 通 の 大 学 生 が
【Linuxゲーム】 やっ て みた 。
SteamOSでゲームを楽しめるかの調査
コントローラー
Steam対応状況
• Steamにはコントローラー対応ゲームがたくさん • 操作性高くよい • ゲームしてる感がある • Xbox 360 Controller / Dualshock 3などに対応
カーネルに聞いてみる
CONFIG_HID_SONY
• PS3コントローラーサポート • Linux-2.6.28で追加 • JoyStickとして/dev/input/jsXにデバイスができる
SteamOSに接続
コントローラー接続前
コントローラー接続後
ヘッドセット
※ておクラウドに召されました
ヘッドセット on SteamOS
• USBヘッドセットの利用は可能
• Steamで利用するためには起動時に刺さってないとだめ
• ホットプラグ不可
どのようなモジュールか
• USBヘッドセットが接続されたらデバイス名を‘Build-in Audio’に変える
• 子供騙しのようだけど実際動く
ゲーミングライト
amBX Gaming Light
• 間接照明で臨場感を演出 • 約1677万色を照射 • 2個セット • 対応OS:Windows XP/7 • 画面の色をごにょごにょしていい感じに照らしてる
参考:4Gamer.net ― Mad Catzの「ゲーマー向け間接照明」レビュー http://www.4gamer.net/games/097/G009735/20130125084/
SteamOSでも使いたい
HID仕様
• USB.orgにて策定
• 2001年生まれ
• HIDデバイスの満たすべき仕様
• http://www.usb.org/developers/devclass_docs/HID1_11.pdf
USB HID 1.11
• URB*転送でのデータ交換を定めた規格 • デバイスとの割り込み送受信などを定義 • プロトコル中のIDなどの定義
*URB: USB Request Block
USB HID ✖ Linux
/dev/hidrawX
/dev/hidrawX
• Linux-2.6.24で追加 • HIDデバイスをお手軽に操作できる • 一般的でないのHIDデバイス操作向け
USBパケット調査
USBパケット調査
• USBPcap.exeを利用する • Snoopy Proを利用する • VMwareのログを利用する
SteamOSに接続
/dev/hidraw0 ・・・ キーボード /dev/hidraw1 ???????
/dev/hidrawXが作成されない
lsusbしたらSaitek社製のデバイスとして 認識していた画像
※ておクラウドに召されました
追加:SteamOS on VMware → でlsusbしてチェックしました。
カーネルに聞いてみる
CONFIG_HID_SAITEK
• Saitek社のコントローラー用config • HID仕様に準拠していないのを解決するもの • 型番PS1000のコントローラーにのみ対応 • amBX Gaming Lightには非対応
HID1_11.pdf (p20)
ということは…
• Cyborg amBX Gaming Light ≠ HIDデバイス • 単なるデータ転送のみをサポートしたUSB機器 • 仕様に従わないダメな例 • スペシャルファイルが作成されない • /dev/hidrawXが作成されない
ス ペ シ ャ ル フ ァ イ ル が な い な ら ・ ・ ・
作 る し か な い じ ゃ な い !!
作りました
ライブラリがない
作りました
アプリがない
作りました
つくったもの
• ドライバ • ambxlight.ko
• ライブラリ • libambxlight.so
• アプリケーション • ambxtest.o
https://www.youtube.com/watch?v=SWssSmWJDYk
※復旧できませんでした
• USBのお話する予定だった
• HIDとかUVCとか
• 実は進捗もやばかった
• 次回以降に発表させていただきます(ごめんなさい)
まとめ
楽しくゲームするために カーネル開発しよう
• ノーゲームノーライフ画像 パグリックドメイン
• http://commons.wikimedia.org/wiki/File:No-Game-No-Life-anime-logo.svg
• タックス画像 CC BY-SA 3.0
• http://commons.wikimedia.org/wiki/File:Linux_Logo_in_Linux_Libertine_Font.svg
• debianロゴ パブリックドメイン
• http://commons.wikimedia.org/wiki/File:Ardebian_logo.svg
• 地球の画像 パブリックドメイン
• http://commons.wikimedia.org/wiki/File:View_from_the_SR-71_Blackbird.jpg
• イプシロン星の画像 パブリックドメイン
• http://commons.wikimedia.org/wiki/File:NASA-JPL-Caltech_-_Double_the_Rubble_(PIA11375)_(pd).jpg
• SteamOSロゴ ©2014 Valve Corporation. All rights reserved.
• http://store.steampowered.com/livingroom/SteamOS/
• Steamゲーム画像、動画 ©2014 Valve Corporation. All rights reserved.
• http://www.valvesoftware.com/videopolicy.html