Ecoder control panel in Linux

С недавних пор в качестве основной ОС стал снова использовать линукс. Проблемы с работой драйверов некоторых старых устройств в Windows 10 уже порядком надоели, равно как и проблемы после почти каждого обновления. Возможно, проблемы с драйверами это не вина производителей ОС, но вот навязчивые обновления, которые как не отключай, а они включаются через некоторое время самостоятельно уже реально достали.

Вот поэтому я провел небольшое исследование на предмет работоспособности в линукс софта и железа которое я использую. Как выяснилось, работает практически все. Либо есть нативные версии под линукс, либо без проблем работает через Wine. Единственное, что не работает - это мой SunSDR-1. Но с ним вопрос уже решил, т.к. я им все еще периодически пользуюсь (нравится звучание SDR со звуковой картой, оно какое-то "живое" по сравнению со звуком DDC SDR, но это конечно мое субъективное ощущение) я для него соберу отдельный небольшой компьютер, который будет через KVM-переключатель подсоединяться к второму монитору моего основного ПК.

Пока еще не успел полностью установить и настроить весь необходимый софт в линуксе, т.к. времени свободного не очень много, но программу ExpertSDR2 уже установил. Однако на этапе настройки панели Ecoder столкнулся с проблемой, что программа её не видит, хотя, тот же dmesg сообщает, что такое устройство в системе есть и подключено к одному из usb портов. При запуске программы с правами root, панель работает. Значит дело в правах.

Создал в директории /etc/udev/rules.d/ файл 10-ecoder.rules со следующим содержимым:

ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1fc9", MODE="0666", GROUP="plugdev"


Затем добавил своего пользователя в группу plugdev:

usermod -a -G plugdev denis 


Переподключил панель к usb порту, но ничего не изменилось.Стал внимательнее изучать вывод dmesg а так же syslog и наткнулся на то, что при подключении панели к ней начинает обращаться процесс mtp-probe, пытаясь подключить панель как MTP-устройство, коим она не является.

После непродолжительных поисков в гугле, сделал следующее:

 cp /lib/udev/rules.d/69-libmtp.rules /etc/udev/rules.d/69-libmtp.rules


Затем открыл в редакторе файл  /etc/udev/rules.d/69-libmtp.rules и после строки "Some sensitive devices we surely don't wanna probe" добавил следующие строки:

# To get E-coder USB panel working
ATTR{idVendor}=="1fc9", ATTR{idProduct}=="0003", GOTO="libmtp_rules_end"


После этого панель заработала в ExpertSDR2 запущенной от обычного пользователя без root прав.

Параметры idVendor и idProduct взяты из вывода команды lsusb, которая отображает панель Ecoder как "NXP Semiconductors LPC1343", видимо по модели примененного микроконтроллера.

Осталась правда одна проблема, которую пока не смог победить. В Windows, после закрытия программы ExpertSDR2, подсветка панели гаснет автоматически, а в линуксе такого не происходит. Попытки обесточить usb порт разными способами, так же не дают эффекта. В итоге после закрытия программы, подсветка панели продолжает работать до перезагрузки или выключения компьютера.

Возможно эту проблему можно решить только с помощью разработчиков, но пока к ним не обращался. Если у меня так и не получится справиться с этим самостоятельно, напишу им, чтобы поправили.

Назад

Оставить комментарий

Поля отмеченные * обязательны к заполнению.


Назад