Я использую пару маршрутизаторов OpnSense (на основе FreeBSD 12.1) на виртуальных машинах qemu в Proxmox 6.4.
У Promox есть собственный нелибвертный способ настройки виртуальных машин, но для добавления сторожевого устройства необходимо добавить следующую строку в файл конфигурации виртуальной машины:
сторожевой таймер: модель = i6300esb, действие = сброс
Я вижу, что это работает, и виртуальное устройство присутствует в виртуальной машине, потому что pciconf -l -v
в гостевой включает следующий вывод:
none0@pci0:0:4:0: class=0x088000 card=0x11001af4 чип=0x25ab8086 rev=0x00 hdr=0x00
поставщик = "Корпорация Intel"
устройство = 'Сторожевой таймер 6300ESB'
класс = базовая периферия
К сожалению, хотя ичвд
драйвер поддерживает эмулируемый чипсет, он не определяется, и в логах dmesg об этом ничего нет.
Я включил watchdogd, добавив строку watchdog_enable = да
к /etc/rc.conf
. Это работает, но по умолчанию используется программный сторожевой таймер и, по-видимому, не выдает отладочной информации, поэтому бесполезна.
Я также могу заставить ядро загрузить драйвер ichwd, добавив ichwd_load="ДА"
к /boot/loader.conf
(собственно в OpnSense это делается добавлением его в Система -> Настройки -> Настройки
в графическом интерфейсе, но конечный эффект идентичен). Вывод из 'kldstat` показывает
ID Refs Адрес Размер Имя
12 1 0xffffffff82959000 70c8 ichwd.ko
Таким образом, я достаточно уверен, что виртуальное устройство присутствует в системе и загружен правильный драйвер устройства, но я не могу получить дополнительную отладочную информацию из qemu, ichwd или watchdogd. Что мне попробовать дальше?