Комментарии 5
Здравсвуйте, Роман.
Я попробовал воспроизвести ваш метод запуска qemu-system-mipsel.
У меня не получилось сделать как у вас и кое-что смутило.
Первое что смутило - вы указали IDE диск в переменных u-boot:bootcmd=saveenv; fatload ide
и так далее.
Но в команде запуска qemu-system-mipselspawn qemu-system-mipsel -cpu 24Kc -M malta -m 1024 -nodefaults -nographic -serial stdio -bios env(IMAGE),format=raw -net nic,model=pcnet -net user
я не вижу параметра, добавляющего диск к этой виртуальной машине.
Второе что смутило - загадочное -bios env(IMAGE)
По аналогии с qemu-system-aarch64 я предположил, что под env(IMAGE)
скрывается файл u-boot.bin. Ведь перед этим вы посвятили абзац тому, как конфигурировали этот u-boot. Однако, когда я попытался запустить qemu-system-mipsel
с параметром -bios u-boot.bin
, то это не сработало. Ну как сказать не сработало - процесс виртуалки запустился и даже показал монитор, но u-boot не запустился никак.
В первую очередь я подумал, что это я ошибся при сборке u-boot. Но я перепроверился вот этим способом https://docs.u-boot.org/en/stable/board/emulation/qemu-mips.html . Мой u-boot в порядке и нормально запускается так:
$ dd if=/dev/zero bs=1M count=4 | tr '\000' '\377' > pflash.img
$ dd if=u-boot.bin of=pflash.img conv=notrunc
$ qemu-system-mipsel -cpu 24KEc -m 256 -drive if=pflash,file=pflash.img,format=raw
U-Boot 2025.01-rc4 (Jan 03 2025 - 18:19:49 +1000)
Board: MIPS Malta CoreLV
DRAM: 256 MiB
Core: 5 devices, 5 uclasses, devicetree: separate
PCI: Failed autoconfig bar 10
PCI: Failed autoconfig bar 14
PCI: Failed autoconfig bar 18
PCI: Failed autoconfig bar 1c
PCI: Failed autoconfig bar 20
PCI: Failed autoconfig bar 24
Bus 0: OK
Device 0: Device 1: Flash: 4 MiB
Loading Environment from Flash... *** Warning - bad CRC, using default environment
In: serial@3f8
Out: serial@3f8
Err: serial@3f8
Net: eth0: pcnet#0
maltael #
В связи с чем у меня вопрос. Не могли бы вы поделиться своим способом, как вы так сделали этот биос, что ваш u-boot и ваш линукс запускаются в qemu-system-mipsel ?
По первой части смущение закончилось. Я нашёл ваш https://github.com/lunixoid/qemu_mips/blob/main/tests/test_firmware.sh
Но вопрос про биос остаётся.
По второму смущению тоже прояснилось. Почему-то qemu-system-mipsel не запускается, когда виртуальной машине даётся менее 256 МБ ОЗУ.
Объяснение здесь: https://docs.u-boot.org/en/stable/board/emulation/qemu-mips.html#limitations-comments
The memory size for Qemu is hard‑coded to 256 MiB.
С 256-ю мегабайтами прекрасно запустилось.
И еще немного про авто-тесты в QEMU