Пользовательские опции ядра для Amazon Linux 2015.03

Я пытался создать пользовательское ядро для этих 2 015,03 выпусков с CONFIG_HOTPLUG_CPU отключенный. После набора потоков на этом форуме и в другом месте я смог создать нового об/мин ядра, но опция, которую я устанавливаю, не вступает в силу.

Шаги до сих пор:

# Download the kernel source
/usr/bin/get_reference_source -p kernel-$(uname -r)

# Install some needed packages
/usr/bin/yum install -y gcc gcc44 system-rpm-config m4 rpm-build gdb xmlto asciidoc elfutils-devel zlib-devel binutils-devel python-devel perl gettext newt-devel perl-ExtUtils-Embed bison audit-libs-devel python27-devel pciutils-devel

# Add the mockbuild user which seems to be needed by the kernel source RPM
/usr/sbin/useradd mockbuild

# Install the source RPM
/bin/rpm -Uvh /usr/src/srpm/debug/kernel*.src.rpm

# Disable CONFIG_HOTPLUG_CPU
/bin/sed -i 's/HOTPLUG_CPU=y/HOTPLUG_CPU=n/' /usr/src/rpm/SOURCES/config*

# Set a custom build ID in the spec file
/bin/sed -i 's/buildid 31.38/buildid mybuild/' /usr/src/rpm/SPECS/kernel.spec

# Build the RPM
/usr/bin/rpmbuild -bb /usr/src/rpm/SPECS/kernel.spec

# Install the RPM
/usr/bin/yum localinstall /usr/src/rpm/RPMS/x86_64/kernel-3.14.42-31.38.tmo.amzn1.x86_64.rpm

Оттуда я вижу, что новое ядро действительно доступно на диске, но CONFIG_HOTPLUG_CPU все еще включен:

$ grep HOTPLUG_CPU= /boot/config-3.14.mybuild*
/boot/config-3.14.42-mybuild.amzn1.x86_64:CONFIG_HOTPLUG_CPU=y
/boot/config-3.14.42-mybuild.amzn1.x86_64:CONFIG_ACPI_HOTPLUG_CPU=y

Что еще необходимо, чтобы отключить CONFIG_HOTPLUG_CPU и настроить новое ядро?

1
задан 9 June 2015 в 17:11
1 ответ

В конце концов я решил эту проблему, распаковав ядро исходный код, редактирование параметров конфигурации, воссоздание архива. Это выглядит так:

# Extract the Kconfig file to change the kernel options
/bin/tar xfv /usr/src/rpm/SOURCES/linux-${vanilla_kernel}.tar linux-${vanilla_kernel}/arch/x86/Kconfig

# Change the options
/bin/sed -i '/ARCH_HIBERNATION_POSSIBLE/!b;n;c\\tdef_bool n' linux-${vanilla_kernel}/arch/x86/Kconfig
/bin/sed -i '/ARCH_SUSPEND_POSSIBLE/!b;n;c\\tdef_bool n' linux-${vanilla_kernel}/arch/x86/Kconfig
/bin/sed -i '/Support for hot-pluggable CPUs/!b;n;c\t\tdefault n' linux-${vanilla_kernel}/arch/x86/Kconfig

# Add the new Kconfig to the tarball
# There will now be two of these and the last one wins
/bin/tar rf /usr/src/rpm/SOURCES/linux-${vanilla_kernel}.tar linux-${vanilla_kernel}/arch/x86/Kconfig

# Change the build id to include our suffix
/bin/sed -i 's/\(buildid.*\)/\1\.mybuild/' /usr/src/rpm/SPECS/kernel.spec

# Build the new kernel RPM
/usr/bin/rpmbuild -bb /usr/src/rpm/SPECS/kernel.spec

Это приводит к новому набору RPM, и я могу подтвердить, что CONFIG_HOTPLUG_CPU не включен.

1
ответ дан 4 December 2019 в 00:06

Теги

Похожие вопросы