Estou tentando executar a imagem do Ubuntu 14 Raspberry Pi ARM no QEMU, e para isso eu preciso do kernel que corresponde à versão usada na imagem.
Se eu montar a imagem e executar file vmlinuz
, vejo:
vmlinuz: symbolic link to 'boot/vmlinuz-3.18.0-20-rpi2'
então estou interpretando isso para significar que a imagem usa a versão 3.18.0 do kernel.
Usando este guia , eu tentei compilar esta versão do kernel, que eu estou fazendo com:
TOOLCHAIN=arm-linux-gnueabihf
sudo apt-get update && sudo apt-get install git libncurses5-dev gcc-arm-linux-gnueabihf
git clone https://github.com/raspberrypi/linux.git
cd linux
# checking out 3.18.0+ branch - change it if you want to change kernel version
# for kernel specific hash, have a looks at : https://github.com/raspberrypi/linux/commits/rpi-3.18.y
# git checkout 1bb18c8f721ef674a447f3622273f2e2de7a205c
make ARCH=arm versatile_defconfig
cat >> .config << EOF
CONFIG_CROSS_COMPILE="$TOOLCHAIN"
CONFIG_CPU_V6=y
CONFIG_ARM_ERRATA_411920=y
CONFIG_ARM_ERRATA_364296=y
CONFIG_AEABI=y
CONFIG_OABI_COMPAT=y
CONFIG_PCI=y
CONFIG_SCSI=y
CONFIG_SCSI_SYM53C8XX_2=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_TMPFS=y
CONFIG_INPUT_EVDEV=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS=y
CONFIG_VFAT_FS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_VFP=y
CONFIG_CGROUPS=y
CONFIG_MMC_BCM2835=y
CONFIG_MMC_BCM2835_DMA=y
CONFIG_DMADEVICES=y
CONFIG_DMA_BCM2708=y
EOF
make savedefconfig
#make -j 4 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- menuconfig
make -j 4 -k ARCH=arm CROSS_COMPILE=${TOOLCHAIN}- bzImage
cd ..
cp linux/arch/arm/boot/zImage kernel-qemu-3.18
No entanto, quando vou executar este kernel com o qemu-system-arm, recebo o erro:
Error: unrecognized/unsupported processor variant (0x410fb767).
Além disso, estou percebendo que o comando make remove minhas alterações no arquivo .config
.
Como corrijo esse erro?
Posso usar o arquivo vmlinuz da imagem em vez de compilar o meu a partir do zero?