Upgrade to Pro — share decks privately, control downloads, hide ads and more …

USBデバイスドライバの開発/cybozulabs-youth10-tokunaga

A97eee01397705443a72a48ce29d3e19?s=47 Cybozu
March 31, 2021

 USBデバイスドライバの開発/cybozulabs-youth10-tokunaga

A97eee01397705443a72a48ce29d3e19?s=128

Cybozu

March 31, 2021
Tweet

Transcript

  1. USB σόΠευϥΠόͷ։ൃ USBσόΠευϥΠόͷ։ൃ ୈ 10 ظੜɹ௿ϨΠϠθϛɹಙӬେو March 30, 2021

  2. USB σόΠευϥΠόͷ։ൃ ಺༰ 1 ͸͡Ίʹ 2 USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ

    USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒
  3. USB σόΠευϥΠόͷ։ൃ ͸͡Ίʹ ࣗݾ঺հ ໊લ ಙӬେو ډॅ஍ ਆಸ઒ݝҏ੎ݪࢢ ॴଐ ిؾ௨৴େֶ৘ใཧ޻ֶҬ

    I ྨίϯϐϡʔλα ΠΤϯεϓϩάϥϜ౬ݚڀࣨ
  4. USB σόΠευϥΠόͷ։ൃ ͸͡Ίʹ ࣮૷ͨ͠υϥΠό USB ΩʔϘʔυ USB Ϛ΢ε USB ϑϥογϡυϥΠϒ

  5. USB σόΠευϥΠόͷ։ൃ ͸͡Ίʹ ΩʔϘʔυ͔ΒͷಡΈࠐΈ Figure: ΩʔϘʔυ͔ΒͷಡΈࠐΈ

  6. USB σόΠευϥΠόͷ։ൃ ͸͡Ίʹ Ϛ΢ε͔ΒͷಡΈࠐΈ Figure: Ϛ΢ε͔ΒͷಡΈࠐΈ

  7. USB σόΠευϥΠόͷ։ൃ ͸͡Ίʹ USBϑϥογϡϝϞϦ͔ΒͷಡΈࠐΈ

  8. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USBσόΠευϥΠόͷ։ൃͷେ·͔ͳྲྀ Ε 1 ϗετίϯτϩʔϥʢHCʣΛݟ͚ͭΔ 2 HC

    ͷॳظԽ 3 USB σόΠεΛݟ͚ͭΔ 4 USB σόΠεڞ௨ͷॳظԽ 5 USB σόΠεͷछྨʹԠͨ͡ॳظԽ
  9. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ HCΛݟ͚ͭΔ HC ͸ PCI

    σόΠεͷҰछ όε൪߸ (0 ≤ x < 256) ͱσόΠε൪߸ (0 ≤ y < 32) Λ શ୳ࡧ͢Δɽ xHCI ͷ৔߹ (class, sub, interface) = (0x0C, 0x03, 0x30)
  10. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ HCͷॳظԽ Ϧηοτ Ϩδελʹඞཁͳ஋Λઃఆʢ࠷େϙʔτ਺ͳͲʣ ֤छσʔλߏ଄ͷઃఆ

    Ϧϯά ίϯςΫετ εΫϥονύου HC ͷಈ࡞։࢝
  11. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεΛݟ͚ͭΔ HC ͕ USB

    σόΠεͷ઀ଓΛݕ஌͢ΔͱɼΠϕϯτϦ ϯάʹใࠂ͞ΕΔ
  12. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεڞ௨ͷॳظԽ ֤छσʔλߏ଄ͷॳظԽ τϥϯεϑΝʔϦϯά ίϯςΫετ

    σεΫϦϓλͷऔಘ
  13. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB σόΠεڞ௨ͷखॱ USBσόΠεͷछྨʹԠͨ͡ॳظԽ ͲͷઃఆΛར༻͢Δ͔ʢϒʔτϓϩτίϧ౳ʣ ετϨʔδͷ༰ྔͳͲͷऔಘ

  14. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒ USBϚεετϨʔδσόΠεͷυϥΠόͷ ࡞੒ 2 ͭͷ΍Γํ͕ଘࡏ͢Δɽ

    Table: ϓϩτίϧͷҧ͍ ϓϩτίϧͷ໊લ ରԠ͍ͯ͠Δछྨ Bulk-Only Transport Specification શػछ USB Attached SCSI Protocol USB 3.0 ͷΈ
  15. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒ σόΠεͱͷ΍ΓऔΓ 1 SCSI ίϚϯυͷૹ৴

    2 σʔλͷૹ৴ɼ·ͨ͸ड৴όοϑΝͷϙΠϯλૹ৴ 3 ίϚϯυͷऴྃεςʔλε౳ͷड৴
  16. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒ ࢀߟʹͨ͠΋ͷ ࢓༷ॻ xHCI USB3.2

    USB2.0 ιʔείʔυ MikanOS QEMU ॻ੶ USB: The Universal Serial Bus, Benjamin David Lunt, Forever Young Software
  17. USB σόΠευϥΠόͷ։ൃ USB σόΠευϥΠόͷ։ൃ USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒ ॻ͍ͨιʔείʔυ Ramen OS https://github.com/toku-sa-n/ramen