Я хотел бы установить CONFIG_STRICT_DEVMEM=n и перекомпилировать мое ядро, чтобы попробовать то, что @Oliv предложил в комментариях к моему вопросу о stackoverflow.

Я следую учебному пособию по BuildYourOwnKernel в вики Ubuntu:

$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git
$ cd ubuntu-bionic/
$ chmod a+x debian/rules
$ chmod a+x debian/scripts/*
$ chmod a+x debian/scripts/misc/*
$ fakeroot debian/rules clean
$ sudo fakeroot debian/rules editconfigs
dh_testdir;
/bin/bash -e debian/scripts/misc/kernelconfig editconfigs
Do you want to edit config: amd64/config.flavour.generic? [Y/n] Y

и я сталкиваюсь со следующим меню:

Я искал arround в надежде найти переменную, которую мне нужно изменить (CONFIG_STRICT_DEVMEM), но я не нашел ее.

Большинство ресурсов, которые я нахожу в Интернете, посвящены компиляции / сборке ядра, но я ничего не нашел по поводу внесения конкретных изменений.

Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении?

РЕДАКТИРОВАТЬ 1:

Файл:

./build/.config

создается, когда sudo fakeroot debian/rules editconfigs отменяется.

$ cat ./build/.config | grep CONFIG_STRICT_DEVMEM

возвращается

CONFIG_STRICT_DEVMEM=y
CONFIG_STRICT_DEVMEM=y

Я установил эти переменные и побежал

fakeroot debian/rules binary-headers binary-generic binary-perarch

который закончился ошибкой:

/bin/bash: gawk: command not found
debian/rules.d/2-binary-arch.mk:123: recipe for target 'install-generic' failed
make: *** [install-generic] Error 127

РЕДАКТИРОВАТЬ 2:

Теперь я следую другому учебнику и совету @ Oliv:

  • Я установил gawk
  • Я запустил make menuconfig чтобы сгенерировать файл с именем .config в корне хранилища git.
  • Я установил CONFIG_STRICT_DEVMEM от =y до =n
  • Я снова запустил make menuconfig .
  • cat .config | grep CONFIG_STRICT_DEVMEM возвращает # CONFIG_STRICT_DEVMEM is not set
  • Теперь я запускаю make && make modules_install && make install от имени пользователя root.

Я сообщу о любом дальнейшем прогрессе ...

1 ответ1

0

Хорошо, это сработало.

Вот общий "рецепт" для людей, которые хотят изменить свое ядро

  • Используйте ll /proc/ | grep conf и ll /boot/ | grep conf чтобы найти ваш конфигурационный файл.

  • Проверьте, как переменная интереса настроена, используя path_to_config | grep variable_of_interest или распакуйте его, если необходимо: path_to_config.gz | gunzip | grep variable_of_interest

Если вы хотите изменить значение одной из этих переменных, вам нужно сделать следующее:

  • Клонируйте репозиторий git, содержащий ваше ядро. Я использовал:

    git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git

    замените bionic на кодовое имя вашей операционной системы.

  • Установите программное обеспечение:

    sudo apt-get build-dep linux-image-$(uname -r) && sudo apt-get install gawk

  • cd ubuntu-bionic/ снова замените bionic на кодовое имя вашей ОС.

  • Сделайте следующие файлы исполняемыми:

    chmod a+x debian/rules chmod a+x debian/scripts/* chmod a+x debian/scripts/misc/*

  • Запустите fakeroot debian/rules clean

  • Скопируйте ваши текущие конфигурации в корень репозитория git:

    cp path_to_config ./.config

  • Настройте .config соответствии с вашими потребностями. Я рекомендую установить CONFIG_DEBUG_INFO=n и CONFIG_DEBUG_INFO_DWARF4=n , чтобы сократить время компиляции и избежать использования такого большого дискового пространства во время компиляции.

  • Бежать:

    sudo su make menuconfig make && make modules_install && make install

А теперь наберись терпения ...

В моем случае path_to_config | grep variable_of_interest прежнему возвращает старую конфигурацию после завершения вышеуказанных шагов, но изменения были внесены в ядро, и оно работало должным образом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .