最近入手了万由的 NAS 机箱以及 J4125 板子,这里记录一下我的 All in One All in Boom 的折腾历程。注意这篇并文章非教程,只是个记录罢了。

PVE

PVE 是一个虚拟机平台。

  1. 下载 PVE https://www.balena.io/etcher/
  2. 使用 balenaEtcher 将镜像写入空 U 盘。

image-20220918155906488
image-20220918155906488

  1. BIOS 设置 U 盘启动,一路下一步。(不过不适配 4k 显示器太折磨了)
  2. 最后自动重启,显示器上就会显示管理地址了,可以通过该地址进入管理页面,终于摆脱显示器的束缚了。

image-20220918164504498
image-20220918164504498

这里码一下万由主板风扇控制命令。i2cset -y 0 0x54 0xF0 <等级>,等级范围为 0~255。

网卡等硬件直通

  1. 编辑 GRUB 配置。

    nano /etc/default/grub

GRUB 配置
GRUB 配置

  1. 修改 DEFAULT 行,开启 iommu。

    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

DEFAULT 行
DEFAULT 行

  1. 更新 GRUB 配置。

    update-grub
  2. 加载内核模块。编辑 /etc/modules,添加下面的内容。

    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd

vifo 设置
vifo 设置

  1. 更新内核模块配置。

    update-initramfs -k all -u
  2. 重启主机,之后验证直通是否开启成功。输出如下。

    1. dmesg | grep 'remapping'

      [    0.195252] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
      [    0.197281] DMAR-IR: Enabled IRQ remapping in x2apic mode
    2. find /sys/kernel/iommu_groups/ -type l

      /sys/kernel/iommu_groups/7/devices/0000:00:13.3
      /sys/kernel/iommu_groups/5/devices/0000:00:13.0
      /sys/kernel/iommu_groups/13/devices/0000:02:00.0
      /sys/kernel/iommu_groups/3/devices/0000:00:0f.0
      /sys/kernel/iommu_groups/11/devices/0000:00:1f.0
      /sys/kernel/iommu_groups/11/devices/0000:00:1f.1
      /sys/kernel/iommu_groups/1/devices/0000:00:02.0
      /sys/kernel/iommu_groups/8/devices/0000:00:14.0
      /sys/kernel/iommu_groups/6/devices/0000:00:13.2
      /sys/kernel/iommu_groups/14/devices/0000:03:00.0
      /sys/kernel/iommu_groups/4/devices/0000:00:12.0
      /sys/kernel/iommu_groups/12/devices/0000:01:00.0
      /sys/kernel/iommu_groups/2/devices/0000:00:0e.0
      /sys/kernel/iommu_groups/10/devices/0000:00:1c.0
      /sys/kernel/iommu_groups/0/devices/0000:00:00.0
      /sys/kernel/iommu_groups/9/devices/0000:00:15.0

RTL8125B 网卡驱动

没错,这 PVE 7 自带的网卡驱动非常寄,还是自己手动安装一个为妙。

前置准备:修改软件源为清华源。

  1. 安装 Linux Kernel Headers

    uname -r #-> 5.13.19-2-pve,查看版本,安装对应内核版本
    apt install pve-headers-5.13.19-2-pve
  2. 安装 dkms

    apt install dkms
  3. 伸手党下载别人编译好的驱动包 https://www.right.com.cn/FORUM/thread-7446026-1-1.html,然后 dpkg -i $文件名 安装即可
  4. 屏蔽自带 r8169 驱动。

编辑 /etc/modprobe.d/PVE-blacklist.conf,插入一行 blacklist r8169

  1. 应用内核模块修改,其中 -k 后面的 5.13.19-2-pve 对应 uname -r 的内容,支持 Tab 补全。

    update-initramfs -u -k 5.13.19-2-pve
  2. 重启系统,如果想要验证的话,可以用 ethtool -i <网卡> 查看,网卡为 ifconfig 显示的编号,比如 enp2s0

iKuai

  1. 官网下载 https://www.ikuai8.com/component/download
  2. 上传镜像

