UVC Development on Sigmastar PureLinux System – Part 3: RNDIS

1. Kernel Configuration to Add RNDIS Config

--- a/kernel/arch/arm/configs/mercury6_ssc016a_s01a_spinand_usbcam_defconfig
+++ b/kernel/arch/arm/configs/mercury6_ssc016a_s01a_spinand_usbcam_defconfig
@@ -1901,7 +1901,9 @@ CONFIG_SND_USB=y
 # CONFIG_SND_USB_PODHD is not set
 # CONFIG_SND_USB_TONEPORT is not set
 # CONFIG_SND_USB_VARIAX is not set
-# CONFIG_SND_SOC is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_SSTAR=y
+CONFIG_SND_SOC_SSTAR_DUMMY_CODEC=y
 # CONFIG_SOUND_PRIME is not set
CONFIG_USB_WEBCAM_RNDIS:
 external rndis function for webcam
 Symbol: USB_WEBCAM_RNDIS [=n] Type  : boolean
Prompt: Include configuration with RNDIS
 Location:      -> Device Drivers
 -> USB support (USB_SUPPORT [=y])
 -> USB Gadget Support (USB_GADGET [=m])
 -> USB Gadget Drivers (<choice> [=m])
 -> USB Webcam Gadget (USB_G_WEBCAM [=m])
 Defined at drivers/usb/gadget/legacy/Kconfig:542
 Depends on: <choice> && USB_G_WEBCAM [=m] && NET [=y]
 Selects: USB_U_ETHER [=n] && USB_F_RNDIS [=n] && CRC32 [=y]
 Related drivers: g_webcam.ko u_ether.ko usb_f_rndis.ko udc-msb250x.ko/dwc3.ko
Parameter Configuration:
#misc_mod_list_late
insmod /config/modules/4.9.227/videobuf2-core.ko use_mi_buf=1
insmod /config/modules/4.9.227/videobuf2-v4l2.ko
insmod /config/modules/4.9.227/videobuf2-memops.ko
insmod /config/modules/4.9.227/videobuf2-dma-sg.ko
insmod /config/modules/4.9.227/libcomposite.ko
insmod /config/modules/4.9.227/u_audio.ko
insmod /config/modules/4.9.227/usb_f_uac1.ko
insmod /config/modules/4.9.227/usb_f_uvc.ko
insmod /config/modules/4.9.227/dwc3.ko
insmod /config/modules/4.9.227/u_ether.ko
insmod /config/modules/4.9.227/usb_f_rndis.ko
insmod /config/modules/4.9.227/g_webcam.ko streaming_maxpacket=3072 streaming_maxburst=13 uac_function_enable=0 uvc_function_enable=1 rndis_function_enable=1
Note: 1. When using UVC, the corresponding demo program must be run.
2. To use RNDIS alone, set uvc_function_enable=0.
3. When the maxpacket used by the USB device is less than 512, the device must be set to 2.0 mode for Windows to recognize it properly.

Leave a Comment