![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
|||||||||||||||||||||||||||||||
Как отключить загрузку драйвера?10.12.2024, 14:36. Показов 669. Ответов 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 Как посмотреть загрузку драйвера |
![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
|
10.12.2024, 17:13 [ТС] | |
если бы этого было достаточно, я бы тоже удовлетворился, но нет - нужно, чтобы к устройству был привязан мой драйвер, а к нему привязывается этот serial, который согласно lsmod не запущен, в отличие от моего...
возможно, если он такой неубиваемый, надо не бороться с ним, а искать способ переключить ассоциации...
0
|
![]() 352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,131
|
||||||
10.12.2024, 21:50 | ||||||
Мне всё же непонятно, как этот parport_serial, указанный в /etc/modprobe.d/blacklist.conf, может к чему-то привязываться, если он не загружается. М.б., он есть в каком-то правиле udev? Попробуйте в /lib/udev/rules.d сделать поиск примерно так:
0
|
![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
||||||||||||||||
11.12.2024, 10:48 [ТС] | ||||||||||||||||
нашёл в интернете такое пояснение: "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,131
|
|
11.12.2024, 15:50 | |
Fabeldyr, это конечно; я так понял, что он берётся из /lib/modules/...
Это правило можно перенести в /etc/udev/rules.d и там отредактировать, чтобы не подключался parport_pc, а подключался какой надо. В /etc/udev/rules.d он будет иметь приоритет на системным.
0
|
![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
|||||||||||
11.12.2024, 16:12 [ТС] | |||||||||||
я правильно понял, что файл 80-drivers.rules надо перенести из /lib/udev/rules в /etc/udev/rules
и отредактировать... тут я вообще ноль пока в вопросе, но судя по тексту файла, вместо
0
|
![]() 352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,131
|
||||||
11.12.2024, 19:12 | ||||||
Я сам не профессионал в udev, я эти правила иногда записывал в /etc/udev/rules.d и редактировал, но уверенно сказать не могу. Я бы попробовал такой вариант RUN:
сначала оставил бы.
0
|
![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
||||||||||||||||||||||||||||||||||||
12.12.2024, 11:14 [ТС] | ||||||||||||||||||||||||||||||||||||
В интернете очень много схожих вопросов на предмет ассоциации видеокарт или usb-устройств с конкретными драйверами. Если просуммировать написанное там, то для работы связки на постоянной основе нужно создать в папке /etc/udev/rules.d файл 99-mypcidriver.rules (номер не имеет конкретной привязки к чему-либо, важно, чтобы он был побольше, чтобы перекрывать предыдущие правила), а в нём написать
ещё видел вариант
тоже не сработал - после перезагрузки в /lib/udev/rules.d сгенерился 80-drivers.rules точно такой же как раньше
0
|
![]() 352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,131
|
|
12.12.2024, 16:56 | |
Так в /lib/udev/rules.d он остался тот, какой и был, а я предлагал скопировать его в /etc/udev/rules.d и там изменить, киак надо.
Требуется ли ещё и присваивать совоему драйверу id таким образом, не могу сказать. Я когда-то давно написал маленький не драйвер, а модуль ядра, не помню, чтобы там это требовалось в такой форме.
0
|
![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
|
12.12.2024, 17:14 [ТС] | |
я так и сделал. я просто когда писал предыдущее сообщение думал, что файл в /lib/udev/rules.d генерится на основе файла в /lib/udev/rules.d, сейчас я уже понял, что это просто два разных настроечных файла с разным уровнем приоритета.
0
|
![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
|||||||||||||||||||||
13.12.2024, 11:52 [ТС] | |||||||||||||||||||||
некоторое количество гугления привело к следующим результатам:
при просмотре вывода dmesg обнаружились следующие строки
Добавлено через 20 минут а ещё в конфиге есть строка
0
|
![]() 352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,131
|
|
13.12.2024, 14:08 | |
Например, можно перекомпилировать ядро без мешающего драйвера или сделать его модулем, а потом установить, но тогда это придётся повторять после каждого обновления ядра.
Так я не понял, копирован ие udev-правила в /etc/udev/rules.d и редактирование его там помогло или нет?
0
|
![]() 352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,131
|
|
13.12.2024, 15:49 | |
Правильно составленное udev-правило должно сработать. Попробуйте разные его варианты, например, без KERNEL==parport_pc и варианты. Найденное в Интернете сработало же у кого-то. Тут важно в точности соблюсти синтаксис, чтобы не было опечаток и т.п.
0
|
![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
||||||||||||||||||||||||||||||||||||||||||||||
16.12.2024, 16:10 [ТС] | ||||||||||||||||||||||||||||||||||||||||||||||
в общем, единственное рабочее решение, которое я нашёл - это создание скрипта, который будет делать то, что я сейчас делаю руками при каждой загрузке:
создать файл скрипта:
теперь команда
тут вручную указаны два устройства в слотах 0 и 2, в реальности же мы не будем знать сколько есть устройств и в каких они слотах, поэтому нужно что-то вроде
0
|
![]() 172 / 21 / 2
Регистрация: 11.09.2014
Сообщений: 238
|
|||||||||||
17.12.2024, 09:58 [ТС] | |||||||||||
тут опечатка, должно быть
Кликните здесь для просмотра всего текста
0
|
17.12.2024, 09:58 | ||||||
Помогаю со студенческими работами здесь
19
Как отключить загрузку последнего просмотренного канала прошлой сессии в SimpleTV? Автоматическая установка драйвера. Как отключить? Как отключить шифрование на уровне драйвера для wi-fi адаптера?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
TypeScript: Интерфейсы vs Типы
run.dev 11.04.2025
Современная разработка на JavaScript сталкивается с множеством проблем при масштабировании проектов. Типизация кода стала хорошим инструментом, помогающим избежать ошибок во время выполнения,. . .
|
Управление топиками и разделами Kafka
Javaican 11.04.2025
Apache Kafka — распределенная платформа потоковой передачи данных, которая стала стандартом для построения высоконагруженных систем обмена сообщениями. В современной архитектуре микросервисов,. . .
|
Миграция монолита в Event-Driven микросервисную архитектуру на C#
stackOverflow 11.04.2025
Монолитная архитектура – классический подход к разработке программного обеспечения. Это приложение, построенное как единое целое, где все компоненты тесно связаны между собой. Большинство проектов. . .
|
Go в Kubernetes: Управление ресурсами
golander 11.04.2025
Разработчики Go-приложений в Kubernetes часто сталкиваются с неожиданными проблемами производительности и даже внезапными отказами контейнеров. Причина этого кроется в особенностях взаимодействия. . .
|
Агрегаты и сущности в DDD микросервисах
Javaican 10.04.2025
Разработка современных программных систем часто приводит на распутье: монолит или микросервисы? Даже при выборе микросервисной архитектуры многие команды сталкиваются с проблемой правильного. . .
|
Многопоточность в C#: Task и параллельное программирование
UnmanagedCoder 10.04.2025
Современные процессоры уже давно перестали наращивать тактовую частоту в пользу увеличения количества ядер. Это создало интересную ситуацию: разработчики, привыкшие к последовательному. . .
|
Линейное решение нелинейной задачи с помощью арктангенса для метода обработки данных из double buffering.
Hrethgir 10.04.2025
Публикация в доработке, метод арктангенса в комментариях внизу.
Вообще изначально я пренебрёг квадратурой числа, но потом понял, что для вычисления приблизительного значения - сгодится, формулу. . .
|
Переменные в Python
py-thonny 10.04.2025
Переменная в программировании — это символическое имя, связанное с областью памяти, в которой хранится значение. Она позволяет получать доступ к данным через понятные человеку идентификаторы, а не. . .
|
Многопоточность в C#: Task и асинхронные операции
UnmanagedCoder 10.04.2025
Многопоточность позволяет выполнять несколько операций одновременно, что важно для решения двух основных задач: повышения скорости выполнения вычислительно-сложных операций и сохранения отзывчивости. . .
|
Запуск контейнеров Docker на ARM64
Mr. Docker 09.04.2025
Появление таких решений, как Apple M1/ M2, AWS Graviton, Ampere Altra и Raspberry Pi, сделало использование ARM-систем обыденностью для многих разработчиков и DevOps-инженеров. При этом Docker,. . .
|