Transcript
Page 1: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 2: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 3: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 4: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 5: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

ておくれ

Page 6: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 7: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

About Me• Yuki Mizuno(みっきー)

• 職種:大学生

• 趣味:パケット観察

• Seccamp2013 NW

• coinsカーネル実験中

「」

Page 8: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 9: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

【一つ】カーネルのコンパイルとパラメタの設定 【二つ】カーネルのリモート・デバッグ 【三つ】システムコールの追加 【四つ】デバイス・ドライバの作成 【五つ】/proc ファイル・システムの作成 【六つ】定期的な仕事 【七つ】ファイルシステムの追加 【八つ】ユーザレベルでのファイルシステムの追加 【九つ】その他 【十】別のオペレーティングシステムでの実験

Page 10: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

ゲームon Linux「」

「 」

Page 11: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOS© Valve Corporation

Page 12: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOS

• Valve社が開発 • Debian GNU/Linuxがベース • 現在ベータ版 • 2014年中に登場するらしい • 自由なソフトウェア[要出典]

Page 13: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

対応ゲームが多い

Page 14: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 15: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOSに関して いろいろ調べてみた件

Page 16: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

インストール

Page 17: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

システム要求

!

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

Page 18: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

システム構成

!

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

Page 19: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

インストールする

Page 20: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

インストールする

Page 21: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

インストールする

Page 22: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOSのいいところ

• GPUのドライバを自動インストールしてくれる • ゲームできる環境が一発でできあがる • Linuxだと思わせない完成度

Page 23: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOSのダメなところ

• 某***dows Updateを思い出させる起動時の自動アップデート

• 動かないSteamゲームがあるところ

Page 24: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルを調べる

Page 25: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルを調べる

Page 26: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルを調べる

Page 27: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルを調べる

Page 28: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルを調べる

Page 29: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルバージョン

Linux 3.2.57 Linux 3.10.112014/7/7 1:00時点の最新版比較

Page 30: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルの変更点

https://gist.github.com/mzyy94/c5b8d99e0d1f6934ca52

Page 31: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルの変更点

• 沢山のデバイスを扱えるようにドライバが有効に • デバッグ用にハイパーバイザーサポートが有効に • defconfigで’y’のものが多数’m’に変えられている

Page 32: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

気になった点

CONFIG_NR_CPUS=512

CONFIG_EFI_STUB=y

CONFIG_FIREWIRE=m

CONFIG_SECURITY_TOMOYO=y

# CONFIG_SECURITY_SELINUX_DISABLE is not set

Page 33: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

普 通 の 大 学 生 が

【Linuxゲーム】 やっ て みた 。  

Page 34: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOSでゲームを楽しめるかの調査

Page 35: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

コントローラー

Page 36: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

Steam対応状況

• Steamにはコントローラー対応ゲームがたくさん • 操作性高くよい • ゲームしてる感がある • Xbox 360 Controller / Dualshock 3などに対応

Page 37: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルに聞いてみる

Page 38: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 39: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 40: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

CONFIG_HID_SONY

• PS3コントローラーサポート • Linux-2.6.28で追加 • JoyStickとして/dev/input/jsXにデバイスができる

Page 41: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 42: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOSに接続

Page 43: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 44: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

コントローラー接続前

Page 45: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

コントローラー接続後

Page 46: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

ヘッドセット

Page 47: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 48: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

※ておクラウドに召されました

Page 49: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

ヘッドセット on SteamOS

• USBヘッドセットの利用は可能

• Steamで利用するためには起動時に刺さってないとだめ

• ホットプラグ不可

Page 50: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

どのようなモジュールか

• USBヘッドセットが接続されたらデバイス名を‘Build-in Audio’に変える

• 子供騙しのようだけど実際動く

Page 51: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 52: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 53: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 54: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 55: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

ゲーミングライト

Page 56: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

amBX Gaming Light

• 間接照明で臨場感を演出 • 約1677万色を照射 • 2個セット • 対応OS:Windows XP/7 • 画面の色をごにょごにょしていい感じに照らしてる

参考:4Gamer.net ― Mad Catzの「ゲーマー向け間接照明」レビュー http://www.4gamer.net/games/097/G009735/20130125084/

Page 57: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOSでも使いたい

Page 58: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 59: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

HID仕様

• USB.orgにて策定

• 2001年生まれ

• HIDデバイスの満たすべき仕様

• http://www.usb.org/developers/devclass_docs/HID1_11.pdf

Page 60: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

USB HID 1.11

• URB*転送でのデータ交換を定めた規格 • デバイスとの割り込み送受信などを定義 • プロトコル中のIDなどの定義

*URB: USB Request Block

Page 61: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

USB HID ✖ Linux

Page 62: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

/dev/hidrawX

Page 63: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

/dev/hidrawX

• Linux-2.6.24で追加 • HIDデバイスをお手軽に操作できる • 一般的でないのHIDデバイス操作向け

Page 64: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

USBパケット調査

Page 65: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

USBパケット調査

• USBPcap.exeを利用する • Snoopy Proを利用する • VMwareのログを利用する

Page 66: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 67: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 68: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 69: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

SteamOSに接続

Page 70: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

/dev/hidraw0 ・・・ キーボード /dev/hidraw1 ???????

Page 71: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

/dev/hidrawXが作成されない

Page 72: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

lsusbしたらSaitek社製のデバイスとして 認識していた画像

※ておクラウドに召されました

追加:SteamOS on VMware → でlsusbしてチェックしました。

Page 73: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 74: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

カーネルに聞いてみる

Page 75: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 76: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 77: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

CONFIG_HID_SAITEK

• Saitek社のコントローラー用config • HID仕様に準拠していないのを解決するもの • 型番PS1000のコントローラーにのみ対応 • amBX Gaming Lightには非対応

Page 78: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

HID1_11.pdf (p20)

Page 79: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

ということは…

• Cyborg amBX Gaming Light ≠ HIDデバイス • 単なるデータ転送のみをサポートしたUSB機器 • 仕様に従わないダメな例 • スペシャルファイルが作成されない • /dev/hidrawXが作成されない

Page 80: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

ス ペ シ ャ ル フ ァ イ ル が な い な ら ・ ・ ・

作 る し か な い じ ゃ な い !!

Page 81: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

作りました

Page 82: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

ライブラリがない

Page 83: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

作りました

Page 84: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

アプリがない

Page 85: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

作りました

Page 86: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

つくったもの

• ドライバ • ambxlight.ko

• ライブラリ • libambxlight.so

• アプリケーション • ambxtest.o

Page 87: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

https://www.youtube.com/watch?v=SWssSmWJDYk

Page 88: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Page 89: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

※復旧できませんでした

• USBのお話する予定だった

• HIDとかUVCとか

• 実は進捗もやばかった

• 次回以降に発表させていただきます(ごめんなさい)

Page 90: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

まとめ

Page 91: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

楽しくゲームするために カーネル開発しよう

Page 92: ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1

• ノーゲームノーライフ画像 パグリックドメイン

• 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


Top Related