Установка нового ядра на основе DEB

622
jww

Я пытаюсь протестировать предлагаемое ядро ​​для Launchpad Issue 1556562: машина VIA C7-D "разыменование NULL-указателя ядра" в skcipher_recvmsg_async . Предлагаемое ядро ​​предоставляется в виде коллекции файлов DEB .

Основываясь на опыте тестирования ядер, предлагаемых Ubuntu, я считаю, что мне нужен образ linux и дополнения ( linux-image-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.debи linux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb).

Итак, я уверен, и чтобы не переустанавливать базовую систему (теперь уже дважды), как установить ядро ​​и дополнения с помощью DEB? Это как установка любой другой DEB из командной строки ?

Я думаю update-grub2, что потребуется, чтобы получить его в меню GRUB. Есть ли дополнительные шаги, которые нужно выполнить при установке ядра вручную?

Или есть лучший способ сделать это?

0

1 ответ на вопрос

0
jww

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

Порядок файлов DEB был не совсем правильным. При первом запуске я получил ошибку о неудовлетворенных зависимостях. Второй запуск очистил проблему неудовлетворенной зависимости. (Я не скопировал точное сообщение об ошибке, но я должен был предоставить более полный ответ).

Запуск update-grub2вручную не требовался. Видимо, есть триггер, чтобы сделать это в одном или нескольких DEB.

#!/usr/bin/env bash  wget http://kernel.ubuntu.com/~kamal/lp1556562.0/linux-image-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb wget http://kernel.ubuntu.com/~kamal/lp1556562.0/linux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb wget http://kernel.ubuntu.com/~kamal/lp1556562.0/linux-headers-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb wget http://kernel.ubuntu.com/~kamal/lp1556562.0/linux-tools-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb  dpkg -i linux-image-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb dpkg -i linux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb dpkg -i linux-headers-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb dpkg -i linux-tools-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb 

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

Сначала найдите название пакета:

$ dpkg --info linux-headers-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb | grep 'Package:' Package: linux-headers-4.2.0-35-generic 

Затем используйте dpkg -r:

$ dpkg --info linux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb | grep 'Package:' Package: linux-image-extra-4.2.0-35-generic  $ sudo dpkg -r linux-image-extra-4.2.0-35-generic (Reading database ... 126639 files and directories currently installed.) Removing linux-image-extra-4.2.0-35-generic (4.2.0-35.40+lp1556562) ... ... 

После удаления всех DEB выполните очистку, восстановите меню grub и перезагрузите компьютер.

$ sudo apt-get autoclean ... $ sudo apt-get autoremove ... $ sudo update-grub2 ... $ sudo shutdown -r now