上传 ISO 镜像
上传 ISO 镜像

  1. 创建虚拟机

    1. 分配硬盘

      • 官方建议配置是 > 1GB,我分配 4GB 算是绰绰有余了。

    硬盘分配
    硬盘分配

    1. 分配 CPU

      • 不够了以后再调整,先分配个双核。
    2. 分配内存

      • 官方建议内存 > 4GB,不过听说实际用不到这么多,先按最低标准分配 4GB 吧。

      内存分配
      内存分配

    3. 配置网络

      • 作为拨号用的主系统,需要直通一个网卡,不然会卡卡卡卡死,所以安装好后需要进行 PCI 设备直通。
    4. 添加 PCI 设备——网卡,勾选「所有功能」。(02:00.0 一般是管理口,直通的话,PVE 管理界面就进不去了,不要问我怎么知道的)

      直通网卡
      直通网卡
  2. 启动虚拟机安装 iKuai 吧。

    iKuai
    iKuai
  3. iKuai 安装好之后,记得启动 DHCP 服务器。「网络设置」→「DHCP 设置」→「DHCP 服务端」,添加 DHCP 地址池并启用即可。

OpenWrt

  1. 新建一个空虚拟机,操作系统不使用任何介质,系统机型选择 Q35,其他的按需分配,注意硬盘过会也要删掉,所以随意设置大小吧。
  2. 硬件菜单,选择硬盘,分离并删除(把虚拟硬盘扬了。
  3. 把 OpenWrt 镜像上传到 PVE。通过 scp 传输比较方便,FTP 也可以。
  4. 将镜像导入到虚拟机中。qm importdisk <虚拟机ID> <镜像文件> local-lvm,导入后 Web 界面就能看到这个「未使用的磁盘」了。
  5. 双击,添加这个「未使用的磁盘」。
  6. 选项里面,修改「引导顺序」,把刚才添加的硬盘挪到第一位,接下来启动虚拟机吧。
  7. 可以编辑 /etc/config/network 修改 OpenWrt 的 IP 地址,通过该地址访问管理界面。

既然装好了 OpenWrt 就随便折腾吧,注意需要设置 LAN 接口的网关为 iKuai 的 IP 地址,并关闭 DHCP 分配(忽略此接口)。

黑群晖

压轴大戏!需要直通核显和硬盘,还是比较麻烦的。

核显直通

以上面的硬件直通已经做了为前提。

  1. 依然是编辑 GRUB 配置的那行。nano /etc/default/grub,编辑完成后更新引导 update-grub

    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off"
  2. 查看核显的硬件 ID。lspci -nn

    00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 600] [8086:3185] (rev 06)

8086:3185

  1. 添加 vifo 配置。nano /etc/modprobe.d/vfio.conf

    options vfio-pci ids=8086:3185
  2. 屏蔽驱动。nano /etc/modprobe.d/blacklist.conf

    blacklist snd_hda_intel
    blacklist snd_hda_codec_hdmi
    blacklist i915
  3. 更新配置。update-initramfs -u
  4. 重启 PVE 系统。

创建虚拟机

前提:BIOS 的 CSM 设置 enable,video 设置为 Legacy。

创建一个空虚拟机,注意,处理器类别选择「host」。其他保持默认或按需选择即可。

由于黑群有各种各样不同的体质,完全按照此步骤来安装不成功也是正常现象。

黑群的关键在于引导,DSM 系统可以用原厂的,从群晖官网下载即可,注意引导要支持这个版本的系统才行。有核显的机器建议选择 DS918+ 的系统。

黑群引导索引(来自 GXNAS)

虚拟机直通

核显直通

在 Web 界面添加 PCI 设备核显。

核显直通
核显直通

SATA 控制器直通

在 Web 端添加 SATA 控制器 PCI 设备即可。

SATA 控制器直通
SATA 控制器直通

导入引导硬盘

将引导镜像上传到 PVE 虚拟机上,执行命令导入虚拟硬盘,然后双击添加,注意选择 SATA 格式。

qm importdisk <虚拟机ID> <引导镜像文件路径> local-lvm

在选项里面设置这个硬盘为第一启动项。导入完成后就能愉快地启动系统了,启动时选择 SATA 那一项(默认是 USB)。

如果不出意外的话,访问虚拟机的 IP 地址(如果不知道的话,可以去 iKuai 的 DHCP 客户端看看)的 5000 端口就可以进入安装界面了。