Итак, я хотел попытаться построить 2.6.39-4. Я выполнил процедуру на странице ubuntu wiki «GitKernelBuild».
Короче, загрузите tar.bz2, извлеките, скопируйте мою старую конфигурацию, сделайте oldconfig, а затем
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
Все прошло отлично, я использую это ядро прямо сейчас, кроме одной мелочи: я не могу строить другие модули, строить dkms и т. Д. Далее следует следующая информация:
Произведенные файлы deb - два:
[ f2]
Я немного смущен этим.
В нормальных ядрах ubuntu, даже в mainline-ppa, установлены три файла deb. Например, для того же ядра из ubuntu wiki «GitKernelBuild» страница существуют следующие пакеты:
linux-image-2.6.39-02063904-generic_2.6.39-02063904.201108040905_amd64.deb
linux-headers-2.6.39-02063904-generic_2.6.39-02063904.201108040905_amd64.deb
linux-headers-2.6.39-02063904_2.6.39-02063904.201108040905_all.deb
Как вы можете видеть, существуют два разных пакета заголовков. Действительно, после их установки пакеты mainline ppa создают каталог под / lib / modules:
/lib/modules/2.6.39-02063904-generic
В этом каталоге существует символическая ссылка, которая указывает на -generic заголовки в / usr / src
/lib/modules/2.6.39-02063904-generic/build -> /usr/src/linux-headers-2.6.39-02063904-generic
В / usr / src для этого ядра существуют два разных каталога
/usr/src/linux-headers-2.6.39-02063904-generic
/usr/src/linux-headers-2.6.39-02063904
Теперь вот проблема с моими собственными двумя пакетами:
В / usr / src есть только одна папка,
/usr/src/linux-headers-2.6.39.4-custom
И под / lib / modules есть папка
/lib/modules/linux-headers-2.6.39.4-custom
Настоящая проблема, и причина, по которой я Я пишу это сообщение, это символическая ссылка, которая создается в указанном выше каталоге:
/lib/modules/linux-headers-2.6.39.4-custom/build -> /home/nickped/projects/kernel/linux-2.6.39.4
Как вы можете видеть, он ссылается на каталог, в котором я построил ядро - это, конечно, может и не существовать впоследствии. Это приводит к невозможности сборки других модулей (например, vmware, virtualbox и т. Д.), Поскольку он не может найти важные вещи.
Почему это происходит? Как это можно исправить? Почему есть два, а не три файла deb? Какова цель этих трех разных файлов deb, которые имеются в официальных выпусках, и как они могут быть созданы другими?