LINUX.ORG.RU

Проброс сетевой карты Intel i210 в виртуальную машину (DDA)

 ,


1

1

Привет все. Не знаю на сколько попал в ветку или вообще форум, но не пинайте. Еще я не знаком с FreeBSD ни разу. Вопрос в следующем. Есть сервер, Hyper-V. Не получается запустить сетевую карту Intel I210 в pfSense. В данный момент она у меня работает, если на сервере создаю внешний виртуальный коммутатор. Но я хочу, пробросить его в виртуалку через DDA(Discrete Device Assignment), так как она у меня ни где кроме этой ВМ не используется. Вообщем делаю все по инструкции от Microsoft, и вроде все успешно проходит и сетевая карта назначается. Но при запуске pfSense, ее там нет, я уже много чего перепробовал. Подскажите в какую сторону копать. Немного входных данных:

Хост: Hyper-V Server 2019 (на базе ASRock X470D4U)
OS виртуалки: pfSense 2.4.4 (AMD64)
Сетевая карта: Intel I210 (встроенная в материнку)


Что уже попробовал и ход моих мыслей. Не найдя сетевую карту в системе, начал искать ошибки при запуске системы. Нашел следующие:

igb0: <Intel(R) PRO/1000 Network Connection, Version 2.5.3-k> at device 0.0 on pci0
igb0: Unable to map MSIX table
igb0: Using an MSI interrupt
igb0: Setup of Shared code falled
device_attach: igb0 attach returned 6

Проверил проброс в другую ВМ, на Windows 8.1. Там все сработало как надо, сетевая карта определилась как Intel (не виртуальный адпатер) и даже появился интернет с нее. Предположил что проблема в нехватки драйверов (хотя pfSense, вроде должен поддерживать intel’овские карты), скачал драйвера с офф. сайта для FreeBSD. Не смог собрать их на pfSense, по этому собрал их на другой машине с FreeBSD версией 11.2. Собралось без ошибок и я скопировал модуль ядра (if_igb.ko) на pfSense, положил в /boot/kernel/. Но не смог его запустить, появлялась ошибка:

kldload: can’t load if_igb: module already loaded or in kernel

Помучившись и не поняв почему так, просто добавил модуль в автозагрузку и он нормально подгрузился после перезагрузки. Он появляется в kldstat, но сетевая карта так и не появилась в системе. И при загрузке все те же сообщения про эту карту. Мне кажется, мне надо как-то сообщить системе, чтоб она использовало модуль ядра if_igb, но пока не знаю как это сделать. Буду благодарен за помощь.

как-то криво сетевуха пробрасывается, бзде не нравится таблица MSI-X прерываний.

да, а зачем бздя-то? критически нужен нетграф, или просто на некрофилию потянуло?…

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

Так не бздя же, а pfSense. А идеи как исправить, проверить или подсказку какую, для исправления MSI-X есть?) Просто мне кажется что система не те драйвера подтягивает, а те что я пытаюсь ей подсунуть она не использует. Где-то вычитал что, можно попробовать пересобрать ядро без драйверов, на эту карту, но пока боюсь не потяну, я верю что есть способ проще :)

programmer_86
() автор топика
Ответ на: комментарий от programmer_86

так бздя же, просто завернутая в модифицированный юзерспейс.

копайте форумы бзди на предмет запуска в hyper-v с sr-iov…

попробуйте линукс что ли. если хочется легковесного - bering-uclibc в помощь. если не взлетит - ну что ж, пичаль, выселяйте винду в виртуалку (где ей собссно и место), ставьте нормальную виртуализацию (vmware либо kvm, можно с оберткой типа proxmox/cman)

NiTr0 ★★★★★
()
Последнее исправление: NiTr0 (всего исправлений: 1)
Ответ на: комментарий от NiTr0

Ну да бздя, это верно. У меня карта без поддержки SR-IOV, мне вроде бы нужно другое, просто проброс устройства целиком. Еще чуток помучаюсь с Hyper-V и если не срастется попробую что-нибудь другое.
Мне бы как-нибудь понять какой драйвер пытается система использовать для карточки.

programmer_86
() автор топика
Ответ на: комментарий от steemandlinux

Все проблему решил, поставил ProxMox. Выставил аргументы запуска ядра «quiet amd_iommu=on pcie_acs_override=downstream,multifunction» и все встало как надо. Всем спасибо.

programmer_86
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.