Описание тега linux-kernel

Этот тег предназначен для вопросов о внутреннем устройстве самого ядра Linux - особенно о написании кода, который выполняется в контексте ядра (например, модули ядра или драйверы). Вопросы о написании кода пользовательского пространства в Linux обычно следует помечать тегом [linux]. Поскольку внутреннее устройство ядра Linux постоянно меняется, полезно указать точные версии ядра, которые вас интересуют.
1 ответ

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

Я получаю доступ к UART, сопоставляя его физический базовый адрес с пользовательским пространством. Операция чтения выполнена успешно, но операция записи выдает ошибку сегментации. Ниже мой код #define READ_REG32(reg) ( *((volatile int *) (reg)) ) #…
14 авг '18 в 05:39
0 ответов

Параметры ядра Linux, которые можно настроить, если в сервере WebSphere MQ превышено количество невыполненных заданий TCP

Мы сталкиваемся с проблемой, когда мы видим, что количество задержек в протоколе TCP превышает значение по умолчанию (100) на нашем сервере MQ (v7.5), работающем на платформе Linux (Redhat), во время большого числа запросов на соединение на сервере …
08 июл '15 в 23:06
1 ответ

Память программ Windows и память программ Linux

Linux создает страницы виртуальной памяти для каждой используемой программы, а ОС обрабатывает сопоставление виртуальных адресов с подлинными аппаратными адресами, верно? Но как Windows это делает? Действительно ли программы Windows имеют память, ко…
10 дек '15 в 19:01
1 ответ

free(): неверный указатель только после обращения к драйверу ZMA

У меня есть драйвер, который выполняет передачу DMA в память, которая malloc'ed в приложении пространства пользователя, а затем передается в ядро ​​(get_user_pages...). Проблема: я получаю сообщение "неверный указатель" при вызове free(). Я печатаю …
05 окт '17 в 09:47
0 ответов

Как использовать AT-команды в Android при "рутировании" телефона

У нас есть различные устройства Android от Spike, Samsung, Micromax. Как подать AT-команды с устройства Android на модем? Мы искали в Google Play, но не нашли ни одного приложения, связанного с этим. Подскажите, пожалуйста, каким образом мы можем ис…
1 ответ

Известные схемы взаимного исключения в драйверах Linux

В настоящее время я читаю Драйверы устройств Linux, третье издание, глава 5: Условия параллелизма и гонки. Автор утверждает, что сценарии Read-Copy-Update иногда используются при написании драйверов для Linux. Затем он углубляется в то, почему они и…
0 ответов

Устранение неполадок в операции atomic_set, которая вызывает запрос об ошибке подкачки ядра

Я пытаюсь устранить ошибку, которая приводит к сбою драйвера ядра Linux, который я программирую. Код отлично работал на другой машине. Я перенес тот же код на другую машину, и теперь он падает. У меня проблемы с устранением неполадок, в чем именно з…
22 дек '14 в 07:34
1 ответ

Трассировка из кода пользовательского пространства в пространство ядра

Недавно я настроил свою систему для отладки ядра, используя qemu + gdb. В настоящее время я могу установить точки останова, например, на __do_page_fault() и проследить звонок через gdb (с win команда). Теперь я хочу следующую задачу: простое C прогр…
22 мар '18 в 15:07
2 ответа

Где Wireshark/tcpdump/libpcap перехватывает пакеты внутри ядра Linux?

В соответствии с этим, wireshark может получить пакет до того, как он будет отброшен (поэтому я не могу получить такие пакеты самостоятельно). И я до сих пор задаюсь вопросом о точном расположении ядра Linux для wireshark для получения пакетов. Отве…
14 июн '16 в 04:09
1 ответ

Компоновка драйвера Tree-USB для ядра Linux

Я должен удалить модуль (usb-storage.ko) от /lib/modules/KERNEL-VERSION/kernel/drivers/usb/storage/ каталог с именем usb-storage.ko Есть ли какие-либо конкретные исходные файлы внутри linux/drivers/usb/storage дифракторией, которая приводит к usb-st…
1 ответ

