Перечитал много документации и окончательно запутался. Стоит задача проксировать ttyUSB(N). В идеале система должны выглядеть так:
1. Создаются два устройства tty (ttyUSB_Port, ttyUSB_mon)
2. Пользователь работает через ttyUSB_Port как будто через ttyUSB(N) за счет того, что модуль получает то что пишет пользователь в порт и направляет в реальный ttyUSB. И аналогично в обратную сторону.
3. При необходимости через ttyUSB_mon можно также выполнить запрос к оборудованию, тогда модуль прервет обмен данными между ttyUSB_Port и реальным ttyUSB и в реальный ttyUSB запишет/прочитает то что получил из ttyUSB_mon.
Вроде все выглядит красиво и логично но на практике возникли сложности. Насколько я понял у модуля ядра нет доступа к библиотечным open|fopen. Возникает вопрос тогда, как открывать файл устройства из модуля и как вообще модуль может работать с файловыми устройствами? через низкоуровневый ioctl? А открыть дескриптор как?