Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

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

    Scheduled Pinned Locked Moved Russian
    21 Posts 3 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Konstanti @programmer_86
      last edited by Konstanti

      @programmer_86
      Здр
      Листинг показывает ошибку чтения/записи данных из MDI control register. Файл e1000_phy.c
      При этом документация freebsd говорит, что такого быть не должно, и в случае ошибки система должна впадать в панику.
      Почему происходит ошибка, сказать не могу. Знаний не хватает.

      Вопрос для самообразования - как включили вывод отладочной информации?

      P 1 Reply Last reply Reply Quote 0
      • werterW
        werter
        last edited by werter

        @programmer_86
        Не тратьте время на гипер-в. Есть вероятность, что это не последняя проблема. На linux (proxmox - это debian c модифиц. ядром от убунты) заработает без танцев с 99% вероятностью. Попробуйте альтернативу. Не понравится - вернетесь.

        P 1 Reply Last reply Reply Quote 0
        • P
          programmer_86 @Konstanti
          last edited by

          @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

          K 1 Reply Last reply Reply Quote 0
          • P
            programmer_86 @werter
            last edited by programmer_86

            @werter Уговорили, сегодня попробую поставить и отпишу по результатам))

            werterW 1 Reply Last reply Reply Quote 0
            • K
              Konstanti @programmer_86
              last edited by Konstanti

              @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-RELEASE

              These 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.
              
              1 Reply Last reply Reply Quote 1
              • werterW
                werter @programmer_86
                last edited by werter

                @programmer_86
                Для zfs не нужен железный raid (даже вреден) Если у вас он присутствует - развалите его перед установкой proxmox.
                При установке proxmox пользуйте ZFS , даже если у вас ОДИН диск (выберите zfs raid 0 в установщике).
                Лучше бы 4 диска и ZFS RAID 10, но это просто хотелки )

                Если чего - пишите в ЛС\чат.

                P 1 Reply Last reply Reply Quote 0
                • P
                  programmer_86 @werter
                  last edited by

                  @werter Установил ProxMox, начал настраивать все под PCI(e) Passthrough и кажется нашел камень преткновения из-за чего все это не работало. Как написано в инструкции то устройства должны находиться в разных IOMMU группах. У меня это условие не выполнено, очень жаль... О чем-то таком меня предупреждал Hyper-V где-то в начале, но я не придал этому значения. 2b94f078-c52f-4d80-9991-34530ea1545e-image.png

                  1 Reply Last reply Reply Quote 0
                  • werterW
                    werter
                    last edited by werter

                    @programmer_86
                    Проблема с IOMMU группами решаема. Отписал в чат.

                    Зы. Выложу тут. "Страждущий" так и не ответил.

                    1. Вкл в БИОС ВСЁ, что касается вирт-ции. Для АМД - это SVM, IOMMU. Для Интел - это vt-x, vt-d.
                    2. Под 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 - это только половина дела. Его требуется "допиливать" под себя.

                    P 1 Reply Last reply Reply Quote 1
                    • P
                      programmer_86 @werter
                      last edited by

                      @werter Вчера лег рано и не увидел ваших сообщений. Сегодня все проверил, дополнительно почитал информацию и все заработало. Большое спасибо @werter, вы очень помогли. Сейчас все работает как часы!)))

                      1 Reply Last reply Reply Quote 0
                      • werterW
                        werter
                        last edited by werter

                        @programmer_86
                        При создании ВМ с пф выбирайте Virtio-SCSI в кач-ве контроллера hdd и scsi как жесткий диск.
                        Обязательно галку на Discard в настройках hdd поставьте (+ после нужны еще кое-какие манипуляции в самой ВМ с пф для того, чтобы заработал Discard).
                        Сетевые тоже virtio. И не забывать откл. HW offload в настройках сети на пф.
                        В самом PVE вместо Linux bridge для сети рекомендую установить и пользовать Open vswitch. Он гораздо гибче в плане работы с сетью (особенно при работе с VLAN).

                        1 Reply Last reply Reply Quote 1
                        • First post
                          Last post
                        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.