|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,387
|
|
Драйвер для ядра 3.x и старше12.06.2018, 23:06. Показов 2845. Ответов 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
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,387
|
||||||
| 18.07.2018, 12:31 [ТС] | ||||||
|
sgaeal, Я воспользовался вашим советом, посмотрел, что делается в input_event() и вызываемых
из неё и далее функциях, вызвал их вручную из своего модуля со своими данными и понял, в чём ошибка. Вот исправленный вариант собственно модуля:
0
|
||||||
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,387
|
|
| 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
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,387
|
|
| 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
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,387
|
|
| 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
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,387
|
|
| 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
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,387
|
|
| 25.09.2018, 18:09 [ТС] | |
|
Я ошибся, сообщение о конфликте функций snprintf и других - это только предупреждения,
а ошибки дальше. 1-я из них - о несовпадении типов параметров. Oжидается параметр типа const struct timespec64 * а передаётся параметр типа const struct timespec *
0
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,387
|
|||||||||||
| 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 и при загрузке пишет не найден драйвер Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|