Linux驅動:一分鐘帶你瞭解usb gadget

作為工程師,通常我們在開發板上開發usb device驅動比較多。比如說我們開發板通過usb連接一個usb攝像頭。在這種情況下,我們的開發板中有一個usb host controller,簡稱UHC。開發板充當了usb host角色。這個時候我們在開發板中開發的usb 攝像頭等usb設備驅動,稱之為usb device驅動。

Linux驅動:一分鐘帶你瞭解usb gadget

那麼有沒有可能使得我們的開發板作為一個usb設備呢?比如在實際應用場景中,開發板A沒有網卡,開發板B有網卡。開發板A想上網,只能通過usb連接開發板B,讓開發板B共享自己的網卡資源.這個時候開發板A是host角色。開發板B是device角色,它裡面有usb device controller,簡稱UDC。這個時候很明顯我們需要在開發板B開發一個驅動,使得它自己可以作為一個usb網卡設備被A識別並使用。那麼,開發板B中的驅動,我們稱之為usb gadget驅動。常見的usb gadget驅動有RNDIS(usb 網卡),file_storage(比如安卓手機插到電腦可以當u盤),adb(開發過安卓的應該都知道是啥)

Linux驅動:一分鐘帶你瞭解usb gadget

相信大家已經明白了usb device驅動及usb gadget驅動的區別了。那麼,我們平時把手機通過usb線接到電腦上面當u盤使用,我們的手機中需要usb gadget驅動還是usb device驅動呢?歡迎大家將你們的答案寫在留言區。


分享到:


相關文章: