Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
12453 Discussions

Problem to use the USB OTG as gadget (peripheral) in linux.

Honored Contributor II



I'm using the helio board from macnica with a SoC Cyclone V and I'm trying use the USB OTG of the board as device (gadget) in the linux. 

My target is connect the board to my PC and I want that my PC recognize the board as HID device or CDC device. 


With a little search in the web I discovered that I need enable the module libcomposite.ko and the module g_serial.ko. 


The kernel image that I use is from the site: I have tryed with the kernel 3.13 and 3.18. 


When I use the kernel 3.13, I get the error: 

root@socfpga:~/drivers# insmod libcomposite.ko // OK no error 

root@socfpga:~/drivers# insmod g_serial.ko  

Error: could not insert module g_serial.ko: No such device 


in the dmesg have the message: 

couldn't find an available UDC 


I suppose that the error is because don't have the UDC (USB device controller) driver, I try enable the flag Designware/S3C HS/OtG USB Device controller in the 

→ Device Drivers → USB support → USB Gadget Support → USB Peripheral Controller to enable the driver. 

but when I try it the kernel compilation broke with the error: 

make[3]: *** No rule to make target `drivers/usb/gadget/s3c-hsotg.o', needed by `drivers/usb/gadget/built-in.o'. Stop. 


The most interesting is that in the drivers/usb/dwc2/Makefile have the follow message: 


# NOTE: This driver at present only implements the Host mode 

# of the controller. The existing s3c-hsotg driver supports 

# Peripheral mode, but only for the Samsung S3C platforms. 

# There are plans to merge the s3c-hsotg driver with this 

# driver in the near future to create a dual-role driver. Once 

# that is done, Host mode will become an optional feature that 

# is selected with a config option. 



In the kernel 3.18 this structure of the kernel was changed, but I have the same error when try execute the module the command "insmod g_serial.ko". 


Someone know if the Altera give drivers to use the OTG as peripheral in the linux? If yes how I can do it? 




Willian Henrique
0 Kudos
0 Replies