obs-build icon indicating copy to clipboard operation
obs-build copied to clipboard

s390x local `osc build --vm-telnet ...` fails: 'e1000' is not a valid device model name

Open ddiss opened this issue 8 months ago • 2 comments

Describe the bug When attempting a virtualized s390x build on an x86-64 host, the --vm-telnet adds a e1000 network device which doesn't exist on my x86-64 openSUSE tumbleweed host with qemu-s390x-9.2.3-1.1.x86_64 :

# osc co home:ddiss:lkl/lkl
# cd !$
# osc build --vm-type=qemu --vm-memory=12G -x iproute2 -x telnet-server --shell-after-fail --vm-telnet 8023 openSUSE_Factory_zSystems s390x
...
/usr/bin/qemu-system-s390x -nodefaults -no-reboot -nographic -vga none -cpu qemu -object rng-random,filename=/dev/random,id=rng0 -device virtio-rng-ccw,rng=rng0 -net none -netdev user,id=telnet,hostfwd=tcp:127.0.0.1:8023-:23 -device e1000,netdev=telnet -kernel /var/tmp/build-root-david/openSUSE_Factory_zSystems-s390x/.mount/boot/kernel -initrd /var/tmp/build-root-david/openSUSE_Factory_zSystems-s390x/.mount/boot/initrd -append root=/dev/disk/by-id/virtio-0 rootfstype=ext4 rootflags=noatime elevator=noop nmi_watchdog=0 rw ia32_emulation=1 oops=panic panic=1 quiet elevator=noop console=hvc0 init=/.build/build -m 12G -drive file=/var/tmp/build-root-david/openSUSE_Factory_zSystems-s390x/img,format=raw,if=none,id=disk,cache=unsafe -device virtio-blk-ccw,drive=disk,serial=0 -drive file=/var/tmp/build-root-david/openSUSE_Factory_zSystems-s390x/swap,format=raw,if=none,id=swap,cache=unsafe -device virtio-blk-ccw,drive=swap,serial=1 -device virtio-serial-ccw -device virtconsole,chardev=virtiocon0 -chardev stdio,id=virtiocon0 -chardev socket,id=monitor,server=on,wait=off,path=/var/tmp/build-root-david/openSUSE_Factory_zSystems-s390x/img.qemu/monitor -mon chardev=monitor,mode=readline -smp 8

qemu-system-s390x: -device e1000,netdev=telnet: 'e1000' is not a valid device model name

However, an e1000e device is available:

# qemu-system-s390x -device \?|grep -i e1000
name "e1000e", bus PCI, desc "Intel 82574L GbE Controller"

Manually changing the device from e1000 to virtio-net sees the VM boot fine. I'd assume that e1000e would also work.

Versions

  • Operating system: openSUSE Tumbleweed
  • Packages: osc-1.15.1-1.1.noarch and qemu-s390x-9.2.3-1.1.x86_64

To Reproduce See initial description

Expected behavior The build VM should start.

Screenshots, console outputs See initial description

ddiss avatar Apr 23 '25 04:04 ddiss

I'm not sure if e1000 is supported on qemu-390x. qemu-system-s390x -net nic,model=help doesn't list it On the other hand, it is listed in /usr/share/doc/packages/qemu-s390x/supported.txt Also, the command you mentioned (qemu-system-s390x -device \?|grep -i e1000) prints e1000e, not e1000.

dmach avatar Apr 23 '25 19:04 dmach

On the other hand, it is listed in /usr/share/doc/packages/qemu-s390x/supported.txt

Interesting. I did a quick grep of the QEMU git logs and didn't see any mention of it being removed. Perhaps it's compiled out for s390x at build-time.

Also, the command you mentioned (qemu-system-s390x -device ?|grep -i e1000) prints e1000e, not e1000.

Yes, I mentioned e1000e would also work.. I think it'd make sense to switch to a virtio-net driver across all architectures, if possible.

ddiss avatar Apr 23 '25 23:04 ddiss