Запуск виртуальной машины с последовательным портом в качесте консоли и перенаправлением его в stdio процесса qemu:
1 |
qemu-system-i386 -M pc-1.0 -m 64 -kernel $kernel_path -initrd $initrd_path -append 'console=tty0 console=ttyS0,115200n8' -chardev stdio,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -nographic -nodefconfig -nodefaults |
Для примера работы эмулятора будем использовать дистрибутив tinycore linux:
Пересборка initrd образа:
1 2 3 4 5 6 7 8 9 |
gunzip core.gz mkdir initrd cd initrd cpio -iv < ../core perl -pi -e 's/tty1/ttyS0/g' etc/inittab perl -pi -e 's/# ttyS0/ttyS0/g' etc/securetty find * -print0 | cpio -ov0 -H newc >../core cd .. gzip core |
Пример вывода(перенаправление консоли ядра отключено для наглядности):
1 2 3 4 5 6 7 8 9 |
$ echo ' sudo poweroff' | qemu-system-i386 -M pc-1.0 -m 64 -kernel /media/data/qemu/vmlinuz -initrd /media/data/qemu/core.gz -chardev stdio,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -nographic -nodefconfig -nodefaults | sed 's~\[J~~' | sed 's~\[H~~' (�- //\ Core is distributed with ABSOLUTELY NO WARRANTY. v_/_ www.tinycorelinux.com tc@box:~$ sudo poweroff tc@box:~$ $ |