Модератор
|
||||||
1 | ||||||
Отключить ftdi_sio модуль30.11.2022, 04:04. Показов 971. Ответов 9
Привет всем!
Имеются программы работающие с устройством, драйвер к которому требует отключения имеющегося в убунте ftdi_sio. В ридми драйвера и в некоторых местах интренета описывают что нужно выполнить.
Правда, практика показала что достаточно первой команды. Есть и другой способ. Вот отрывок из ридми драйвера.
On most distributions, the linux kernel will have either a built-in or optional
module called "ftdi_sio". This will detect an FTDI device and automatically invoke the "usbserial" module and create devices such as "/dev/ttyUSB0". When the ftdi_sio module is controlling an FTDI device it is not available to libftd2xx. If the library attempts to access the device it will receive a message "FT_Open failed". There are several methods of preventing ftdi_sio from controlling FTDI devices. 1) Remove the ftdi_sio module from the running kernel: sudo lsmod | grep ftdi_sio If "ftdi_sio" is listed unload it (and its helper module, usbserial): sudo rmmod ftdi_sio sudo rmmod usbserial To reverse the operation the kernel modules can be reloaded using modprobe instead of rmmod. 2) Build a new kernel without the ftdi_sio module. Refer to your distributions instructions for building a custom kernel. 3) Use a udev unbind sysfs interface to disable devices as they are connected. First identify the device identifier to remove. ls /sys/bus/usb/drivers/ftdi_sio This will show a list of ports on USB devices that are linked to the ftdi_sio driver. These are in the form 1-2:1.0 (bus number 1 - port number 2 : device 1 . interface 0) for Port A, and 1-2:1.1 would be Port B on the same device. The /dev/ttyUSBx node can be mapped to the device identifier using: lsusb -t The devices will be listed in a tree format which can be mapped to the device identifiers. Identify the device which you wish to use and then send the identifier of the device to the "unbind" interface in the driver. (The tee function just echos stdin to stdout with privilege escalation through sudo). echo -n 1-2:1.1 | sudo tee /sys/bus/usb/drivers/ftdi_sio/unbind To reverse the process the same device number can be sent to the "bind" interface to re-enable the USB serial device. This can be scripted through udev rules to happen when a device connection change is detected. Но там тоже нужно каждый раз выполнять действия из под рута после подключения устройства. Может кто знает как навсегда отключить или удалить ftdi_sio. Ну кроме пересборки ядра. p.s. Ссылка на страницу драйвера : https://ftdichip.com/drivers/d2xx-drivers/ Использую этот https://ftdichip.com/wp-conten... 1.4.27.tgz
0
|
30.11.2022, 04:04 | |
Ответы с готовыми решениями:
9
отключить модуль в отдельных материалах Как отключить указатель мыши в консольном приложении (Pascal, модуль CRT) Для чего нужен модуль запуска процессов dcom-сервера, сильно ли грузит, как отключить? Найти модуль скорости; модуль тангенциального ускорения; модуль нормального ускорения; модуль полного ускорения Отключить музыку в фоновом режиме и отключить titlebar |
13015 / 7407 / 800
Регистрация: 09.09.2009
Сообщений: 28,980
|
|
30.11.2022, 08:11 | 2 |
вообще-то, "там" предложено несколько иное:
у udev есть набор правил, по которым он сам ("автоматом") выполняет действия при подключении/отключении указанных устройств. и "там" намекают на создание нужного вам правила
0
|
Модератор
|
|
30.11.2022, 08:32 [ТС] | 5 |
Посмотрел. Понял что тут без описания до посинения реинжинирингом можно заниматься. Тем более что не только неизвестно как создать нужный файл, но и чего, собственно, нужно сделать этим файлом.
Ранее, в одном месте нашёл рекомендацию сделать файл такого содержания Кликните здесь для просмотра всего текста
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="0666" SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6015", MODE="0666"
0
|
341 / 196 / 52
Регистрация: 18.10.2017
Сообщений: 1,934
|
||||||
30.11.2022, 08:44 | 6 | |||||
Curry, после установки нового udev-правила надо их перечитать как root командой
1
|
Модератор
|
||||||
30.11.2022, 08:56 [ТС] | 7 | |||||
Выполнил
Если для вас не сложны, то подскажите, пожалуйста, какой файл мне сделать. Что мне нужно я, надеюсь, объяснил.
0
|
896 / 268 / 54
Регистрация: 30.08.2017
Сообщений: 1,776
|
||||||
30.11.2022, 12:03 | 8 | |||||
Сообщение было отмечено Curry как решение
Решение
А зачем udev в данной ситуации?
Если я всё правильно понял, то хватит прописать в файле /etc/modprobe.d/blacklist.conf (если его нет - создать):
0
|
Модератор
|
||||||
30.11.2022, 12:59 [ТС] | 9 | |||||
Проблема решилась после добавления указанной _sg2 -ом строки в тот файл, после чего
Теперь втыкаю-вытыкаю USB кабель, приложение коннектится без дополнительных команд.
0
|
896 / 268 / 54
Регистрация: 30.08.2017
Сообщений: 1,776
|
|||||||||||
30.11.2022, 13:31 | 10 | ||||||||||
Можно попробовать и это неудобство обойти - есть подозрение, что всё-таки надо пересобрать initramfs.
Для дебьянов (надеюсь не путаю):
1
|
30.11.2022, 13:31 | |
30.11.2022, 13:31 | |
Помогаю со студенческими работами здесь
10
Как отключить брандмауэр или отключить фаервол Безопасно ли слоту отключить отключить себя же? модуль S его перемещения, модуль средней скорости, а также среднепутевую скорость Создать модуль DLL-модуль с классом, позволяющим запускать внешнюю программу Модуль минификации css и модуль сжатия картинок для gulp Поставил 3-й модуль памяти, комп видит только один модуль Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |