LINUX.ORG.RU

QEMU проблемы с запуском ядра для HiSilicon Hi3798MV100

 , ,


0

1

Доброго времени суток. Возникла проблема с запуском ядра для сабжа. Есть SDK для процессора HiSilicon Hi3798MV100. Скомпилировал ядро. Собрал QEMU4. Но не получается запустить ядро. Консоль просто молчит. Скорее всего не правильно эмулирую железо. Прошу помочь ссылками на толковые статьи об эмуляции железа с помощью QEMU, желательно на языке Пушкина) Какая информация о чипе нужна для правильной настройки QEMU?

Запускаю qemu так:

qemu-system-arm -M versatilepb -cpu cortex-a7 -smp 1 \
 -kernel ./hi_kernel.bin -append 'console = ttyAMA0' -m 256 \
  -no-reboot -serial stdio

При компиляции получил два образа vmlinux и hi_kernel.bin

hi_kernel.bin: u-boot legacy uImage, Linux-3.10.0_s40, Linux/ARM, OS Kernel Image (Not compressed), 4519776 bytes, Thu Oct 25 14:00:13 2018, Load Address: 0x02000000, Entry Point: 0x02000000, Header CRC: 0xBEA013D2, Data CRC: 0xE54E5409

vmlinux: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, BuildID[sha1]=75b6b63fd0b00fd5529f61881758d3544d043f8d, not stripped

Заранее спасибо за помощь))

-M versatilepb поддерживает только ARMv6 CPU, никакого cortex-a7.

-M virt вроде поддерживает Cortex-A7...

Вот мои строки запуска которые работают:

armv6:

qemu-system-arm \
-kernel kernel-qemu-4.14.79-stretch \
-cpu arm1176 \
-m 256 \
-M versatilepb \
-dtb versatile-pb.dtb \
-no-reboot \
-append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" \
-drive "file=2019-06-20-raspbian-buster-lite.img,index=0,media=disk,format=raw" \
-nic user,hostfwd=tcp::2222-:22 \
-serial stdio
armv7:
qemu-system-arm \
-kernel kernel-qemu-4.4.1-vexpress \
-cpu cortex-a9 \
-m 1024 \
-M vexpress-a9 \
-dtb vexpress-v2p-ca9.dtb \
-no-reboot \
-append "root=/dev/mmcblk0p2 rw rootfstype=ext4" \
-sd 2019-04-08-raspbian-stretch-lite.img \
-nic user,hostfwd=tcp::3222-:22 \
-serial stdio \
-smp 4
armv8
qemu-system-aarch64 \
  -kernel debian_bootpart/vmlinuz-4.14.0-3-arm64 \
  -initrd debian_bootpart/initrd.img-4.14.0-3-arm64 \
  -m 1024 -M virt \
  -cpu cortex-a53 \
  -serial stdio \
  -append "rw root=/dev/vda2 console=ttyAMA0 loglevel=8 rootwait fsck.repair=yes memtest=1" \
  -drive file=2018-01-08-raspberry-pi-3-buster-PREVIEW.img,format=raw,if=sd,id=hd-root \
  -device virtio-blk-device,drive=hd-root \
  -netdev user,id=net0,hostfwd=tcp::5022-:22 \
  -device virtio-net-device,netdev=net0 \
  -no-reboot \
  -smp 4 \
  -nographic
Посмотри, может чем-нибудь помогут эти строки тебе.

fsb4000 ★★★★ ()
Ответ на: комментарий от fsb4000

Кажется запустил, судя по нагрузке на процессор, однако вывода на экран по-прежнему нет. С чем может быть связано такое поведение? Неправильный dtb?

~/projects/qemu/qemu-4.0.0/build/arm-softmmu/qemu-system-arm \
-kernel ./vmlinux \
-initrd ./initrd.image \
-m 512 \
-M raspi2 \
-no-reboot \
-append "rootfstype=ramfs console=ttyAMA0,115200 initrd=0x15200000,0x1902000 mem=512M mmz=ddr,0,0,256M" \
-serial stdio \
-smp 4


cpuinfo с девайса
processor       : 0
Processor       : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 1949.69
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 1
Processor       : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 1959.93
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 2
Processor       : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 1959.93
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 3
Processor       : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 1959.93
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : bigfish
Revision        : 0000
Serial          : 0000000000000000

Doctor_Dark ()
Ответ на: комментарий от Doctor_Dark

Что такое «однако вывода на экран по-прежнему нет»?

Типа такое окно?

https://imgur.com/a/og3cEdu

Это норм, не у всех плат есть экран, дальше подключаешься по ssh к qemu. Правда у raspi-2 вроде нет сети в qemu, значит экран по идее должен быть экран...

fsb4000 ★★★★ ()