|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,446
|
|
Драйвер для ядра 3.x и старше12.06.2018, 23:06. Показов 3048. Ответов 29
Метки нет (Все метки)
Здравствуйте!
Есть где-нибудь руководство по написанию драйверов для Linux с ядром 3.x и 4.x? Конкретно надо для ядра 3.16, связанный с константами для клавиатуры. В файле include/uapi/linux/input.h нет их описаний, также не вполне понятно, как создавать свои ioctl().
0
|
|
| 12.06.2018, 23:06 | |
|
Ответы с готовыми решениями:
29
Как установить драйвер ядра для VirtuaBox? Драйвер службы ядра Драйвер ядра устройства NULL |
|
3 / 3 / 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
|
|
|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,446
|
||||||
| 18.07.2018, 12:31 [ТС] | ||||||
|
sgaeal, Я воспользовался вашим советом, посмотрел, что делается в input_event() и вызываемых
из неё и далее функциях, вызвал их вручную из своего модуля со своими данными и понял, в чём ошибка. Вот исправленный вариант собственно модуля:
0
|
||||||
|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,446
|
|
| 20.09.2018, 22:21 [ТС] | |
|
sgaeal, А нем ожете ли Вы или ещё кто посоветовать что-нибудь, желательно побольше объёмом,
для модулей под ядра 4.x? Я пытался сейчас поискать, но вроде бы всё не новое.
0
|
|
|
3 / 3 / 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
|
|
|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,446
|
|
| 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
|
|
|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,446
|
|
| 22.09.2018, 17:18 [ТС] | |
|
Интересно, что в Ubuntu-18.04 с ядром lowlatency-4.15.0-34 этот драйвер тоже не компилируется,
но с другой ошибкой - там жалобы на несовместимость формата структуры timer_list, а насчёт функций snprintf, memcpy и подобных жалоб нет. Как много загадочного в природе.
0
|
|
|
3 / 3 / 0
Регистрация: 19.06.2018
Сообщений: 41
|
|
| 24.09.2018, 14:34 | |
|
Драйвера . Точнее модули компилируются под любое ядро Одинаково .
И пох. 2-х или 4-х ядро целевое. Ругается на элементарные функции? а они подключены? ..точнее даже так. При сборке к новому ядру модуля, уверены что все макросы остались одними и темеже? и что структуры одинаковые? (мол в структурах может какое макроопределение вставлено...а в новом ядре его нет). Получается ошибка. А может гдето просто макро убирает скобку..и ошибки посыпались. и дошло до memcpy. timer_list ? это в коде объявлен список? или в исходниках ядра?.. небось в ядре. Просто некой новой структурой объявление сделали, и перестали использовать "список" который использовали для этой "переменной" ранее ............. ну или timer_list не экспортируемая..в конце то концов.
0
|
|
|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,446
|
|
| 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
|
|
|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,446
|
|
| 25.09.2018, 18:09 [ТС] | |
|
Я ошибся, сообщение о конфликте функций snprintf и других - это только предупреждения,
а ошибки дальше. 1-я из них - о несовпадении типов параметров. Oжидается параметр типа const struct timespec64 * а передаётся параметр типа const struct timespec *
0
|
|
|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,446
|
|||||||||||
| 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 и при загрузке пишет не найден драйвер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|