Проброс сетевой карты Intel i210 в виртуальную машину (DDA)
-
@werter Простите, забыл ответить про BIOS, стоит последняя версия 3.30. В настройках еще для IOMMU поменял значение с Auto на Enabled. Перепроверил снова, не помогло. Про информацию с 4 m2, спасибо, про такое даже не думал)
-
@Konstanti Спасибо за информацию. Проверил мой драйвер реально подтянулся. Включил отладочную всю отладочную информацию в кодах и заново собрал драйвер. Получил следующий вывод при запуске:
pcib0: <Hyper-V PCI Express Pass Through> on vmbus0 pci0: <PCI bus> on pcib0 igb_probe: begin igb_probe: begin igb_probe: begin igb0: <Intel(R) PRO/1000 Network Connection, Version - 2.5.9> at device 0.0 on pci0 igb_attach: begin e1000_set_mac_type igb0: Unable to map MSIX table igb0: Using an MSI interrupt e1000_set_mac_type e1000_init_mac_ops_generic e1000_init_phy_ops_generic e1000_init_nvm_ops_generic e1000_init_function_pointers_82575 e1000_init_mac_params_82575 e1000_init_mac_ops_generic e1000_init_nvm_params_i210 e1000_init_nvm_params_82575 e1000_get_flash_presence_i210 e1000_init_phy_params_82575 e1000_reset_mdicnfg_82580 e1000_get_phy_id_82575 e1000_get_phy_id e1000_read_phy_reg_gs40g e1000_acquire_phy_base e1000_acquire_swfw_sync_i210 e1000_get_hw_semaphore_i210 e1000_put_hw_semaphore_generic e1000_write_phy_reg_mdic MDI Write did not complete e1000_release_phy_base e1000_release_swfw_sync_i210 e1000_get_hw_semaphore_i210 e1000_put_hw_semaphore_generic PHY Initialization Error igb0: Setup of Shared code failed device_attach: igb0 attach returned 6
-
@programmer_86
Здр
Листинг показывает ошибку чтения/записи данных из MDI control register. Файл e1000_phy.c
При этом документация freebsd говорит, что такого быть не должно, и в случае ошибки система должна впадать в панику.
Почему происходит ошибка, сказать не могу. Знаний не хватает.Вопрос для самообразования - как включили вывод отладочной информации?
-
@programmer_86
Не тратьте время на гипер-в. Есть вероятность, что это не последняя проблема. На linux (proxmox - это debian c модифиц. ядром от убунты) заработает без танцев с 99% вероятностью. Попробуйте альтернативу. Не понравится - вернетесь. -
@Konstanti Отадку включил в коде, в файле e1000_osdep.h:
/* Enable/disable debugging statements in shared code */ #define DBG 0
И еще нашел в файле if_igb.h:
/* Defines for printing debug information */ #define DEBUG_INIT 0 #define DEBUG_IOCTL 0 #define DEBUG_HW 0
Ну а дальше опять пересобрал драйвер на FreeBSD и подсунул pfSense
-
@werter Уговорили, сегодня попробую поставить и отпишу по результатам))
-
@programmer_86
Спс
Да , вижу
в этом же файле , собственно/* Register READ/WRITE macros */ #define E1000_READ_REG(hw, reg) \ bus_space_read_4(((struct e1000_osdep *)(hw)->back)->mem_bus_space_tag, \ ((struct e1000_osdep *)(hw)->back)->mem_bus_space_handle, \ E1000_REGISTER(hw, reg)) #define E1000_WRITE_REG(hw, reg, value) \ bus_space_write_4(((struct e1000_osdep *)(hw)->back)->mem_bus_space_tag, \ ((struct e1000_osdep *)(hw)->back)->mem_bus_space_handle, \ E1000_REGISTER(hw, reg), value)
Описание этого безобразия
https://www.freebsd.org/cgi/man.cgi?query=bus_space&sektion=9&manpath=FreeBSD+6.0-RELEASEThese functions will never ail. If they would fail (e.g. because of an argument error), that indicates a software bug which should cause a panic. In that case, they will never return.
-
@programmer_86
Для zfs не нужен железный raid (даже вреден) Если у вас он присутствует - развалите его перед установкой proxmox.
При установке proxmox пользуйте ZFS , даже если у вас ОДИН диск (выберите zfs raid 0 в установщике).
Лучше бы 4 диска и ZFS RAID 10, но это просто хотелки )Если чего - пишите в ЛС\чат.
-
@werter Установил ProxMox, начал настраивать все под PCI(e) Passthrough и кажется нашел камень преткновения из-за чего все это не работало. Как написано в инструкции то устройства должны находиться в разных IOMMU группах. У меня это условие не выполнено, очень жаль... О чем-то таком меня предупреждал Hyper-V где-то в начале, но я не придал этому значения.
-
@programmer_86
Проблема с IOMMU группами решаема. Отписал в чат.Зы. Выложу тут. "Страждущий" так и не ответил.
- Вкл в БИОС ВСЁ, что касается вирт-ции. Для АМД - это SVM, IOMMU. Для Интел - это vt-x, vt-d.
- Под root-ом:
[ ! -d /etc/default/grub.d ] && mkdir -pv /etc/default/grub.d if dmesg | grep -E -q "(IOMMU|DMAR)"; then grep -iqw "vmx" /proc/cpuinfo && echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT intel_iommu=on"' > /etc/default/grub.d/iommu.cfg grep -iqw "svm" /proc/cpuinfo && echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT amd_iommu=on iommu=pt"' > /etc/default/grub.d/iommu.cfg echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT pcie_acs_override=downstream,multifunction"' > /etc/default/grub.d/pcie_acs_override.cfg fi update-grub reboot
Т.о. мы "развалили" IOMMU группу и теперь можно пробрасывать сет. карту (и не только) в ВМ.
Установить Proxmox VE - это только половина дела. Его требуется "допиливать" под себя.
-
-
@programmer_86
При создании ВМ с пф выбирайте Virtio-SCSI в кач-ве контроллера hdd и scsi как жесткий диск.
Обязательно галку на Discard в настройках hdd поставьте (+ после нужны еще кое-какие манипуляции в самой ВМ с пф для того, чтобы заработал Discard).
Сетевые тоже virtio. И не забывать откл. HW offload в настройках сети на пф.
В самом PVE вместо Linux bridge для сети рекомендую установить и пользовать Open vswitch. Он гораздо гибче в плане работы с сетью (особенно при работе с VLAN).