瞎弄 篇二:PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

2020-01-24 12:59:30 30点赞 223收藏 37评论

本文并不适用所有人

最近又搞了个机器,是J1900的主板,先是用PVE里装OMV,然后又想搞硬盘休眠。
以前也搜过PVE硬盘休眠,都是pvestatd stopProxmox VE 让硬盘休眠的办法

后来看到一篇里有三种方法,Proxmox VE (PVE) 让硬盘休眠,解决硬盘不休眠的问题
我以为这三种设置后直接在OMV里磁盘编辑停转时间设置好就行,其实不然,OMV查询硬盘休眠状态(Linux通用)根据这篇里查询休眠状态,都是活动中,应该是在PVE里用这三种再加上hdparm命令才行,但是不清楚在OMV里还有没有再设置的必要, 看的教程都是装的群晖

这博客里写了软路由pve虚拟机安装ikuai+lede+黑群晖DSM


开机后在设置中设置硬盘自动休眠计划。
最后再到pve的shell中执行命令关闭状态检查,因为这样会经常唤醒休眠硬盘,然后再设置一下硬盘休眠。

pvestatd stop # 停用该服务无法新建虚拟机,需要时使用pvestatd start开启
hdparm -S 240 /dev/需要休眠的硬盘 # 20分钟 240/12=20

停用pvestatd服务后pve无法更新状态但是不影响使用

但我想在虚拟机里设置不在宿主机里弄,先采用了PVE和OMV二合一安装脚本但是我装上后发现在OMV的Web界面有些问题,索性直接装了OMV先运行着,

设置好后用hdparm -C /dev/sd*看了下,除了正在上传的,其他的都是能休眠的
命令参考linux下Nas使硬盘自动进入休眠省电状态
期间看到一篇文论VT-d对虚拟化NAS之价值,后来知道qm set并不是硬盘直通而是映射,由于J1900不支持VT-d,但去年可是350买过新的华擎J3455主板,里面也装着PVE,就想着这次来直通SATA控制器达到虚拟机里硬盘休眠的目的,然后110闲鱼买了两个PCIe扩展SATA,一个是两口,一个是四口

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

又狠心买了个海韵FLEX电源,在人家放假前一天下午最后一分钟发货,等好几天收到开始装,结果电源线少个大4Pin,又不想本地买一分二,怕坑,最后还是上自带电源了,我就不说是啥了,反正我这三块台式三块笔记本都是二手旧的,买过亚马逊海外购的也不敢装这上。。
由于这主板有两原生SATA3和两ASM1061 的SATA3,我就想把固态插到ASM1061上,原生的两SATA接到背板上,PCIe扩展卡上的四个接到背板上。。。

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

00:12.0 SATA controller: Intel Corporation Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series SATA AHCI Controller (rev 0b)
03:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02)
04:00.0 SATA controller: Marvell Technology Group Ltd. Device 9215 (rev 11)

然后在PVE Web界面一PCI设备添加那两控制器,启动OMV就死机,后来才发现那扩展卡的IOMMU分组和其他的几个分在一起了,早在之前看直通核显输出HDMI时就发现过解决J3455IOMMU分组在一起的办法当时没注意毕竟我也没遇到问题

本站链接是proxmox折腾 篇一:解决j3455直通iommu分组问题,PVE内核编译教程

照这方法一安装重启,再启动OMV没问题,WEB里添加硬盘,设置停转时间,最后是可以休眠的
解决IOMMU分组在一起的好像还有个办法,在这里看到Unraid安装Macos不完全指南具体怎么操作不清楚。。

那就有两个方案:一是将该分组下所有设备全部从Host分离(除去bridge),二是使用acs_override二次切分iommu分组。(该部分相对来说较为复杂,请仔细观看视频。有疑问可以再开文介绍。)

中间插个小曲,由于OMV5里缺少插件,transmission就手动装了,看这篇小睿私人云 篇五:小睿私人云免费NAS配置之一OMV进阶篇之一


