Я использую Fedora 14 64 бит.
Я клонировал дерево исходного кода ядра из git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
.
Около недели назад я скомпилировал и обновил ядро с 2.6.35 до 2.6.39, все прошло довольно гладко, все, что я сделал, было очень простым:
make menuconfig
make oldconfig
make -j8
make modules_install && install
Затем я добавил фиктивный системный вызов (я следовал за этим в книге Роберта Лава по разработке ядра Linux) и попытался снова скомпилировать, ядро скомпилировалось нормально, но когда я выдал:
[root@xps420 Kernel]# make modules
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL scripts/checksyscalls.sh
Building modules, stage 2.
MODPOST 4 modules
было сделано всего 4 модуля, ранее было более 2000 модулей.
Я подумал, что проблема связана с моим фиктивным системным вызовом, я отменил все изменения и попытался снова, с тем же результатом.
Опять же, я предпринял следующие шаги:
make menuconfig
make oldconfig
make -j8
make modules ----> suspicious
Я не уверен, что является причиной этого.
EDIT:
Немного больше информации, я запускаю make clean
перед перекомпиляцией, но он все еще сделал только 4 модуля.
В какой-то момент я сделал modules_install
и проверил /lib/modules/[ver]
, только те 4 модуля были скопированы туда. Мне следовало остановиться на этом, но я все равно запустил make install
, установил ядро, но не смог с ним загрузиться.
EDIT:
Я только что скачал стабильный выпуск (2.6.39.1) с сайта kernel.org, после выполнения описанных выше шагов произошло то же самое. Это странно. Может быть, что-то в моей системе облажается :( Надеюсь, кто-то столкнулся с этим и пролил немного света.