I downloaded QEMU 2.2.0, and built a qemu-system-arm from there.
I loaded a versatile kernel 2.6.32.5 and my own file system.
#qemu-system-arm -pidfile /tmp/qemu_0_pids/0.pid -M versatilepb -option-rom efi-rtl8139.rom -initrd newinitrd -kernel vmlinuz-2.6.32-5-versatile -append "root=/dev/sda1 console=ttyAMA0" -hda new.qcow2 -drive file=fat:rw:./data -nographic -no-reboot
I see following message while the kernel is booting:
[ 3.873429] dev:f1: ttyAMA0 at MMIO 0x101f1000 (irq = 12) is a AMBA/PL011
[ 3.884631] console [ttyAMA0] enabled
[ 3.889783] dev:f2: ttyAMA1 at MMIO 0x101f2000 (irq = 13) is a AMBA/PL011
[ 3.890646] dev:f3: ttyAMA2 at MMIO 0x101f3000 (irq = 14) is a AMBA/PL011
I think the serial ports of ttyAMA[0-2] are enabled.
Then I try to do serial redirection:
#qemu-system-arm -pidfile /tmp/qemu_0_pids/0.pid -M versatilepb -option-rom efi-rtl8139.rom -initrd newinitrd -kernel vmlinuz-2.6.32-5-versatile -append "root=/dev/sda1 console=ttyAMA0" -hda new.qcow2 -drive file=fat:rw:./data -nographic -no-reboot -serial stdio -serial pty
However, I get error message:
QEMU 2.2.0 monitor - type 'help' for more information
(qemu) qemu-system-arm: -serial stdio: cannot use stdio by multiple character devices
It's weired to me. I don't think there is another one other than qemu itself holding the stdio.
Then I try to do redirect serial to both pty:
#qemu-system-arm -pidfile /tmp/qemu_0_pids/0.pid -M versatilepb -option-rom efi-rtl8139.rom -initrd newinitrd -kernel vmlinuz-2.6.32-5-versatile -append "root=/dev/sda1 console=ttyAMA0" -hda new.qcow2 -drive file=fat:rw:./data -nographic -no-reboot -redir tcp:5000::22 -serial pty -serial pty
It works fine this time. I got following output:
vvfat ./data chs 1024,16,63
QEMU 2.2.0 monitor - type 'help' for more information
(qemu) char device redirected to /dev/pts/87 (label serial0)
char device redirected to /dev/pts/88 (label serial1)
Then I do `cat /dev/pts/86` I see the kernel boot progress messages.
When the guest has booted, I ssh to guest and do following experiment:
(1) on host:
#cat /dev/pts88
on guest:
#echo "alex" > /dev/ttyAMA1
I see "alex" on host.
(2) on guest:
#cat /dev/ttyAMA1
on host:
#echo "alex" > /dev/pts88
I see nothing on guest...
Why the serial connection is one-way (e.x. guest to host)? How to configure it as dual-way?
Any advise on this is highly appreciated!!
Thanks!
Alex