怎么恢复之前的做种呢

transmission 下载完种子,重新发种/辅种 跳过校验

看这篇可知重要的是resume和torrents这两文件夹,只要备份这两就好了
之前J1900上OMV装的transmission直接把transmission-daemon备份到本地
apt安装好transmission后先停止
service transmission-daemon stop
先装了那个GUI transmission-web-control
然后把本地的transmission-daemon替换了上去
service transmission-daemon start
Web输密码进入,里并没有看到种子,现在添加torrents里所有种子,不要怕原来种子是在多个盘下做种的,
由于有默认的文件夹,我那会用的最小的那个盘(这盘在猫盘里装过),把所有种子添加到那里,发现都在下载中

添加之前备份下的种子添加之前备份下的种子

再停service transmission-daemon stop
再开service transmission-daemon start

就会发现种子全在做种中了

我以前没有这些步骤的,尤其是没有添加种子这步,直接把备份的那两个目录替换上就做种中了,可能那会是单个硬盘,现在多个盘

还有OMV里DHCP分配时,DNS有问题,刚开始可以,后来连ping baidu.com都不行了,在那网络>接口里 还是设置成静态ip,把DNS填成路由器的ip

最后就是核显直通了,这次不用上次那个LibreELEC通过HDMI输出,只是转码要用可以参考这个Proxmox核显直通我是之前在J4105主板上试过,都是UEFI,PVE是UEFI引导,OMV虚拟机是OVMF (UEFI)+q35

PROXMOX 用户手册中文版 V6.0
看这里10.9.2主机设备直通

主机配置

硬件设备一旦设为直通,主机将不能再使用。具体有两种配置方法:

将设备IDs作为参数传递给vfio-pci模块

在/etc/modprobe.d/目录新增’.conf’配置文件,文件内容示例如下

options vfio-pci ids=1234:5678,4321:8765

其中1234:5678和4321:8765是厂商和设备IDs,具体可以执行以下命令查看获取

#lcpci -nn

对主机屏蔽驱动以确保可供直通使用

在/etc/modprobe.d/目录新增’.conf’配置文件,文件内容示例如下

blacklist DRIVERNAME

两种方法都需要更新initramfs并重启系统确保配置生效,具体参见10.9.1节


实际操作了下,上面教程里最后的“把需要直通给虚拟机的设备ID写到vfio.conf”这步确实不用也行,只在blacklist.conf 里添加那几个就行了

在OMV虚拟机开机起前运行lspci -vvv -s 00:02.0
是没有这个的Kernel driver in use: vfio-pci
开机后就有了,当然直接先“把需要直通给虚拟机的设备ID写到vfio.conf”,PVE重启后也是可以看到的
最后如果不是vfio-pci才应该是不要硬着头皮上了。。

但是在华擎J3455上,试过OVMF (UEFI)+q35,OVMF (UEFI)+默认 (i440fx),默认 (SeaBIOS)+默认 (i440fx),

开了三个试验开了三个试验

怎么搞都是死机,通常是宿主机重启,有时等不来重启直接电源重启。。期间 还更过BIOS,我以为连网线自动更新已经是最新了,结果看官网不是,U盘又更了两次,最后都改成只UEFI,应该和这没啥关系吧。

不过插一条,BIOS CMS打开的时候,我上次那直通输出HDMI里有一步是Dump VGA romfile,那会说是UEFI引导就执行不了,我这次在宿主机里试了下

git clone https://github.com/awilliam/rom-parser
root@pve:~# cd rom-parser/
root@pve:~/rom-parser# make
gcc -o rom-parser rom-parser.c
gcc -DFIXER -o rom-fixer rom-parser.c

