SlideShare a Scribd company logo
1 of 68
Open Microserver + FOMA   Remote-Hand 2011.7. 1 5 OSC 2011 kansai@kyoto IZAMUKARERA &くじらのだんな山内 [email_address] [email_address]
sourceforge で PepoLinux 1CDLinux 他開発中
Linux-2.6 系  FOMA Driver 開発 今回はこのお話
これを見ると Linux USB driver の開発者になれる ほんまかいな! Vmplayer と Virtual Appliance で Linux USB driver develop & debug
Linux の USB  Driverの基礎知識 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Linux の USB  Driverの予備知識少し ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Linux の USB  Driverの予備知識少し google で「 usb  プロトコル 解説」を ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FOMA のパイプ・インターフェース 出典: http://www.nttdocomo.co.jp/binary/pdf/corporate/technology/document/foma/foma6.pdf
Address->Configure のシーケンス Get Descriptor Device Descriptor Get Descriptor Configuration Descriptor Set Configuration USBホスト USBデバイス Connect Device to USB HOST Address Configured
Configure->Actived のシーケンス SET_LINK Request Acknowledge Active Mode 機能初期化 Request Acknowledge USBホスト USBデバイス Configured Activated
Modem Open とデータの書き込み シーケンス USBホスト USBデバイス Configured Active Mode Modem Request_Acknowledge HOST アプリ Open Active Open OK 書き込み バルク転送 OUT ACK DATA バルク転送 IN 読み込み Active
USB 転送の種類 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
USB はシリアル通信 SOF:Start of Frame PID:Packet Identifer ADDR:Device Address ENDP:End Point CRC:Cyclic Redundancy Check SOF Field Sync PID Frame Number CRC5 Bits 8 8 11 5 Token Field Sync PID ADDR ENDP CRC5 Bits 8 8 7 4 5 PID PID0 PID1 PID2 PID3 PID0 PID1 PID2 PID3
USB はシリアル通信 Data Field sync PID DATA CRC16 Bits 8 8 0 ~ 8192 16 Handshake Filed sync PID Bits 8 8
PID Type Type PID Name Code Definition Token OUT 0001 Endpoint IN 1001 Host SETUP 1101 DATA DATA0 0011 ODD DATA1 0101 EVEN Handshake ACK 0010 Acknowledgment NAK 1010 Negative Acknowledgment
Descriptor  標準 Device Descriptor 0x12Byte Configuration Descriptor 0x09Byte Interface Descriptor 0x09Byte Endpoint Descriptor 0x07Byte
USB の遷移状態( FOMA )
Driver の開発(準備) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VMplayer PepoLinux 起動 3 : small mode 選択
DHCP で IP 取得・起動 … Samba へアクセス ファイル名を指定して実行-> IP 入力-> OK
ユーザ名: nobody パスワード:空白-> OK
Samba 共有ファイルへアクセス IP_Addresspublicrc
別途ダウンロードした Kernel-source をドラッグ&ドロップ->転送
Kernel-source コピー中
Kernel-source コピー完了
Vmplayer の PepoLinux へログイン ユーザ名: root  パスワード: root
Kernel-source の展開
Kernel-source の展開中
Teraterm でログイン
ssh のログイン時に鍵の上書き
ユーザ名: root パスワード: root
USB HUB へ device を接続 PC へ FOMA を接続、ゲスト OS へ接続 USBデバイスをマウス操作で 接続/切断
FOMA を接続でppp  Server が起動
ゲスト OS から FOMA を接続解除
FOMA 接続でppp  server が起動 なので監視プログラムを停止 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
acm-FOMA の最新版を download http://sourceforge.jp/projects/pepolinux/downloads/52114/acm-FOMA.v0.26.10.tar.gz /
ダウンロードした acm-FOMA.v0.26.10.tar.gz を転送
転送したファイルを展開 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
acm-FOMA を試しに make ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
make でエラーが出た場合   make modules_install ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FOMA  Driverを削除 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FOMA を再接続 ( acm-FOMA ) Driver が無くても ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Driver の開発準備 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],これが目的 Vender ID : 0409 Product ID : 0270
usb-skeleton.c の取り出し # cd /usr/src/linux-2.6.38.6-pepo # sz drivers/usb/usb-skelton.c
Tera Term でファイル->転送-> Z MODEM->受信
Z MODEMで転送完了
Vendor ID と Product ID を書き換え保存 #define USB_SKEL_VENDOR_ID 0x0409 #define USB_SKEL_PRODUCT_ID 0x0270 usb-skeleton.c  ->  my-usb.c  名前をつけて保存
my-usb.c を PepoLinux の acm-FOMAへ転送
Makefile の修正   acm-FOMA  ->   my-usb ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
my-usb.c make && make install ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Driver の Debug 準備 Tera Term Pro で Vmplayer の PepoLinux へ login ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
usbmon で device のやり取りを確認 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
tail -f  /var/log/debug Device の検出 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
tail -f /var/log/usbmon Device Descriptor の受信 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
modules load & device registered  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
modules と dev が登録されるだけで read も write も出来ませんが (^_^;) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
今回の Debug 手法で acm-FOMA new releases ,[object Object],[object Object],[object Object],[object Object],[object Object]
Remote-Hand では2つの AP で利用 1つ目は MODEM リモートハンド WWW MAIL ・ DNS USB 接続 シリアル接続 ,[object Object],[object Object],[object Object],Open Micro Server と FOMA を USB 接続 リモートハンドを依頼 FOMA 網  64 kデジタル通信 or 384 kパケット通信
Remote-Hand では2つの AP で利用 2つ目は AT Command Mode リモートハンド USB 接続 ,[object Object],[object Object],[object Object],[object Object],Open Micro Server の DIO 端子を使い動物を監視 FOMA 網  & 一般電話網
modem mode 接続後は PPP を起動させる ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
obex mode コマンドの投げ方が不明 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AT command mode DOCOM  ハンズフリー  MODE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],音声発信->電話番号+; コロン付加、無:テレビ電話
 
 
 
