172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|||||||||||||||||||||||||||||||
1 | |||||||||||||||||||||||||||||||
Как отключить загрузку драйвера?10.12.2024, 14:36. Показов 560. Ответов 18
Метки нет (Все метки)
Изучаю работу с PCI-драйверами, в качестве подопытного взял moschip semiconductor technology ltd pci 9835 multi-i/o controller.
На данном этапе каждый раз приходится делать
Что я делал: Положил mypcidriver.ko в /lib/modules/5.15.0-43-generic/kernel/drivers/my, после этого выполнил команду
Добавил "blacklist serial" и "blacklist parport_serial" в /etc/modprobe.d/blacklist.conf (где-то пишут, что надо создать файл serial.conf и в нём прописать "blacklist serial" - так тоже делал), после этого выполнил команду
Ещё я видел на форумах, что надо покопаться в настройках udev, но там надо знать имя устройства, а lsdev выдаёт 0000:03:00.0, ну и соответственно
Ну и собственно вопрос: как избавиться от этого serial'а?
0
|
10.12.2024, 14:36 | |
Ответы с готовыми решениями:
18
Как отключить загрузку оригинала на PhocaGallery Как отключить загрузку графики в IExplorer'e Как посмотреть загрузку драйвера Как отключить загрузку символов для System.Data.dll |
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,100
|
|
10.12.2024, 16:59 | 2 |
Так если lsmod не выводит тот parport_serial, но выводит какой надо, этого вполне достаточно, я бы этим удовлетворился.
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|
10.12.2024, 17:13 [ТС] | 3 |
если бы этого было достаточно, я бы тоже удовлетворился, но нет - нужно, чтобы к устройству был привязан мой драйвер, а к нему привязывается этот serial, который согласно lsmod не запущен, в отличие от моего...
возможно, если он такой неубиваемый, надо не бороться с ним, а искать способ переключить ассоциации...
0
|
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,100
|
||||||
10.12.2024, 21:50 | 4 | |||||
Мне всё же непонятно, как этот parport_serial, указанный в /etc/modprobe.d/blacklist.conf, может к чему-то привязываться, если он не загружается. М.б., он есть в каком-то правиле udev? Попробуйте в /lib/udev/rules.d сделать поиск примерно так:
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
||||||||||||||||
11.12.2024, 10:48 [ТС] | 5 | |||||||||||||||
нашёл в интернете такое пояснение: "If driver is built into the kernel, modprobe.blacklist will have no effect at all to it, since modprobe will not be involved at all." ну и дальше там советуют делать unbind руками, что я сейчас и делаю. А для автоматической работы, видимо, придётся писать скрипт.
0
|
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,100
|
|
11.12.2024, 15:50 | 6 |
Fabeldyr, это конечно; я так понял, что он берётся из /lib/modules/...
Это правило можно перенести в /etc/udev/rules.d и там отредактировать, чтобы не подключался parport_pc, а подключался какой надо. В /etc/udev/rules.d он будет иметь приоритет на системным.
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|||||||||||
11.12.2024, 16:12 [ТС] | 7 | ||||||||||
я правильно понял, что файл 80-drivers.rules надо перенести из /lib/udev/rules в /etc/udev/rules
и отредактировать... тут я вообще ноль пока в вопросе, но судя по тексту файла, вместо
0
|
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,100
|
||||||
11.12.2024, 19:12 | 8 | |||||
Я сам не профессионал в udev, я эти правила иногда записывал в /etc/udev/rules.d и редактировал, но уверенно сказать не могу. Я бы попробовал такой вариант RUN:
сначала оставил бы.
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
||||||||||||||||||||||||||||||||||||
12.12.2024, 11:14 [ТС] | 9 | |||||||||||||||||||||||||||||||||||
В интернете очень много схожих вопросов на предмет ассоциации видеокарт или usb-устройств с конкретными драйверами. Если просуммировать написанное там, то для работы связки на постоянной основе нужно создать в папке /etc/udev/rules.d файл 99-mypcidriver.rules (номер не имеет конкретной привязки к чему-либо, важно, чтобы он был побольше, чтобы перекрывать предыдущие правила), а в нём написать
ещё видел вариант
тоже не сработал - после перезагрузки в /lib/udev/rules.d сгенерился 80-drivers.rules точно такой же как раньше
0
|
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,100
|
|
12.12.2024, 16:56 | 10 |
Так в /lib/udev/rules.d он остался тот, какой и был, а я предлагал скопировать его в /etc/udev/rules.d и там изменить, киак надо.
Требуется ли ещё и присваивать совоему драйверу id таким образом, не могу сказать. Я когда-то давно написал маленький не драйвер, а модуль ядра, не помню, чтобы там это требовалось в такой форме.
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|
12.12.2024, 17:14 [ТС] | 11 |
я так и сделал. я просто когда писал предыдущее сообщение думал, что файл в /lib/udev/rules.d генерится на основе файла в /lib/udev/rules.d, сейчас я уже понял, что это просто два разных настроечных файла с разным уровнем приоритета.
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|||||||||||||||||||||
13.12.2024, 11:52 [ТС] | 12 | ||||||||||||||||||||
некоторое количество гугления привело к следующим результатам:
при просмотре вывода dmesg обнаружились следующие строки
Добавлено через 20 минут а ещё в конфиге есть строка
0
|
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,100
|
|
13.12.2024, 14:08 | 13 |
Например, можно перекомпилировать ядро без мешающего драйвера или сделать его модулем, а потом установить, но тогда это придётся повторять после каждого обновления ядра.
Так я не понял, копирован ие udev-правила в /etc/udev/rules.d и редактирование его там помогло или нет?
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|
13.12.2024, 14:50 [ТС] | 14 |
0
|
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,100
|
|
13.12.2024, 15:49 | 15 |
Правильно составленное udev-правило должно сработать. Попробуйте разные его варианты, например, без KERNEL==parport_pc и варианты. Найденное в Интернете сработало же у кого-то. Тут важно в точности соблюсти синтаксис, чтобы не было опечаток и т.п.
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|||||||||||||||||||||||||||||||||||||||||
16.12.2024, 16:10 [ТС] | 16 | ||||||||||||||||||||||||||||||||||||||||
в общем, единственное рабочее решение, которое я нашёл - это создание скрипта, который будет делать то, что я сейчас делаю руками при каждой загрузке:
создать файл скрипта:
теперь команда
тут вручную указаны два устройства в слотах 0 и 2, в реальности же мы не будем знать сколько есть устройств и в каких они слотах, поэтому нужно что-то вроде Код
for device in /sys/bus/pci/drivers/serial/* { if (device содержит 0000:*) { sudo sh -c "echo device > /sys/bus/pci/drivers/serial/unbind sudo sh -c "echo device > /sys/bus/pci/drivers/mypcidriver/bind } }
0
|
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,100
|
|
16.12.2024, 17:02 | 17 |
Хорошо, что нашли решение, но лучше бы черезправило udev.
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|
16.12.2024, 17:27 [ТС] | 18 |
согласен, но пока все варианты, которые я перебрал, не работают, если найду, обязательно тут отпишусь, но а пока такое рабочее решение
0
|
172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 235
|
|||||||||||
17.12.2024, 09:58 [ТС] | 19 | ||||||||||
тут опечатка, должно быть
Кликните здесь для просмотра всего текста
0
|
17.12.2024, 09:58 | |
17.12.2024, 09:58 | |
Помогаю со студенческими работами здесь
19
Как отключить загрузку последнего просмотренного канала прошлой сессии в SimpleTV? Автоматическая установка драйвера. Как отключить? Как отключить шифрование на уровне драйвера для wi-fi адаптера? Отключить загрузку программы Отключить загрузку изображений Awesomium Запрет на загрузку драйвера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи | |||||
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
|
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
|
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
|
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
|
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
|
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
|
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
|
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
|
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать.
/ / . . .
|
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
|
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
|
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
|