root@pve:~/rom-parser# cd /sys/bus/pci/devices/0000:00:02.0
root@pve:/sys/bus/pci/devices/0000:00:02.0# echo 1 > rom
root@pve:/sys/bus/pci/devices/0000:00:02.0# cat rom > /tmp/image.rom
root@pve:/sys/bus/pci/devices/0000:00:02.0# echo 0 > rom
root@pve:/sys/bus/pci/devices/0000:00:02.0# cd
root@pve:~# cd rom-parser/
root@pve:~/rom-parser# ./rom-parser /tmp/image.rom
Valid ROM signature found @0h, PCIR offset 40h
PCIR: type 0 (x86 PC-AT), vendor: 8086, device: 0406, class: 030000
PCIR: revision 3, vendor revision: 0
Last image
root@pve:~/rom-parser#

关了CMS后在宿主机里再操作确实不行了。。

因为看这里Pci_passthrough说的是否支持UEFI(ovmf),需要type 3,用的当时人家的那个和我今天刚弄的romfile结果都是没有type3,还以为是这原因呢

tt@tt-DeskMini:~/Downloads/rom-parser$ ./rom-parser ../J3455GPU直通/usr/share/kvm/J3455_HD500.bin
Valid ROM signature found @0h, PCIR offset 40h
PCIR: type 0 (x86 PC-AT), vendor: 8086, device: 5a85, class: 030000
PCIR: revision 3, vendor revision: 0
Last image
tt@tt-DeskMini:~/Downloads/rom-parser$

然后我又怀疑是装的内核的问题,又重装了次PVE继续试,偶尔成功一两次(就是不死机),但在OMV里关机会使得宿主机重启,这个之前搜索时见过,最后想放弃了,反正直接装那解决IOMMU分组内核,先把这篇弄完再说,又重新安装了内核,现在是添加那核显现在没死机先把这篇写完再说

我最后的配置如下

/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off pcie_acs_override=downstream"

/etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

/etc/modprobe.d/pve-blacklist.conf

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

/etc/modprobe.d/vfio.conf这里没任何添加


直通完ssh进OMV ls /dev/dri

root@openmediavault:~# ls /dev/dri
by-path card0 card1 renderD128

此时在PVE里的控制台看OMV是这样的,这是正常的。。。

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

先安装OMV-Extras,我也不下载deb安装了,按这里的来

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash

装下来还是比较新的,deb之前装过好像是5.1.11,这个装下来是5.2.1,不同版本的界面还是有点区别的,区别可以看上面那个OMV装transmission教程里的那里OMV-Extras界面

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

在OMV里系统>OMV-Extras里找Docker,上次在那J4104试验直通核显还是OMV4,那时还有插件
看的是这篇教程OpenMediaVault(OMV)Docker-GUI插件可视化安装jellyfin

OMV5应该是让用Portainer,之前没接触过还是自己摸索吧,我都是直接装Portainer,他会把Docker也一起装好,但是DNS有问题的话就。。。
装好后进9000端口,设置账号,选Local,Portainer教程还是百度一下吧,我只说Jellyfin的那块

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

点进Local选Images填jellyfin/jellyfin拉下来

同时参考这篇omv那些破事docker jellyfin那块
ssh进OMV里mkdir -p /srv/jellyfin/{config,cache}

然后把这段转成WEB上的的填写

docker run -d -v /srv/jellyfin/config:/config -v /srv/jellyfin/cache:/cache -v /srv/dev-disk-by-label-Elements/xxxx:/media --net=host --device=/dev/dri/renderD128 jellyfin/jellyfin:latest


WEB上进Containers 点Add Container

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

看图来填,最后点Deploy the container

进容器看看

root@openmediavault:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fa5fd42d5617 jellyfin/jellyfin:latest "/bin/sh -c 'dotnet …" 3 minutes ago Up 2 minutes jellyfin
3a7aec086ba1 portainer/portainer "/portainer --no-ana…" 23 minutes ago Up 23 minutes 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp portainer
docker exec -it fa5fd42d5617 /bin/bash
root@openmediavault:/# ls /dev/dri
renderD128

