Как использовать опцию '-netdev user, hostfwd = ...' в qemu? - PullRequest
0 голосов
/ 01 октября 2019

спасибо, что прочитали мою проблему. Я собираюсь отлаживать сборку MIPS в среде QEMU. Но я столкнулся с некоторой проблемой.

Я набрал эту команду
qemu-system-mipsel -M malta -kernel vmlinux-2.6.32-5-5kc-malta -hda debian_squeeze_mipsel_standard.qcow2 -append "root=/dev/sda1" -redir tcp:4444::4444 -nographic

И qemu-system-mipsel сказал мне ошибку
-redir tcp:4444::4444: The -redir option is deprecated. Please use '-netdev user,hostfwd=...' instead.

Если опция -redir устарела, как изменить мою команду с помощью опции -netdev ???

Что еще более странно, команда qemu-system-mipsel -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1" -redir tcp:4444::4444 -nographic успешно выполняется в среде debian_wheezy_mipsel!

Это только debian_squeeze_mipsel проблема?

Но я не могу использовать debian_wheezy_mipsel ... эта версия не может работать apt-get package хорошо. Поэтому я не смог отладить двоичный файл mips с помощью gdb или gcc.

Спасибо:)

1 Ответ

0 голосов
/ 01 октября 2019

Проект QEMU документирует замены для устаревших и затем удаленных компонентов в https://wiki.qemu.org/Features/RemovedFeatures - в этом случае он говорит:

-redir [tcp | udp]: hostport: [guestaddr]: аргумент guestport заменяется пользователем -netdev, id = x, hostfwd = [tcp | udp]: [hostaddr]: hostport- [guestaddr]: guestport (для подключаемых сетевых адаптеров, сопровождаемых -device…, netdev = x) или -nic пользователь, hostfwd = [tcp | udp]: [hostaddr]: hostport- [guestaddr]: guestport (для встроенных сетевых адаптеров). Новый синтаксис позволяет предоставлять различные настройки для каждого сетевого адаптера.

Эта функция устарела в QEMU v2.6.0 и полностью удалена в v3.1.0. Так что версии QEMU до 2.6 не будут жаловаться;QEMU между 2.6 и 3.0 выдаст предупреждение об устаревании, но будет работать так же, как и старые версии;и 3.1 и позже откажутся запускаться, потому что они не распознают эту опцию.

В вашем случае я думаю, что на плате malta используется вставная PCI-карта pcnet, что подразумевает, что вы хотите "-netdev"user, id = x, hostfwd = ... -device pcnet, netdev = x "из двух указанных выше вариантов. Если это не сработает, попробуйте другой.

...