To je spis takove OTG v inverzim defaultu.
mobil s OTG = device, a kdyz chce tak host
sbc s OTG = host, a kdyz chce tak device
Pokud ma zarizeni OTG konektor s ID pinem (napr micro USB B nebo A/B) tak se to umi nastavit samo, podle pouziteho kabliku.
Myslim ze kazdy SoC ma nejakou OTG podporu, pak zalezi jen na tom, zda s tim pocita navrh desky.
A samozrejme - to musi byt nativni port (primo ze SoC), pres USB huby ten smer otacet nejde (proto se zminuje ve zpravicce ze to jede jen na typeC/micro USB.. ale uz ne na type-A portech)
Zajimavejsi by bylo vedet, zda na TypeC to ma USB3.0 OTG... ale jak znam anglicke salamisty, neni zrejme sance a bude to jen USB2.
Možná bych upřesnil, že USB gadget mode byl v Raspberry Pi vždy, teď jen dostává jednoduchou softwarovou podporu v Raspberry Pi OS. Rád bych taky připomněl svůj starší, ale stále platný článek: Raspberry Pi jako USB periferie: napájení a síť po jednom kabelu.
Osobně také používám firmware showmewebcam, který z Raspberry Pi Zero a HQ kamerky dělá docela pěknou webkamerku.
Pi 4 a 5 má OTG jen na USB-C na kterém je často zdroj pro Pi.
Dívám se, že například Radxa ROCK 4D nebo 5C mají OTG na USB přes které se deska nenapájí. To mi vyhovuje více. Ale nemám s těmi deskami zkušenost.
Nejvíce by se mi líbilo OTG, které by zároveň napájelo HOSTa (například připojený mobil v režimu HOST). Nevím zda to nějaká deska (třeba ta Radxa) umí.
Imho u USB-C je na PD domlouvam nezavisle smer od toho, kdo je host a kdo device ve smyslu USB protokolu. Ale ze to pojede samo.. bych necekal - to musi nekdo vyslovene tak navrhnout, aby tam neudelal nejakou prekazku tomu ultimatnimu cili.
Tak nabíjení při připojené periferii (klávesnici v hubu) mi na jednom konkrétním kusu hardwaru s microUSB 2.0 fungovalo (zařízení tvrdilo, že se nabíjí a nabíjelo se), ale hub, který pouští ven 5V ze svého USB A samce (zapojeného do OTG adaptéru), není zrovna podle specifikace a některá zařízení by z toho mohla být silně nešťastná…
Treba: Včera 15:25 Ondřej Caletka.
Z clanku: "Na konci tohoto procesu tedy máme Raspberry Pi Zero připojené jak k napájení, tak i k síti prostřednictvím jediného kabelu. Jeho další využití je již jen na naší fantazii."
Udělá z linuxového počítače USB zařízení. Např. USB zvukovou kartu s vestavěným DSP a komplexním ovládáním přes webový prohlížeč USB hostitele (tedy kompozitní zařízení usb audio a usb network, na kterém běží DSP, výstup např. do USB DACu a webový server pro ovládání).
27. 1. 2026, 09:16 editováno autorem komentáře
Aha, takže je to len "buzzword" s pekným interface. Preto som tomu nerozumel. Ok asi pre deti dobré, pre tie je to primárne určené.
?? Nerozumíš tomu a je to pro děti? Linuxový USB gadget používáš i ty, pokud např. připojíš androidí mobil přes USB k PC pro stažení fotek.
Ehm, dobre nerozumiem tomu, ja som robil s embedded a "gadget mode" sme to nevolali. OTG, USB - Slave, atď. Zmýlil ma ten názov, ktorý som nepoznal. Teraz ho už poznám, tak viem, že to nie je nič magické.
Androidí mobil nevlastním, tak neviem, ako sa to robí. Čiže ok. Dobre. Alebo whatever.
Uvedomil som si, že Gadget je asi politicky korektný názov, ktorý nemá negatívne konotácie. Ale znie to tak neurčito, preto ma to mätie.
USB slave se nikdy nepoužívalo, ani jsem to nikdy neslyšel. USB standard používá host/device, či peripheral device. Gadget je v kernelu od r. 2004 https://www.kernel.org/doc/html/v5.8/driver-api/usb/gadget.html
Na iOS je to velice podobné, viz např. předpřipravené kombinace kompozitních funkcí https://theapplewiki.com/wiki/IOS_USB_device_modes . Na linuxu (plnohodnotném, tj. vč. userspace) je k tomu samozřejmě plný přístup a uživatel si může namíchat kompozitní funkce, jak potřebuje (a jak mu je bude podporovat hostitelský OS, zrovna u windows bývá boj najít funkční kombinaci, přestože by tomu teoreticky nic bránit nemělo...)
USB gadget je termín, který byl v jádru již v r. 2005 při přechodu verze 2.6.12 na git (předchozí historii se mi nechce dohledávat :-) )
Taky delam embedded a jmenuje se to "usb device mode" / OTG port :) Nevim proc ten sw stack nekdo nazval "gadget mode"... treba za to autor dostal klicenku na ocasku. Takovou vec si treba u obojetnyho PCIe pojmenovali jinak - root port vs. end-point (EP) mode, coz zni mnohem profesionalneji.
Dohledat diskusi z r. 2002 k pojmenování gadget není složité. Očividně k volbě gadget byly rozumné důvody
https://marc.info/?l=linux-usb-devel&m=101899819200917&w=2
https://marc.info/?l=linux-kernel&m=101905980516749&w=2
https://marc.info/?l=linux-usb-devel&m=101907894005944&w=2
https://marc.info/?l=linux-usb-devel&m=101907894005944&w=2
https://marc.info/?l=linux-kernel&m=101906652324789&w=2
https://marc.info/?l=linux-kernel&m=101906907027666&w=2 - zde prvně zmíněn gadget
https://marc.info/?l=linux-kernel&m=101906931627975&w=2
https://marc.info/?l=linux-kernel&m=101907039229052&w=2 - target je také varianta
https://marc.info/?l=linux-kernel&m=101907039229055&w=2 - proč ne client
https://marc.info/?l=linux-kernel&m=101907149030375&w=2 - target/gadget
https://marc.info/?l=linux-kernel&m=101907369132761&w=2 - gadget be it
https://marc.info/?l=linux-usb-devel&m=101907514901772&w=2 deviceside
https://marc.info/?l=linux-kernel&m=101908116608579&w=2 device controller drivers
https://marc.info/?l=linux-usb-devel&m=101919485405268&w=2 host vs. local host
A o měsíc později to byl gadget https://marc.info/?l=linux-kernel&m=102211536223891&w=2
https://marc.info/?l=linux-kernel&m=101907369132761&w=2
"gadget" is nice. It's descriptive of what the code is for, without the
bad connotations that "slave" seems to have"
A máme to tam.
Gadget mode myslim umi napriklad emulovat USB flashku. Takze by teoreticky slot treba raspberry zero preprogramovat na ctecku MicroSD karet, ktera transparentne sifruje data... (treba po zadani pinu pres virtualni USB seriovku, ktera muze byt ve stejnem gadget interfacu)
Jistě, umí to vše v https://github.com/torvalds/linux/tree/master/drivers/usb/gadget/function . Standalone USB receivery fungují úplně stejně, akorát buď mají podporovaný protokol zadrátovaný v HW natvrdo, nebo jsou to nějaké mikročipy (STM32, XMOS, Atmel), pro které někdo napsal podporu příslušného USB protokolu.
Linuxový USB gadget má dokonce raw gadget pro user-space ovladač (něco jako je libusb pro host režim) https://github.com/torvalds/linux/blob/master/drivers/usb/gadget/legacy/raw_gadget.c , https://github.com/torvalds/linux/blob/master/Documentation/usb/raw-gadget.rst
27. 1. 2026, 11:39 editováno autorem komentáře