华擎j3455m铸造基于unraid的all in one一体机路上的踩坑之旅
3月25号开始到4月7号,这么多天的坑踩下来,整个个简直飘飘欲仙了,在这里记录一下自己的经历,总结一下经验教训,让后来人少走些弯路吧。
计划实现功能
事情源自于用媳妇旧的笔记本改造的黑群晖容量要被她拍的照片撑爆了,笔记本你懂的,无法扩容,加上看到阿文菌等大佬的各种文章,被长草了,经常深思熟虑,经过自认为的充分准备,计划做一台all in one 一体机,要在废物利用的同时满足我的需求,而且还要省电。理想很丰满,现实很骨感,事实证明,我还是太年轻了。
一、搭建架构
用UNRAID做底层,虚拟机架各种服务,主要有:
1. 黑群晖(直通硬盘和网卡);
2. X路由;
3. Hass.io及配套服务做智能家居;
4. kodi直通核显做htpc,因为KODI除了播放功能外,还能手机投屏,家里的电视盒子可以休息了;
5. jellyfin做影音库(后来发现我们并不需求这个);
6. transmission用来下载
家里已有的硬件:
1. 8g ddr3台式机内存 (后来又拆了条4G的过来,加到了12G)
2. 台式机机箱
3. atx电源
需求:
1. j3455m主板。
本来想买itx的,或者是更强的配置,比如阿文菌大佬的8100,但是考虑到:
一是我这台机器是24小时开机的,既然花钱买了,就得把功耗考虑进去,性能够用就好了;
二是我家目前没有4k解码需求,就算以后会有,这机器的性能应该也够了;
三是我不是重度下载爱好者,硬盘挂一块就够了,j3455m的两个sata口完全够用,而且据说itx的四个sata口有两个也是转换过来的,稳定性有差,那就不如m版多出来的两个pcie呢,其中一个还是x16的,可各种转换各种玩法,不香么?
四是这几天发现京东和淘宝官方店的itx版本神秘下架,估计有什么情况出现了,而j3455m则是正常出售,所以选择了这块主板。后来发现x宝居然有360包邮的,也不知道是不是坑,反正我入了。
还有就是j3455-atx插的是笔记本内存,而J3455M可以用我现有的台式机内存
2. intel芯片PCIE x1网卡(千兆,4口,组X路由)。
X路由直通需要2个口,nas需要1个口,主板上的网口我是能不用就不用,这样就选择了4口的,芯片选的便宜的82576,QQ群里和商家都说可以直通,那就买吧。顺手画了个家里网线的连线图。
3. 撒哈拉a3机箱。机箱是个大问题,因为计划是把机箱放到客厅层板上的,下图红框位置
这样连投影就很方便了,且在客厅就算有声音也不怕影响到家人。弱电箱就在这墙底下。但是这样的话,对机箱的要求就很高了,我量了一下层板的尺寸,对机箱的要求是:要有一个尺寸是25cm以内的,且这样放置不会太高,因为上方的梁是突出了近5cm。基于此,初步定的是乔思伯的c2,传说中的共振、放血者机箱。后来因为在丈母娘家没啥事,只能刷手机,没事就去淘宝逛,居然让我发现了撒哈拉a3机箱,尺寸是165*235*245,刚刚好塞进去有木有!!!对主板的要求是226*190以内,而j3455的尺寸是226*178!只有黑色的,但是应该白色放架子上更和谐,考虑以后刷个漆什么的。
下面是效果图:
4. 4t硬盘。这个不说了,我也不知道买啥,张大妈上搜了下,买了个在搞活动的。
5. 功率计,用来测试功率用,以前一直用米家zigbee版本的插座测功率,但是这个插座功率更新太慢了,且很容易误操作断电,哭了好几次之后就决定买个最简单的了
26号最后一件到货,开始组装!
这个机箱真喜欢,但是他的前面板是没有USB3.0的接口的,然而有预留
好吧,当时真是精力十足啊,从旧机箱里把线拆过来装上了,直接上图
组装好了
记得开启VT-D,否则不能直通
安装过程及遇到的坑
1. 准备引导U盘
其实配件还没到我就开始准备了,先是准备引导U盘,舍不得用好的U盘,找了块虚标容量的HP 128g U盘出来,准备把他量产回真实容量(16G),没想到这就花了我一天时间。
这个不说怎么解决的了,反正是搜搜搜,量产过程费时间,同时搞错几个参数,量产了好几遍。
2. 准备UNRAID系统
可能是量产U盘的锅,因为后来我换了块正常的USB3.0的U盘,同样的操作,没有出现下面的错误。
快乐版UNRAID下载好后,按教程正常操作,结果进系统后显示invalid key,好像在哪个教程里看到过Trial.key不能删除,而我没有Trial.key,但是已经有了BTRS.key,在有BTRS.key的情况 下无法申请Trial.key,于是关机,拿到另一台电脑删除BTRS.key,拿回去重启,申请了Trial。
Trial不显示,提示错误:
httpd: error: get_key_info, 564: Invalid argument (22): get_message: /boot/config/Trial.key (-3)
Google了半天有个类似问题,但是人家是因为mac自动生成了一个_Trial.key文件,造成目录下有两个.key文件,系统错读了那个假的,跟我遇到的情况不一样。我目录下只有一个key,直觉会不会是量产的问题,而刚好Trial.key文件所在的地方是个坏块,造成系统无法读取文件?重新量产不太愿意,3个多小时呀,于是死马当活马医,拿到win10下chkdsk了一下,删除Trial.key,重新生成一个BTRS.key放进去,不知道是哪个步骤对了,反正奇迹发生了,重新放回去开机之后就一切正常,喜滋滋。
3. 测试系统(做在硬件到位之前,用老爸斗地主电脑测试的)
之前犯了一个常识错误,一直以为UNRAID系统装在U盘上,那他的各种配置什么的都放在同一个U盘上,这样一个U盘拿到哪都能用了,结果并不是。
系统注册完成后,去启动Array,居然提示没有硬盘无法启动,nnd原来他需要一个盘放系统,另一个盘放数据!我可不敢把老爸的斗地主硬盘给挂上去,且挂上去也没有用,配置好了之后,新电脑一到,这硬盘又不能拆过去。当时想到三个办法:
第一个办法:把这个U盘量产为两个分区,第一分区识别为U盘,第二分区识别为硬盘,这样又不浪费16G的空间,还能一个U盘带着到处走。事实证明我太天真了,量产工具不支持。
好吧,那用第二个办法,把我珍贵的USB3.0的U盘量产成本地磁盘,这样就两个USB走天下~!结果我的两个USB3.0的U盘一个是SANDISK的,找不到量产工具,另一个是银灿的主控,但是银灿的量产工具识别不出来……这样的话我准备研究第三个办法,UNRAID貌似用的是linux系统,看能不能改系统设置,把指定U盘识别为硬盘。在这个时候,我不知道怎么想的,把两个U盘插进UNRAID那台电脑,重启了一下。
UNRAID居然支持U盘!!!!UNRAID居然支持U盘!!!!UNRAID居然支持U盘!!!!
真是哔了狗了,各种颠覆我的常识啊!!
好吧,是我书读得太少了。
顺利启动系统,他并不会弹出对话框问我是否格式化磁盘,只是会在ArrayDevices里提示:
Unmountable: Unsupported partition layout
这时候需要在下方格式化:勾上方框的勾,格式化按钮变得可用,点了之后就不用管了,他会自动来
为了截上面这图,我把32G那个sandisk的给挂上去了,结果卸载不掉,提示:
Too many wrong and/or missing disks!
没格式化也能这样!我也是醉了。找了下wiki,找到了解决办法:
他有警告,说数据会丢失,我想到阿文菌说过:它是把几块硬盘整合成一块了。终于明白了为什么卸载不掉了。
简单操作步骤:
1. 停止array(我的已经停了)
2. 确保你想卸载的磁盘已经拔掉了
3. 到 tools-New Config
4. 选择需要保留的现有磁盘,勾选确认框,这时候apply按钮亮,点击apply就好了
wiki上还有好多硬盘互换的教程。
4. 安装各种服务
这里我犯了一个错误,做事的先后顺序不太理性,没有把最容易出问题的最先做,而是把自己最感兴趣的事情最先做,结果造成后来把搭好的服务拆了装,装了拆。
我最先做的事情是装了黑群晖,还花了很长时间把笔记本的数据倒了过来,七七八八设置整顿好了之后,再装的X路由,设置好后,最后才安装的kodi,再进行的直通,结果直通遇到各种坑,期间把盘全部格掉、安装PVE做直通,后来PVE也不行,又换回UNRAID,后来终于明白两个系统都是用的KVM做的虚拟,本质上是一样的,且我的J3455M主板和别人家的J3455-ATX主板虽然芯片一样,但是还是不一样的,很多东西不能照抄。这里就不按顺序来讲我是怎么爬坑的了,直接列123吧。
遇到的各种坑:
1. 显卡直通。
显卡直通坑多,但是集显比独显的多多了,一张显卡直通比两张显卡直通的坑也多多了。显卡直通的原理其实很简单,不让系统占用这块显卡,然后把它给虚拟机用。要是独显的话,基本上就有两块显卡了,那么,宿主机用一块,虚拟机用一块,大家一起开心。但是只有一块显卡的话,就得抢了,这里,做家长的只能偏心,加几条命令,不让宿主机用这唯一的一块集显,在启动参数里加上
vfio-pci.ids=8086:5a98,8086:5a85
这个各种教程里已经有了,就是不让宿主机加载集显,但是这还不够,看一眼都不行!,那就再加:
video=efifb:off,vesafb:off
两个启动模式,一个是传统引导启动,一个是UEFI启动,都不行!
但是这样一来,宿主机就瞎了,那宿主机上的虚拟机也一样瞎了,怎么办呢?得给他加个引导,让虚拟机找得到这块宿主机都找不到的显卡:
我按这位大佬的教程来的,虽然是PVE的,但是UNRAID通用
[其他] J3455安装PVE折腾记录(直通GPU至Libreelec当HTPC+黑群+OMV)20190703更新简易版
直接上图吧
第i步“rom-fixer”异常重要,之前我轻信了好几个教程里ROM通用的话,直接下载的他们的ROM,结果没一个行,(电脑在卧室,宿主机在客厅,每次虚拟机启动我都要跑到客厅去看屏幕,虽然没几步,但是那几天我的步数很可观)。后来我就自己来,U盘多,装了个U盘LINUX用传统启动去DUMP rom,这里一定要用传统模式引导启动!否则出错,当时我没用rom-fixer,直接拿去用了,结果还是不行,最后仔细再仔细看了教程,几个教程都看过来(很多教程没提这个rom-fixer),再用了rom-fixer处理了提取出来的rom,这才启动成功。期间我经历了绝望。
下面是当时记录的文字 :
直到3月28日,才找到解决办法,用rom-fixer之后直通成功,那时候,我已经把老爸的斗地主机拆散了,所有的东西全部放到了卧室,京东买了一个交换机,重新布线以保证上网,卧室电脑周边没地方下脚。
紧接着,UNRAID也捷报传来
直到今天,我才看到了关于显卡直通及原理详细的解释,有兴趣的值友可以看看
但是显卡直通之后,虚拟机很不稳定,出现以下症状:
1. 找不到HDMI声卡,是系统发现不了声卡,在libreELEC、UBUNTU、win10下均无法搞定。我的投影插上HDMI线只有图像没有声音,且不支持切换音源。现已放弃,直接接了个小音箱。
2. 拔掉HDMI线,插上VGA线,开启虚拟机造成宿主机死机。多次强制重启排查,未发现原因,初步判断是只有一块显卡的锅。
3. 不定时出现虚拟机强制关机造成宿主机死机。应该也是宿主机没显卡耍了很不开心。
当时的分析记录
当时产生了加一块独显的念头,结果过节期间有个兄弟值班无聊,我让他翻翻垃圾,有没有刀卡,结果他手边就有一块。。。
现在是独显给宿主机,集显给虚拟机,大家都很快乐。目前一切正常。
2. 网卡直通。
网卡直通和显卡直通不一样,他不存在“我在用的你就不能用”的情况,而是“你想用啊?想用你就说嘛,给你给你!”,所以不用开机屏蔽,开机屏蔽网卡的唯一作用就是:建立虚拟机的时候直接可以在PCI设备里看到网卡,而不用自己写(chao)代码去添加。怎么写(chao)?看这里
网卡出现的问题:速度奇慢,当时我已安装好群晖和X路由,发现问题的时候是向群晖放东西的时候,速度只有10m/s,相当于百兆带宽,这怎么行!我是千兆带宽啊!(这里有连环坑)不能忍!首先要排除是不是系统的问题,在群晖系统里看到网卡是千兆的,查到有人说显示的不准,还是得靠测速,这里我留了个心眼,把四个网口都测速,看看网络情况。群晖的话只能靠网上邻居复制文件了,速度是在10m/s左右徘徊。另外在X路由上我使用的是iperf,电脑当服务器,在X路由上运行命令测试速度:
也是离千兆带宽有很大距离,网卡有问题!还不太相信,为什么偏偏啥毛病全让我遇上了?长得太丑?新建了一个UBUNTU虚拟机,把四张网卡全拉进去,结果……
有一张是100m的!找商家换卡!
新的卡换回来,我发现我的网线有一根是这样的:
WTF!!!!居然是百兆网线!!!但是我查了我X路由和NAS用的网口的呀,都是千兆的线,这根网线是插在没在用的那个口呀,就算是百兆的,也不影响NAS和X路由的带宽。经过仔细分析,我发现了山寨网卡的坑人之处:系统配置里,我的网卡分析是这样的:
X路由:ETH1,ETH2
NAS:ETH3
按理,网线应该插在前3个口,连一块儿,第四个口闲置。
但是!!!这个山寨网卡,他的网口顺序不按套路出牌!他的网口是这样的顺序:
ETH1,ETH2,ETH4,ETH3。我的NAS用的正是那个百兆的口!且还被NAS识别为了1000M,这坑爹的!
新的网卡上去了,网线OK了,开始测速,结果速度怎么还不行?还是100M,现在变成全部都是100M带宽了,之前X路由还有200来M的说,和我宽带一样。经过仔细排查,发现原因:虽然我把网卡的网线全部插到了新买的千兆交换机上,但是我的电脑插的是老爸房间当中继的K2路由器,这路由器....是百兆口……我觉得那时候我脑子已经因为熬夜太多不太清楚了,犯下这低级错误。
把电脑网线也插到了千兆交换机,测速,现在网速成功回到了……和上张网卡一样!WTF!!!
既然这样,怀疑网卡真的有问题,还是主板和网卡不兼容?毕竟j3455m不是j3455-itx。退掉了网卡入了8111f。
这是第三张网卡的情况,当时的记录:
网址是点我
18个小时明白了原来是群晖网卡驱动的锅。这时候群晖的复制速度达到了有史以来的50m/s,满足了!
然后手贱又去测试了X路由的网速,结果……还是和以前一样,现在坚定网卡没问题了,在考虑会不会是其它原因,然后脑抽,换成X路由当sv,在电脑上测速,结果
WTF!!!!居然是路由问题!!!想起之前测速带宽是200m,估计数据包是出去兜了一圈再回来的。
总结:
坑1:群晖网卡驱动。(1. DSM版本6.2以上的最好用带驱动的引导。 2. DSM版本6.1.x的速度慢,也有可能是网卡驱动问题)
坑2:插错网线。别笑,就在张大妈这就有个兄弟和我的情况一样,虽然他的相对简单,路由器换了个就好了。
坑3:测速方式不对(这个谁想得到了,要不是我脑抽,我也想不到)
坑4:网口顺序搞错。
数坑齐下,搞得我焦头烂额。
3. 群晖里的一些坑:
1. 引导找不到IP(和网卡有关,DSM6.2以上要改成e1000e而不是e1000,否则认不出来,而PVE里要改成e1000e的话……网上教程很多)
2. 半洗白。按网上的办法,需要docker上新建一个dsm,用他的sn。但是我现在的docker是最新版本,无法建DSM(功能移到群晖上的虚拟机上去了),且尝试过群晖虚拟机上的DSM,无法启动。解决办法是在UNRAID上建一个新的群晖,然后下载老版本的docker安装文件,接下去按网上教程来吧,这样半洗白的sn闲鱼上20一个。
4. 安装X路由的坑
恩山下载了一个x86的openwrt,安装后上不了网,怎么配置都没办法,后来换了个镜像,一次成功。
5. 直通独显的坑
直通独显显示Failed to mmap 0000:08:00.0 BAR 1. Performance may be slow ,解决办法:
ssh上去unraid,直接运行三行代码(据说直接用unraid提供的网页terminal会出现一些未知的现象,介于我遇到的神秘现象实在是太多了,能ssh我就不用其它办法)
echo 0 > /sys/class/vtconsole/vtcon0/bind
echo 0 > /sys/class/vtconsole/vtcon1/bind
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
加入启动脚本
nano /boot/config/go
写到这,脑子又有点模糊了,年纪大了扛不住啊。这还是在我之前有记笔记的前提下写的
还有一些小坑就暂时不说了。主要是现在想不起来了。
祝大家爬坑的事业,蒸蒸日上!!!
4月8日补充:
一觉起来,神清气爽,推荐一个软件
MobaXterm,n合一功能,ssh的同时还能传文件,还能保存密码,还支持n种协议,直接上图吧
官方主页是点我
kid1988
校验提示文案
逝去岁月
校验提示文案
VinsonDou
校验提示文案
平风静浪
校验提示文案
塞纳河小烤鸭
校验提示文案
VAY冬冬
校验提示文案
封印的心
校验提示文案
独猎鹏
校验提示文案
109109109lf
校验提示文案
marundong
校验提示文案
我就是cy
校验提示文案
可可and华华
校验提示文案
incarnate
校验提示文案
可可and华华
校验提示文案
大表哥2046
校验提示文案
番薯杰
校验提示文案
changfujun
校验提示文案
mikeee146
校验提示文案
shootingzq
校验提示文案
自在风笛
校验提示文案
法行天下
校验提示文案
joker95275
校验提示文案
nnkn
校验提示文案
shootingzq
校验提示文案
mikeee146
校验提示文案
番茄炒鸡蛋和鸡蛋炒番
校验提示文案
kkround
校验提示文案
changfujun
校验提示文案
番薯杰
校验提示文案
大表哥2046
校验提示文案
龙在江湖漂
校验提示文案
平风静浪
校验提示文案
可可and华华
校验提示文案
incarnate
校验提示文案
可可and华华
校验提示文案
YS-逆风
校验提示文案
值友9474823713
校验提示文案
我就是cy
校验提示文案
marundong
校验提示文案
nnkn
校验提示文案