Всем привет.
Такой вопрос. Пишу приложение для работы с 2 девайсами, основанными на чипах FTDI. Существует известная проблема, заключающаяся в том, что у FTDI есть 2 различных несовместимых драйвера - драйвер виртуального ком-порта (он встроен в Ubuntu и называется ftdi_sio) и ftd2xx, который можно скачать с их сайта. Так вот для взаимодействия с одним из моих девайсов нужно использовать ftd2xx, а для другого нужен ftdi_sio.
Проблему я решил, сделав небольшую улититку, которая делает rmmod или modprobe для ftdi_sio. Т.е. когда мне нужно поработать с первым девайсом, я выгружаю драйвер ftdi_sio, а когда надо что-то сделать со вторым - загружаю ftdi_sio. Решение так себе, но ничего более красивого я не придумал.
Вроде бы все нормально работает, но есть один момент. После выполнения команды modprobe ftdi_sio имею такое:
$ lsmod | grep ftdi
ftdi_sio 53248 2
usbserial 45056 5 ftdi_sio
Спустя секунд 20 вывод меняется на более адекватный:
$ lsmod | grep ftdi
ftdi_sio 53248 0
usbserial 45056 1 ftdi_sio
В течение этих 20 секунд открыть порт не получается - получаю ошибку "port busy". Подскажите, что это за процессы, которые начинают использовать драйвер сразу же после его загрузки и можно ли как-то их отключить или хотя бы сократить время их работы?