uart(4) not working in QEMU
Juergen Lock
nox at jelal.kn-bremen.de
Tue Feb 10 15:53:53 PST 2009
In article <49910C3D.90709 at incunabulum.net> you write:
>Hi,
>
>I have been trying to test my kernel code in QEMU as it saves a lot of
>time and effort.
>However, I have noticed since returning to my current project, that
>sio(4) was deprecated in favour of uart(4).
>
>Whilst I updated my kernel configs to reflect this, I've noticed a lot
>of problems with I/O and QEMU -- in particular, the kernel will log
>messages over uart(4) just fine, but when the kernel runs init, I can't
>get any I/O out of the uart(4) at all, apart from a single 'c' or 'F'
>character.
>
>The kernel continues to log messages OK to the uart0/ttyu0 device
>regardless of what's going on in userland.
>
>If I configure ttyv0 in the QEMU virtual machine up via /etc/ttys to run
>a getty there, I can get in, and see that the getty for ttyu0 is
>running. However, echo'ing or cat'ing data to /dev/ttyu0 won't work,
>even if I kill the getty process first. I just don't see anything
>appearing in my QEMU serial console.
>
>I've tried a lot of combinations of 3wire.115200 vs std.9600,
>boot.config options, loader.conf options, none of which have solved the
>problem (mostly working from the threads on this list from when the
>changes were made).
>
>I have also tried other bindings for the QEMU serial device -- e.g. tcp
>ports, nmdm(4), and always see the same effects. I do have INVARIANTS
>enabled -- could this be an issue?
I dunno if INVARIANTS changes the behaviour of the uart driver (my guess
is it doesn't), but I see there have been commits to qemu's hw/serial.c
since the versions in ports so you could try a more recent svn snapshot
like the one posted here:
http://lists.freebsd.org/pipermail/freebsd-emulation/2009-February/005650.html
If that doesn't help and you feel like debugging this maybe uncommenting
the DEBUG_SERIAL #define in hw/serial.c helps...
Good luck,
Juergen
More information about the freebsd-current
mailing list