С каждым днем перечень поддерживаемых устройств в Linux увеличивается, но при этом встречается «экзотика», которую производители драйверов обошли вниманием по причине низкой востребованности.
В этой статье мы рассмотрим, как получить доступ к подобному устройству , подключенному к USB-порту, из Windows-программы, запущенной под Wine.
В перечень подобных устройств можно включить редкие мобильные телефоны с проприетарным программным обеспечением под Windows, специфические собственные разработки предприятий и т.п.
В качестве примера для иллюстрации мы выбрали UPS Powercom серии BlackKnight.
Это то устройство, поддержку которой в Linux можно назвать проблемной. Долгое время ИБП этой серии не поддерживались вообще, а недавно появившаяся утилита для Linux на сайте производителя уже не работает в Ubuntu (c недавних пор из ядра Ubuntu исключена поддержка usbfs, необходимая этому ПО).
Нас интересует доступ к ИБП программы мониторинга состояния ИБП, а также параметров электрической сети. В Windows используется тип доступа USB-to-Serial, а это значит, что нам необходимо сделать соответствие USB-устройству в Linux COM-порту для Wine.
В первую очередь, нам необходимо убедиться, что USB-устройство доступно из Linux. Используем команду lsusb и видим в перечне наш ИБП:
$ lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 005: ID 0d9f:0002 Powercom Co., Ltd
Bus 004 Device 004: ID 073a:2230 Chaplet Systems, Inc.
Bus 004 Device 003: ID 0d62:001c Darfon Electronics Corp. Benq X120 Internet Keyboard Pro
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Далее посмотрим перечень устройств с подключенным ИБП и без него командой
ls /dev/
заметив, что при подключении ИБП появляется устройство ttyUSB0 .
Сделаем символическую ссылку на это устройство для Wine:
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com2
После этого, наше USB устройство будет доступно для Wine как COM2.
Устанавливаем программу обычным способом, после чего утилита для мониторинга доступна в трее, и видит наш ИБП как подключенный к COM2.
а прошить таким макаром можно?
просто например сонерик нужно отключать перед прошивкой и подключать когда укажет флэшер.
Проверить бы фирменной утилитой, видится ли телефон вообще, а вот гарантии давать боюсь по этому поводу.
в крайнем случае хрюшка на виртуалке спасет
уже прошивал так
а ели мне наоборот, надо com порт в работу? пол-дня сегодня потратил, не видит wine com порт для одного приборчика… виртуал неохота ставить.
Добавлю еще, как человек, искавший решение для схожей проблемы. Может понадобиться ввести «sudo adduser $USER dialout» для того, чтобы все заработало!