I'm unable to successfully set the bDeviceClass, bDeviceProtocol, or bDeviceSubClass when configuring a device as an RNDIS gadget in
I'm configuring the gadget with the following values and can read them back successfully in Linux:
echo 0xef > bDeviceClass
echo 0x02 > bDeviceSubClass
echo 0x01 > bDeviceProtocol
But when I plug the device into my Windows machine and observe the USB device descriptor the I get the following:
On a different device running the 4.9 kernel this same procedure works correctly and Windows reads the correct values from the device. My current device is running 4.14.53. I'm not sure why the previous method no longer works.
I'm not sure if it's related or not, but in order to pass along product, manufacturer and serialnumber information on my current device I had to pass in those values as arguments when modprobing g_ether, rather than populating the fields in
strings/0x409. I have tried do the same thing with bDeviceClass, bDeviceSubclass, and bDeviceProtocol but haven't had any luck.
Does anyone have any idea as to what I'm doing wrong?