|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,418
|
|
Драйвер для ядра 3.x и старше12.06.2018, 23:06. Показов 2927. Ответов 29
Метки нет (Все метки)
Здравствуйте!
Есть где-нибудь руководство по написанию драйверов для Linux с ядром 3.x и 4.x? Конкретно надо для ядра 3.16, связанный с константами для клавиатуры. В файле include/uapi/linux/input.h нет их описаний, также не вполне понятно, как создавать свои ioctl().
0
|
|
| 12.06.2018, 23:06 | |
|
Ответы с готовыми решениями:
29
Как установить драйвер ядра для VirtuaBox? Драйвер службы ядра Драйвер ядра устройства NULL |
|
2 / 2 / 0
Регистрация: 19.06.2018
Сообщений: 41
|
|
| 04.07.2018, 00:30 | |
|
1) Смотрим адрес функции input_event в модуле
2) Смотрим какой функции, соответствует данный адрес в /proc/kallsyms 3) Смотрим код функции, из пункта 2 в исходниках ядра. И понимаем, что там вызывается или не вызывается. https://elixir.bootlin.com/lin... linux/fs.h в struct file_operations полно всяких функций. Может стоит попробовать с ними поиграться?
0
|
|
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,418
|
||||||
| 18.07.2018, 12:31 [ТС] | ||||||
|
sgaeal, Я воспользовался вашим советом, посмотрел, что делается в input_event() и вызываемых
из неё и далее функциях, вызвал их вручную из своего модуля со своими данными и понял, в чём ошибка. Вот исправленный вариант собственно модуля:
0
|
||||||
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,418
|
|
| 20.09.2018, 22:21 [ТС] | |
|
sgaeal, А нем ожете ли Вы или ещё кто посоветовать что-нибудь, желательно побольше объёмом,
для модулей под ядра 4.x? Я пытался сейчас поискать, но вроде бы всё не новое.
0
|
|
|
2 / 2 / 0
Регистрация: 19.06.2018
Сообщений: 41
|
|
| 21.09.2018, 04:03 | |
|
peter_irich,
книга "Ядро linux" Д. Бовет, М. Чезати 2007-го года! Врятли что-то лучше найдёте. Да и не нужно ориентироваться на...мол ядра выше 4-х. Для меня лично, разницы нет , какое ядро 2,0,9 или самое последнее из 4-х Ну какие там изменения? ну при переходе с 2,х на 3,х, убрали kernel_lock. Ну и что из этого? часто ли вы это использовали? не думаю. Ну, новые переменные в структурах введены., некторые переименованы и что? легко найдёте их через grap . Главное понимать "в общем" как ОС работает. А то, какой она версии....должно быть ПОХ. Пока писал, вспомнил ещё одно из отличие существенное в работе. Но поверьте. Вы когда будите кодить, даже не будите догадываться о его существовании. На сколько это не существенно при кодинге!. (при работе самой ОС существенное изменение, но при кодинге, его даже не замечаешь).
0
|
|
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,418
|
|
| 21.09.2018, 20:25 [ТС] | |
|
sgaeal,
Однако Олег Цирюлик в своей книге версии 6.245 приводит эти различия для веток 2.x и 3.x, и сам я не раз сталкивался, что драйвер не компилируется с новым ядром. А сейчас я обнаружил, что два используемых нами драйвера, например, для платы MIC-3612 от advantech.com, adv950_source_v3.42.3.tar.gz, не компилируется в Astra Linux SE 1.6 с ядром 4.15 со странными жалобами на элементарные функции - snprintf, memcpy и подобные - что они конфликтуют с built-in функциями. Я ещё не успел их найти, не исключено, что причина не в исходном ядре, а в изменениях в нём, сделанных в "Русбитех". В заголовочных файлах ядра для Astra SE 1.5 у них были ошибки, из-за которых тоже что-то не компилировалось. Различия в ядрах обязательно знать при переносе драйвера с одного на другое, так разумеется, лучше, если описаны в систематическом виде.
0
|
|
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,418
|
|
| 22.09.2018, 17:18 [ТС] | |
|
Интересно, что в Ubuntu-18.04 с ядром lowlatency-4.15.0-34 этот драйвер тоже не компилируется,
но с другой ошибкой - там жалобы на несовместимость формата структуры timer_list, а насчёт функций snprintf, memcpy и подобных жалоб нет. Как много загадочного в природе.
0
|
|
|
2 / 2 / 0
Регистрация: 19.06.2018
Сообщений: 41
|
|
| 24.09.2018, 14:34 | |
|
Драйвера . Точнее модули компилируются под любое ядро Одинаково .
И пох. 2-х или 4-х ядро целевое. Ругается на элементарные функции? а они подключены? ..точнее даже так. При сборке к новому ядру модуля, уверены что все макросы остались одними и темеже? и что структуры одинаковые? (мол в структурах может какое макроопределение вставлено...а в новом ядре его нет). Получается ошибка. А может гдето просто макро убирает скобку..и ошибки посыпались. и дошло до memcpy. timer_list ? это в коде объявлен список? или в исходниках ядра?.. небось в ядре. Просто некой новой структурой объявление сделали, и перестали использовать "список" который использовали для этой "переменной" ранее ............. ну или timer_list не экспортируемая..в конце то концов.
0
|
|
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,418
|
|
| 24.09.2018, 20:59 [ТС] | |
|
Эти, как я их назвал, элементарные функции, являются "built-in", они находятся в ядре в /lib.
Я не знаю, почему в Astra 1.6 на них жалобы, они никак не должны меняться. Во всяком случае, в версиях 1.4 и 1.6 их описания в заголовочных файлах совпадают. Исходного кода ядра от 1.6 "Русбитех" пока не предоставляет. struct timer_list - конечно, в ядре. Почему такие различия с ядрами 4.15 в Ubntu и в Astra - не знаю. В Astra 1.4 драйвер с ядром 3.16, использующий timer_list, компилируется.
0
|
|
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,418
|
|
| 25.09.2018, 18:09 [ТС] | |
|
Я ошибся, сообщение о конфликте функций snprintf и других - это только предупреждения,
а ошибки дальше. 1-я из них - о несовпадении типов параметров. Oжидается параметр типа const struct timespec64 * а передаётся параметр типа const struct timespec *
0
|
|
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,418
|
|||||||||||
| 18.03.2019, 21:11 [ТС] | |||||||||||
|
У меня скомпилировался этот модуль и в Ubuntu-18.04 с ядром 4.15 после того, как я закомментировал строку
Я пока не нашёл.
0
|
|||||||||||
| 18.03.2019, 21:11 | |
|
Возможно ли приостановить/заморозить драйвер на уровне ядра Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6 Выборка SQL Foxpro муж от 60 лет старше и жен от 55 лет и старше Скачал драйвер для ATI и при загрузке пишет не найден драйвер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|