LINUX.ORG.RU
решено ФорумAdmin

Как правильно сохранить изменённый .config?

 .config, , kernel compile


0

1

Приветствую.

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

Как бы так сделать, чтобы они не возвращались? Их больше 50-сяти и там дебаги, HPET и прочие. Подскажите, какой должен быть мой порядок действия, Чтобы весь мой .config принялся в ядро?

P.S. Если не сохранить через make menuconfig или make config, то он делает make oldconfig до компиляции.

изменение которых невозможно через make config или make menuconfig. Да и его редактирование мне удобнее

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

Редактировать конфигурационный файл в ручную нельзя!!!.

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

anonymous ()
Ответ на: комментарий от anonymous

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

Возьмём для примера:

Я пишу в .config: CONFIG_HPET_TIMER=n

Делаю makeconfig мне меняет на: CONFIG_HPET_TIMER=y

Зависимость у него одна - отсутствие 32 битов. Она удовлетворена. Почему же оно возвращается на своё прежнее значение??

По факту мне хотелось бы узнать - возможно или нет. Если возможно - то как (даже извращённые методы мне подойдут!)?

Mofforg ()
Ответ на: комментарий от irton

Я же написал...

P.S. Если не сохранить через make menuconfig или make config, то он делает make oldconfig до компиляции.

В начале компиляции делается oldconfig.

Mofforg ()
Ответ на: комментарий от PaxtonFettel

К чему данный вопрос? Вы к тому, что я не озвучил ОС? Компилирую для Linux Debian при помощи «fakeroot make-kpkg --initrd --revision=1my kernel_image kernel_headers»

Mofforg ()
Ответ на: комментарий от anonymous

Мне нравится FreeBSD по защищённости и многим опциям, но по юзабилити она близка к Gentoo. А мой выбор из Linux - Debian.

Mofforg ()
Ответ на: комментарий от ii343hbka

да, как-то прослоупочил этот вопрос, make-kpkg и правда oldconfig вызывает
но
есть /etc/kernel-pkg.conf, в мане написано, что есть переменная config_target, которая задает поведение поведение этапа configure, и в дефолте она oldconfig

ii343hbka ★★★ ()
Ответ на: комментарий от ii343hbka

Да уж, жаль простого решения нет) Буду пытаться сделать через Makefile.

fakeroot make-kpkg --initrd --revision=1my kernel_image kernel_headers

exec make kpkg_version=12.036+nmu3 -f /usr/share/kernel-package/ruleset/minimal.mk debian DEBIAN_REVISION=1my  INITRD=YES
====== making target debian/stamp/conf/minimal_debian [new prereqs: ]======
This is kernel package version 12.036+nmu3.
test -d debian             || mkdir debian
test ! -e stamp-building || rm -f stamp-building
install -p -m 755 /usr/share/kernel-package/rules debian/rules
for file in ChangeLog  Control  Control.bin86 config templates.in rules; do                                      \
            cp -f  /usr/share/kernel-package/$file ./debian/;                               \
        done
for dir  in Config docs examples ruleset scripts pkg po;  do                                      \
          cp -af /usr/share/kernel-package/$dir  ./debian/;                                 \
        done
test -f debian/control || sed         -e 's/=V/3.7.10-zen/g'  \
                -e 's/=D/1my/g'         -e 's/=A/amd64/g'  \
                -e 's/=SA//g'  \
                -e 's/=I//g'                                \
                -e 's/=CV/3.7/g'                            \
                -e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g'                         \
                -e 's/=ST/linux/g'      -e 's/=B/x86_64/g'    \
                  /usr/share/kernel-package/Control > debian/control
test -f debian/changelog ||  sed -e 's/=V/3.7.10-zen/g'       \
            -e 's/=D/1my/g'        -e 's/=A/amd64/g'       \
            -e 's/=ST/linux/g'     -e 's/=B/x86_64/g'         \
            -e 's/=M/Unknown Kernel Package Maintainer <unknown@unconfigured.in.etc.kernel-pkg.conf>/g'                            \
             /usr/share/kernel-package/changelog > debian/changelog
chmod 0644 debian/control debian/changelog
test -d ./debian/stamp || mkdir debian/stamp
make -f debian/rules debian/stamp/conf/kernel-conf
make[1]: Entering directory `/usr/src/linux-liquorix-3.7.0'
====== making target debian/stamp/conf/kernel-conf [new prereqs: ]======
make    ARCH=x86_64 \
                    oldconfig;
make[2]: Entering directory `/usr/src/linux-liquorix-3.7.0'
scripts/kconfig/conf --oldconfig Kconfig
#
# configuration written to .config
#

Далее начинается сборка...

Mofforg ()
Ответ на: комментарий от Mofforg

я там ниже написал возможное решение
имею ввиду, под своим сообщением с грепом

ii343hbka ★★★ ()
Ответ на: комментарий от ii343hbka

есть /etc/kernel-pkg.conf, в мане написано, что есть переменная config_target, которая задает поведение поведение этапа configure, и в дефолте она oldconfig

Это можно переписать через make-kpkg --config значение

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

Mofforg ()
Ответ на: комментарий от ii343hbka

Это не то...

Через просто make весьма печально выходит.

xargs: md5sum: Слишком длинный список аргументов
make[1]: *** [deb-pkg] Ошибка 126
make: *** [deb-pkg] Ошибка 2
Mofforg ()

В файле .config есть много строк, изменение которых невозможно через make config или make menuconfig.

Раз их нет в make config или make menuconfig значит их лучше вообще не трогать своими шаловливыми ручонками.

Да и его редактирование мне удобнее.

Твои ссзб проблемы ибо

Поэтому я изменяю его, а потом делаю make menuconfig > Сохранить. Но в результате сохранения через menuconfig все значения, которых нет в menuconfig - возвращаются к своим обратным.

Чего жаждал того и получил. Ну ты же хотел именно руками и кому какое нафиг дело что там есть во первых параметры которые все равно сбросит на дефолт во вторых зависимости… Вот и получи.

init_6 ★★★★★ ()
Ответ на: комментарий от ii343hbka

В общем при ручном изменении ядро не компилируется никаким методом) Возникают ошибки, даже если я оставляю конфиг таким, какой мне его сделал menuconfig. Скорее всего что-то я делаю не так *печаль*

Mofforg ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.