Qubes OS - Atualizar um Kernel de Template

1

Estou tentando atualizar o kernel no Template Debian de Qubes OS , seguindo as documentações oficiais, mas parece que estou perdendo algo ou fazendo algo errado.

Estou usando gcc 6.3.0 .


Documentos do Qubes:
Instalando o kernel no Debian VM

Na VM baseada em Debian, você precisa instalar o pacote qubes-kernel-vm-support. Este pacote inclui o módulo de kernel adicional necessário e a adição de initramfs necessária para iniciar o Qubes VM (para obter detalhes, consulte a implementação do modelo). Além disso, você precisa de algumas ferramentas do GRUB para criar sua configuração. Observação: você não precisa de um gerenciador de boot grub real, como é fornecido pelo dom0. Mas ter um também não deve prejudicar.

sudo apt-get update
sudo apt-get install qubes-kernel-vm-support grub2-common

Em seguida, instale o kernel que você quiser. Se você estiver usando o pacote do kernel de distribuição (pacote linux-image-amd64), o initramfs e o módulo do kernel devem ser manipulados automaticamente. Caso contrário, ou você está criando o kernel manualmente, faça isso usando o dkms e o initramfs-tools:

sudo dkms autoinstall -k <kernel-version> # replace this <kernel-version> with actual kernel version
sudo update-initramfs -u

Quando o kernel é instalado, você precisa criar a configuração do GRUB. Você pode querer ajustar algumas configurações em / etc / default / grub, por exemplo, diminuir o GRUB_TIMEOUT para acelerar a inicialização da VM. Então você precisa gerar uma configuração real: No Fedora, isso pode ser feito usando a ferramenta update-grub2:

sudo mkdir /boot/grub
sudo update-grub2

Em seguida, desligue a VM. A partir de agora você pode definir o pvgrub2 como o kernel da VM e ele irá iniciar o kernel configurado dentro da VM.


Debian Docs:
Não tenha medo de tentar compilar o kernel. É divertido e lucrativo.

Para compilar um kernel da maneira Debian, você precisa de alguns pacotes: fakeroot, kernel-package, linux-source-version.

A partir de agora, assumiremos que você tem controle sobre sua máquina e extrairá sua fonte do kernel em algum lugar em seu diretório home [22]. Certifique-se de estar no diretório onde deseja descompactar os fontes do kernel, extraia-os usando tar xf /usr/src/linux-source-version.tar.xz e mude para o diretório linux-source-version que terá sido criado.

Agora, você pode configurar seu kernel. Execute make xconfig se o X11 estiver instalado, configurado e em execução; execute make menuconfig caso contrário (você precisará do libncurses5-dev instalado). Aproveite o tempo para ler a ajuda on-line e escolha com cuidado. Em caso de dúvida, normalmente é melhor incluir o driver de dispositivo (o software que gerencia os periféricos de hardware, como placas Ethernet, controladores SCSI e assim por diante) que você não tem certeza. Tenha cuidado: outras opções, não relacionadas a um hardware específico, devem ser deixadas no valor padrão se você não as entender. Não esqueça de selecionar “Kernel module loader” em “Loadable module support” (não é selecionado por padrão). Se não estiver incluído, a sua instalação Debian terá problemas.

Limpe a árvore de fontes e redefina os parâmetros do pacote kernel:

make-kpkg clean

Agora, compile o kernel:

fakeroot make-kpkg --initrd

Quando a compilação estiver completa, você poderá instalar seu kernel personalizado como qualquer pacote. Como root, faça o dpkg -i ../linux-image-version-subarchitecture.deb. Por exemplo, o System.map será instalado corretamente e /boot/config-3.16 será instalado, contendo seu conjunto de configurações atual. Seu novo pacote do kernel também é inteligente o bastante para atualizar automaticamente seu gerenciador de inicialização para usar o novo kernel. Se você criou um pacote de módulos, também precisará instalar esse pacote.


A saída do caminho do Debian:
...
...
...
This is kernel package version 13.014+nmu1.
install -p -d -o root -g root  -m  755 /usr/src/linux-source-4.8/debian/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64/DEBIAN
sed -e 's/=V/4.8.15-rt10-11.pvops.qubes.x86_64/g'    -e 's/=IB//g' \
    -e 's/=ST/linux/g'  -e 's/=R//g' \
        -e 's/=KPV/13.014+nmu1/g'                       \
    -e 's/=K/vmlinuz/g'          \
    -e 's/=I/YES/g'     -e 's,=D,/boot,g'        \
    -e 's@=A@amd64@g'   \
    -e 's@=B@x86_64@g'     \
...
dpkg-gencontrol: error: illegal package name 'linux-image-4.8.15-rt10-11.pvops.qubes.x86_64':
                 character '_' not allowed
debian/ruleset/targets/image.mk:230: recipe for target 'debian/stamp/binary/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64' failed
make: *** [debian/stamp/binary/linux-image-4.8.15-rt10-11.pvops.qubes.x86_64] Error 255


Compilação manual:
Eu baixei linux-source-4.8 do Debian e eu o extraí em /usr/src .

Então:

make defconf
make menuconf   # custom settings
make

O mesmo erro acima:

dpkg-gencontrol: error: illegal package name 'linux-image-4.8.15-rt10-11.pvops.qubes.x86_64':
                 character '_' not allowed


Eu acho que isso pode ser resolvido facilmente, mas se eu posso compilar o kernel manualmente, então como devo proceder?
make install e make modules_install são necessários ou eu tenho que usar dkms autoinstall diretamente? Isso não está especificado ...



ATUALIZAÇÃO:

Instalando diretamente o pacote Debian linux-image-amd64 fazer o console desaparecer e a VM funcionar de forma inadequada, eu tentei reinicializá-lo, mas eu poderia usá-lo apenas anexando ao console serial.
Percebi que dpkg caiu durante a instalação, então eu corri dpkg --configure -a e ele terminou a instalação, mas mostrou uma mensagem de aviso que dizia com que initramfs , a máquina nunca teria inicializado, na verdade eu atualizei GRUB e reinicializado, mas initramfs não conseguiu montar raiz.

    
por JumpAlways 31.01.2017 / 06:43

0 respostas