I always forget how to do this, but in fact it’s quite simple.
First ensure your libvirt XML contains a fragment like this (my guest, installed using virt-install, already had this).
<serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console>
Second, edit /boot/grub/grub.conf inside the guest, adding the console=ttyS0 element to the kernel command line:
# virt-edit Guestname /boot/grub/grub.conf ... title Fedora (126.96.36.199-26.rc1.fc15.x86_64) root (hd0,0) kernel /vmlinuz ro [...] console=ttyS0 ...
You don’t need to set the speed. I believe it defaults to 115200 8N1, but I don’t think that qemu serial ports have a “speed” as such, since the hardware is emulated.
Third, start the guest and dump out the running XML:
# virsh start Guestname && virsh dumpxml Guestname ... <console type='pty' tty='/dev/pts/8'>
Notice the randomly assigned pty on the host side (
/dev/pts/8). Connect to that with Minicom, and you should see boot messages and/or a login prompt.
 Is there something better than minicom? It’s a horrible program, always has been.