Перекомпилируйте флаги конфигурации ядра Linux (с Xen), которые не используются - PullRequest
1 голос
/ 09 января 2012

Я пытаюсь скомпилировать ядро ​​linux (3.0.0-13) с флагами конфигурации Xen dom0, которые не отображаются через menuconfig. (Да, я знаю, что Ubuntu предоставляет «виртуальное» ядро ​​с поддержкой, которое поддерживает паравиртуализацию Xen, но это ядро, похоже, не загружается на моем оборудовании. Итак, я пытаюсь скомпилировать «универсальное» ядро ​​с Ubuntu с дополнительной конфигурацией Xen флаги, так как я знаю, что «общий» вариант работает на моем оборудовании). Каждый раз, когда я пытаюсь скомпилировать мои флаги конфигурации, они игнорируются на основе файла .config, который генерируется и упаковывается с моим двоичным файлом ядра.

Я пробовал следующее:

  • Загрузил исходный код ядра, используя apt-get source linux-image

Затем я выполнил все шаги из этого руководства: Как скомпилировать новое ядро ​​Ubuntu 11.10 (Oneiric) и выполнил следующие дополнительные шаги:

  • поместил мои собственные флаги конфигурации в файл config.flavour.xxx, затем скомпилировал пакет linux-image
  • Приостановил команду 'debian / rules editconfigs' сразу после запуска 'menuconfig' и заменил файл build / .config на мой собственный файл .config, затем скомпилировал пакет linux-image

Я также использовал следующие инструкции Как скомпилировать ядро ​​- путь Ubuntu и выполнить следующие команды для исходного кода ядра, который у меня уже был:

  • отредактируйте файл .config, чтобы у меня были флаги конфигурации
  • запустить 'make oldconfig'
  • запустить 'make-kpkg clean && fakeroot make-kpkg --initrd --append-to-version = -custom kernel_image kernel_headers'

После каждого скомпилированного ядра я устанавливал вновь скомпилированный пакет linux-image и обнаруживал, что мои флаги конфигурации не находятся в файле / boot / config-xxx, как я ожидал.

  1. Что я делаю не так, чтобы игнорировать мои флаги конфигурации?
  2. Что я могу сделать, чтобы убедиться, что мои флаги конфигурации ядра используются при компиляции?
  3. Есть ли другой вариант, кроме перекомпиляции ядра, чтобы получить ядро ​​Xen dom0, которое работает на моем оборудовании?

Ответы [ 2 ]

2 голосов
/ 11 января 2012

К вопросу 3: есть ли другой способ получить ядро ​​xen dom0 для моего оборудования?

Да.

Хотя во всей документации по xen говорится, что все стандартные ядра поддерживают xen dom0, они означают, что исходные коды для всех стандартных ядер теперь поддерживают xen dom0, но эта поддержка отключена в их предварительно скомпилированных двоичных файлах.

В debian есть следующий пакет, представляющий собой встроенное ядро ​​linux с включенной поддержкой xen dom0.Пакет: linux-image-xen-686

Для тех, кто действительно хочет скомпилировать свое собственное ядро ​​xen dom0, хороший сайт можно найти на следующем сайте: Компиляция ядра Xen Dom0 для Ubuntu Jaunty

1 голос
/ 10 января 2012

Что я делаю не так, чтобы игнорировать мои флаги конфигурации?

Корень проблемы лежит в первой части вашей проблемы; флаги конфигурации Xen dom0 не отображаются через menuconfig

Простая установка их в .config не означает, что они будут активированы. Вы должны учитывать зависимости для параметров конфигурации.

Из тега linux 3.0 на github: https://github.com/torvalds/linux/blob/02f8c6aee8df3cdc935e9bdd4f2d020306035dbe/arch/x86/xen/Kconfig

config XEN_DOM0
def_bool y
depends on XEN && PCI_XEN && SWIOTLB_XEN
depends on X86_LOCAL_APIC && X86_IO_APIC && ACPI && PCI

Встречаются ли все эти зависимые флаги?

Что я могу сделать, чтобы убедиться, что мои флаги конфигурации ядра используются при компиляции?

На начальных этапах процесса компиляции ядра файл .config переписывается, если есть какие-либо расхождения. Хороший тест, чтобы убедиться, что ваши изменения сохранятся, - проверить, существуют ли они в вашем файле .config после выполнения make menuconfig и сохранения изменений. Если после этого ваши флаги все еще там, вы можете быть уверены, что ваши флаги используются.

Есть ли другой вариант, кроме перекомпиляции ядра, чтобы получить ядро ​​Xen dom0, которое работает на моем оборудовании?

Только если другой дистрибутив поставляется с включенным XEN_DOM0.

...