Перенаправить консоль Qemu в файл или на хост-терминал?
Фон:
Моя система - ядро на базе x86 и корневая файловая система на основе ramfs. Я сделал ramfs на основе архива cpio (который будет использовать boot=/dev/ram0 в качестве устройства RAM), и у меня возникли некоторые проблемы с init. Все намерение состоит в том, чтобы оптимизировать ramfs до минимума, чтобы уместиться в действительно маленькую систему. Я пытаюсь отладить проблему в init. Я запускаю QEMU в Ubuntu 12.10 (Quantal Quetzal), используя команду:
qemu-system-x86_64 -kernel linux-3.9.2/arch/x86/boot/bzImage -serial stdio -append "root=/dev/ram0 console=tty1"
И, как и ожидалось, система переходит в OOPS.
Вопрос:
Я хотел бы просмотреть журналы, чтобы выяснить причину сбоя, но я не могу перемещаться в консоли QEMU с помощью клавиш Shift и Page Up/Page Down. Поэтому я попытался перенаправить вывод на хост-терминал с помощью команды curses:
qemu-system-x86_64 -kernel linux-3.9.2/arch/x86/boot/bzImage -serial stdio -append "root=/dev/ram0 console=tty1" -curses
Но и здесь я не могу ориентироваться и найти проблему.
PS Если моя система загружается нормально (используя правильные rootfs), я могу перемещаться и видеть сообщения.
Как перенаправить сообщения в терминал или в файл?
1 ответ
Добавьте команду ниже
console=ttyAMA0 console=ttyS0
qemu-system-x86_64 -kernel linux-3.9.2/arch/x86/boot/bzImage -serial stdio -append "root=/dev/ram0 console=ttyAMA0 console=ttyS0"
Теперь все журналы dmesg будут перенаправлены на вашу консоль.
Еще одна вещь: я наблюдал сверху команду, где находится ваш начальный RAM-диск? то есть -initrd (initrdimage)
Для загрузки системы вам понадобятся два образа: 1) zImage или bZimage (в случае x86) 2) rootfs -root файловая система
В вашем случае отсутствует компонент rootfs.