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
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 :-) )
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.
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