- [тупой вопрос] Зачем нужен linux-headers?
- Как установить заголовочные файлы ядра в Linux
- Установка заголовочных файлов ядра в Debian, Ubuntu или Linux Mint
- Установка заголовочных файлов ядра в Fedora, CentOS или RHEL
- Как добавить в linux заголовки для работы с ядром?
- Thread: Deleting Old Linux Headers?
- Deleting Old Linux Headers?
- Re: Deleting Old Linux Headers?
- Re: Deleting Old Linux Headers?
- Re: Deleting Old Linux Headers?
- Re: Deleting Old Linux Headers?
- Re: Deleting Old Linux Headers?
[тупой вопрос] Зачем нужен linux-headers?
Если я компилирую ядро в домашней директории под юзером,из сырцов, скачанных из основных реп, то как добавить linux-headers, если он установлен в /usr/src/ ? Гуглил, но так и не понял, нужен ли linux-headers для компиляции. Если нужен, то для чего?
> Зачем нужен linux-headers?
Для сборки модулей ядра.
Дополнительных? Они же есть в linux-source.
Модули могу удалять или вставлять в ядро. Про linux-headers ничего не сказано.
А модуль для драйверов nvidia тоже в linux-source есть? Что-то не замечал.
а случайно ли не для сборки модулей nvidia, etc. для текущего ядра?
Скорее всего. У меня ати и открытые драйвера. Никогда не ставил linux-headers
исходники не нужны в таком случае.
make headers_install
find usr -name .install -delete
sudo cp -r usr /
или я тебя не правильно понял?
Компилять модули же.
не понимаю сути проблемы-вопроса.. казалось бы, пишешь, что надо, используешь необходимые заголовочные файлы с определениями, обьявлениями.. если таковых не оказывается, то либо ищутся наиболее подходящие, либо пишутся собственные реализации..
а в чём, собственно, суть вопроса?
Для компиляции ядра в твоей схеме linux-headers не нужен, все идет в архиве ядра.
linux-headers нужен для компиляции программ/библиотек плотно работающих с ядром, точнее работающих в некоторых случаях с ядром не через glibc. Ну вот утилита mount например. Модули тут дело десятое.
c scsi/ лучше это не делать, потом не соберутся ни sg_utils , ни писалки дисков, scsi/ предоставляется glibc
asm/
обычно используется гораздо чаще чем вы думаете )
как н странно, но, обычно, это просто ассоциируется с кривыми зависимостями..
соберутся. достаточно в scsi.h в struct scsi_varlen_cdb_hdr изменить u8 на __u8
Источник
Как установить заголовочные файлы ядра в Linux
Когда вы компилируете драйвер устройства как модуль ядра, вам необходимы установленные заголовочные файлы ядра. Также они требуются, если вы собираете пользовательское приложение, которое взаимодействует напрямую с ядром. При установке заголовочных файлов ядра, необходимо убедиться, что их версия совпадает с версией ядра установленного в системе.
Если версия вашего ядра не менялась после установки дистрибутива, или вы обновляли его с использованием системного менеджера пакетов (то есть apt-get, aptitude или yum) из системных репозиториев, то заголовочные файлы вы также можете установить с помощью пакетного менеджера. Однако если вы скачивали исходный код ядра и компилировали его самостоятельно, то заголовочные файлы необходимо устанавливать с помощью команды make.
Здесь мы предполагаем, что ваше ядро установлено из основного системного репозитория вашего дистрибутива, и вы хотите установить соответствующие заголовочные файлы ядра.
Установка заголовочных файлов ядра в Debian, Ubuntu или Linux Mint
Если вы не компилировали ядро вручную, то можете установить соответствующие заголовочные файлы ядра с помощью команды apt-get.
Сначала проверьте, не установлены ли уже требуемые заголовочные файлы с помощью команды:
Теперь установите заголовочные файлы, как показано ниже.
Проверьте, что установка прошла успешно.
По умолчанию в Debian, Ubuntu или Linux Mint заголовочные файлы находятся в /usr/src.
Установка заголовочных файлов ядра в Fedora, CentOS или RHEL
Если вы не обновляли ядро вручную, то можете установить соответствующие заголовочные файлы ядра с помощью команды yum.
Сначала проверьте, не установлены ли уже требуемые заголовочные файлы. По умолчанию заголовочные файлы ядра расположены в /usr/src/kernels/.
Если подходящих заголовочных файлов не установлено, вы можете установить их с помощью команды yum. Она автоматически найдет подходящий пакет.
Если заголовочные файлы ядра, установленные с помощью вышеприведенной команды, не соответствуют установленному в системе ядре, значит оно устарело. В этом случае обновите ядро системы до последней версии с помощью приведенной ниже команды. После обновления необходимо перезагрузить систему.
Теперь проверьте, что установлены заголовочные файлы соответствующей версии с помощью команды:
Источник
Как добавить в linux заголовки для работы с ядром?
Вопрос тупой но как добавить linux заголовки для работы с ядром. Суть мне нужно написать код для работать с прерываниямии драйвером 8250.#include
Убунта спасает тебя от паники ядра от твоего говнокода, подум0й.
Интересное замечание но без результативное мне нужен способ решения ошибки путем ее исправление а не отказа от работы
Поищи через synaptic
а есть менеджер для поиска пакетов на консоль просто у меня граф оболочка не установлена и для меня она ненужна слишком много места будет занимать
Почитать, как писать драйверы устройств. LDD3 тебе в помощь.
apt-get install linux-headers-$(uname -r )
установил не помогло если пытаюсь использовать библиотеку irq.h или serial_8250.h выходит такая ошибка fatal error: linux/irq.h: No such file or directory #include
Добавить при компиляции путь, относительно которого указываешь include ?
И не следует ставить тег Ubuntu для Debian, у них разное именование части пакетов. И вместо заголовков для конкретного ядра следует использовать метапакет linux-image-amd64
попытался в итоге начал ругать на другую библиотеку 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
теперь для всех каждый раз придется прописывать или все же можно как то по другому установить
Источник
Thread: Deleting Old Linux Headers?
Thread Tools
Display
Deleting Old Linux Headers?
I have 12.04 installed using WUBI, on a laptop with Win XP. Everything has been running fine for a year or so. Recently I tried to install some updates, and I received an error—/usr/src/linux headers 3.8.0-39 can’t be installed because of a disk full error. (My /usr is 99% used.) I’ve looked through a number of posts, and I’ve seen some indications that if you remove all of the previous linux headers from the /src folder—EXCEPT for the previous update, in my case it would be 3.0.0-38 and 3.8.0-38-generic—that it will free up the needed space. Some posts state that this is just ‘good housekeeping,’ and should be done regularly.
But—I don’t want to do this if the previous downloads are still needed. My thinking is that each download is ‘stand-alone,’ and replaces all the previous—but I don’t know for certain. Can anyone tell me for sure? Other posts say that it’s possible to use GPARTED to repartition or rearrange things. But, I’m not sure I’d be all that comfortable doing so. I’d appreciate any information about removing previous linux headers, or suggestions about a solution. Thanks!
Re: Deleting Old Linux Headers?
It’s generally safe to remove old headers. You would only need to keep them to preserve a build environment for a program that you compiled with a specific version—a custom kernel for instance. Since you are out of space, it doesn’t really matter. Your system will not function without freeing up space, so you have to start dumping. Old headers, even older, compiled kernels can go. Keep at least one older kernel for a backup.
Since you are running through XP, chances are high that your Windows partition will take a dump before Ubuntu balls up, so you might as well do some house cleaning and prepare for a dual-boot installation.
Unumquodque potest reparantur. Patientia sit virtus.
Re: Deleting Old Linux Headers?
I would gladly help you. The idea is delete/uninstall as much as possible, but keeping at least a couple of old kernels and headers.
Could you open a terminal, run these commands and post back the output (you can copy/paste the text)?
Re: Deleting Old Linux Headers?
Thanks, had a busy day so I couldn’t get back right away.
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 3.8G 1.8G 1.9G 48% /
udev 929M 4.0K 929M 1% /dev
tmpfs 188M 816K 187M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 938M 152K 938M 1% /run/shm
/dev/sda3 45G 14G 31G 32% /host
/dev/loop1 3.8G 288M 3.4G 8% /home
/dev/loop2 3.8G 2.7G 923M 75% /usr
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/loop0 256000 41369 214631 17% /
udev 237651 502 237149 1% /dev
tmpfs 240043 420 239623 1% /run
none 240043 3 240040 1% /run/lock
none 240043 7 240036 1% /run/shm
/dev/sda3 0 0 0 — /host
/dev/loop1 256000 3950 252050 2% /home
/dev/loop2 256000 251090 4910 99% /usr
dpkg -l | grep linux-image | awk ‘
linux-image-3.8.0-29-generic
linux-image-3.8.0-35-generic
linux-image-3.8.0-36-generic
linux-image-3.8.0-37-generic
linux-image-3.8.0-38-generic
linux-image-3.8.0-39-generic
linux-image-generic-lts-raring
As near as I can tell, Update Manager gets hung up at trying to install the ‘second-half’ of «39»—if that’s the correct terminology? Do you think that if I trashed everything except 3.8.0-38 and 3.8.0-38 generic, that would do the trick? I appreciate your input. Thanks.
Re: Deleting Old Linux Headers?
So the latest kernel and headers are from 3.8.0-39. That’s is the one you are using right now and it shouldn’t be removed.
Also, I’d keep the previous one as safety practice (3.8.0-38).
Then run this command:
Let us know how it goes.
Regards.
Re: Deleting Old Linux Headers?
Hello again, I tried to do the command to purge the kernels, and I received the following reply. I did the suggested command (I’d done that many times yesterday), and I received the same error message that I saw yesterday. I’ll paste the messages below, but I had one question. Is there a way to go directly into the folder where these are located and remove them manually? I don’t think that I can simply pull them to trash because it needs a higher permission, and I don’t know how to «sudo» when I’m trying to do something manually. Anyway, I’d appreciate your comments, and I may not be staying online much more today, but I’ll be back on Saturday. (I spent about 8 hours today doing yard work for a couple charities, and the Arkansas sun has just about done me in, so I’ll be heading to bed soon!) Thanks.
sudo apt-get purge linux-image-3.8.0-29-generic linux-image-3.8.0-35-generic linux-image-3.8.0-36-generic linux-image-3.8.0-37-generic
[sudo] password for daveandjan:
Reading package lists. Done
Building dependency tree
Reading state information. Done
You might want to run ‘apt-get -f install’ to correct these:
The following packages have unmet dependencies:
linux-headers-generic-lts-raring : Depends: linux-headers-3.8.0-39-generic but it is not going to be installed
E: Unmet dependencies. Try ‘apt-get -f install’ with no packages (or specify a solution).
daveandjan@ubuntu:
$ sudo apt-get -f install
Reading package lists. Done
Building dependency tree
Reading state information. Done
Correcting dependencies. Done
The following packages were automatically installed and are no longer required:
gir1.2-ubuntuoneui-3.0 libubuntuoneui-3.0-1 thunderbird-globalmenu
Use ‘apt-get autoremove’ to remove them.
The following extra packages will be installed:
linux-headers-3.8.0-39-generic
The following NEW packages will be installed:
linux-headers-3.8.0-39-generic
0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
2 not fully installed or removed.
Need to get 0 B/1,012 kB of archives.
After this operation, 12.0 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database . 278450 files and directories currently installed.)
Unpacking linux-headers-3.8.0-39-generic (from . /linux-headers-3.8.0-39-generic_3.8.0-39.57
precise1_amd64.deb) .
dpkg: error processing /var/cache/apt/archives/linux-headers-3.8.0-39-generic_3.8.0-39.57
precise1_amd64.deb (—unpack):
unable to create `/usr/src/linux-headers-3.8.0-39-generic/include/config/scsi/pm8001.h.dpkg-new’ (while processing `./usr/src/linux-headers-3.8.0-39-generic/include/config/scsi/pm8001.h’): No space left on device
No apport report written because the error message indicates a disk full error
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/linux-headers-3.8.0-39-generic_3.8.0-39.57
precise1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Источник