LINUX.ORG.RU

затейливые действия с ядром в дебиане

 , , ,


0

2

Уже не первый раз замечаю такое, что даже если собираю пакетик хёдеров с make-kpkg kernel_headers, ставлю его, то некоторые приложения всё равно смотрят в папку с сырцами, даже если я её удалил. дрова нвидии так делали, вот сейчас виртуалбокс так хочет. Может я что-то не так понял или причина не в этом, но блин:
Trying to register the VirtualBox kernel modules using DKMSError! Your kernel headers for kernel 4.5.0 cannot be found.
Please install the linux-headers-4.5.0 package,
or use the --kernelsourcedir option to tell DKMS where it's located
...failed!
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules ...failed!
(Look at /var/log/vbox-install.log to find out what went wrong)
Проверяем:

ip  linux-headers-4.5.0                                     - Header files related to Linux kernel, specifically,              
ip  linux-image-4.5.0                                       - Linux kernel binary image for version 4.5.0


ставил я хёдеры! какого лешего вы ищете!? Или я собрал и установил какой-то неправильный пакет, который собирали неправильные пчёлы с неверными ключами?
Причём поставить дистрибутивное ядро(перезагрузиться в него) не катит, мне нужно было монолитное, из-за pci-stub.

И естественно у тебя Virtualbox древней версии, а ядро ты самое новейшее натырил?

fornlr ★★★★★
()

А смотрели, как это сделано в самом дебиане и как лежат headers?
И в чем причина сборки этого ядра, почему бы не взять его из бекпортов? Или собрать 4.6

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

А смотрели, как это сделано в самом дебиане и как лежат headers?

не распарсил. сделано что?

,И в чем причина сборки этого ядра, почему бы не взять его из бекпортов? Или собрать 4.6

А можно вообще пойти водку пить и не морочиться. в самом конце указал причину.

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

Вот мой пример:

$ make oldconfig
$ make menuconfig
$ fakeroot make-kpkg -j 3 --initrd --append-to-version=-pc kernel_image kernel_headers
Устанавливаю image и headers, а ссылки всё равно указывают на директорию с сырцами где собирал:
/lib/modules/4.6.0-pc/build  -> /home/user/build/kernel/linux-4.6
/lib/modules/4.6.0-pc/source -> /home/user/build/kernel/linux-4.6
Вручную правлю ссылки на /usr/src/linux-headers-4.6.0-pc
Устанавливаю nvidia-340 - облом. Лог http://pastebin.com/5gX1rfSH
Подозрение на то, что я не делаю
$ make prepare

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

Да, последнюю строку как-то упустил.
Но все равно вопрос остается открытым, почему со своим ядром такие косяки вылазят.

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

тебе и нужно чтобы на каталог с сырцами указывало!!! зря меняешь ссылки.

irton ★★★★★
()

некоторые приложения всё равно смотрят в папку с сырцами

мало им хедерников, они хотят исходники твоего ядра (да еще парсят конфиг и если drm монолитно, то могут ругаться), да еще хотят чтобы make modules_prepare было сделано (если ядро собирать не охота).

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

мм, сырцы тоже можно собрать в пакет. я как то пробовал собирать&ставить пакет kernel_source, емнип не прокатило.

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

у меня без исходников ядра не собирается ни vbox ни nvidia.

хедерники это же просто .h файлы, а при сборке модулей нужна инфа с какими параметрами ты ядро сделал, --kernelsourcedir параметр в dkms тоже не зря.

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

ну тут масса вариантов, у меня просто в каталоге лежат исходники ядра на диске и ссылка build на этот каталог указывает.

В модуль заворачиваю когда выкладывать собираюсь, в нем уже делал готовую ссылку build. Ставить я уже давно ничего не ставлю, на лету подключаю-отключаю.

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

А смотрели, как это сделано в самом дебиане и как лежат headers?

имелось ввиду это:

~ $ ls -l /lib/modules/4.5.0-2-amd64/
total 3952
lrwxrwxrwx  1 root root     36 Apr 29 14:23 build -> /usr/src/linux-headers-4.5.0-2-amd64
drwxr-xr-x 12 root root   4096 May  5 11:22 kernel
-rw-r--r--  1 root root 969749 May  5 11:29 modules.alias
-rw-r--r--  1 root root 932880 May  5 11:29 modules.alias.bin
-rw-r--r--  1 root root   4024 Apr 29 14:23 modules.builtin
-rw-r--r--  1 root root   5502 May  5 11:29 modules.builtin.bin
-rw-r--r--  1 root root 381951 May  5 11:29 modules.dep
-rw-r--r--  1 root root 527796 May  5 11:29 modules.dep.bin
-rw-r--r--  1 root root    402 May  5 11:29 modules.devname
-rw-r--r--  1 root root 127656 Apr 29 14:23 modules.order
-rw-r--r--  1 root root    501 May  5 11:29 modules.softdep
-rw-r--r--  1 root root 476210 May  5 11:29 modules.symbols
-rw-r--r--  1 root root 588010 May  5 11:29 modules.symbols.bin
lrwxrwxrwx  1 root root     37 Apr 29 14:23 source -> /usr/src/linux-headers-4.5.0-2-common
drwxr-xr-x  3 root root   4096 May  5 11:26 updates
~ $ ls /usr/src/linux-headers-4.5.0-2-amd64/
arch  include  Makefile  Module.symvers  scripts
Всё устанавливалось из пакетов и dkms работает исправно для VBox.

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

Вопрос еще в том, что, если ставить ядра из репозитория, то, для сборки хватает только headers, а в нашем случае - сборке своего ядра, модуль не собирается, хотя мы ставим и headers и source. Что-то тут не так.
Плохо ещё то, что приходится всю эту байду хранить в хомяке или пердолиться с переносом куда надо, так-как, если случайно удалить её, то опять надо компелять ведро перед обновлением драйверов.

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

вот как то так на багтрекер?

mail title: kernel headers link to old location


​​


Package: kernel-package

Version: any

1. Create kernel-headers packages with

make-kpkg --initrd kernel_image kernel_headers

from path /media/tmp/linux-source

2. dpkg -i kernel-package4.4my kernel-headers4.4my

3. reboot into kernel-package4.4my

4. rm -r /media/tmp/linux-source

5. trying to install virtualbox or nvidia proprietary driver... it search headears from /media/tmp/linux-source, not in system headers dir!

why?

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

например ссылка /lib/modules/4.5.0-2-amd64/build вот ее и меняю.

оч удобно если приходится компилировать под версию ядра в котором незагружен, поменял чтоб указывала на исходники от 4.6 - будут компилироваться модули для 4.6. А вот dkms возможно на эту ссылку может ложить болт, смотря чего там в файле у него прописано.

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

узнаешь чего надо ложить в headers чтобы компилировало без исходников, напиши. Тоже хотелось бы такое реализовать.

дистрибутив дебиан?

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

это я твой привел путь, из твоего лога.

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

linux-image linux-headers и ничего не удалял, не собирал. Всё из пакетов.

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