Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
USBデバイスドライバの開発/cybozulabs-youth10-tokunaga
Search
Cybozu
PRO
March 31, 2021
Technology
0
230
USBデバイスドライバの開発/cybozulabs-youth10-tokunaga
Cybozu
PRO
March 31, 2021
Tweet
Share
More Decks by Cybozu
See All by Cybozu
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
6
40k
2024/11/25 ReDesigner Online Meetup 会社紹介
cybozuinsideout
PRO
0
390
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
50k
テクニカルライティング
cybozuinsideout
PRO
4
590
サイボウズのアジャイルクオリティ2024
cybozuinsideout
PRO
3
480
モブに早く慣れたい人のためのガイド2024
cybozuinsideout
PRO
3
660
モバイル
cybozuinsideout
PRO
3
360
ソフトウェアライセンス
cybozuinsideout
PRO
4
320
ソフトウェアテスト
cybozuinsideout
PRO
3
530
Other Decks in Technology
See All in Technology
Raycast Favorites × Script Command で実現するお手軽情報チェック
smasato
1
140
Change Managerを活用して本番環境へのセキュアなGUIアクセスを統制する / Control Secure GUI Access to the Production Environment with Change Manager
yuj1osm
0
100
Oracle Database Technology Night #87-1 : Exadata Database Service on Exascale Infrastructure(ExaDB-XS)サービス詳細
oracle4engineer
PRO
1
170
日経のデータベース事業とElasticsearch
hinatades
PRO
0
230
AIエージェント入門
minorun365
PRO
31
17k
偏光画像処理ライブラリを作った話
elerac
1
170
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.5k
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
1
340
2/18 Making Security Scale: メルカリが考えるセキュリティ戦略 - Coincheck x LayerX x Mercari
jsonf
0
190
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
190
JavaにおけるNull非許容性
skrb
2
2.6k
分解して理解する Aspire
nenonaninu
2
1k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Code Review Best Practice
trishagee
67
18k
How GitHub (no longer) Works
holman
314
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Transcript
USB σόΠευϥΠόͷ։ൃ USBσόΠευϥΠόͷ։ൃ ୈ 10 ظੜɹϨΠϠθϛɹಙӬେو March 30, 2021
USB σόΠευϥΠόͷ։ൃ ༰ 1 ͡Ίʹ 2 USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ
USB ϑϥογϡϝϞϦυϥΠόͷ࡞
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ ࣗݾհ ໊લ ಙӬେو ډॅ ਆಸݝҏݪࢢ ॴଐ ిؾ௨৴େֶใཧֶҬ
I ྨίϯϐϡʔλα ΠΤϯεϓϩάϥϜ౬ݚڀࣨ
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ ࣮ͨ͠υϥΠό USB ΩʔϘʔυ USB Ϛε USB ϑϥογϡυϥΠϒ
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ ΩʔϘʔυ͔ΒͷಡΈࠐΈ Figure: ΩʔϘʔυ͔ΒͷಡΈࠐΈ
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ Ϛε͔ΒͷಡΈࠐΈ Figure: Ϛε͔ΒͷಡΈࠐΈ
USB σόΠευϥΠόͷ։ൃ ͡Ίʹ USBϑϥογϡϝϞϦ͔ΒͷಡΈࠐΈ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USBσόΠευϥΠόͷ։ൃͷେ·͔ͳྲྀ Ε 1 ϗετίϯτϩʔϥʢHCʣΛݟ͚ͭΔ 2 HC
ͷॳظԽ 3 USB σόΠεΛݟ͚ͭΔ 4 USB σόΠεڞ௨ͷॳظԽ 5 USB σόΠεͷछྨʹԠͨ͡ॳظԽ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ HCΛݟ͚ͭΔ HC PCI
σόΠεͷҰछ όε൪߸ (0 ≤ x < 256) ͱσόΠε൪߸ (0 ≤ y < 32) Λ શ୳ࡧ͢Δɽ xHCI ͷ߹ (class, sub, interface) = (0x0C, 0x03, 0x30)
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ HCͷॳظԽ Ϧηοτ ϨδελʹඞཁͳΛઃఆʢ࠷େϙʔτͳͲʣ ֤छσʔλߏͷઃఆ
Ϧϯά ίϯςΫετ εΫϥονύου HC ͷಈ࡞։࢝
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεΛݟ͚ͭΔ HC ͕ USB
σόΠεͷଓΛݕ͢ΔͱɼΠϕϯτϦ ϯάʹใࠂ͞ΕΔ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεڞ௨ͷॳظԽ ֤छσʔλߏͷॳظԽ τϥϯεϑΝʔϦϯά ίϯςΫετ
σεΫϦϓλͷऔಘ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεͷछྨʹԠͨ͡ॳظԽ ͲͷઃఆΛར༻͢Δ͔ʢϒʔτϓϩτίϧʣ ετϨʔδͷ༰ྔͳͲͷऔಘ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞ USBϚεετϨʔδσόΠεͷυϥΠόͷ ࡞ 2 ͭͷΓํ͕ଘࡏ͢Δɽ
Table: ϓϩτίϧͷҧ͍ ϓϩτίϧͷ໊લ ରԠ͍ͯ͠Δछྨ Bulk-Only Transport Specification શػछ USB Attached SCSI Protocol USB 3.0 ͷΈ
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞ σόΠεͱͷΓऔΓ 1 SCSI ίϚϯυͷૹ৴
2 σʔλͷૹ৴ɼ·ͨड৴όοϑΝͷϙΠϯλૹ৴ 3 ίϚϯυͷऴྃεςʔλεͷड৴
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞ ࢀߟʹͨ͠ͷ ༷ॻ xHCI USB3.2
USB2.0 ιʔείʔυ MikanOS QEMU ॻ੶ USB: The Universal Serial Bus, Benjamin David Lunt, Forever Young Software
USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞ ॻ͍ͨιʔείʔυ Ramen OS https://github.com/toku-sa-n/ramen