Настройка I2C и I2S в ALSA ASoC

Я работаю с BeagleBoard под управлением Linux 3.0.63 и пытаюсь заставить работать интерфейсы I2C и I2S с конечной целью - воспроизвести файл WAV на beagleboard и правильно настроить I2C и I2S. В настоящее время я застрял на установке BeagleBoard в к…
21 ноя '13 в 19:33
3 ответа

Уменьшение размера образа ядра Linux

Я работаю над встроенной платой на основе архитектуры ARM V7, имеющей всего 128 МБ флеш-памяти, и хочу разместить в ней образ загрузчика, образ ядра Linux, а также корневую файловую систему, для этого моей основной целью является уменьшение размера …
28 дек '14 в 07:56
2 ответа

Возвращаемое значение размера или типа системного вызова в Linux

Я понимаю, что при взгляде на код ядра тип возвращаемого значения системного вызова linux равен long int, а его размер 32-bit, Можно ли заставить системный вызов linux вернуть 64-bit значение (типа, скажем, long long int)? Я понимаю, что менять разм…
07 июн '13 в 22:00
4 ответа

Почему Linux на x86 использует разные сегменты для пользовательских процессов и ядра?

Итак, я знаю, что Linux использует четыре сегмента по умолчанию для процессора x86 (код ядра, данные ядра, код пользователя, данные пользователя), но все они имеют одинаковую базу и предел (0x00000000 и 0xfffff), то есть каждый сегмент отображается …
01 янв '11 в 18:01
0 ответов

Использование в ядре специфических типов endiannes __be32/__be16/__le32/__le16

Ядро Linux имеет типы __be32, __be16 и т.д. определены в ядре include/uapi/linux/types.h, Однако они просто typedefs для __u32, '__u16' и тому подобное. Также в случае sparse используется для анализа кода C, они добавляют gcc конкретный флаг __bitwi…
07 июн '18 в 14:21
2 ответа

Как определить частоту таймера в Linux

Мне нужно написать модуль ядра для расчета частоты ядра Linux (таймера прерывания). кто-то сказал мне, что мне нужно использовать таймер в моем модуле, но я не знаю, как это сделать явно:( Моя конечная цель - записать результат (частоту) в некоторый…
28 ноя '12 в 08:12
1 ответ

Получить флаги маршрута IPV6 программно?

Есть ли способ получить флаги таблицы маршрутизации IPV6 через любой API в Linux? Netlink socket не показывает места для флагов. После проверки route исходный код команды в net-tools кажется, что он читает маршрут из proc файловая система, я осторож…
2 ответа

Долго плавать преобразование в модуле ядра Linux

Это мой первый вопрос здесь, и я надеюсь, что я получу полезные ответы или подсказки здесь. Как указано в заголовке: мне нужно преобразовать из long в float в модуле ядра, например: с 78123456 до 78.123456, и детали следующие: У меня есть две длинны…
16 сен '11 в 03:15
0 ответов

Постоянно меняйте размер SWIOTLB в ядре Linux

Я работаю на Linux Debian с 64-битным ядром версии 4.19.0 и SWIOTLB размером по умолчанию 64M. Для нужд драйвера ядра, который я разрабатываю, я бы хотел использовать SWIOTLB более 64M. Есть ли способ изменить размер SWIOTLB навсегда. Я продолжаю ис…
16 окт '18 в 10:48
1 ответ

Чтение 4 мкс +5 В TTL из параллельного порта - когда использовать прерывания ядра

У меня есть экспериментальная коробка с трюками, которые каждые 100 мсек или около того выдают 4 мсек импульса + ​​5 В на линии TTL. Точное время, когда это происходит, заранее неизвестно, но это важно - поэтому я хотел бы использовать компьютер Red…
11 июл '14 в 23:10