On 03.01.2014 21:41, Eugene Grosbein wrote:
> On 03.01.2014 18:14, [email protected] wrote:
>> Всем привет.
>>
>> Тестирую одну штуку на виртуалке (VirtualBox) и нужно увидеть, что пишет 
>> ядро (а оно там пишет что-то, так как успеваю мельком заметить) после 
>> того, как написало syncing disks ... Не успеваю нажать Host+P (то 
>> слишком рано, то слишком поздно).
>> Через syslog выставлено логгировать kern.*, но видимо оно влияет только 
>> на сообщения при загрузке. Так же настроил логгирование сообщений с 
>> консоли, но они туда не попадают.
>>
>> Есть ли возможность это заллогировать?
> 
> Разумеется. В VirtualBox есть штатная возможность проброса COM-порта
> в виртуалку, причем пробрасывать можно необязательно физический порт
> хоста, а, например, unix socket, и это работает в FreeBSD.
> 
> Ядро FreeBSD штатно умеет использовать COM-порт в качестве comconsole,
> все сообщения ядра будут выдаваться туда.
> 
> Всё это вместе работает, я использовал.

На хост-системе устанавливаем net/socat и запускаем скрипт:

#!/bin/sh
trap "stty sane" 0 1 2 3 15
socat unix-listen:/tmp/sock stdio,raw,echo=0,icanon=0

В свойствах виртуалки прописываем /tmp/sock в качестве пути для COM1.
Запускаем виртуалку - вывод её ядра выдаёт скрипт, ввод тоже работает
для loader prompt, getty на /dev/cuau0. Разумеется, если основной консолью
сделать COM1: записать -D в /boot/config, а в loader.conf добавить:

boot_multicons="YES"
console="comconsole vidconsole"

При желании в /etc/ttys повесить getty на /dev/cuau0.

Ответить