LINUX.ORG.RU

Проблема с linux-headers

 , , ,


0

1

Помогите с проблемой: собрал кастомное ядро которого нету в репах, дальше понадобилось собрать модуль от usb-свитка. Готовых хедеров под мою версию разрабы не положили, поэтому по инструкции от ядра сделал в дереве исходников:

sudo make headers_install ARCH=arm64 INSTALL_HDR_PATH=/usr

заголовки скопировались, дальше конпеляю модуль и ловлю ошибку:

sudo make

make ARCH=arm64 CROSS_COMPILE= -C /lib/modules/5.15.92-v8-MY_CUSTOM_KERNEL+/build M=/home/algierd/build/RTL8188GU/8188gu-1.0.1 modules

make[1]: *** /lib/modules/5.15.92-v8-MY_CUSTOM_KERNEL+/build: Нет такого файла или каталога. Останов.

make: *** [Makefile:1906: modules] Ошибка 2

из гугла понял, что проблема в заголовках ядра, как это разрулить не понял



Последнее исправление: sholmes (всего исправлений: 4)

CROSS_COMPILE= -C /lib/modules/5.15.92-v8-MY_CUSTOM_KERNEL+/build

Стоп, что должна делать эта команда? В ней не хватает либо кавычек, либо экранирований, либо смысла. Сейчас «+/build» воспринимается как каталог сборки для make

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)
Ответ на: комментарий от annulen

Проверил у себя /lib/modules/5.15.92-v8-MY_CUSTOM_KERNEL+/ абсолютный путь к модулям. Если дело не в заголовочных файлах, как это пофиксить?

sholmes
() автор топика
Последнее исправление: sholmes (всего исправлений: 2)
Ответ на: комментарий от annulen

Даже ядро другое поставил, всё равно не робит

sudo make CROSS_COMPILE=aarch64-linux-gnu-

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -C /lib/modules/6.1.13-v8+/build M=/home/algierd/build/RTL8188GU/8188gu-1.0.1 modules

make[1]: *** /lib/modules/6.1.13-v8+/build: Нет такого файла или каталога. Останов.

make: *** [Makefile:1906: modules] Ошибка 2

sholmes
() автор топика
Последнее исправление: sholmes (всего исправлений: 1)
Ответ на: комментарий от sholmes
ls -l /lib/modules/5.10.0-0.deb10.21-amd64/build
lrwxrwxrwx. 1 root root 46 фев 15 01:38 /lib/modules/5.10.0-0.deb10.21-amd64/build -> /usr/src/linux-headers-5.10.0-0.deb10.21-amd64/

В дебиане оно так. Попробуйте аналогично создать ссылку build на заголовки.

undef ★★
()

Помогите с проблемой: собрал кастомное ядро которого нету в репах, дальше понадобилось собрать модуль от usb-свитка. Готовых хедеров под мою версию разрабы не положили, поэтому по инструкции от ядра сделал в дереве исходников:

Посмотри https://www.debian.org/doc/manuals/debian-handbook/sect.kernel-compilation.en...

Ты делал make deb-pkg? В дебиане ядро надо компилировать и ставить через пакеты (и headers там тоже будут), иначе работать тоже будет но не совсем удобно.

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

Сдвинулись с заголовка, но всё равно ошибку выбрасывает:

sudo make CROSS_COMPILE=aarch64-linux-gnu-

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -C /lib/modules/6.1.13-v8+/build M=/home/algierd/build/RTL8188GU/8188gu-1.0.1 modules make[1]: вход в каталог «/home/algierd/linux»

awk: cannot open include/generated/asm-offsets.h (No such file or directory)

warning: the compiler differs from the one used to build the kernel

The kernel was built by: gcc (Debian 10.2.1-6) 10.2.1 20210110

You are using: aarch64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 20210110

make[2]: *** Нет правила для сборки цели «scripts/mod/modpost», требуемой для «/home/algierd/build/RTL8188GU/8188gu-1.0.1/Module.symvers». Останов.

make[1]: *** [Makefile:1957: modpost] Ошибка 2

make[1]: выход из каталога «/home/algierd/linux»

make: *** [Makefile:1906: modules] Ошибка 2

sholmes
() автор топика
Последнее исправление: sholmes (всего исправлений: 1)
Ответ на: комментарий от sholmes

Поглядел штатные пакеты с заголовками ядра в дебиане. В общем, make headers_install не нужен, это заголовки для юзерспейса. Ссылка build должна указывать на каталог с исходниками ядра после сборки.

Выше еще предложили хороший вариант с make deb-pkg.

undef ★★
()
Последнее исправление: undef (всего исправлений: 1)