Пустой каталог сборки в скомпилированном ядре

У меня есть скрипт ( найденный здесь на github), который специально компилирует ядро ​​Linux 3.8 (с Xenomai для реального времени). Ядро компилируется / устанавливается / запускается, однако, когда я пытаюсь установить свой графический драйвер (fglrx для ATI RADEON 8490), я получаю следующую ошибку:

/lib/modules/3.8.13.20-xenomai-2.6.3/build/include/generated/uapi/linux/version.h cannot be found on this system.

Когда я просматриваю этот каталог (/lib/modules/3.8.13.20-xenomai-2.6.3/build/), там ничего нет. Затем я запустил ls -l в /lib/modules/3.8.13.20-xenomai-2.6.3 и получил следующий вывод для каталога сборки:

build -> /home/yapatel/Dev/rtxi/scripts/linux-3.8.13

Каталог, на который указывает каталог сборки, был удален как часть скрипта для компиляции / установки пользовательского ядра, поэтому эта символическая ссылка не работает, что имеет смысл, почему я получаю ошибку.

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

fakeroot make-kpkg --initrd --append-to-version=-xenomai-$xenomai_version kernel-image kernel-headers modules

а затем установить скомпилированное ядро ​​с помощью следующих команд:

sudo dpkg -i linux-image-*.deb
sudo dpkg -i linux-headers*.deb
sudo update-initramfs -c -k $linux_version-xenomai-$xenomai_version
sudo update-grub

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

/home/yapatel/Dev/rtxi/scripts/linux-3.8.13

в

/lib/modules/3.8.13.20-xenomai-2.6.3/build/

Это похоже на ручное исправление, а не на правильное исправление. Есть ли какая-то команда, которую мне не хватает в процессе компиляции / установки моего собственного ядра? Я предполагаю, что это означает, что мои модули ядра не устанавливаются?

Все советы / помощь приветствуются!

2 ответа

Решение

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

Ни одно из этих "исправлений" не имеет ничего общего с командами, используемыми для компиляции ядра (make).

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

Попробуй запустить make modules -j $number_of_cpus а потом make modules_install -j $number_of_cpus перестроить и установить все модули. Проверьте, если это все еще дает вам ошибки.

Другие вопросы по тегам