Você não precisa modificar o kernel para apenas uma vez; você pode sobrescrevê-lo.
- Desconecte o dispositivo
-
modprobe ftdi_sio
-
echo 0403 6001 >/sys/bus/usb-serial/drivers/ftdi_sio/new_id
- Conecte o dispositivo
E o seu dispositivo deve funcionar.
Sua outra alternativa é usar a interface bind
sysfs; Sugiro usar lsusb -t
para descobrir o caminho + interface correto nesse caso.
Usando um exemplo parcial do meu sistema, de um dispositivo de armazenamento usb (seria muito similar para serial usb).
$ lsusb -t
...
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
|__ Port 1: Dev 5, If 0, Class=Hub, Driver=hub/3p, 5000M
|__ Port 3: Dev 6, If 0, Class=Hub, Driver=hub/3p, 5000M
|__ Port 3: Dev 7, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
...
$ echo '4-1.3.3:1.0' >/sys/bus/usb/drivers/usb-storage/bind
O formato do número é: BUS-PORT(.PORT)+:1.INTERFACE
. O único número que não é visível na saída do lsusb é o primeiro dígito após os dois pontos; e sempre foi um 1
na minha experiência. Alguém com um conhecimento mais profundo do kernel provavelmente pode me dizer o que é e fornecer um contra-exemplo.