If anyone else hits this problem you can try changing
/etc/defaults/usb-gadget and set USB_MODE='networking' (instead of
This influences the /usr/bin/usb-gadget program which gets run at boot
time and loads the module.
With this done I found that defining usb0 in
/etc/networking/interfaces actually sets the IP configuration. For
g_cdc it didn't work because the interface was reported ready early by
udev. udevadm showed subsequent events associated with usbmon and only
after these was the CDC ethernet interface actually capable of being
Hope this helps someone someday.