SlideShare a Scribd company logo
1 of 30
Download to read offline
RTXで遊ぶ
NV(@nvsofts)
自己紹介
• HN: NV
• Twitter: @nvsofts です(*́ω`*)
• Gentoo大大学院修士2年
• 研究でKVMとかLLVMとかを触ってました

(最近はBitVisorを触ってます)
Kernel/VM経験
• 初参加、初発表です
• 勢いで申し込んだ
• こんなイメージ→
さてみなさん
自宅に
ヤマハルータ
ありますよね?
ありますよね?
これ
今回のネタ
• ヤマハルータに搭載されているLua機能のお話です
• 公式では割と真面目な使い方が紹介されてますが…
• 経路ダウン時にメール送信
• VPNの接続にワンタイムパスワードを使う
• など
Lua機能の概要
• ヤマハルータ上でLuaスクリプトを実行してルータ
の設定変更やアクションをプログラミングできる

(公式より)
• 独自APIで以下の機能が追加されている
• ハードウェア制御(LEDなど)
• ソケット通信
• など
http://www.rtpro.yamaha.co.jp/RT/docs/lua/
変な使い方できないかな…
• 詳しく見ていくと、変更履歴に変なものが…
• バージョン1.04
• ハードウェアライブラリで、USBキーボードやUSB
バーコードリーダーの出力を読み取れるようにした
!?
http://www.rtpro.yamaha.co.jp/RT/docs/lua/
変な使い方できないかな…
• 詳しく見ていくと、変更履歴に変なものが…
• バージョン1.04
• ハードウェアライブラリで、USBキーボードやUSB
バーコードリーダーの出力を読み取れるようにした
!?
http://www.rtpro.yamaha.co.jp/RT/docs/lua/
変な使い方できないかな…
• 詳しく見ていくと、変更履歴に変なものが…
• バージョン1.04
• ハードウェアライブラリで、USBキーボードやUSB
バーコードリーダーの出力を読み取れるようにした
!?
http://www.rtpro.yamaha.co.jp/RT/docs/lua/
確かにUSBはあるけど…
USBの役目
• 本来このUSBは、データ保存用のUSBメモリや3G
回線をUSB経由で接続するためのもの
• それに加え、Lua機能バージョン1.04からはキーボー
ドを接続するという役目が加わった
• これで遊ぶしかない!(泣)
遊ぶためには
• 機種のファームウェアリビジョンを確かめる必要がある
• 最初から対応済み
• RTX1210(今回はこれを使います)
• RTX5000
• RTX3500
• FWX120
• RTX810
http://www.rtpro.yamaha.co.jp/RT/docs/lua/
遊ぶためには
• 機種のファームウェアリビジョンを確かめる必要がある
• ファームアップの必要があるかも
• NVR500
• RTX1200
• SRT1000
• 中古で人気のRTX1100とかはLua遊び自体ができない
http://www.rtpro.yamaha.co.jp/RT/docs/lua/
つなぐ
• microSDにLuaスクリプトを入れて、USBポートに
キーボードをつなぐ
使い方
• キーボードの制御開始
• LEDなどと同じく、rt.hw.open()を使う
• キーボードを表す文字列は”keyboard1”
• 戻り値等の扱いもLEDなどと同じ
http://www.rtpro.yamaha.co.jp/RT/docs/lua/rt_api.html#rt_hw_open
使い方
• キーボードの文字の読み取り
• 以下のメソッドを使う
• hwd:getc()
• hwd:getchar()
• hwd:gets()
• 名前からどんな機能かは想像がつくはず
使い方
• コード例
• キーボードを開き、1行入力を受け付けてprintする
kbd, err = rt.hw.open("keyboard1")
if kbd then
print(kbd:gets())
kbd:close()
else
print(err)
end
ブザー音の出し方
• bz, err = rt.hw.open(”buzzer1”)

でブザーデバイスを開く
• bz:tone(”音程”)でブザーを鳴らす
• 残念ながら(?)鳴らせる音程は決まっている
• bz:off()でブザーを止める
http://www.rtpro.yamaha.co.jp/RT/docs/lua/rt_api.html#hwd_tone
遊んでみる
• ルータからモールス信号を出してみる
• 文字列は外部キーボードから受け取る
• モールス信号の発信はビープ音で行う
• コードはこちらにアップしてあります
• http://bit.ly/1T1Akyq
問題発生
• 独自APIには、スリープを行うメソッドがあるが秒
単位
• これではモールス信号には使えない
• ローテクな空ループを使って1秒未満のウェイトを
入れることにした
THE ローテク
• ついカッとなってやった
for k = 1, 1400000 do
end
• RTX1210では1秒=2000000回くらいでした
音声サンプル
• KERNEL VM 11 を変換してみました
• https://soundcloud.com/nvsofts/kernel-vm-11
応用(?)例
• USBキーボード対応のバーコードリーダーを付けて
JANコードをスキャンさせて蔵書管理とか
• DOWNLOADボタンにSOSのモールス信号を発信
するスクリプトを付ける
• ルータと共に遭難しても大丈夫!
まとめ
• ヤマハルータのLua機能は、真面目な使い方も当然
できるし、不真面目な使い方もできる!
• Lua対応のヤマハルータを持っているのなら

Let s Lua遊び!

More Related Content

What's hot

OSセキュリティチュートリアル
OSセキュリティチュートリアルOSセキュリティチュートリアル
OSセキュリティチュートリアル
Kuniyasu Suzaki
 

What's hot (20)

Java EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行についてJava EE から Quarkus による開発への移行について
Java EE から Quarkus による開発への移行について
 
vm meetup_tokyo #1 NSX の運用と DFW トラブルシューティング
vm meetup_tokyo #1 NSX の運用と DFW トラブルシューティングvm meetup_tokyo #1 NSX の運用と DFW トラブルシューティング
vm meetup_tokyo #1 NSX の運用と DFW トラブルシューティング
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
 
MicroProfileの正しい使い方 (Java Developer Summit 2023)
MicroProfileの正しい使い方 (Java Developer Summit 2023)MicroProfileの正しい使い方 (Java Developer Summit 2023)
MicroProfileの正しい使い方 (Java Developer Summit 2023)
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
限界性能試験を自動化するOperatorを作ってみた(Kubernetes Novice Tokyo #14 発表資料)
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
 
OSセキュリティチュートリアル
OSセキュリティチュートリアルOSセキュリティチュートリアル
OSセキュリティチュートリアル
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
eBPFは何が嬉しいのか
eBPFは何が嬉しいのかeBPFは何が嬉しいのか
eBPFは何が嬉しいのか
 
平成生まれのための MINIX 講座
平成生まれのための MINIX 講座平成生まれのための MINIX 講座
平成生まれのための MINIX 講座
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
Jakarta EEとMicroprofileの上手な付き合い方と使い方 - JakartaOne Livestream Japan 2020
 
レシピの作り方入門
レシピの作り方入門レシピの作り方入門
レシピの作り方入門
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 
SQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しSQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話し
 

Viewers also liked

x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!
furandon_pig
 
ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
Yuki Mizuno
 

Viewers also liked (10)

Boost.Spirit.QiとLLVM APIで遊ぼう
Boost.Spirit.QiとLLVM APIで遊ぼうBoost.Spirit.QiとLLVM APIで遊ぼう
Boost.Spirit.QiとLLVM APIで遊ぼう
 
#SORACOM AirとYAMAHA RTX1200で 回線冗長化してみた
#SORACOM AirとYAMAHA RTX1200で 回線冗長化してみた#SORACOM AirとYAMAHA RTX1200で 回線冗長化してみた
#SORACOM AirとYAMAHA RTX1200で 回線冗長化してみた
 
x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!
 
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
 
2015年度の自宅NAS環境
2015年度の自宅NAS環境2015年度の自宅NAS環境
2015年度の自宅NAS環境
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
 
545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!545人のインフラを支えたNOCチーム!
545人のインフラを支えたNOCチーム!
 
ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
 
Subscriber Identity Module
Subscriber Identity ModuleSubscriber Identity Module
Subscriber Identity Module
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 

Similar to RTXで遊ぶ

エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Takeshi HASEGAWA
 
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定
Takashi Naito
 

Similar to RTXで遊ぶ (15)

エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
 
Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)Kubernetesにまつわるエトセトラ(主に苦労話)
Kubernetesにまつわるエトセトラ(主に苦労話)
 
lilo.linux.or.jp の話
lilo.linux.or.jp の話lilo.linux.or.jp の話
lilo.linux.or.jp の話
 
wakamonog6 ルーティングチュートリアル 〜サービスの成長とネットワークの変遷〜
wakamonog6 ルーティングチュートリアル 〜サービスの成長とネットワークの変遷〜wakamonog6 ルーティングチュートリアル 〜サービスの成長とネットワークの変遷〜
wakamonog6 ルーティングチュートリアル 〜サービスの成長とネットワークの変遷〜
 
Play ja 3_update
Play ja 3_updatePlay ja 3_update
Play ja 3_update
 
Interact2016:Introduction of Hyper-V Network Virtualization ver.2
Interact2016:Introduction of Hyper-V Network Virtualization ver.2Interact2016:Introduction of Hyper-V Network Virtualization ver.2
Interact2016:Introduction of Hyper-V Network Virtualization ver.2
 
近頃のDockerネットワーク
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワーク
 
MVPComCamp2015:Hyper-V仮想スイッチのTipsとTo Be(仮)
MVPComCamp2015:Hyper-V仮想スイッチのTipsとTo Be(仮)MVPComCamp2015:Hyper-V仮想スイッチのTipsとTo Be(仮)
MVPComCamp2015:Hyper-V仮想スイッチのTipsとTo Be(仮)
 
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定
 
Juniper NetworkGuru Plugin - Juniper EX/QFX Swtich CloudStack Integration -
Juniper NetworkGuru Plugin - Juniper EX/QFX Swtich CloudStack Integration -Juniper NetworkGuru Plugin - Juniper EX/QFX Swtich CloudStack Integration -
Juniper NetworkGuru Plugin - Juniper EX/QFX Swtich CloudStack Integration -
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
node.js 開発のためのお手軽サーバ構築について(仮)
node.js 開発のためのお手軽サーバ構築について(仮)node.js 開発のためのお手軽サーバ構築について(仮)
node.js 開発のためのお手軽サーバ構築について(仮)
 
Introduction to arm virtualization
Introduction to arm virtualizationIntroduction to arm virtualization
Introduction to arm virtualization
 
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
 

RTXで遊ぶ