Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ておくれ
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 C...
システム構成
!
Processor: Intel Core i5-2500S
Memory: 8GB DDR3-1333
Hard Drive: 2TB HDD
Video Card:NVIDIA GeForce GTX 750 Ti
(AM...
インストールする
インストールする
インストールする
SteamOSのいいところ
• GPUのドライバを自動インストールしてくれる
• ゲームできる環境が一発でできあがる
• Linuxだと思わせない完成度
SteamOSのダメなところ
• 某***dows Updateを思い出させる起動時の自動

アップデート
• 動かないSteamゲームがあるところ
カーネルを調べる
カーネルを調べる
カーネルを調べる
カーネルを調べる
カーネルを調べる
カーネルバージョン
Linux 3.2.57 Linux 3.10.11
2014/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 i...
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 Cat...
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
• h...
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
Upcoming SlideShare
Loading in …5
×

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

3,017 views

Published on

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. ライセンス

Published in: Technology
  • Be the first to comment

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

  1. 1. ておくれ
  2. 2. About Me • Yuki Mizuno(みっきー) • 職種:大学生 • 趣味:パケット観察 • Seccamp2013 NW • coinsカーネル実験中 「 」
  3. 3. 【一つ】カーネルのコンパイルとパラメタの設定 【二つ】カーネルのリモート・デバッグ 【三つ】システムコールの追加 【四つ】デバイス・ドライバの作成 【五つ】/proc ファイル・システムの作成 【六つ】定期的な仕事 【七つ】ファイルシステムの追加 【八つ】ユーザレベルでのファイルシステムの追加 【九つ】その他 【十】別のオペレーティングシステムでの実験
  4. 4. ゲーム on Linux 「 」 「 」
  5. 5. SteamOS © Valve Corporation
  6. 6. SteamOS • Valve社が開発 • Debian GNU/Linuxがベース • 現在ベータ版 • 2014年中に登場するらしい • 自由なソフトウェア [要出典]
  7. 7. 対応ゲームが多い
  8. 8. SteamOSに関して いろいろ調べてみた件
  9. 9. インストール
  10. 10. システム要求 ! 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
  11. 11. システム構成 ! 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
  12. 12. インストールする
  13. 13. インストールする
  14. 14. インストールする
  15. 15. SteamOSのいいところ • GPUのドライバを自動インストールしてくれる • ゲームできる環境が一発でできあがる • Linuxだと思わせない完成度
  16. 16. SteamOSのダメなところ • 某***dows Updateを思い出させる起動時の自動
 アップデート • 動かないSteamゲームがあるところ
  17. 17. カーネルを調べる
  18. 18. カーネルを調べる
  19. 19. カーネルを調べる
  20. 20. カーネルを調べる
  21. 21. カーネルを調べる
  22. 22. カーネルバージョン Linux 3.2.57 Linux 3.10.11 2014/7/7 1:00時点の最新版比較
  23. 23. カーネルの変更点 https://gist.github.com/mzyy94/c5b8d99e0d1f6934ca52
  24. 24. カーネルの変更点 • 沢山のデバイスを扱えるようにドライバが有効に • デバッグ用にハイパーバイザーサポートが有効に • defconfigで y のものが多数 m に変えられている
  25. 25. 気になった点 CONFIG_NR_CPUS=512 CONFIG_EFI_STUB=y CONFIG_FIREWIRE=m CONFIG_SECURITY_TOMOYO=y # CONFIG_SECURITY_SELINUX_DISABLE is not set
  26. 26. SteamOSでゲームを 楽しめるかの調査
  27. 27. コントローラー
  28. 28. Steam対応状況 • Steamにはコントローラー対応ゲームがたくさん • 操作性高くよい • ゲームしてる感がある • Xbox 360 Controller / Dualshock 3などに対応
  29. 29. カーネルに聞いてみる
  30. 30. CONFIG_HID_SONY • PS3コントローラーサポート • Linux-2.6.28で追加 • JoyStickとして/dev/input/jsXにデバイスができる
  31. 31. SteamOSに接続
  32. 32. コントローラー接続前
  33. 33. コントローラー接続後
  34. 34. ヘッドセット
  35. 35. ※ておクラウドに召されました
  36. 36. ヘッドセット on SteamOS • USBヘッドセットの利用は可能 • Steamで利用するためには起動時に刺さってない とだめ • ホットプラグ不可
  37. 37. どのようなモジュールか • USBヘッドセットが接続されたらデバイス名を
 Build-in Audio に変える • 子供 しのようだけど実際動く
  38. 38. ゲーミングライト
  39. 39. amBX Gaming Light • 間接照明で臨場感を演出 • 約1677万色を照射 • 2個セット • 対応OS:Windows XP/7 • 画面の色をごにょごにょしていい感じに照らしてる 参考:4Gamer.net ― Mad Catzの「ゲーマー向け間接照明」レビュー http://www.4gamer.net/games/097/G009735/20130125084/
  40. 40. SteamOSでも使いたい
  41. 41. HID仕様 • USB.orgにて策定 • 2001年生まれ • HIDデバイスの満たすべき仕様 • http://www.usb.org/ developers/devclass_docs/ HID1_11.pdf
  42. 42. USB HID 1.11 • URB*転送でのデータ交換を定めた規格 • デバイスとの割り込み送受信などを定義 • プロトコル中のIDなどの定義 *URB: USB Request Block
  43. 43. USB HID ✖ Linux
  44. 44. /dev/hidrawX
  45. 45. /dev/hidrawX • Linux-2.6.24で追加 • HIDデバイスをお手軽に操作できる • 一般的でないのHIDデバイス操作向け
  46. 46. USBパケット調査
  47. 47. USBパケット調査 • USBPcap.exeを利用する • Snoopy Proを利用する • VMwareのログを利用する
  48. 48. SteamOSに接続
  49. 49. /dev/hidraw0 ・・・ キーボード /dev/hidraw1 ???????
  50. 50. /dev/hidrawXが作成されない
  51. 51. lsusbしたらSaitek社製のデバイスとして 認識していた画像 ※ておクラウドに召されました 追加:SteamOS on VMware → でlsusbしてチェックしました。
  52. 52. カーネルに聞いてみる
  53. 53. CONFIG_HID_SAITEK • Saitek社のコントローラー用config • HID仕様に準拠していないのを解決するもの • 型番PS1000のコントローラーにのみ対応 • amBX Gaming Lightには非対応
  54. 54. HID1_11.pdf (p20)
  55. 55. ということは… • Cyborg amBX Gaming Light HIDデバイス • 単なるデータ転送のみをサポートしたUSB機器 • 仕様に従わないダメな例 • スペシャルファイルが作成されない • /dev/hidrawXが作成されない
  56. 56. ス ペ シ ャ ル フ ァ イ ル が な い な ら ・ ・ ・ 作 る し か な い じ ゃ な い !!
  57. 57. 作りました
  58. 58. ライブラリがない
  59. 59. 作りました
  60. 60. アプリがない
  61. 61. 作りました
  62. 62. つくったもの • ドライバ • ambxlight.ko • ライブラリ • libambxlight.so • アプリケーション • ambxtest.o
  63. 63. https://www.youtube.com/watch?v=SWssSmWJDYk
  64. 64. ※復旧できませんでした • USBのお話する予定だった • HIDとかUVCとか • 実は進 もやばかった • 次回以降に発表させていただきます(ごめんなさい)
  65. 65. まとめ
  66. 66. 楽しくゲームするために カーネル開発しよう
  67. 67. • ノーゲームノーライフ画像 パグリックドメイン • 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

×