I did everything like you said and nothing change
The only concerning thing was this message:
xwolkx@xwolkx:~/Downloads/userial$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/6.14.0-36-generic/build M=/home/xwolkx/Downloads/userial modules
make[1]: Entering directory '/usr/src/linux-headers-6.14.0-36-generic'
make[2]: Entering directory '/home/xwolkx/Downloads/userial'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-14 (Ubuntu 14.2.0-19ubuntu2) 14.2.0
You are using: gcc-14 (Ubuntu 14.2.0-19ubuntu2) 14.2.0
CC [M] option.o
MODPOST Module.symvers
CC [M] option.mod.o
CC [M] .module-common.o
LD [M] option.ko
BTF [M] option.ko
Skipping BTF generation for option.ko due to unavailability of vmlinux
make[2]: Leaving directory '/home/xwolkx/Downloads/userial'
make[1]: Leaving directory '/usr/src/linux-headers-6.14.0-36-generic'
After all the commands and restart, on plug I see this with lsusb -t:
|__ Port 004: Dev 010, If 0, Class=[unknown], Driver=rndis_host, 480M
|__ Port 004: Dev 010, If 1, Class=[unknown], Driver=rndis_host, 480M
|__ Port 004: Dev 010, If 2, Class=[unknown], Driver=[none], 480M
|__ Port 004: Dev 010, If 3, Class=[unknown], Driver=[none], 480M
|__ Port 004: Dev 010, If 4, Class=[unknown], Driver=[none], 480M
|__ Port 004: Dev 010, If 5, Class=[unknown], Driver=cdc_acm, 480M
|__ Port 004: Dev 010, If 6, Class=[unknown], Driver=cdc_acm, 480M
|__ Port 004: Dev 010, If 7, Class=[unknown], Driver=[none], 480M
|__ Port 004: Dev 010, If 8, Class=[unknown], Driver=[none], 480M
So far, the only temporary solution I found is creating a udev rule with next params:
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="600a", \
RUN+="/sbin/modprobe option", \
RUN+="/bin/sh -c 'grep -q \"2c7c 600a\" /sys/bus/usb-serial/drivers/option1/new_id || echo 2c7c 600a > /sys/bus/usb-serial/drivers/option1/new_id'"
ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceNumber}=="02|03|05|06|07|08", \
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="600a", \
RUN+="/bin/sh -c 'echo $kernel | sudo tee /sys/bus/usb/drivers/option/unbind'"
ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceNumber}=="04", \
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="600a", \
RUN+="/bin/sh -c 'echo $kernel | sudo tee /sys/bus/usb/drivers/option/bind'"
ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceNumber}=="05|06", \
ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="600a", \
RUN+="/bin/sh -c 'echo $kernel | sudo tee /sys/bus/usb/drivers/cdc_acm/bind'"
I have no idea which interface should be controlled by which driver, but I’m sure that interface 4 should be used by driver Option and interface 8 should be used by ADB.