ノーゲーム・ノーライフ[games on linux] - kernel/vm北陸1

92

Upload: yuki-mizuno

Post on 14-Jun-2015

575 views

Category:

Technology


1 download

DESCRIPTION

1. iCloud同期のKeynoteでスライドが消えてしまいましたツイート 経緯は、 2. Chromeと間違えてKeynoteを終了→再度開くとなにやら不穏なダイアログ 3. スライド消えた\(^o^)/ 4. 編集もできなくった\(^o^)/ 5. すばらしいiCloudですね! 未完の部分が多いですが温かい目でご鑑賞お願いいたします。 6. ノーゲーム・ノーライフ←サブタイトル 「Games on Linux」←メインタイトル 7. about me 8. 日々こんなところでカーネル開発しています紹介 9. 今やってる10の課題 10. ゲームとは 11. SteamOS 12. SteamOSとは 13. 対応ゲームが多い 14. 知っているあんな名作もLinuxで動く! 15. 第一部:巷で話題のSteamOSを調査した件 16. インストール 17. システム要求 18. 今回用意したシステム構成 19. - 21. インストール過程  メディアを用意したらインストールは簡単  全自動でゲームができる環境が整う 22. SteamOSのいいところ 23. ダメなところ 24. カーネルを調べる  いつもみなさんが最初にやることです 25. - 26.  Steamアカウントがないとデスクトップへのアクセスができないようなので  Ctrl+Alt(Meta)+F4でttyにアクセスしてuser: desktop, password: でアクセス 27. 見慣れたDebian風Desktop 28. カーネルバージョン 29. Debian Wheezyとの違い 30. kernel-3.10.11との変更点 31. 主な変更点 32. 気になった変更点 33. 第二部:普通の大学生が【Linuxゲーム】やってみた 34. 要するに本当にSteamOSでゲームを楽しめるかの調査 35. ゲームを楽しむための必需品コントローラー 36. Steamのコントローラー対応状況 37.- 39. SteamOSが対応しているかカーネルに聞いてみる 40. CONFIG_HID_SONY PS2/3/4のコントローラーをLinuxでサポートするためのオプション 41. moduleとして有効化されている 42. SteamOSに接続 43. dmesgで確認→認識してる 44. - 45. ゲーム画面でも動作した! 46. ゲームを楽しむための必需品ヘッドセット 47. - 50. ※スライド参照 51. - 54. 実際に認識するかどうか→認識した! 55. ゲームを楽しむための必需品ゲーミングライト 56. ゲーミングライトとは 57. SteamOSでも使いたい! 58. Windowsで動作させてみる→HIDデバイスとしてドライバが導入される 59. - 60. HIDとは 61. Linux × USB HID 62. /dev/hidrawX 63. /dev/hidrawXとは  /dev/hidrawXを使えばLinuxで動かせるっぽい! 64. - 68. USBパケット調査 (詳しく説明する予定でした) 69. SteamOSに接続  ↓ 70. /dev/hidrawXをしらべる  ↓ 71. 現れない 72. lsusbで接続を確認 ※画像追加しました。  Saitek社製のデバイスとして認識 73. dmesgで確認  エラーがおきてる 74. カーネルに聞いてみる 75. - 76. Saitekの名のつくオプション発見 77. CONFIG_HID_SAITEK  Saitek社製のコントローラーモジュール  HIDに準拠してないデバイスのためのパッチみたいなもん  ゲーミングライトには非対応 78. HID仕様書を見てみる  Interrupt Inは必須となっているが、このゲーミングライトには搭載されていない機能となっている  故にHIDに準拠していない 79. ということは... 80. みんな死ぬしかないじゃない!! 81. - 86. いろいろつくってSteamOSに対応させました 87. デモ動画 88. 第三部: 89. 復旧に時間かかりすぎて準備できなかったことの説明  次回以降への目標 90. まとめ 91. カーネル開発しようず 92. ライセンス

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