|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,399
|
|
Драйвер для ядра 3.x и старше12.06.2018, 23:06. Показов 2883. Ответов 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,399
|
||||||
| 18.07.2018, 12:31 [ТС] | ||||||
|
sgaeal, Я воспользовался вашим советом, посмотрел, что делается в input_event() и вызываемых
из неё и далее функциях, вызвал их вручную из своего модуля со своими данными и понял, в чём ошибка. Вот исправленный вариант собственно модуля:
0
|
||||||
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,399
|
|
| 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,399
|
|
| 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,399
|
|
| 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,399
|
|
| 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,399
|
|
| 25.09.2018, 18:09 [ТС] | |
|
Я ошибся, сообщение о конфликте функций snprintf и других - это только предупреждения,
а ошибки дальше. 1-я из них - о несовпадении типов параметров. Oжидается параметр типа const struct timespec64 * а передаётся параметр типа const struct timespec *
0
|
|
|
370 / 226 / 53
Регистрация: 18.10.2017
Сообщений: 2,399
|
|||||||||||
| 18.03.2019, 21:11 [ТС] | |||||||||||
|
У меня скомпилировался этот модуль и в Ubuntu-18.04 с ядром 4.15 после того, как я закомментировал строку
Я пока не нашёл.
0
|
|||||||||||
| 18.03.2019, 21:11 | |
|
Помогаю со студенческими работами здесь
30
Возможно ли приостановить/заморозить драйвер на уровне ядра Выборка из БД мужчин от 60 и старше, женщин от 55 и старше на Foxpro 2.6 Выборка SQL Foxpro муж от 60 лет старше и жен от 55 лет и старше Скачал драйвер для ATI и при загрузке пишет не найден драйвер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|