Qemu - debug new syscall

2

como um projeto de escola, eu tenho que adicionar um syscall ao último kernel Linux estável. Eu fiz e recompilei o kernel usando make defconfig e make .

Depois de passar por vários tutoriais para inicializar o kernel (nenhum deles funcionou), finalmente encontrei algo aqui (adaptando-o para a versão x86_64 do kernel). Este tutorial me faz criar um initramfs usando mkinitramfs -o file .

O problema é que eu preciso testar meu syscall neste novo kernel, mas assim que eu inicializo ele é redirecionado para um prompt (initramfs) , e não tenho idéia de como instalar pacotes, ou se é a solução correta .

Minha pergunta - > Como eu poderia obter o gcc nesta máquina virtual para que eu possa compilar um programa simples de teste em C, executá-lo e garantir que meu syscall funcione?

    
por Telz 12.10.2015 / 21:19

1 resposta

0

Bem, se alguém quiser saber como fazer isso, aqui está como eu fiz isso - > Eu compilei na minha máquina, criei o meu próprio initramfs (seguindo as instruções aqui (não gzip ou o qemu não vai ler de alguma forma)), coloque o executável no initramfs antes do cpio dele, então lance o qemu e o executável, voila.

Eu sei que esta não é a solução ideal, só funcionou porque o kernel que eu estava testando e a minha máquina eram linux x86_64, mas eu estava sem opções.

(Se você quiser passar o gcc para o initramfs, não segfaults quando compilar).

    
por 15.10.2015 / 19:04