Невозможно установить ядро, даже если оно успешно скомпилировано - PullRequest
3 голосов
/ 21 июня 2020

Я пытаюсь установить linux-Kernel version 4.9.228 в свой ubuntu 20.04. Ядро скомпилировано успешно, без ошибок. Я также выполнил команду:

sudo make modules_install install

Когда я перезагружал свою систему, я проверил файлы в каталоге /boot/, чтобы проверить правильность ввода:

  • System.map-4.9.228
  • vmlinuz-4.9.228
  • initrd.img-4.9.228
  • config-4.9.228

Не знаю почему, но когда я бежал uname -r. Моя версия не обновлялась. Он по-прежнему говорит: 5.4.0-37-generic.

Пожалуйста, помогите мне, если я что-то упустил.

Примечание. Единственная цель всего этого - узнать, как добавить системный вызов и как скомпилировать ядро. Я открыт для предложений, если они у вас есть. Спасибо.

1 Ответ

2 голосов
/ 21 июня 2020

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

Я предполагаю, что вы используете GRUB2 в качестве загрузчика , поскольку он стандартен для большинства дистрибутивов, включая Ubuntu. Для загрузки нового ядра у вас есть несколько вариантов.

Вариант 1

Это самый безопасный и рекомендуемый вариант.

  1. Отредактируйте GRUB файл конфигурации /etc/default/grub (вам нужно быть root, поэтому используйте что-то вроде sudo vi или sudo nano) и убедитесь, что у вас есть GRUB_TIMEOUT=N, где N - количество секунд. Если нет, просто добавьте его с новой строки. Вы хотите, чтобы N было не менее 5 или 10, чтобы у вас было время выбрать правильную версию ядра при запуске GRUB.

    Кроме того, убедитесь, что не следующие строки (их не должно быть, но если они есть, удалите или прокомментируйте их):

    GRUB_DISABLE_RECOVERY="true"
    GRUB_DISABLE_SUBMENU=y
    GRUB_HIDDEN_TIMEOUT=N
    GRUB_TIMEOUT_STYLE=hidden
    
  2. Сохраните изменения в /etc/default/grub и запустите sudo update-grub. Это обнаружит установленные в настоящее время ядра и добавит их в список загрузок, когда вы запустите компьютер и войдете в GRUB.

  3. Перезагрузите P C, при запуске GRUB вы увидите список параметры. Если вы ничего не сделаете, ваше ядро ​​по умолчанию загрузится, в противном случае вы можете использовать клавиши со стрелками и клавишу ENTER, чтобы перейти к "Дополнительные параметры для Ubuntu" , где вы найдете список доступных ядер. и вы сможете выбрать тот, который вам больше нравится.

    Он должен выглядеть примерно так:

    grub1

    grub2

Option 2

Use only as fallback if option 1 does not work (it should, but you never know). This is not as clean as option 1 because it changes the default kernel, and changes are also probably going to be overridden by an upgrade of your current kernel (which technically does exactly this to update the default version).

  1. Make the kernel you want the default one by changing the two symlinks /initrd.img and /vmilunuz to point to the right versions of the kernel and initrd image. This can be done either manually or through the linux-update-symlinks command.

    $ linux-version list --paths
      ... grab the correct VERSION and PATH ...
    
    $ sudo linux-update-symlinks install VERSION PATH
    
  2. Run sudo update-grub to let GRUB detect the changes.

  3. Reboot your PC.

Option 3

Manually boot into the kernel you want from the GRUB command line. This is an advanced option and I'm listing it only as a last resort, you should never need to do this unless you have completely broken your system configuration.

  1. Reboot the PC into GRUB, and as soon as you see it, press C to enter the GRUB command line.
  2. Follow этот ответ с этого момента.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...