Свързани въпроси 'linux-device-driver'
Къде изчезна полето собственик на struct proc_dir_entry? [ Linux ядро ]
Според списъка с промени в API в серията 2.6 ядро на LWN полето .owner от struct proc_dir_entry беше премахнат в ядрото 2.6.30.
И така, ето няколко въпроса:
Наистина ли е било необходимо или полезно да зададете това поле?
Полето...
3982 изгледи
schedule
17.09.2022
Ядрото опа, когато изпълнява функция за четене на хардуерни регистри
Позовавам се на този отговор за срив помощ при анализирането на тази част от кода, която е причинила проблеми. Контекстът за всички е, че работя с символен драйвер, който ще действа като пропуск от потребителското пространство директно към...
262 изгледи
schedule
21.09.2022
Срив при опит за достъп до const char* буфер
Опитвам се да напиша модул на ядрото на Linux. В това, че регистрирах функциите за отваряне, четене, писане, освобождаване, както е показано по-долу:
static struct file_operations fops =
{
.open = dev_open,
.read = dev_read,
.write =...
462 изгледи
schedule
25.09.2022
Размерът на хранилището от не е известен
Това е част от случай на превключвател IOCTL. Получавам следната грешка?
грешка: размерът на съхранението на 'data' не е известен грешка: 'mesg' не е деклариран (първо използване в тази функция)
case PASS_STRUCT:
struct mesg{...
5385 изгледи
schedule
03.10.2022
Не може да се освободи irq линията на клавиатурата: Устройството или ресурсът са заети
Пишех примерен код request_irq
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
MODULE_LICENSE("GPL");
int irq = 1;
int dev = 0xaa;
static irqreturn_t...
243 изгледи
schedule
30.09.2022
където пишем в /proc/net/xt_qtaguid?
В android_net_TrafficStats.cpp и driver_wired.c файлът /proc/net/xt_qtaguid се чете. Търсих напълно, но не намерих откъде се записва този файл.
Моля, помогнете ми да намеря файла, в който отваряме /proc/net/xt_qtaguid файл в режим на запис.
2562 изгледи
schedule
09.10.2022
Картографиране на DMA прекъсвания в ядрото на linux
Пиша модул на ядрото за powerpc SoC, който съдържа DMA контролер. Искам да картографирам DMA прекъсванията в ядрото на Linux. моята DMA структура има две прекъсвания:
struct dma
{
u32 dma1;
u32 dma2;
}*dma;
Имам карта на паметта на DMA...
3466 изгледи
schedule
17.10.2022
Къде в кода на android се съхранява името/номера на модела на телефона и как се съхранява там?
Това, което искам да знам, е как телефон с Android, когато е свързан като MTP , публикува името си, така че да се показва на моя компютър. Вярвам, че драйверите mtp/usb получават стойността от горните слоеве, като например Java класовете mtp/usb...
2467 изгледи
schedule
04.11.2022
Възелът на устройството в /dev/tty* не се създава за сериен драйвер на uart
Написах прост UART сериен драйвер във вграден Linux, работещ с busybox с mdev правила. Предоставих .dev_name като " ttyC2C " в моя код на драйвера.
static struct uart_driver serial_omap_reg = {
.owner = THIS_MODULE,
.driver_name =...
6831 изгледи
schedule
16.11.2022
Как Linux знае за отложена работа в драйвер и кога точно да използва данните, донесени от хардуерното устройство?
Когато ядрото се опита да прочете блок от твърд диск, то изпраща софтуерно прекъсване, което ще бъде обработено от драйвера на устройството. Ако драйверът на устройството разделя работата по обработката на заявката на горна и долна половина чрез...
348 изгледи
schedule
01.12.2022
Как множество манипулатори на прекъсвания споделят адрес 0x00000018
Чета за това как прекъсванията се обработват в ARM и разбрах, че всеки път, когато дойде хардуерно прекъсване, се изпълнява инструкция на адрес 0x00000018, което обикновено е прескачане към уважаван манипулатор на прекъсвания, но може да има много...
1164 изгледи
schedule
16.10.2022
Грешка в драйвера на I2C устройство [TCA6408 I/O разширител]
Искам да свържа TCA6408 IO Expander и да получа ключов вход към моята вградена система. Опитвам се със SABRELite (iMX6Q) Boad и моята среда за разработка е LTIB (L3.0.35_4.1.0_130816_source.tar.gz)
Направих по-долу модификации
1.) добавете...
2882 изгледи
schedule
28.10.2022
Дали eth0 е единственият действителен интерфейс в Linux
Бъркам се сред различните интерфейси на Ethernet. Просто минавам през тази U-Boot Link
http://www.denx.de/wiki/DULG/UBootEnvVariables
Където пише
ethaddr: Ethernet MAC адрес за първи/единствен ethernet интерфейс (= eth0 в Linux).
Сега...
457 изгледи
schedule
22.11.2023
kmalloc връща един и същи адрес отново и отново [Linux 2.4]
Работя върху някакъв код в ядрото на Linux (2.4) и по някаква причина kmalloc връща същия адрес (вярвам, че това се случва само след средата на теста). Проверих дали няма извиквания към kfree между извикванията към kmalloc (т.е. паметта все още се...
359 изгледи
schedule
10.12.2023
Проблем с devm_kzalloc
Опитвам се да разбера изпълнението на функцията devm_kzalloc(). Той разпределя повече от заявената памет (sizeof(struct devres) + size) за управление на ресурси.
struct devres се дефинира по следния начин, вторият член е непълен масив.
struct...
533 изгледи
schedule
05.11.2023
Разлика между .o и .ko файл
Пиша прост Linux модул mod.c. Когато компилирам mod.c файл, той създава два изходни файла mod.o и mod.ko . Така че просто искам да знам каква е разликата между файла mod.o и mod.ko?
58356 изгледи
schedule
09.01.2024
Как да компилирам ixgbe мрежови драйвери на друга версия на ядрото на linux
Използвам ядрото на Linux версия 3.6.7. Искам да компилирам ixgbe мрежови драйвери на версия 2.6.39.4. Моля, уточнете процедурата
835 изгледи
schedule
12.01.2024
Необходима информация в списъка за събиране
Работя върху разработването на блоков драйвер в linux. Изискването е да се разпредели огромна част от паметта (примерно повече от 128KB, 2MB или 8MB или така...), да се раздели паметта на малка част и да се изпрати през списъка за разпръснато...
360 изгледи
schedule
28.01.2024
printk в драйвер
Наистина съм нов в програмирането на модули на Linux. Трябва да разбера как мога да направя някои настройки на драйвера ath9k в linux. Най-накрая получих съвместимия безжичен изходен код на ath9k за компилир в ubuntu 11.04 и се опитвах да си играя с...
649 изгледи
schedule
04.02.2024
Грешка при сегментиране в драйвера за устройство на Linux
Следният код хвърля грешка при сегментиране, когато се опитвам да чета от устройството (напр.: cat /dev/device_name). Въпреки това, ако премахна извикванията към down_interruptible и up от методите klg_read и klg_write и ги преместя съответно към...
1970 изгледи
schedule
24.11.2022