I am trying to configure my Apalis iMX6 Linux SOM to act as a Serial(CDC ACM)/Mass Storage/HID composite USB device.
I have configured the unit as a composite Serial and Mass Storage device using the USB Gadget ConfigFS.
However I am running into problems when trying to add the HID functionality.
When I try to create the HID device using ConfigFS, I get an error:-
root@apalis-imx6:/sys/kernel/config/usb_gadget/g1# mkdir functions/hid.usb0 mkdir: can't create directory 'functions/hid.usb0': No such file or directory
When I look at the USB gadget function drivers, it doesn’t appear there is a driver for HID present:-
root@apalis-imx6:/sys/kernel/config/usb_gadget/g1# ls /lib/modules/4.1.44-2.7.4+gb1555bf/kernel/drivers/usb/gadget/function/ u_ether.ko usb_f_ecm_subset.ko usb_f_ncm.ko usb_f_ss_lb.ko u_serial.ko usb_f_eem.ko usb_f_obex.ko usb_f_acm.ko usb_f_fs.ko usb_f_rndis.ko usb_f_ecm.ko usb_f_mass_storage.ko usb_f_serial.ko
How do I go about installing/adding HID support for ConfigFS?
I have read that FunctionFS can also be used to implement HID devices. Would FunctionFS be a better solution than ConfigFS for implementing the HID portion?
If so, is there any good examples on how to implement a HID device using FunctionFS? This would need to play nicely with the two existing ConfigFS devices (Serial and Mass Storage devices).
Thank you for your time.