LINUX.ORG.RU

Как добавить в linux заголовки для работы с ядром?

 ,


0

1

Вопрос тупой но как добавить linux заголовки для работы с ядром. Суть мне нужно написать код для работать с прерываниямии драйвером 8250.#include<linux/irq.h> #include<linux/serial_8250.h> таких заголовков нету как добавить или включить. Пытался обновить ядро sudo apt-get install linux-headers-$(uname -r) но заголовки все равно не появились. Что нужно с делать?

Ответ на: комментарий от anonymous

Интересное замечание но без результативное мне нужен способ решения ошибки путем ее исправление а не отказа от работы

vlad961996
() автор топика
Ответ на: комментарий от anonymous

а есть менеджер для поиска пакетов на консоль просто у меня граф оболочка не установлена и для меня она ненужна слишком много места будет занимать

vlad961996
() автор топика
$ dpkg -S serial_8250.h linux/irq.h
linux-headers-4.15.0-48: /usr/src/linux-headers-4.15.0-48/include/linux/serial_8250.h
linux-headers-4.15.0-50: /usr/src/linux-headers-4.15.0-50/include/linux/serial_8250.h
linux-headers-4.15.0-50: /usr/src/linux-headers-4.15.0-50/include/linux/irq.h
linux-headers-4.15.0-48: /usr/src/linux-headers-4.15.0-48/include/linux/irq.h
$ sudo apt install linux-headers-generic
...
Deleted
()

Почитать, как писать драйверы устройств. LDD3 тебе в помощь.

anonymous
()
Ответ на: комментарий от arto

установил не помогло если пытаюсь использовать библиотеку irq.h или serial_8250.h выходит такая ошибка fatal error: linux/irq.h: No such file or directory #include<linux/irq.h>

vlad961996
() автор топика
Ответ на: комментарий от vlad961996

Добавить при компиляции путь, относительно которого указываешь include ?

gcc -I /usr/src/linux-headers-$(uname -r)/include program.c

CaHbl4
()

И не следует ставить тег Ubuntu для Debian, у них разное именование части пакетов. И вместо заголовков для конкретного ядра следует использовать метапакет linux-image-amd64

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

попытался в итоге начал ругать на другую библиотеку gcc -I /usr/src/linux-headers-$(uname -r)/include ex.c -o ex In file included from /usr/src/linux-headers-4.14.108-ti-r104/include/linux/kernel.h:7:0, from /usr/src/linux-headers-4.14.108-ti-r104/include/linux/list.h:9, from /usr/src/linux-headers-4.14.108-ti-r104/include/linux/module.h:9, from ex.c:1: /usr/src/linux-headers-4.14.108-ti-r104/include/linux/linkage.h:8:10: fatal error: asm/linkage.h: No such file or directory #include <asm/linkage.h>

теперь для всех каждый раз придется прописывать или все же можно как то по другому установить

vlad961996
() автор топика
Ответ на: комментарий от vlad961996

В знаках препинания. Используй их, если не хочешь, чтобы к тебе относились как к идиоту-малолетке.

И опиши задачу в целом. Не что ты делаешь, а для чего ты это делаешь.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Мне нужно чтобы работали основные библиотеки linux на одноплатном компьютере beaglebone #include <linux/init.h> #include <linux/interrupt.h> #include <linux/io.h> #include <asm/exception.h> #include <linux/irqchip.h> #include <linux/irqdomain.h> #include <linux/of.h> #include <linux/of_address.h> #include <linux/of_irq.h> #include <linux/irqchip/irq-omap-intc.h> вот пример того что надо, этих библиотек нет нужно библиотеки добавить так моя задача понятна

vlad961996
() автор топика
Ответ на: комментарий от vlad961996

Потому что плохо читаешь.

Там в начале написано, как нужно собирать модули ядра. Сделай так же. Просто одним вызовом gcc не обойдёшься, всё сложнее. Но сложность уже спрятана в мейкфайлы в исходниках ядра, и тебе остаётся дописать буквально строчек пять.

i-rinat ★★★★★
()
Ответ на: комментарий от vlad961996

эти библиотеки есть их не нужно добавлять ты их уже добавил нужно указать компилятору где их брать обычно это прописывается в мейкфайлах чтобы не вбивать кучу путей в командной строке компиляции

Deleted
()
Ответ на: комментарий от anonymous

Так окей можете сказать что в нет так Makefile

CC = gcc obj-m += ex

all: make -C /usr/src/linux-headers-4.14.108-ti-r104 M=$(PWD) modules

clean: make -C /usr/src/linux-headers-4.14.108-ti-r104 M=$(PWD)

ex: ex.c $(CC) ex.c

make еще только учу так что тапками не кидаться

vlad961996
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.