eject探検隊@北陸1

57
kernel/VM探検隊@北陸 1 2014/07/12

Upload: ahiru3

Post on 21-Jun-2015

422 views

Category:

Devices & Hardware


2 download

DESCRIPTION

Kernel/VM探検隊@北陸1のLT資料になります。 動画はみれないので、www.ahiru3.netに動画が載ってます。多分

TRANSCRIPT

Page 1: Eject探検隊@北陸1

kernel/VM探検隊@北陸 12014/07/12

Page 2: Eject探検隊@北陸1

今日は( ゜Д゜)ポカーンとなりに来ました

Page 3: Eject探検隊@北陸1

( ゜Д゜)ポカーンとなったところで

Page 4: Eject探検隊@北陸1

(☝ ՞ਊ ՞)☝ウイーンの時間だ!!!!!こ時ウ ら間イ ぁだ| !!ン   の

Page 5: Eject探検隊@北陸1

空へ羽ばたけるくらい高レイヤーなお話をします!!

Page 6: Eject探検隊@北陸1

|\     ___    /‾/  | \ _ / ́՞ ՞`\ /  / |    |   し  |   / \__(    ਊ   }_/

 \_____/  ||   //  m   m

空に羽ばたけ俺のLT

Page 7: Eject探検隊@北陸1

  ☝         ՞  _人人人人人人_

 > (     ) <  ☞  ‾Y^Y^YY^Y^Y‾

!

 ՞       ਊ

Page 8: Eject探検隊@北陸1

自己紹介

名前: あひる 職業: 名古屋工業大学学部3年 出没: Twitter(@ahiru3net) HP: www.ahiru3.net 所属: C0de-mattari Ejectコマンドユーザー会

Page 9: Eject探検隊@北陸1

(☝ ՞ਊ ՞)☝ウイーン

Page 10: Eject探検隊@北陸1

7/4~7/5に開催されたOSC名古屋にて暴れてきました

Page 11: Eject探検隊@北陸1

この勢いでKernel/VM探検隊を

Page 12: Eject探検隊@北陸1

ejectコマンド探検隊にしてしまおう!! ということでやって参りました人生初の北陸

Page 13: Eject探検隊@北陸1

人生初北陸以外は 半分くらい嘘かもしれないのでご安心ください

Page 14: Eject探検隊@北陸1

Eject探検隊@北陸 12014/07/12

Twitter #EjectKaigi2014

Page 15: Eject探検隊@北陸1

ejectIRを作りました 作った経緯等はブログにあるので 興味のある方はどうぞ

Twitter #EjectKaigi2014

Page 16: Eject探検隊@北陸1

って書いて別のネタやろうと思ったんですが、 自分の理解力、知識力の問題で

予定してたネタがことごとく潰えた…

Twitter #EjectKaigi2014

Page 17: Eject探検隊@北陸1

気を取り直して !

ejectIR( ՞ਊ ՞)

=͟ ͟ ͞(͞☞ ՞ਊ ՞=͟ ͟ ͞☞͞☜=͟ ͟ ͞(͞ ՞ਊ ՞☜=͟ ͟ ͞)͞

ヽ( ՞ਊ ՞)ノ三ヽ( ՞ਊ ՞)ノ

( ˘ਊ˘)(☝ ՞ਊ ՞)☝

Twitter #EjectKaigi2014

Page 18: Eject探検隊@北陸1

皆さん興味ありげなので説明します

Twitter #EjectKaigi2014

Page 19: Eject探検隊@北陸1

ejectIRとは

赤外線通過回路の送信部と受信部が このように信号を送受信しています

=͟ ͟ ͞(͞☞ ՞ਊ ՞=͟ ͟ ͞☞͞☜=͟ ͟ ͞(͞ ՞ਊ ՞☜=͟ ͟ ͞)͞めっちゃ信号

送信してるうぅぅぅめっちゃ受信 してるうぅぅぅ

Page 20: Eject探検隊@北陸1

ejectIRとは

その間に何かが置かれたり通過すると…

=͟ ͟ ͞(͞☞ ՞ਊ ՞=͟ ͟ ͞☞͞ (☝ ՞ਊ ՞)☝めっちゃ信号 送信してるうぅぅぅ

あり? 信号…

きてなくね?指痛い…

Page 21: Eject探検隊@北陸1

ejectIRとは

受光できない受信側でリレースイッチが入り、 Raspberry Piに信号を送る

=͟ ͟ ͞(͞☞ ՞ਊ ՞=͟ ͟ ͞☞͞ ( ՞ਊ ՞)☞めっちゃ信号 受光できないよ! らずぴっぴさん!! → RaspberryPi

マジで?! (☝ ՞ਊ ՞)☝ウイーンしないと!!

raspi( ՞ਊ ՞).。o( )

うおおぉぉぉぉぉぉおおおお

Page 22: Eject探検隊@北陸1

ejectIRとは

CD-ROMドライブが(☝ ՞ਊ ՞)☝ウイーンする

(☝ ՞ਊ ՞)☝ウイーン (☝ ՞ਊ ՞)☝ウイーン

raspi( ՞ਊ ՞).。o((☝ ՞ਊ ՞)☝ウイーン)

Page 23: Eject探検隊@北陸1

(☝ ՞ਊ ՞)☝ウイーン

仕組み

Page 24: Eject探検隊@北陸1

なぜ作ろうと思ったか

Page 25: Eject探検隊@北陸1

母親が入室   ↘

 イヤホンしてて気づかない   ↙

母親が後ろに忍び寄る        ↘

      気づかない        ↙ _人人人人人人人_ > 気づかない < ‾^Y^Y^Y^Y^Y^‾

Page 26: Eject探検隊@北陸1

ejectIRがあれば…

Page 27: Eject探検隊@北陸1

母親が入室   ↘

 イヤホンしてて気づかない   ↙

赤外線回路が反応      ↘

    CD-ROMドライブが(☝ ՞ਊ ՞)☝ウイーン      ↙ _人人人人人_ > 気づく < ‾^Y^Y^Y^‾

Page 28: Eject探検隊@北陸1

完璧だ…

Page 29: Eject探検隊@北陸1

いままで音で気づかなかったものを、CD-ROMドライブの(☝ ՞ਊ ՞)☝ウイーンという視覚的な情報

によって気づくようになります。

Page 30: Eject探検隊@北陸1
Page 31: Eject探検隊@北陸1

ejectIRのソースはこんな感じimport RPi.GPIO as GPIO import os import time !GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.IN) !while 1: if GPIO.input(4): os.system("eject") print "Welcome to my room!!" time.sleep(1) os.system("eject -t") continue else: print "no input" !GPIO.cleanup()

Page 32: Eject探検隊@北陸1

http://elinux.org/RPi_Low-level_peripherals より引用

GPIOの配置

プルダウン抵抗

USBPCへ

シリアル通信

赤外線 遮断回路

SY-852

Page 33: Eject探検隊@北陸1

活用例

先の例のように人が入る→(☝ ՞ਊ ՞)☝ウイーン→気づく

先の例のように人が入る→(☝ ՞ਊ ՞)☝ウイーン→入室者驚く

ポストの内側に設置→投函される→(☝ ՞ਊ ՞)☝ウイーン

Page 34: Eject探検隊@北陸1

応用編

実はOSC名古屋以前にこんなものを作ってました

Page 35: Eject探検隊@北陸1

ejectコマンドで物理ipmitool

Page 36: Eject探検隊@北陸1

IPMIってなんぞ?

Page 37: Eject探検隊@北陸1

Intelligent Platform Management Interface

IPMIに対応したサーバは、OSやアプリケーションソフトなどを介さずに、ネットワークを通じて管理用端末のシステム監視ソフトなどと直接通信することができ、遠隔からCPUやデータ伝送路(バス)、ファンなど各部品の稼働状態や、筺体内部の温度や電圧などを監視したり、電源のオン/オフや再起動などを行なうことができる。

http://e-words.jp/w/IPMI.html より抜粋

Page 38: Eject探検隊@北陸1

メインマシンを外出中につけたい !

常時付けてると電気代がもったいない

Page 39: Eject探検隊@北陸1

あれれ~?

Page 40: Eject探検隊@北陸1

サーバー →

← メインマシン

どこの家でも転がってるであろう中古の(eject用の)CD-ROMドライブ

Page 41: Eject探検隊@北陸1

やることはただ一つ !

(☝ ՞ਊ ՞)☝ウイーン

Page 42: Eject探検隊@北陸1

ここを押すのじゃ

Page 43: Eject探検隊@北陸1

応用編

玄関にejectIRを設置 ↓

自室のCD-ROMドライブが(☝ ՞ਊ ՞)☝ウイーン ↓

PCの電源がつく ↓

部屋に到着する頃にはPCがステンバ~イ ↓

うれしい!!!✌(‘ω’✌ )三✌('ω')✌三( ✌'ω')✌

Page 44: Eject探検隊@北陸1

ここまでの流れでわかるように、今回作ったejectIRはCR-ROMドライブがejectするためのトリガーとしての

eject工作ということ !

ほかの方が制作しているトレイのejectという動作を使った工作とは違います

これらと結びつけることで初めてejectIRとしての工作は完成します。

!

先の応用編はまさにそのモデルとも言えるでしょう

Page 45: Eject探検隊@北陸1

わけがわからないよ

Page 46: Eject探検隊@北陸1

ejectIRのソースはGithubに ejectIRの作り方は後日ブログにて掲載する予定です

!

ぜひejectIRと何かを組み合わせてドヤッていただきたいです

Github: ejectIR

ブログ: www.ahiru3.net

Page 47: Eject探検隊@北陸1

ejectコマンドユーザー会 サイト翻訳募集中

Page 48: Eject探検隊@北陸1

Page 49: Eject探検隊@北陸1

実は未完

(準備時間的に)ておくれたてしまい、 今回発表できなかったておくれたネタたち

!

まとまってないのでておくれている

Page 50: Eject探検隊@北陸1

RPi.GPIOについて調べてみた

Page 51: Eject探検隊@北陸1

A module to control Raspberry Pi GPIO channels This package provides a class to control the GPIO on a Raspberry Pi.

https://pypi.python.org/pypi/RPi.GPIO より引用

GPIO: General Purpose Input/Output(汎用入出力)

Page 52: Eject探検隊@北陸1

const int pin_to_gpio_rev2[27] = { -1, -1, -1, 2, -1, 3, -1, 4, 14, -1, 15, 17, 18, 27, -1, 22, 23, -1, 24, 10, -1, 9, 25, 11, 8, -1, 7 };

←←コレが謎

Page 53: Eject探検隊@北陸1

const int pin_to_gpio_rev2[27] = { -1, -1, -1, 2, -1, 3, -1, 4, 14, -1, 15, 17, 18, 27, -1, 22, 23, -1, 24, 10, -1, 9, 25, 11, 8, -1, 7 };

電源系統は-1が 与えられている

Page 54: Eject探検隊@北陸1

const int pin_to_gpio_rev2[27] = { -1, -1, -1, 2, -1, 3, -1, 4, 14, -1, 15, 17, 18, 27, -1, 22, 23, -1, 24, 10, -1, 9, 25, 11, 8, -1, 7 };

ピン番号の割当

Page 55: Eject探検隊@北陸1

/sys/class/gpio/export に対して使用するピンを宣言する echo "番号" > /sys/class/gpio/export 4番pinを使う場合: echo "4" > /sys/class/gpio/export !

すると番号に対応したディレクトリが生成されます /sys/class/gpio/gpio番号 例: /sys/class/gpio/gpio4 !

/sys/class/gpio/gpio番号/direction にinputかoutputか宣言 例: echo "out" > /sys/class/gpio/gpio4/direction

Page 56: Eject探検隊@北陸1

/sys/class/gpio/gpio番号/value に0or1が格納されている

Page 57: Eject探検隊@北陸1

http://pi.gadgetoid.com/pinout