TrueNAS Core 高级应用:pci 硬件直通

2022-12-20 20:37:24 4点赞 32收藏 2评论

TrunNAS Core 的高级应用

硬件直通的操作

看过某国内博主的TrueNAS介绍,有些大佬虽然粉丝很多,但是对于freebsd系统的了解还是比较简单的,说TrueNAS Core不能直通硬件,所以我这里写一篇 TrueNAS Core的硬件直通指南。

重要的关注点: 不是所有的pci设备都可以直通,这点和主板的支持有关系,还有bios里面相关的设置也要打开,pci设备直通必须要支持硬件中断。TrueNAS Core 的虚拟机底层是 bhyve,软件上来说支持除了“显卡直通”以外的所有pci硬件直通。

首先查找硬件pci id

类似 linux的 lspci,TrueNAS Core的核心是 FreeBSD 相关的命令是

TrueNAS Core 高级应用:pci 硬件直通

pciconf -lv

root@eth[~]# pciconf -lv

hostb0@pci0:0:0:0: class=0x060000 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5af0 subvendor=0x1849 subdevice=0x5af0

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge'

class = bridge

subclass = HOST-PCI

vgapci0@pci0:0:2:0: class=0x030000 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5a85 subvendor=0x1849 subdevice=0x5a85

vendor = 'Intel Corporation'

device = 'HD Graphics 500'

class = display

subclass = VGA

none0@pci0:0:14:0: class=0x040300 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5a98 subvendor=0x1849 subdevice=0xc892

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster'

class = multimedia

subclass = HDA

none1@pci0:0:15:0: class=0x078000 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5a9a subvendor=0x1849 subdevice=0x5a9a

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine'

class = simple comms

ahci0@pci0:0:18:0: class=0x010601 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5ae3 subvendor=0x1849 subdevice=0x5ae3

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller'

class = mass storage

subclass = SATA

pcib1@pci0:0:19:0: class=0x060400 rev=0xfb hdr=0x01 vendor=0x8086 device=0x5ad8 subvendor=0x1849 subdevice=0x5ad8

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A'

class = bridge

subclass = PCI-PCI

pcib2@pci0:0:19:1: class=0x060400 rev=0xfb hdr=0x01 vendor=0x8086 device=0x5ad9 subvendor=0x1849 subdevice=0x5ad9

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A'

class = bridge

subclass = PCI-PCI

pcib3@pci0:0:19:2: class=0x060400 rev=0xfb hdr=0x01 vendor=0x8086 device=0x5ada subvendor=0x1849 subdevice=0x5ada

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A'

class = bridge

subclass = PCI-PCI

pcib4@pci0:0:19:3: class=0x060400 rev=0xfb hdr=0x01 vendor=0x8086 device=0x5adb subvendor=0x1849 subdevice=0x5adb

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A'

class = bridge

subclass = PCI-PCI

xhci0@pci0:0:21:0: class=0x0c0330 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5aa8 subvendor=0x1849 subdevice=0x5aa8

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI'

class = serial bus

subclass = USB

isab0@pci0:0:31:0: class=0x060100 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5ae8 subvendor=0x1849 subdevice=0x5ae8

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface'

class = bridge

subclass = PCI-ISA

none2@pci0:0:31:1: class=0x0c0500 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5ad4 subvendor=0x1849 subdevice=0x5ad4

vendor = 'Intel Corporation'

device = 'Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller'

class = serial bus

subclass = SMBus

re0@pci0:1:0:0: class=0x020000 rev=0x11 hdr=0x00 vendor=0x10ec device=0x8168 subvendor=0x1849 subdevice=0x8168

vendor = 'Realtek Semiconductor Co., Ltd.'

device = 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller'

class = network

subclass = ethernet

ahci1@pci0:3:0:0: class=0x010601 rev=0x02 hdr=0x00 vendor=0x1b21 device=0x0612 subvendor=0x1849 subdevice=0x0612

vendor = 'ASMedia Technology Inc.'

device = 'ASM1062 Serial ATA Controller'

class = mass storage

subclass = SATA

用其中一段来简单介绍下

ahci1@pci0:3:0:0: class=0x010601 rev=0x02 hdr=0x00 vendor=0x1b21 device=0x0612 subvendor=0x1849 subdevice=0x0612`

vendor = 'ASMedia Technology Inc.

device = 'ASM1062 Serial ATA Controller

class = mass storage

subclass = SATA

ahci1@pci0:3:0:0: 是需要直通设备的 pci id 0:3:3:0

这段可以看出来这是一个 sata 控制器

vendor: 生产商

device: 具体型号

subclass: SATA

如果我们要直通这个sata控制器,需要这么做

1. 登录truenas面板

2. 找到系统下面的子菜单 ------ 微调 *这里是调整内核和引导相关参数的地方,我们要直通硬件需要在这里填写相关参数*

TrueNAS Core 高级应用:pci 硬件直通

3. 选择添加

TrueNAS Core 高级应用:pci 硬件直通

4. 变量 pptdevs

TrueNAS Core 高级应用:pci 硬件直通

5. 值 :`"3/3/0"` `注意这里:填写的是pciid, 上文我们获得的 pci id 0:3:3:0;

6. 再举个例子: 上文可以看到 ahci0@pci0:0:18:0: 这也是一个sata控制器,我们需要填写值: 0/18/0

7. 再来个例子:如果要一次直通多个设备 "2/0/0 1/2/6 4/9/0";TrueNAS Core 高级应用:pci 硬件直通

接下来需要重启机器

虚拟机相关设置

1. 在已创建的虚拟机子菜单里面找到设备添加设备

2. 类型选择 PCI Passthru Device

3. 如果设置上面的直筒设置成功这里就会出现可以选择的直通设备

TrueNAS Core 高级应用:pci 硬件直通

TrueNAS Core 高级应用:pci 硬件直通

TrueNAS Core 高级应用:pci 硬件直通

最后启动虚拟机就可以在虚拟机看到直通设备了。

其实还是很简单的,比linux的设备简单多了。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
2评论

  • 精彩
  • 最新
  • 厉害

    校验提示文案

    提交
  • 之后多来几篇啊,支持

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
目录
32
扫一下,分享更方便,购买更轻松