Instalando o novo kernel baseado no DEB

0

Estou tentando testar um kernel proposto para Launchpad Edição 1556562: máquina VIA C7-D "referência do ponteiro NULL do kernel" em skcipher_recvmsg_async . O kernel proposto é fornecido como uma coleção de arquivos DEB .

Com base na experiência de testar os kernels propostos pelo Ubuntu, acredito que eu precise da imagem e dos extras do linux ( linux-image-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb e linux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb ).

Então, estou limpo e para evitar a reinstalação de um sistema básico (duas vezes agora), como instalar o kernel e os extras usando o DEB? É como instalando qualquer outro DEB do linha de comando ?

Acho que será necessário um update-grub2 para entrar no menu do GRUB. Existem etapas adicionais que devem ser executadas ao instalar um kernel manualmente?

Ou há uma maneira melhor de fazer isso?

    
por jww 24.03.2016 / 07:29

1 resposta

0

Aqui está o pequeno script que eu usei para fazer isso. Em retrospectiva, o roteiro foi provavelmente um exagero, mas me deu uma base para resultados reprodutíveis.

A ordem dos arquivos DEB não estava correta. Na primeira execução, recebi um erro sobre dependências não atendidas. A segunda execução limpou o problema de dependência não atendida. (Eu não copiei a mensagem de erro exata, mas eu deveria fornecer uma resposta mais completa).

A execução de update-grub2 manualmente não foi necessária. Aparentemente, há um gatilho para fazer isso em um ou mais dos DEBs.

#!/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

Remover o kernel após o teste é um pouco mais interessante porque você precisa usar um nome de pacote e não um arquivo DEB. Você também tem que honrar as dependências.

Primeiro, encontre o nome do pacote:

$ 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

Em seguida, use 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) ...
...

Após todos os DEBs terem sido removidos, faça uma limpeza, gere novamente o menu do grub e reinicie.

$ sudo apt-get autoclean
...
$ sudo apt-get autoremove
...
$ sudo update-grub2
...
$ sudo shutdown -r now
    
por 25.03.2016 / 05:30