LINUX.ORG.RU

Установка linux header.

 


0

1

Добрый день.

Необходимо установить заголовочные файлы. Операционка raspbian 3.18 Скачиваю исходники, распаковываю. Команда make headers_check, успешно устанавливает файлы в нужную мне директорию, но... Она не ставит необходимые мне gpio.h Поразбиравшись, понял, что его можно установить, добавив в файл KBuild имя файла (header-y += gpio.h). В итоге он успешно добавляется в папку для установки. Понятное дело, что он тянет за собой остальные заголовочные файлы. Их имена я успешно определил ключом headers_check для make. Казалось бы и эта проблема преодолена, но появляется новая сложность - необходим asm\gpio.h его я возможно правильно определил, добавив его (header-y gpio.h) в в файл Kbuild из директории \arch\arm\include\asm\ После этого header_check видит этот файл и больше не ругается, но правильно ли я сделал? При этом в файле Kbuild из директории \arch\arm\include\asm\ ранее уже были добавлены другие заголовочные файлы, только директивой generic-y (описание которой, я если честно не очень понял).

Даже если учитывать, что я все правильно сделал, далее возникла новая ошибка. Она возникает, когда я в KBuild (директория \include\linux), добавляю ссылку на папку pinnctrl. Ошибка: include/uapi/linux/pinctrl/Kbuild: No such file or directory

Не вопрос - я могу там создать пустую папку и кинуть туда пустой файл, но правильно ли это?

Правильно ли я пытаюсь установить заголовочные файлы? Если ли другой способ их установить (через make menuconfig к примеру).

Еще пробовал установить из пакетов. Пакет успешно устанавливается, нахожу исходники, но при попытке их скомпилить, сразу ругается, что нет файла: /usr/src/linux-headers-3.18.0-trunk-common/scripts/basic/Makefile


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

Спасибо за попытку, но кроме имени пакета не вижу ничего общего. Открывать все ссылки подряд по имени пакета, мне кажется веселым занятием, но после 2х дней поиска в инете, юмор иссяк.

Собственно по той причине я и пытался установить пакеты разными способами (на нескольких дистрибутивах). Один даже позволил установить заголовочные файлы, но что-то я очевидно сделал не так. Именно потому я и обратился на форум за помощью к опытным линуксоидам, которые имели опыт установки заголовочных файлов и возможно подскажут, где я ошибся или что-то не правильно понял.

А по той ссылке, сменить ядро на более старое, и старее, чем то, на которое рассчитан пакет, мне кажется сомнительным ходом.

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

Еще вопрос, может кто подскажет: в дистрибутиве есть папка linux и папка uapi/linux. При установке файлы из uapi/linux, кидаются в конечную папку linux, и перезатирают файлы из папки Linux дистрибутива. При том я не представляю как их кинуть в конечную папку uapi/Linux. Или так и должно быть?

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

Бездарь, если не знаешь что сказать, не понимаешь, то пожалуйста, не порти ветки.

muh13 ()
Ответ на: комментарий от irton

Да, совершенно верно, именно так. Но проблема в том, что ставятся не все заголовочные файлы, которые мне необходимы. Если я правильно понял, чтобы установить другие файлы, необходимо в Kbuilder прописать файлы, которые так же требуется установить. Таким образом мне удалось скомпилировать файл с библиотекой gpio.h Дальше немного сложнее (interrupt.h) и у меня нет полной уверенности, что я правильно делаю... Да и __section(.init.data), меня вводит в ступор :)

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

чтобы оно ставилось, лучше в make menuconfig включить этот gpio, ну и для остального нужного повключать параметры

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

Было у меня такое предположение, заходил через make menuconfig и включал практически все, что так или иначе связано с процессором и GPIO, но к сожалению после этого новые библиотеки не появились. Может конечно надо ещё что-то сделать. Попробую на досуге выбрать абсолютно все пункты :) И мне не очевидно что находится в папке uapi. Я так понимаю, что изначально заголовки в папку Linux ставятся из папки uapi. При этом к примеру GPIO.h есть (и ставится) из сырцов папки Linux. Но файл к примеру файл src/include/Linux/sched.h ссылаются на src/include/uapi/Linux/sched.h, но его туда нормально не положить :) Установщик вообще как-то странно работает. Чтобы увеличить вероятность корректной проверки/установки заголовков, всегда чищу папку usr, в корне исходников. Она появляется после headers_check.

В общем мне нужны знания или же установка заголовков, не такая тривиальная задача как кажется на первый взгляд :) Приходится ставить заголовки, компилировать, смотреть чего не получилось найти, разбираться почему установился не тот (возможно) файл заголовков, находить его и связи с ним, проверять, ставить и проверять по новой :)

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