$30 off During Our Annual Pro Sale. View Details »

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

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

Cybozu
PRO

March 31, 2021
Tweet

More Decks by Cybozu

Other Decks in Technology

Transcript

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

    View Slide

  2. USB σόΠευϥΠόͷ։ൃ
    ಺༰
    1 ͸͡Ίʹ
    2 USB σόΠευϥΠόͷ։ൃ
    USB σόΠεڞ௨ͷखॱ
    USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒

    View Slide

  3. USB σόΠευϥΠόͷ։ൃ
    ͸͡Ίʹ
    ࣗݾ঺հ
    ໊લ ಙӬେو
    ډॅ஍ ਆಸ઒ݝҏ੎ݪࢢ
    ॴଐ ిؾ௨৴େֶ৘ใཧ޻ֶҬ I ྨίϯϐϡʔλα
    ΠΤϯεϓϩάϥϜ౬ݚڀࣨ

    View Slide

  4. USB σόΠευϥΠόͷ։ൃ
    ͸͡Ίʹ
    ࣮૷ͨ͠υϥΠό
    USB ΩʔϘʔυ
    USB Ϛ΢ε
    USB ϑϥογϡυϥΠϒ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  8. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USBσόΠευϥΠόͷ։ൃͷେ·͔ͳྲྀ
    Ε
    1
    ϗετίϯτϩʔϥʢHCʣΛݟ͚ͭΔ
    2 HC ͷॳظԽ
    3 USB σόΠεΛݟ͚ͭΔ
    4 USB σόΠεڞ௨ͷॳظԽ
    5 USB σόΠεͷछྨʹԠͨ͡ॳظԽ

    View Slide

  9. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USB σόΠεڞ௨ͷखॱ
    HCΛݟ͚ͭΔ
    HC ͸ PCI σόΠεͷҰछ
    όε൪߸ (0 ≤ x < 256) ͱσόΠε൪߸ (0 ≤ y < 32) Λ
    શ୳ࡧ͢Δɽ
    xHCI ͷ৔߹ (class, sub, interface) = (0x0C, 0x03, 0x30)

    View Slide

  10. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USB σόΠεڞ௨ͷखॱ
    HCͷॳظԽ
    Ϧηοτ
    Ϩδελʹඞཁͳ஋Λઃఆʢ࠷େϙʔτ਺ͳͲʣ
    ֤छσʔλߏ଄ͷઃఆ
    Ϧϯά
    ίϯςΫετ
    εΫϥονύου
    HC ͷಈ࡞։࢝

    View Slide

  11. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USB σόΠεڞ௨ͷखॱ
    USBσόΠεΛݟ͚ͭΔ
    HC ͕ USB σόΠεͷ઀ଓΛݕ஌͢ΔͱɼΠϕϯτϦ
    ϯάʹใࠂ͞ΕΔ

    View Slide

  12. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USB σόΠεڞ௨ͷखॱ
    USBσόΠεڞ௨ͷॳظԽ
    ֤छσʔλߏ଄ͷॳظԽ
    τϥϯεϑΝʔϦϯά
    ίϯςΫετ
    σεΫϦϓλͷऔಘ

    View Slide

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

    View Slide

  14. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒
    USBϚεετϨʔδσόΠεͷυϥΠόͷ
    ࡞੒
    2 ͭͷ΍Γํ͕ଘࡏ͢Δɽ
    Table: ϓϩτίϧͷҧ͍
    ϓϩτίϧͷ໊લ ରԠ͍ͯ͠Δछྨ
    Bulk-Only Transport Specification શػछ
    USB Attached SCSI Protocol USB 3.0 ͷΈ

    View Slide

  15. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒
    σόΠεͱͷ΍ΓऔΓ
    1 SCSI ίϚϯυͷૹ৴
    2
    σʔλͷૹ৴ɼ·ͨ͸ड৴όοϑΝͷϙΠϯλૹ৴
    3
    ίϚϯυͷऴྃεςʔλε౳ͷड৴

    View Slide

  16. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒
    ࢀߟʹͨ͠΋ͷ
    ࢓༷ॻ
    xHCI
    USB3.2
    USB2.0
    ιʔείʔυ
    MikanOS
    QEMU
    ॻ੶
    USB: The Universal Serial Bus, Benjamin David Lunt,
    Forever Young Software

    View Slide

  17. USB σόΠευϥΠόͷ։ൃ
    USB σόΠευϥΠόͷ։ൃ
    USB ϑϥογϡϝϞϦυϥΠόͷ࡞੒
    ॻ͍ͨιʔείʔυ
    Ramen OS
    https://github.com/toku-sa-n/ramen

    View Slide