为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000
本教程所需文件点击下载
项目 | 配置 | RMB |
---|---|---|
CPU | i7 8700T | 1245元 |
主板 | 技嘉B365 M AORUS ELITE | 509元 |
内存条 | 美商海盗船 DDR4 3000Hz 8G * 4 | 1000元 |
机箱 | 万由NSC-810A U-NAS | 1150元 |
电源 | 海韵350W | 450元 |
散热 | 英特尔CPU自带散热 | 没花钱 |
SSD | 三星980 500G * 2 | 1000元 |
NAS硬盘 | 希捷酷狼 4T * 8 | 6250元 |
11604元 |
使用芯片无忧工具,查看U盘的PID
和VID
。
使用DiskGenius
,格式化U盘。
使用镜像写入工具,把引导写入U盘。
修改grub.cfg
文件,可以使用DiskGenius
工具把文件复制到桌面,通过notepad++
修改好之后,拖进DiskGenius
这个界面中。或者在电脑中,查看U盘,打开U盘中的grub.cfg
文件直接修改。
具体修改内容如下:
PID修改为U盘的PID
VID修改为U盘的VID
默认只有mac1=a8412083CB52 mac2=0a11323D47F7 ,增加:mac3=a15823C08000 mac4=a23C04158B52 mac5=82a002524158 mac6=38233052415a
SataPortMap=64
DiskIdxMap=0006
SataPortMap=64
,因为我的主板上有6个sata口,然后PCIE扩展了4个SATA口,所以这里写了64,分别对应主板的SATA数目和PCIE的SATA数目。
DiskIdxMap=0006
,因为主板的6个SATA口分别为00、01、02、03、04、05,所以PCIE的SATA从06开始。也就是说,前面两个00代表主板上的SATA控制从00开始计数,PCIE的SATA从06开始计数。
#
# ### !!! WARNING - READ ME !!! ###
#
# DO NOT edit this file. This file has been generated automatically by the loader generator.
# If you were asked to use a pre-made image and asked by someone to edit this file DO NOT do it. The only
# supported method of obtaining the loader image is generating it using the loader generator provided.
#
terminal_output console
if serial --unit=0 --speed=115200; then
terminal_input --append serial_com0
terminal_output --append serial_com0
fi
set default="0"
set timeout="0"
set timeout_style="menu"
if [ -s $prefix/grubenv ]; then
load_env --file $prefix/grubenv --skip-sig
set has_env="1"
if [ -n "${saved_entry}" ]; then
set default="${saved_entry}"
fi
else
set has_env="0"
echo "WARN: failed to load env. Default choice will NOT be saved!"
fi
function savedefault {
saved_entry="${chosen}"
save_env --file $prefix/grubenv saved_entry
}
insmod usb_keyboard
insmod part_msdos
insmod ext2
insmod fat
insmod linux
insmod gzio
set gfxmode=auto
insmod vbe
insmod vga
# UEFI
insmod efi_gop
insmod efi_uga
insmod font
if loadfont ${prefix}/unicode.pf2
then
insmod gfxterm
set gfxmode=auto
set gfxpayload=keep
terminal_output gfxterm
fi
menuentry 'RedPill DS918+ v7.1.0-42661 (USB, Verbose)' {
savedefault
set root=(hd0,msdos1)
echo Loading Linux...
linux /zImage HddHotplug=0 withefi console=ttyS0,115200n8 DiskIdxMap=0006 netif_num=2 syno_hdd_detect=0 syno_port_thaw=1 SasIdxMap=0 vender_format_version=2 earlyprintk syno_hdd_powerup_seq=1 pid=0x5583 log_buf_len=32M syno_hw_version=DS918+ vid=0x0781 earlycon=uart8250,io,0x3f8,115200n8 sn=2022NAS123456 elevator=elevator root=/dev/md0 loglevel=15 SataPortMap=64 mac1=a8412083CB52 mac2=0a11323D47F7 mac3=a15823C08000 mac4=a23C04158B52 mac5=82a002524158 mac6=38233052415a
echo Loading initramfs...
initrd /rd.gz /custom.gz
echo Starting kernel with USB boot
}
menuentry 'RedPill DS918+ v7.1.0-42661 (SATA, Verbose)' {
savedefault
set root=(hd0,msdos1)
echo Loading Linux...
linux /zImage HddHotplug=0 withefi console=ttyS0,115200n8 synoboot_satadom=2 DiskIdxMap=0006 netif_num=2 syno_hdd_detect=0 syno_port_thaw=1 SasIdxMap=0 vender_format_version=2 earlyprintk syno_hdd_powerup_seq=1 pid=0x5583 log_buf_len=32M syno_hw_version=DS918+ vid=0x0781 earlycon=uart8250,io,0x3f8,115200n8 sn=2022NAS123456 elevator=elevator root=/dev/md0 loglevel=15 SataPortMap=64 mac1=58412083CB52 mac2=0011323D47F7 mac3=415823C08000 mac4=123C04158B52 mac5=823002524158 mac6=382330524158
echo Loading initramfs...
initrd /rd.gz /custom.gz
echo Starting kernel with SATA boot
echo WARNING: SATA boot support on this platform is experimental!
}
在BIOS中设置U盘启动,然后就可以通过群晖助手进行搜索到了。
在浏览器输入群晖ip地址+5000端口号,进行访问并安装。
这里选择7.1.0或者7.0.1,具体看你的引导是哪个版本。
等待安装,这个过程大概十分钟。
安装完成啦。
设置设备名称,以及用户名和密码。
选择手动更新,因为黑群晖更新系统极不稳定,容易造成群晖崩溃。
这里选择跳过。
这里就进入到群晖的DSM界面了。
这里创建了8块盘的存储池。
1、将驱动添加入引导
2、通过SSH将驱动添加到群晖系统文件中
3、安装bb-qq大神驱动套件。下载地址
第三种方式最简单,我这里安装的是DS918所以是apollolak架构,所以下载r8152-apollolake-2.15.0-7.spk
。
在套件中心,选择右上角的手动安装,然后选择刚刚下载的r8152-apollolake-2.15.0-7.spk
文件。这时候会提示无法安装,然后使用ssh工具远程连接群晖,输入以下命令:
sudo install -m 4755 -o root -D /var/packages/r8152/target/r8152/spk_su /opt/sbin/spk_su
此时重新点击手动安装就可以啦。
但这时候默认只有两个网口,我使用的PCIE拓展了4个2.5G的网口,所以我想把四个网口都添加上去。
修改一下最大的lan网卡配置,输入
vi /etc.defaults/synoinfo.conf
把maxlanport="2"
修改为maxlanport="6"
然后定位到
eth0_mtu="1500"
eth0_wol_options="d"
eth1_mtu="1500"
eth1_wol_options="d"
增加
eth2_mtu="1500"
eth2_wol_options="d"
eth3_mtu="1500"
eth3_wol_options="d"
eth4_mtu="1500"
eth4_wol_options="d"
eth5_mtu="1500"
eth5_wol_options="d"
输入命令reboot重启。
打开群晖,就可以看到我们的2.5G网口可以用了。加上主板上的一个千兆网口,一共五个。
#查看nvme硬盘
ls /dev/nvme*
#查看第一块硬盘信息
udevadm info /dev/nvme0
#查看第二块硬盘信息
udevadm info /dev/nvme1
#把libsynonvme.so.1拷贝到document共享文件夹中
cp /lib64/libsynonvme.so.1 /volume1/document/libsynonvme.so.1
#备份libsynonvme.so.1文件
cp /lib64/libsynonvme.so.1 /lib64/libsynonvme.so.1.bak
使用udevadm info /dev/nvme0
和udevadm info /dev/nvme1
命令查看硬盘信息,分别记住0000:00:1b:4
和0000:00:1d.0
。
电脑上使用 winhex
软件打开刚才下载的 libsynonvme.so.1
文件
搜索nvme_model_spec_get
,在右侧找到如下图字段的原数据为0000:00:13.0
和0000:00:13.1
,把它修改为0000:00:1b:4
和0000:00:1d.0
,然后保存文件,并上传到群晖的document共享文件夹中。
#把原来的libsynonvme.so.1删除
rm /lib64/libsynonvme.so.1
#把我们刚刚修改过的文件,copy到lib64目录下
cp /volume1/document/libsynonvme.so.1 /lib64/libsynonvme.so.1
#授权
chmod 644 /lib64/libsynonvme.so.1
#重启系统
reboot
重启之后,在存储管理器中,就可以看到两块ssd硬盘了。
大功告成,enjoy it。
文章浏览阅读2.1k次。FX3 JLINK调试是一个有些麻烦的事情,经常有些莫名其妙的问题。 设置参见 c:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\firmware 下的 EzUsbSuite_UG.pdf 文档。 常见问题: 1.装了多个版本的jlink,使用了未注册或不适当的版本 选择一个正确的版本。JLinkARM_V408l,JLinkA_ezusbsuite_qsg.pdf
文章浏览阅读2.6k次。** 本文仅通过用openGL+QT简单实现二进制stl文件读取显示并通过鼠标旋转缩放, 是比较入门的级别,由于个人能力有限,新手级别,所以未能施加光影灯光等操作, 未能让显示的stl文件更加真实。****效果图:**1. main.cpp```cpp#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); _qopengl如何鼠标控制旋转
文章浏览阅读943次,点赞22次,收藏19次。以大规模预训练语言模型为基础的chatgpt成功出圈,在近几日已经给人工智能板块带来了多次涨停,这足够说明这一风口的到来。而作为曾经的风口“知识图谱”而言,如何找到其与chatgpt之间的区别,找好自身的定位显得尤为重要。形式化知识和参数化知识在表现形式上一直都是大家考虑的问题,两种技术都应该有自己的定位与价值所在。知识图谱构建往往是抽取式的,而且往往包含一系列知识冲突检测、消解过程,整个过程都能溯源。以这样的知识作为输入,能在相当程度上解决当前ChatGPT的事实谬误问题,并具有可解释性。
文章浏览阅读1.3k次。最重要的一点,一定是degbug的方式启动,不然热部署不会生效,注意,注意!_tomcat热部署
文章浏览阅读10w+次,点赞56次,收藏482次。html5 ,用css去修饰自己的个人主页代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xh..._个人主页源码
文章浏览阅读201次。开发者(KaiFaX)面向全栈工程师的开发者专注于前端、Java/Python/Go/PHP的技术社区来源:开源最前线链接:https://github.com/svenstaro/gen..._程序员怎么上班摸鱼
文章浏览阅读1.3k次。改变Block UI界面的尺寸_ug二次开发 调整 对话框大小
文章浏览阅读1.3w次,点赞18次,收藏291次。基于深度学习的股票预测数据获取数据转换LSTM模型搭建训练模型预测结果数据获取采用tushare的数据接口(不知道tushare的筒子们自行百度一下,简而言之其免费提供各类金融数据 , 助力智能投资与创新型投资。)python可以直接使用pip安装tushare!pip install tushareCollecting tushare Downloading https://files.pythonhosted.org/packages/17/76/dc6784a1c07ec040e74_基于深度学习的股票操纵识别研究python代码
文章浏览阅读2k次。【IT168 厂商动态】 近日,北京中科网威(NETPOWER)工业级防火墙通过了中国电力工业电力设备及仪表质量检验测试中心(厂站自动化及远动)测试,并成为中国首家通过电力协议访问控制专业测评的工业级防火墙生产厂商。 北京中科网威(NETPOWER)工业级防火墙专为工业及恶劣环境下的网络安全需求而设计,它采用了非X86的高可靠嵌入式处理器并采用无风扇设计,整机功耗不到22W,具备极_电力行业防火墙有哪些
文章浏览阅读206次。/*烟台大学计算机学院 作者:董玉祥 完成日期: 2017 12 3 问题描述:二叉树排序树中查找的路径 */#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node
文章浏览阅读775次。当时老师一定会告诉你,这个一个"warning"的报警,可以不用管它,也确实如此。不过,这条报警信息我们至少可以知道一点,就是scanf函数调用完之后是有一个返回值的,下面我们就要对scanf返回值进行详细的讨论。并给出在编程时利用scanf的返回值可以实现的一些功能。_c语言ignoring return value
文章浏览阅读9.6k次。十四五规划下,数据安全成为国家、社会发展面临的重要议题,《数据安全法》《个人信息保护法》《关键信息基础设施安全保护条例》已陆续施行。如何做好“数据安全建设”是数字时代的必答题。_数字医疗服务保障方案