PepoLinux OpenMicroServer + FOMA Remote-Hand リモートハンド WWW MAIL ・ DNS USB 接続 シリアル接続 ,[object Object],[object Object],[object Object],[object Object],Open Micro Server と FOMA を USB 接続 リモートハンドを依頼 FOMA 網  64 kデジタル通信 or 384 kパケット通信
リモートハンド USB 接続 ,[object Object],[object Object],[object Object],[object Object],Open Micro Server の DIO 端子を使い動物を監視 PepoLinux OpenMicroServer + FOMA Remote-Hand FOMA 網  64 kデジタル通信 or 384 kパケット通信
ご清聴ありがとう御座いました ,[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Robovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèëRobovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèë
guesta33ba0
 
Vyatta: The Virtual Router for Cloud Computing Enviroment
Vyatta: The Virtual Router for Cloud Computing EnviromentVyatta: The Virtual Router for Cloud Computing Enviroment
Vyatta: The Virtual Router for Cloud Computing Enviroment
Naoto MATSUMOTO
 
Pdp11onfpga
Pdp11onfpgaPdp11onfpga
Pdp11onfpga
xylnao
 

What's hot (20)

Robovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèëRobovie Maker2éêàµê‡ñæèë
Robovie Maker2éêàµê‡ñæèë
 
闇鍋てっく#5 web負荷試験 検討会のまとめ
闇鍋てっく#5 web負荷試験 検討会のまとめ闇鍋てっく#5 web負荷試験 検討会のまとめ
闇鍋てっく#5 web負荷試験 検討会のまとめ
 
Esp32でiot
Esp32でiotEsp32でiot
Esp32でiot
 
ZTE OPEN を日本語化(バージョンアップ)してみる
ZTE OPEN を日本語化(バージョンアップ)してみるZTE OPEN を日本語化(バージョンアップ)してみる
ZTE OPEN を日本語化(バージョンアップ)してみる
 
VTI の中身
VTI の中身VTI の中身
VTI の中身
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
第2回【CCNA】ネットワーク基礎講座_なにわTECH道180126
 第2回【CCNA】ネットワーク基礎講座_なにわTECH道180126 第2回【CCNA】ネットワーク基礎講座_なにわTECH道180126
第2回【CCNA】ネットワーク基礎講座_なにわTECH道180126
 
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
 
第1回【CCNA】ネットワーク基礎講座‗なにわTECH道171208
第1回【CCNA】ネットワーク基礎講座‗なにわTECH道171208第1回【CCNA】ネットワーク基礎講座‗なにわTECH道171208
第1回【CCNA】ネットワーク基礎講座‗なにわTECH道171208
 
ESP8266をはじめよう
ESP8266をはじめようESP8266をはじめよう
ESP8266をはじめよう
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlow
 
IBGPのコンバージェンスの改善qunog3
IBGPのコンバージェンスの改善qunog3IBGPのコンバージェンスの改善qunog3
IBGPのコンバージェンスの改善qunog3
 
Play with UEFI
Play with UEFIPlay with UEFI
Play with UEFI
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
 
Vyatta: The Virtual Router for Cloud Computing Enviroment
Vyatta: The Virtual Router for Cloud Computing EnviromentVyatta: The Virtual Router for Cloud Computing Enviroment
Vyatta: The Virtual Router for Cloud Computing Enviroment
 
ぐだ生システム#2
ぐだ生システム#2ぐだ生システム#2
ぐだ生システム#2
 
さくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみたさくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみた
 
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf) Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
Havana版 RDO-QuickStart-4 (140421-Havana-RDO-QuickStart-4.pdf)
 
Pdp11onfpga
Pdp11onfpgaPdp11onfpga
Pdp11onfpga
 
Esp8266 webserver1
Esp8266 webserver1Esp8266 webserver1
Esp8266 webserver1
 

Similar to 20110715 osc2011 kyoto

iPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶiPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶ
Kenichiro MATOHARA
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
Kazuyuki Sato
 

Similar to 20110715 osc2011 kyoto (20)

Displaylink : Reloaded
Displaylink : ReloadedDisplaylink : Reloaded
Displaylink : Reloaded
 
Open-FCoE_osc2011tokyofall_20111119
Open-FCoE_osc2011tokyofall_20111119Open-FCoE_osc2011tokyofall_20111119
Open-FCoE_osc2011tokyofall_20111119
 
GPD-WINや中華ノートPCなどATOM機器に 各種Linuxディストリを入れて遊ぼう Install Linux Distributions on G...
GPD-WINや中華ノートPCなどATOM機器に 各種Linuxディストリを入れて遊ぼう Install Linux Distributions on G...GPD-WINや中華ノートPCなどATOM機器に 各種Linuxディストリを入れて遊ぼう Install Linux Distributions on G...
GPD-WINや中華ノートPCなどATOM機器に 各種Linuxディストリを入れて遊ぼう Install Linux Distributions on G...
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
 
iPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶiPodTouch で UNIX ぽく遊ぶ
iPodTouch で UNIX ぽく遊ぶ
 
A story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88kA story of porting OpenBSD/luna88k
A story of porting OpenBSD/luna88k
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
 
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
 
Exos ztp usb2
Exos ztp usb2Exos ztp usb2
Exos ztp usb2
 
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
 
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
 
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 

20110715 osc2011 kyoto