В контекста портирование драйверов для Linux:
-прочитать Linux Kernel издательства OReilly для понимания общей концепции(хотябы выборочно)
-взять usb snoop и поснифать весь трафик общения драйвер-устройство. разобраться в формате передачи данных.
-посмотреть драйвера аналогичных устройств(сетевых карт, dvb карт и тп) и на основе готового драйвера слепить свой.
это путь 99% людей, которые портируют драйвера USB устройств под linux.