Установка нового ядра на основе DEB
Я пытаюсь протестировать предлагаемое ядро для Launchpad Issue 1556562: VIA C7-D машина "Обращение по нулевому указателю ядра" в 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. Есть ли дополнительные шаги, которые нужно выполнить при установке ядра вручную?
Или есть лучший способ сделать это?
1 ответ
Вот небольшой скрипт, который я использовал для этого. Оглядываясь назад, сценарий, вероятно, был излишним, но он дал мне основу для воспроизводимых результатов.
Порядок файлов 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