Описание тега chardev

A character device is a custom kernel module communicating with user space in an unstructured way.
1 ответ

Регистрация сопоставленной памяти символьного устройства Linux с помощью cudaHostRegister приводит к неверному аргументу

Я пытаюсь ускорить передачу данных графического процессора DMA<->CPU<->следующим образом: 1. Отображение моего (собственного) устройства, выделенного ядром Linux, памяти для пространства пользователя 2. Регистрация более поздней (отображенной памяти…
15 июн '17 в 14:18
1 ответ

Сопоставить память резерватора при загрузке с пользовательским пространством с помощью remap_pfn_range

Я пытаюсь отобразить зарезервированную память (30M со смещением 2G) во время загрузки (параметры ядра загрузки mem=2G memmap=30M$2G) в пространство пользователя с использованием remap_pfn_range, ниже приведен код моего драйвера: #include &lt;linux/k…
20 июн '16 в 09:41
0 ответов

Бесконечная печать по команде чтения символьного устройства (через команду cat)

Я получаю циклическую печать записанных данных на символьном устройстве при использовании команды cat для чтения из файла устройства. Я новичок в этом, поэтому я, вероятно, делаю это неправильно, был бы признателен за помощь, пытаясь понять это` sta…
17 май '18 в 21:20
1 ответ

Автоматическая выгрузка драйвера OS X

Это мой первый вопрос здесь:) В настоящее время я пишу общий kext, который предоставляет символьное устройство и предназначается для OSX 10.7+. Это чистый C, с нулевым IOKit/C++. (В случае, если это имеет значение, я тестирую драйвер 10.11.) Я хочу,…
19 сен '16 в 08:29
2 ответа

Если символьные устройства Linux прекращают чтение () с новой строки

POSIX определяет текстовый файл как: Файл, содержащий символы, организованные в одну или несколько строк. POSIX определяет строку как Последовательность, состоящая из нуля или более не начинающихся символов плюс завершающий символ новой строки. Учит…
19 окт '16 в 09:23
1 ответ

Не удается открыть файл устройства из-за отсутствия такого устройства или адреса

Я пытаюсь создать драйвер символьного устройства (модуль ядра). Модуль загружается, создает символьное устройство, как показано ниже: root@imx6x-std:~# ls -l /dev/socledchrdevregion crw-rw-rw- 1 root root 246, 0 Jan 1 08:56 /dev/socledchrdevregion Н…
13 окт '16 в 04:20
1 ответ

Символьное устройство: выберите устройство для чтения / записи

Я нашел хороший код в качестве примера для модуля символьного устройства: https://github.com/euspectre/kedr/blob/master/sources/examples/sample_target/cfake.c Я не модифицировал код, и я протестировал его. Я получил два устройства (/dev/cfake0 и /de…
20 июн '17 в 13:56
0 ответов

Как удалить конкретную страницу памяти из vma в ядре Linux?

У меня есть устройство персонажа. Память используется совместно с пользовательским приложением. Теперь, через некоторое время (в некоторых случаях) ядро ​​должно освободить страницу из этой отображенной памяти. Теперь я хотел бы знать, как я могу уд…
18 июл '18 в 12:40
4 ответа

Ядро Linux: установка разрешений для файла /dev, который был создан с помощью create_device()

Я делаю небольшой модуль Linux, который является драйвером для устройства char. В моем коде я создаю класс устройства, а не само устройство и, таким образом, в моей системе создается файл / dev. проблема в том, что файл / dev имеет только корневые р…
02 май '14 в 09:28
1 ответ

Напишите в debugfs из модуля ядра Linux

Мне удалось успешно создать dentry в соответствующем пути, но теперь, как мне на самом деле написать там? struct dentry* log_dir = debugfs_create_dir ("my_module", NULL); struct dentry* log_file = debugfs_create_dir ("log", 0777, log_dir, NULL, NULL…
14 фев '17 в 20:41
1 ответ

Чтение символьного устройства в пространстве ядра Linux

В моем проекте я должен заполнить свой буфер данными из указанного ввода (по умолчанию /dev/urandom). Я гуглил это, как открывать и читать данные в пространстве ядра с символьного устройства, но форумы посвящены тому, как реализовать функцию чтения …
29 апр '14 в 21:27
1 ответ

Получение ENOTTY на ioctl для модуля ядра Linux

Я определил следующий chardev: .час #define MAJOR_NUM 245 #define MINOR_NUM 0 #define IOCTL_MY_DEV1 _IOW(MAJOR_NUM, 0, unsigned long) #define IOCTL_MY_DEV2 _IOW(MAJOR_NUM, 1, unsigned long) #define IOCTL_MY_DEV3 _IOW(MAJOR_NUM, 2, unsigned long) мод…
14 фев '17 в 20:01
1 ответ

Насколько стабильны мажорный и минорный режим чардев?

Я работаю над библиотекой последовательного порта, и я думаю об использовании основного / вспомогательного режима символьного устройства, чтобы проверить, является ли данный файл последовательным портом платформы, последовательным портом pty или usb…
29 апр '14 в 19:48
1 ответ

Почему я получаю сообщение об ошибке при попытке "перехватить" мой драйвер char-устройства?

Я написал простой драйвер символьного устройства для Linux. Это простая система хранения / извлечения сообщений, в которой сообщения хранятся в пространстве ядра. Я должен быть в состоянии сделать что-то вроде этого: echo "message 1" &gt; /dev/mydev…
13 ноя '17 в 16:21
0 ответов

Почему device_create не возвращает ошибку, если файл уже существует?

Я пишу драйвер PCI с символьным устройством для интерфейса (Linux 4.9.13). Вот сценарий, который беспокоит меня: Бежать touch /dev/foo0 который создает нормальный файл в /dev каталог. Загрузите модуль драйвера. Вот псевдокод, представляющий, что там…
0 ответов

Замена `chardev` на`mmap`

Я ищу способ синхронизации драйвера ядра и некоторого пользовательского кода (без какого-либо copy_to_user или опроса в mmap) Больше объяснений: Мой код на стороне пользователя считывает некоторые данные в общем mmap, но он должен знать, когда данны…
12 мар '19 в 18:43
0 ответов

Изменение разрешений по умолчанию для IOctl cdev

Я добавляю вызов IOctl из собственной платформы OpenGL на устройстве Android, чтобы я мог регистрировать информацию о кадре в ядре через модуль ядра трассировки. В моем модуле ядра я создаюcdev для вызовов IOctl, но у меня проблема с тем, что права …
04 мар '20 в 14:40
1 ответ

Являются ли системные вызовы потокобезопасными?

Я написал модуль ядра, это драйвер символьного устройства, что-то вроде этой ссылки. Драйвер имеет внутреннюю структуру, например: struct { str[500]; }channelData; static channelData chData[4]; Итак, у меня есть многопоточное приложение, которое исп…
14 мар '20 в 15:22
0 ответов

Ошибка сегментации при попытке загрузки после добавления драйвера устройства

Я пытаюсь скомпилировать и установить linux 4.20.17 после добавления исходных файлов моего собственного модуля ядра (простого модуля умножителя). Я успешно могу скомпилировать и установить linux-4.20.17 с исходными файлами. Проблема возникает, когда…
0 ответов

вывод ядра странный dmesg моего модуля драйвера

Из моего предварительного вопроса Почему не удалось загрузить модуль? (/dev/scull0: нет такого устройства или адреса) Мне удалось загрузить модуль через/sbin/insmod, но после этого я выхожу из dmesg: [ 2765.707018] scull: loading out-of-tree module …
26 май '20 в 15:46