uart(4) not working in QEMU
Bruce M Simpson
bms at incunabulum.net
Mon Feb 9 21:10:24 PST 2009
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'
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?
More information about the freebsd-current