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
.
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.
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.
...
...
...
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
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
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.