И снова я со своими CCD. На сей раз для изучения характеристик нам с коллегой был выдан светоприемник Apogee U16M-HC. На диске к нему был только вантузячий софт, который, к тому же, требовал установки проприетарной софтины. Однако, в интернете нашлись и линуксовые «драйверы», правда, под старенькое ядро 2.6.
За пол дня модуль ядра был приведен к нормальному виду и запустился. Однако, изучая файлы для работы в пространстве пользователя, мы обнаружили 2 варианта: один - с использованием модуля ядра, а второй - без оного (перебирает все USB-устройства на предмет обнаружения idVendor и idProduct, затем вызывает usb_claim_interface и работает через usb_control_msg и usb_bulk_read).
С горем пополам «драйвер», не использующий модуль ядра, скомпилировался и даже попытался отобразить температуру светоприемника (но что-то она была уж больно низкая). Кода и там, и там довольно много.
Вопрос: какие подводные камни могут возникнуть, если работать со светоприемником без модуля ядра? Стоит ли продолжать ковырять «драйвер», работающий без модуля ядра, или же лучше «причесать» тот, который работает с модулем (через ioctl'ы)?