usb gadget: Add config for UVC in init
The UVC gadget requires some setup in configfs before it can be used by the gadget HAL. This CL adds that setup to usb specific init.rc file. Currently, UVC is setup to advertise mjpeg streams at 720p, and 1080p. Bug: 242344221 Test: Manually tested that UVC is correctly set up on boot. Change-Id: I71cf4727fb23744c5aef368c1750784a19ba8c5d
This commit is contained in:
parent
5749b85397
commit
67cca6916d
1 changed files with 159 additions and 0 deletions
|
@ -71,6 +71,72 @@ on early-boot
|
||||||
# acm function for uwb
|
# acm function for uwb
|
||||||
mkdir /config/usb_gadget/g1/functions/acm.uwb0
|
mkdir /config/usb_gadget/g1/functions/acm.uwb0
|
||||||
|
|
||||||
|
# uvc function
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/function_name "Android Webcam"
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket 3072
|
||||||
|
# write /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst 5
|
||||||
|
# write /config/usb_gadget/g1/functions/uvc.0/streaming_interval 2
|
||||||
|
# setup control params
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/control/header/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
|
||||||
|
# advertise mjpeg streams
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
|
||||||
|
# advertise 720p resolution for webcam encoded as mjpeg
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth 1280
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize 1843200
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval 333333
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval "166666
|
||||||
|
333333
|
||||||
|
416666
|
||||||
|
666666"
|
||||||
|
# advertise 1080p resolution for webcam encoded as mjpeg
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight 1080
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth 1920
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize 4147200
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval 333333
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval "166666
|
||||||
|
333333
|
||||||
|
416666
|
||||||
|
666666"
|
||||||
|
# TODO: Add uncompressed streams
|
||||||
|
# setup streaming params
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
|
||||||
|
# remove write permissions for 'others'
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/function_name
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
|
||||||
|
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_interval
|
||||||
|
|
||||||
# chown file/folder permission
|
# chown file/folder permission
|
||||||
chown system system /config/usb_gadget/
|
chown system system /config/usb_gadget/
|
||||||
chown system system /config/usb_gadget/g1
|
chown system system /config/usb_gadget/g1
|
||||||
|
@ -135,6 +201,99 @@ on early-boot
|
||||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
|
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
|
||||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
|
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
|
||||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
|
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/bInterfaceNumber
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bmControls
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bSourceID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bUnitID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/iProcessing
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/wMaxMultiplier
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bAssocTerminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bmControls
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bTerminalID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/iTerminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMax
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMin
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wOcularFocalLength
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wTerminalType
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bAssocTerminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bTerminalID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/iTerminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/wTerminalType
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/function_name
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_interval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/bInterfaceNumber
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bColorPrimaries
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bMatrixCoefficients
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bTransferCharacteristics
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bmInfo
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bStillCaptureMethod
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTerminalLink
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerSupport
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerUsage
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bFrameIndex
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bFrameIndex
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioX
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioY
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bFormatIndex
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmFlags
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmInterlaceFlags
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed
|
||||||
chown system system /config/usb_gadget/g1/idProduct
|
chown system system /config/usb_gadget/g1/idProduct
|
||||||
chown system system /config/usb_gadget/g1/idVendor
|
chown system system /config/usb_gadget/g1/idVendor
|
||||||
chown system system /config/usb_gadget/g1/max_speed
|
chown system system /config/usb_gadget/g1/max_speed
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue