Я использую ubuntu, но вопрос для linux вообще.
Я установил модуль/драйвер, скомпилировав мое ядро Linux и установив новое скомпилированное ядро. Он работает нормально.
Чтобы этот драйвер работал на другом компьютере без установки нового ядра, я скопировал файл .ko
на новый компьютер под /lib/modules/<version>/...
, а затем запустил sudo depmod -a
. Затем запустите sudo modprobe <drivername>
. Модуль может быть загружен без проблем. но устройство не работает с этим модулем .ko
.
Эти две машины не идентичны аппаратным средствам, но они идентичны версии ядра и версии выпуска ubuntu. Обычно копирование файла .ko
должно работать для той же версии Linux и того же ядра.
Дополнительная информация о драйвере. это спрятанный планшетный драйвер. Все файлы патчей:
- один файл .c в
drivers/hid/
- добавить одну строку в
drivers/hid/Makefile
- добавьте несколько строк в
drivers/hid/usbhid/Kconfig
- добавьте несколько строк в
drivers/hid/hid-ids.h
- добавьте несколько строк в
drivers/hid/usbhid/hid-quirks.c
hid_blacklist struct до {0, 0}
Это все.
Я даже попытался скопировать весь каталог drivers/hid/
, включающий все файлы .ko
с первой машины на вторую. но не повезло. Планшет для планшета можно распознать на второй машине, я могу сделать клик левой кнопкой мыши с помощью пера, но перо не может перемещать курсор.
Надеюсь, я представил достаточно подробностей. Моя цель - установить модуль только в идентичную версию Linux (ядро) без переустановки ядра. Я не уверен, как достичь этого или если это возможно.
Большое спасибо.
PS:
- Выход dmesg на 1-й машине, который работает: http://paste.ubuntu.com/6419301/
- Выход dmesg на 2-й машине: http://paste.ubuntu.com/6419302/
В 1-м аппарате перед подключением планшета lsmod не отображает модуль. после подключения модуль может быть загружен автоматически. Я вижу, что lsmod показывает модуль.
Во втором mahcine модуль не может быть загружен автоматически, подключив устройство. Мне нужно сделать sudo modprobe <module>
вручную.
Поскольку мне нужно будет установить модуль на многие машины в моей компании, проще установить модуль, не переустанавливая ядро. Я попытался установить пакеты ядра .deb, которые были построены на 1-й машине на второй машине, отлично работает на 2-й машине. но мне нехорошо переустанавливать ядро на многие машины. Спасибо.