这部分参考Docker实现jellyfin核心硬件解码显卡硬解实时转码 Docker安装jellyfin开启硬件解码Docker安装jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

我其实用不上转码,只是实验下,就像上次那个LibreELEC,因为这东西一弄的话不仅宿主机屏黑,Web上控制台也是不能直接登录,都只能靠ssh,如果出问题的话路由器还得设在同一网段下,不过大家玩的其他的些设备,刷路由器的时候电脑直连的时候,进路由后台时也是直接写死电脑ip连路由器的。。

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

PVE直通SATA控制器并给OMV直通核显在Docker装Jellyfin

最后大家新年快乐,疫情不出门的话就在家里折腾这些也行啊。。。

展开 收起

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

Xiaomi 小米 AX3000T 双频3000M 家用千兆Mesh路由器 Wi-Fi 6 白色 单个装

99元起

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

Xiaomi 小米 BE6500 Pro 双频6500M 家用千兆Mesh无线路由器 Wi-Fi 7

535元起

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

Ruijie 锐捷 雪豹 X30E 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

159元起

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

ZTE 中兴 AX3000 巡天版 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 白色

149元起

ASUS 华硕 RT-BE88U 双频7200M 家用Mesh无线路由器 Wi-Fi 7 黑色 单个装

ASUS 华硕 RT-BE88U 双频7200M 家用Mesh无线路由器 Wi-Fi 7 黑色 单个装

1999元起

Xiaomi 小米 BE3600 2.5G版 3600M 双频千兆家用无线路由器 Wi-Fi 7 白色

Xiaomi 小米 BE3600 2.5G版 3600M 双频千兆家用无线路由器 Wi-Fi 7 白色

219元起

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

Redmi 红米 AX6000 双频5952M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装黑色

319元起

Xiaomi 小米 AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

Xiaomi 小米 AX6000 双频6000M 家用千兆Mesh无线路由器 Wi-Fi 6 单个装 黑色

299元起

HUAWEI 华为 BE3 Pro 双频3000M 千兆家用路由器 Wi-Fi 7 黑色

HUAWEI 华为 BE3 Pro 双频3000M 千兆家用路由器 Wi-Fi 7 黑色

296元起

Xiaomi 小米 BE7000 三频千兆Mesh无线路由器 Wi-Fi 7

Xiaomi 小米 BE7000 三频千兆Mesh无线路由器 Wi-Fi 7

406元起

ZTE 中兴 问天BE7200Pro+ 双频7200M 家用千兆Mesh无线路由器 WiFi 7 黑色

ZTE 中兴 问天BE7200Pro+ 双频7200M 家用千兆Mesh无线路由器 WiFi 7 黑色

574元起

TP-LINK 普联 BE5100 双频5100M 家用千兆Mesh无线路由器 Wi-Fi 7 黑色 单个装

TP-LINK 普联 BE5100 双频5100M 家用千兆Mesh无线路由器 Wi-Fi 7 黑色 单个装

279元起

京东云 BE6500 千兆无线路由器 WiFi7

京东云 BE6500 千兆无线路由器 WiFi7

589元起

TP-LINK 普联 飞流系列 TL-XDR5480 易展Turbo版 双频5400M 家用千兆Mesh无线路由器 WiFi 6 单个装 灰色

TP-LINK 普联 飞流系列 TL-XDR5480 易展Turbo版 双频5400M 家用千兆Mesh无线路由器 WiFi 6 单个装 灰色

379元起

ZTE 中兴 巡天AX3000Pro+ 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

ZTE 中兴 巡天AX3000Pro+ 双频3000M 家用千兆Mesh无线路由器 Wi-Fi 6 白色 单个装

269元起

HUAWEI 华为 Q6 网线版 双频3000M 千兆Mes无线分布式路由器 Wi-Fi 6 一母三子装 白色

HUAWEI 华为 Q6 网线版 双频3000M 千兆Mes无线分布式路由器 Wi-Fi 6 一母三子装 白色

397元起
37评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

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