一文搞懂网络知识,IP、子网掩码、网关、DNS、端口号

网络的基本概念

  • 客户端:应用 C/S(客户端/服务器) B/S(浏览器/服务器)
  • 服务器:为客户端提供服务、数据、资源的机器
  • 请求:客户端向服务器索取数据
  • 响应:服务器对客户端请求作出反应,一般是返回给客户端数据

img

URL

  • Uniform Resource Locator(统一资源定位符)
  • 网络中每一个资源都对应唯一的地址——URL

IP 、子网掩码路由器DNS

img

IP地址

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址(每个机器都有一个编码,如MAC上就有一个叫MAC地址的东西)的差异。是32位二进制数据,通常以十进制表示,并以“.”分隔。IP地址是一种逻辑地地址,用来标识网络中一个个主机,在本地局域网上是惟一的。

img

IP

IP(网络之间互连的协议)它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址有唯一性,即每台机器的IP地址在全世界是唯一的。这里指的是网络上的真实IP它是通过本机IP地址和子网掩码的”与”运算然后再通过各种处理算出来的(要遵守TCP协议还要加报文及端口什么的,我没有细追究,现在还用不上,反正暂时知道被处理过的就行了),顺便教大家查自己真实IP的方法:

img

img

子网掩码

要想理解什么是子网掩码,就不能不了解IP地址的构成。互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。
IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。什么是子网掩码子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分子网掩码的设定必须遵循一定的规则。与IP地址相同,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。假设IP地址为“192.168.1.1”子网掩码为“255.255.255.0”。其中,“1”有24个,代表与此相对应的IP地址左边24位是网络号;“0”有8个,代表与此相对应的IP地址右边8位是主机号。这样,子网掩码就确定了一个IP地址的32位二进制数字中哪些是网络号、哪些是主机号。这对于采用TCP/IP协议的网络来说非常重要,只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

常用的子网掩码有数百种,这里只介绍最常用的两种子网掩码。

  • 子网掩码是“255.255.255.0”的网络:
    最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。

  • 子网掩码是“255.255.0.0”的网络:
    后面两个数字可以在0~255范围内任意变化,可以提供255²个IP地址。但是实际可用的IP地址数量是255²-2,即65023个。

IP地址的子网掩码设置不是任意的。如果将子网掩码设置过大,也就是说子网范围扩大,那么,根据子网寻径规则,很可能发往和本地主机不在同一子网内的目标主机的数据,会因为错误的判断而认为目标主机是在同一子网内,那么,数据包将在本子网内循环,直到超时并抛弃,使数据不能正确到达目标主机,导致网络传输错误;如果将子网掩码设置得过小,那么就会将本来属于同一子网内的机器之间的通信当做是跨子网传输,数据包都交给缺省网关处理,这样势必增加缺省网关(文章下方有解释)的负担,造成网络效率下降。因此,子网掩码应该根据网络的规模进行设置。如果一个网络的规模不超过254台电脑,采用“255.255.255.0”作为子网掩码就可以了,现在大多数局域网都不会超过这个数字,因此“255.255.255.0”是最常用的IP地址子网掩码;假如在一所大学具有1500多台电脑,这种规模的局域网可以使用“255.255.0.0”。

网关

网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1192.168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目标主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发数据包的过程也是如此 所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

路由器(Windows下叫默认网关,网关就是路由,路由就是网关不要蒙)

如果搞清了什么是网关,默认网关也就好理解了。就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。
下方是百度百科给出的解释

img

如何设置默认网关 一台电脑的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信。默认网关的设定有手动设置和自动设置两种方式。

  • 手动设置:手动设置适用于电脑数量比较少、TCP/IP参数基本不变的情况,比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“默认网关”,非常费劲,一旦因为迁移等原因导致必须修改默认网关的IP地址,就会给网管带来很大的麻烦,所以不推荐使用。需要特别注意的是:默认网关必须是电脑自己所在的网段中的IP地址,而不能填写其他网段中的IP地址。
  • 自动设置:自动设置就是利用DHCP服务器来自动给网络中的电脑分配IP地址、子网掩码和默认网关。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变动的网络。另外一种自动获得网关的办法是通过安装代理服务器软件(如MS Proxy)的客户端程序来自动获得,其原理和方法和DHCP有相似之处。由于篇幅所限,就不再详述了。

缺省网关

缺省网关(Default Gateway)是计算机网络中一个如何将数据包转发到其他网络中的节点。在一个典型的TCP / IP网络,节点(如服务器、工作站和网络设备)都有一个定义的默认路由设置(指向默认网关)。可以在没有特定路由的情况下,明确出发送数据包的下一跳IP地址。
下方是百度百科给出的解释:

img

可以看出缺省网关就是默认网关,那么有人会说既然有一样为什么又凭空多出来一个缺省网关,我的理解是这样的,应该说默认网关是缺省网关的一个子集。缺省网关有一个定义的默认路由设置(指向默认网关),缺省网关就相当于一个代理服务器暂时管理发送的数据包,当发送到目标主机时先由目标主机的缺省网关接收再找到对应的默认网关,就相当于缺省网关是父类,默认网关是子类~~

DNS服务器

域名服务器(Domain Name Server)。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器 。

DHCP服务器

DHCP指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。提升地址的使用率。

MAC地址

MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。(知道这个就行了,不用往下看了)
MAC(Media Access Control,介质访问控制)地址

  • 前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
  • 后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。
    网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。

也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一定是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(除了管这个外还管别的)(IEEE)(IEEE:电气和电子工程师协会)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。
在一个稳定的网络中,IP地址和MAC地址是成对出现的。如果一台计算机要和网络中另一外计算机通信,那么要配置这两台计算机的IP地址,MAC地址是网卡出厂时设定的,这样配置的IP地址就和MAC地址形成了一种对应关系。在数据通信时,IP地址负责表示计算机的网络层地址,网络层设备(如路由器)根据IP地址来进行操作;MAC地址负责表示计算机的数据链路层地址,数据链路层设备(如交换机)根据MAC地址来进行操作。IP和MAC地址这种映射关系由ARP(Address Resolution Protocol,地址解析协议)协议完成。

服务器

  1. 服务器的分类
    按照软件开发阶段来分,服务器可以大致分为2种
    (1)远程服务器
    别名:外网服务器、正式服务器
    使用阶段:应用上线后使用的服务器
    使用人群:供全体用户使用
    速度:服务器的性能、用户的网速
    (2)本地服务器
    别名:内网服务器、测试服务器
    使用阶段:应用处于开发、测试阶段使用的服务器
    使用人群:仅供公司内部的开发人员、测试人员使用
    速度:由于是局域网,所以速度飞快,有助于提高开发测试效率
  2. 本地服务器的选择
    远程服务器就是本地内网服务器开放外网访问而已
    如果处于学习、开发阶段,自己搭建一个本地服务器即可

端口号

端口包括物理端口和逻辑端口。物理端口是用于连接物理设备之间的接口,逻辑端口是逻辑上用于区分服务的端口。TCP/IP协议中的端口就是逻辑端口,通过不同的逻辑端口来区分不同的服务。
端口有什么用呢?我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区 分不同的服务的。

  • 公认端口(Well-Known Ports)
    这类端口也常称之为”常用端口”。这类端口的端口号从0到1023,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。80端口实际上总是HTTP通信所使用的,而23号端口则是Telnet服务专用的。
  • 注册端口(Registered Ports)
    端口号从1025到49151。分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是分配好的公认端口的常用程序。
  • 动态和/或私有端口(Dynamic and/or Private Ports)
    之所以称为动态端口,因为它一般不固定分配某种服务,而是动态分配。
l

VIM多光标插件——vim-visual-multi

插件简介 mg979/vim-visual-multi

vim宏操作和多光标插件

1
VIM多光标插件,提供vim/nvim快速操作多光标编辑的能力

顺便在这里附上我自己的nvim配置仓库地址 yaocccc/nvim

安装

1
2
推荐使用vim-plug安装
Plug 'mg979/vim-visual-multi', {'branch': 'master'}

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
" 贴上本人的配置
let g:VM_theme = 'ocean'
let g:VM_highlight_matches = 'underline'
let g:VM_maps = {}
let g:VM_maps['Find Under'] = '<C-n>'
let g:VM_maps['Find Subword Under'] = '<C-n>'
let g:VM_maps['Select All'] = '<C-d>'
let g:VM_maps['Select h'] = '<C-Left>'
let g:VM_maps['Select l'] = '<C-Right>'
let g:VM_maps['Add Cursor Up'] = '<C-Up>'
let g:VM_maps['Add Cursor Down'] = '<C-Down>'
let g:VM_maps['Add Cursor At Pos'] = '<C-m>'
let g:VM_maps['Add Cursor At Word'] = '<C-w>'
let g:VM_maps['Remove Region'] = 'q'

" 从上至下的意义:
" ['Find Under'] -> 选中光标下的词(ctrl+n继续向下选中相同文本)
" ['Find Subword Under'] -> 选中光标下的词(ctrl+n继续向下选中相同文本)
" ['Select All'] -> 选中文件中所有光标下的词
" ['Select h'] -> 从光标往左选中文本(ctrl+n继续向下选中相同文本)
" ['Select l'] -> 从光标往右选中文本(ctrl+n继续向下选中相同文本)
" ['Add Cursor Up'] -> 向上添加一个光标(原光标+上光标 继续使用则继续添加)
" ['Add Cursor Down'] -> 向下添加一个光标(原光标+下光标 继续使用则继续添加)
" ['Add Cursor At Pos'] -> 将当前光标添加入多光标列表中
" ['Add Cursor At Word'] -> 将当前光标所在词的词首加上多光标列表中
" ['Remove Region'] -> 移除当前光标

VIMRC

基本概念

!!!重要!!!
!!!重要!!!
!!!重要!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
简单来说该插件提供三种模式:
多光标 normal 模式
多光标 visual 模式
多光标 insert 模式

可以对应vim的三模式
如何切换:
normal <-> visual 模式互相转换: Tab
normal --> insert 进入插入模式: i、a、c等 和 vim原生的按键是一样的
insert --> normal 返回普通模式: Esc

normal模式 可以使用 hjkl w e b f t $ ^ 0 等等按键来移动 多光标中的全部光标(不可以使用上下左右 PS: 上下左右可以用来移动原光标)
visual模式 可以使用 hjkl w e b f t $ ^ 0 等等按键来选中 多光标中的全部光标(不可以使用上下左右 PS: 上下左右可以用来移动原光标)
insert模式 可以使用 上下左右 等等按键来移动 多光标中的全部光标

如何从正常VIM模式中进入多光标模式
1: VIM处于normal模式
2: 用以下快捷键即可
['Find Under'] -> 选中光标下的词(ctrl+n继续向下选中相同文本)
['Find Subword Under'] -> 选中光标下的词(ctrl+n继续向下选中相同文本)
['Select All'] -> 选中文件中所有光标下的词
['Select h'] -> 从光标往左选中文本(ctrl+n继续向下选中相同文本)
['Select l'] -> 从光标往右选中文本(ctrl+n继续向下选中相同文本)
['Add Cursor Up'] -> 向上添加一个光标(原光标+上光标 继续使用则继续添加)
['Add Cursor Down'] -> 向下添加一个光标(原光标+下光标 继续使用则继续添加)
['Add Cursor At Pos'] -> 将当前光标添加入多光标列表中
['Add Cursor At Word'] -> 将当前光标所在词的词首加上多光标列表中

如何从多光标模式中退出
一股脑Esc就对了


使用案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
当前有以下文本,试完成以下案例 原始光标初始位置在第1行的l位置

let aa = 1;
let bbb = 2;
let cccc = 3;
let ddddd = 4;


案例1: 将 全部let 改成 const
案例重点: 如何添加多光标

方案1: ctrl+d c const
1: ctrl+d 选中文件中所有光标下的词
2: c 从visual模式进入插入模式,并变更当前选中的文本
方案2: ctrl+n ctrl+n ctrl+n ctrl+n c const
1: ctrl+n 选中光标下的词 * 4次
2: c 从visual模式进入插入模式,并变更当前选中的文本
方案3: ctrl+下 ctrl+下 ctrl+下 xxx i const
1: ctrl+下 * 3次 将共计4个l位置的光标添加进多光标列表
2: xxx删除 i进入插入模式
...


案例1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
案例2: 将 124行的 let 改成 const
案例重点: 如何取消/跳过某光标

方案1: ctrl+d 下下q c const
1: ctrl+d 选中文件中所有光标下的词
2: 下下 移动原始光标到第三行 q 取消当前光标
3: c 从visual模式进入插入模式,并变更当前选中的文本
方案2: ctrl+n ctrl+n 下下 ctrl+n c const
1: ctrl+n 选中光标下的词 * 2次
2: 下下 移动原始光标到第四行
3: ctrl+n 选中光标下的词
4: c 从visual模式进入插入模式,并变更当前选中的文本
方案3: ctrl+下 下下 ctrl+x xxx i const
1: ctrl+下 将共计2个l位置的光标添加进多光标列表
2: 下下 移动原始光标到第四行
3: ctrl+x 添加当前位置光标进多光标列表
4: xxx删除 i进入插入模式
...


案例2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
案例3: 将文本内容改成
案例重点: 多光标下normal和visual的切换 光标的跳转等
let aa = 1 * aa;
let bbb = 2 * bbb;
let cccc = 3 * cccc;
let ddddd = 4 * ddddd;

方案1: ctrl+d tab w tab e y tab ww a * 空格 esc p
1: ctrl+d 选中文件中所有光标下的词
2: tab 从visual模式转换到normal模式
3: w 跳到 下个词首(aa、bbb等所在词)
4: tab 从normal模式转换到visual模式
5: e选中到词尾 y复制选中部分
6: tab 从visual模式转换到normal模式
7: ww a ... 光标跳转并插入 * 空格
8: esc 从 insert模式回归到normal
9: p粘贴刚刚选中的多个词
方案2: ctrl+下 ctrl+下 ctrl+下 w tab e y tab ww a * 空格 esc p
1: ctrl+下 * 3次 将共计4个l位置的光标添加进多光标列表
2: w 跳到 下个词首(aa、bbb等所在词)
3: tab 从normal模式转换到visual模式
4: e选中到词尾 y复制选中部分
5: tab 从visual模式转换到normal模式
6: ww a ... 光标跳转并插入 * 空格
7: esc 从 insert模式回归到normal
8: p粘贴刚刚选中的多个词

案例3

PS

1
2
3
4
5
6
7
8
9
建议将列出的按键配置都自己试一遍
该插件还有不少其他用法,例如:
自定义搜索文本跳转
多行对齐
...

不过我不会 有需要进阶的同好可以看原仓库说明


mg979/vim-visual-multi

l

GT系列蓝牙双模键盘使用手册

GT系列当前包括BLE60 、 Omega45 、 Farad69、Omega50四款键盘,四款键盘均采用的LotKB开源固件进行驱动,功能按键等设定基本一致:

功能按键说明

休眠按键:P – 同时按下Lshift+Rshift时按此键可以手动进入休眠模式,按任意键可以唤醒。(此功能按键修改配列不会改变)

关机按钮:ESC或~ – 同时按下Lshift+Rshift时按此键可以手动进入关机模式,关机后需要按背部的Bootloader按钮才可重新开机。长期不用或携带外出建议关机。

切换蓝牙设备:Q/W/E – 同时按下Lshift+Rshift时按Q/W/E可以在已绑定的蓝牙设备之间进行切换。

重新开启蓝牙广播:R – 同时按下Lshift+Rshift时按R可以重新开启蓝牙广播,用于切换设备后进行绑定。

显示蓝牙键盘状态灯:L 或 ? – 在电池供电情况下,状态灯会自动熄灭,如要显示当前状态灯,同时按下Lshift+Rshift时按L或?,将显示状态灯5秒。

锁定WIN键:G – 同时按下Lshift+Rshift时按此键,将锁定WIN键,再次同时按下Lshift+Rshift时按此键,将恢复WIN键,重启将自动恢复WIN键。

切换连接模式按键:M – 在通过USB和蓝牙同时连接一台设备(也可通过USB连接一台设备、蓝牙连接另一台设备)的情况下,同时按下Lshift+Rshift时按此键可以切换连接模式。如未同时使用USB模式和蓝牙模式,此按键无效。

进入DFU刷机模式:B – 同时按下Lshift+Rshift时按此键可以重启到DFU刷机模式。也可在唤醒的同时按Space+B进入DFU刷机模式。

清空当前设备蓝牙绑定信息按键:O – 同时按下Lshift+Rshift时按此键可以清空当前蓝牙绑定信息。仅清空当前设备,其余绑定设备不会清空。

重置键盘:I – 同时按下Lshift+Rshift时按此键可以重置键盘。重置键盘会清空所有的蓝牙绑定信息、自定义的配列、存储的键盘配置信息。

RGB灯效控制:调整颜色: A/S/D/F/C/V – 同时按下Lshift+Rshift时按A/S/D/F/C/V,分别是增加饱和度、降低饱和度、增加亮度、降低亮度、增加色调、降低色调。

RGB灯效控制:调整模式:Z – 同时按下Lshift+Rshift时按Z,循环灯效。

RGB灯效控制:开关RGB:X – 同时按下Lshift+Rshift时按X,切换RGB灯的开关。

PCB背部多功能按钮 – 背部按钮属于多功能按钮。键盘正常模式下,按下一秒后松手键盘关机;按下三秒后松手键盘进入DFU刷机模式;按下10秒后松手,键盘将重置。在断电状态,按下背部按钮不放,同时按下键盘第一行首个按键或最后一个按键,然后通电,将强制进入DFU模式。

如果要绑定并切换多设备,按以下步骤操作:

一、初次绑定

1、键盘上按下双Shift+Q,然后再按下双shift+R,在需要绑定键盘的设备上搜索蓝牙键盘,在搜索到相应蓝牙键盘名称后,将第一个设备绑定到键盘Q键上;

2、键盘上按下双Shift+W,然后再按下双shift+R,然后绑定第二个设备到键盘W键;;

3、键盘上按下双Shift+E,然后再按下双shift+R,然后绑定第三个设备到键盘E键;

4、通过双shift+Q/W/E进行输入设备的切换

二、更换绑定

其他说明

状态提示灯说明

GT系列蓝牙键盘状态灯一般为3颗,以Omega45为例:

img

如要更换某个设备的绑定,如要新绑定一个设备到W键上。
1、将W键绑定设备上的蓝牙键盘进行删除(如windows系统进入系统设备删除蓝牙键盘;Android系统进入设置-蓝牙后删除蓝牙键盘);

2、键盘上按下双Shift+W,切换到W设备;

3、然后键盘上再按下双shift+O,删除W上绑定的设备,绑定新的设备到键盘W键上;

相关参数的设定 – 考虑到耗电问题,正常键盘扫描按键输入为10ms一次,回报率为100Mhz;如果15秒不按键转入慢速扫描,100ms一次,当有按键按下,又自动转入正常扫描速度10ms一次;如果20分钟无按键行为将自动转入休眠模式,此时要重新启用键盘,只需要按任意键就可唤醒,唤醒动作后约1-2s可以正常输入。

在线编译

通过在线编辑,可以可视化配置按键配列、生成固件。

通过此网站 :lotkb.glab.online 或 访问导航中“在线编译” 。可以可视化修改按键,更改按键更加方便;可以更改一些参数设定,如自动休眠时间、RGB灯数量等。

LotKB采用的低功耗蓝牙:Bluetooth Low Energy,并且是5.0版本,可向下兼容蓝牙4.0,但不支持蓝牙3.0及以下。由于采用的较新的协议,需要较新的系统才能支持。如:
iOS 6以上;Android 4.3以上;Windows 8.1以上;Windows Phone 8.1;较新的MacOS。
除了操作系统以外,也需要硬件设备支持,至少要硬件设备支持蓝牙4.0以上才行。从时间上来说,可能要2011年以后的设备才能支持蓝牙4.0,也才可能使用此键盘的蓝牙功能

键盘使用说明

本页面最后修改时间2025-06-09

  • 本页面操作说明全系列键盘通用,所有内容基于最新版固件,如与当前键盘实际不符,建议升级固件
  • 更多键盘专有说明可以访问键盘产品信息页面

相关概念

开机

GT系列三模键盘PCB没有硬件电源开关,只需要接入电池或插入USB通电后,键盘就会自动开机。

软关机后,可以插入USB线 / 按击一下背部多功能按钮 / 按下旋钮中键 实现开机。

关机

按下背部多功能按钮1秒以上后(不超过3秒)松手 或 系统功能按键Lshift+Rshift+Backspace或~进入关机状态。

插入 USB 时,无法关机(关机后马上会被唤醒)。

自动睡眠

在一定时间不敲击按键后,键盘将自动进入睡眠模式以便省电。进入自动睡眠的时间可以自由设定。

自动睡眠后,按任意键可唤醒键盘重新工作。

插入 USB 后,由 USB 供电,自动睡眠功能不会启用,如处于睡眠状态也将自动唤醒。

手动睡眠

同时按下Lshift+Rshift+P可以手动进入睡眠模式

手动睡眠后,按任意键可唤醒键盘重新工作。

如果启用了唤醒按键功能,手动睡眠后唤醒时需要按Space+U才能唤醒键盘。

插入 USB 后,将直接唤醒键盘重新工作,并且无法手动睡眠。

蓝牙连接设备

如需通过 蓝牙连接 进行输入,确保键盘处于蓝牙连接模式,并完成 配对蓝牙设备 的过程。

2.4G连接设备

如需通过 2.4G无线 进行输入,确保键盘处于2.4G无线连接模式,将 2.4G接收器 插入设备的USB口,并完成2.4G接收器配对

USB 连接设备

直接将 USB 线缆插入到键盘的 USB 接口,键盘即自动切换至 USB 模式,使用 USB 输入。

2.4G接收器模式

将 USB 线缆插入到键盘的 USB 接口,将键盘2.4G无线模式切换至 2.4G接收模式,此时当前键盘可作为其他2.4G键盘的接收器使用。

有线 / 无线状态切换

同时按下Lshift+Rshift+M可以在USB / 无线 状态之间切换,如未插入USB线,此切换功能无效。

USB连接状态下,可通过Lshift+Rshift+Q/W/E直接跳转到对应蓝牙或2.4G通道。

省电模式

在没有接入 USB 电源的情况下,为提升续航,键盘处于省电模式。

在省电模式下,所有的指示灯仅在变化后亮起 5 秒,然后熄灭。键盘在无操作 15 秒后转入慢速扫描模式,无操作 600 秒后自动睡眠。(前述三个时间均支持通过配置工具自定义)

慢速扫描模式下,按键检测将可能略有延迟。在慢速扫描模式下按任意按键即可恢复到快速扫描模式。

自动睡眠后,按下键盘的任意按键可唤醒键盘。

电量显示

电量百分比仅供参考

由于测量数据是根据电压估算,显示电量和实际可能存在误差,损耗较大的电池电量百分比可能无法达到 100%。

在新版本的 iOS、安卓和 Windows 上,应该能够正常的显示蓝牙设备的电量百分比。

对于安卓手机,如果没有正常的显示电量,可以尝试下载 BatON 软件来获取蓝牙设备电量。

如USB与2.4G无线连接状态,或其他无法显示电量的情况,可以通过Lshift+Rshift+H输出电量

通过Lshift+Rshift+H输出电量时,N代表未能检测到数值,F代表电池电量满,数值代表电量百分比。

新版固件支持通过键盘控制面板显示电量

全键无冲(NKRO)

此键盘支持 NKRO(全键无冲)模式。USB、蓝牙、2.4G模式均支持全键无冲模式。

唤醒按键

启用唤醒按键功能后,手动睡眠后唤醒需按Space+U唤醒键盘。
自动睡眠时,不需要按唤醒按键,可任意键唤醒。

默认不启用唤醒按键功能,可通过Lshift+Rshift+I启用或禁用。

DFU 模式

说明

采用nRF52810/nRF52811芯片的键盘,由于空间不足不支持DFU模式,请采用线刷方式更新固件

DFU模式为键盘内置的蓝牙刷机模式,在通过手机nRF Connect程序升级时,必须确保在蓝牙通讯模式,并进入DFU模式。

同时按下Lshift+Rshift+B可以重启到DFU刷机模式。也可长按PCB背部多功能按钮4秒以上后(不超过9秒)松手重启到DFU刷机模式。

USB ISP 模式

USB ISP 模式为USB芯片的烧录模式,在更新USB固件时需要先进入USB ISP模式。

短接PCB背部K1位置两个焊盘,并插入USB线可手动进入USP ISP模式;

用烧录工具烧录USB固件时,烧录工具会自动跳转USB ISP模式,无需手动短接K1。

键盘控制面板

键盘控制面板是一个网页应用程序,可通过网页程序控制键盘的各种功能。

包括获取键盘各种信息、控制键盘功能、更改灯光和层级、更改输出模式等。

键盘需2024年12月7日后固件支持接入键盘控制面板,接收器需2025年1月4日后固件支持接入键盘控制面板。

键盘控制面板支持作为网页程序进行安装,安装后支持离线使用。

轴灯版PCB

轴灯版PCB采用键盘主控直接驱动RGB灯,所以无复杂灯效,仅有单色常亮、单色呼吸和彩虹循环,可手动调色,可视为单色轴灯的增强版本。

轴灯分为轴灯模式和指示灯模式,出厂默认为指示灯模式,可通过Lshift+Rshift+L 或 通过配置工具设置一颗状态灯开关按键 在指示灯模式和轴灯模式之间切换。

指示灯模式时,不可控制,以不同颜色指示不同状态,详细参考 状态提示灯说明

要控制轴灯,请先切换到轴灯模式。轴灯模式时,采用Lshift+Rshift+Z X C V等RGB控制功能调整轴灯。

RGB轴灯版PCB

RGB轴灯版PCB采用WS2812 RGB灯,支持各种丰富绚丽的灯效(同QMK灯效),支持键盘状态指示灯、USB与蓝牙状态指示灯。

可采用Lshift+Rshift+Z X C V等RGB控制功能调整RGB轴灯。

或 接入配置工具,找到 灯光 功能,将RGB阵列相关按键设定到你指定的按键上控制RGB灯光。

RGB轴灯同时兼容指示灯,指示灯可通过配置工具设置一颗状态灯开关按键进行开关

指示灯支持独立运行,建议在使用电池时,关闭RGB轴灯,开启指示灯,指示灯将可自动关闭节能

系统功能按键说明

特别提示
  • 默认采用Lshift+Rshift做为功能键触发按键
  • 可以通过自行编译固件使用Lctrl+Rctrl  Win+ESC等做为触发按键。
  • 更改后下表所列功能按键需做相应调整,如触发按键更改为Win+ESC,则按下Win+ESC+P为睡眠。
  • 系统功能按键为内置功能,不因修改了按键而消失,只要您确保LShift/RShift等功能触发按键存在即可使用
  • PAD数字键盘等较少按键的键盘,没有Shift等按键,下列系统功能可以通过配置工具-层级/功能-键盘功能进行设定。
  • 新版固件也支持通过键盘控制面板控制各种系统功能
功能 按键 功能说明
睡眠 Lshift+Rshift+P 手动进入睡眠模式,按任意键可以唤醒。
关机 Lshift+Rshift+~或Backspace 手动进入关机模式。新版固件将ESC更换成了Backspace。 关机后需要插入USB线 或 短按背部多功能按钮开机。 长期不用或携带外出建议关机。
重启 Lshift+Rshift+N 手动重启键盘,用于遇到部分故障后重启修正。
有线/无线状态切换 Lshift+Rshift+M 在USB有线和无线同时工作时,可以切换有线/无线连接模式。 如未同时使用USB有线和无线,按键无效。
无线模式切换 Lshift+Rshift+U 在键盘支持BLE5.0与2.4G无线两种无线模式时,在两种模式之间切换。
无线收发模式切换 Lshift+Rshift+J 最新固件中,当处于2.4G无线模式时,可在2.4G接收 [接收器] 和2.4G发送 [键盘] 两种2.4G无线模式之间切换。
切换蓝牙设备/无线接收器 Lshift+Rshift+Q/W/E 可以在已配对的蓝牙设备/无线接收器之间进行切换,Q/W/E代表不同蓝牙连接通道/无线接收器
重启蓝牙广播 2.4G无线配对 Lshift+Rshift+R 蓝牙模式:重新开启蓝牙广播,用于手动进行连接或切换设备后配对。 2.4G无线模式:发起配对通讯,与2.4G接收器进行配对。
进入DFU Lshift+Rshift+B 重启到DFU刷机模式。 也可长按PCB背部多功能按钮4秒以上后松手重启到DFU刷机模式。
清空当前配对 Lshift+Rshift+O 蓝牙模式:清空当前蓝牙设备配对信息。仅清空当前设备,其余配对设备不会清空。 2.4G无线模式:解除与当前2.4G接收器的配对
输出电量 Lshift+Rshift+H 通过键盘输出当前键盘剩余电量。输出N为检测未稳定,F为满电,数字为电量百分比。
状态灯开关 Lshift+Rshift+L 无轴灯PCB/RGB轴灯PCB:开启或关闭状态指示灯显示(注:不包括键盘大小写等)。 轴灯版PCB:使轴灯在轴灯模式和指示灯模式之间切换
多功能按钮 PCB背部按钮属于多功能按钮。 键盘正常模式下,按下1秒以上后(不超过3秒)松手键盘关机; 按下4秒以上后(不超过9秒)松手键盘进入DFU刷机模式; 按下10秒以上后松手,键盘将重置。 关机状态短按一下开机。
唤醒按键 Space+U 启用唤醒按键功能后,手动睡眠后唤醒需按Space+U唤醒键盘。 自动睡眠时,不需要按唤醒按键,可任意键唤醒。
切换唤醒按键 Lshift+Rshift+I 启用或禁用唤醒按键功能。 启用唤醒按键功能后,手动睡眠后唤醒需按Space+U唤醒键盘
切换默认层 Lshift+Rshift+数字键 Lshift+Rshift+1切换默认层到第2层。 Lshift+Rshift+0切换默认层到第1层。 睡眠或关机后唤醒自动恢复第1层为默认层
RGB调整颜色 A/S/D/F/C/V 轴灯版(轴灯模式下)为控制轴灯;非轴灯版为控制底灯 同时按下Lshift+Rshift时按A/S/D/F/C/V, 分别是增加饱和度、降低饱和度、增加亮度、降低亮度、增加色调、降低色调。
RGB灯效循环 Lshift+Rshift+Z RGB轴灯版为控制RGB轴灯在灯效之间循环 轴灯版(轴灯模式下)为控制轴灯在常亮、呼吸、多彩变换之间循环 非轴灯版为控制底灯在32种灯效之间循环
RGB灯开关 Lshift+Rshift+X RGB轴灯版为RGB轴灯开关 轴灯版(轴灯模式下)为轴灯开关 非轴灯版为RGB底灯开关

配对蓝牙设备

初次配对

  1. 键盘上按下Lshift+Rshift+Q,切换到蓝牙通道1️⃣,然后再按下Lshift+Rshift+R开启广播;
  2. 在需要连接键盘的设备上搜索蓝牙键盘,搜索到相应蓝牙键盘名称后,将第一个设备配对到键盘蓝牙通道1️⃣(Q键);
    • 各个操作系统 配对蓝牙键盘 的方式请自行搜索相关文档
    • 如果仅有一个蓝牙设备,可以配对到任意蓝牙通道,但是建议配对到蓝牙1️⃣
    • 如不需要多设备切换,可不再配对设备到蓝牙通道2️⃣和蓝牙通道3️⃣
  3. 键盘上按下Lshift+Rshift+W,切换到蓝牙通道2️⃣,然后再按下Lshift+Rshift+R开启广播,再配对第二个设备到键盘蓝牙通道2️⃣(W键 );
  4. 键盘上按下Lshift+Rshift+E,切换到蓝牙通道3️⃣,然后再按下Lshift+Rshift+R开启广播,再配对第三个设备到键盘蓝牙通道3️⃣(E键 );
  5. 通过Lshift+Rshift+Q/W/E切换到不同的蓝牙通道,可在多个配对设备之间切换。

更换配对

如需更换某个设备的配对,例:要重新配对一个设备到蓝牙通道2️⃣(W键 )。

  1. 将W键配对的设备上的蓝牙键盘进行删除(如windows系统进入系统设备删除蓝牙键盘;Android系统进入设置-蓝牙后删除蓝牙键盘);
  2. 键盘上按下Lshift+Rshift+W,切换到蓝牙通道2️⃣;
  3. 键盘上再按下Lshift+Rshift+O,删除蓝牙通道2️⃣配对的设备;
  4. 如有必要,按下Lshift+Rshift+R开启广播;
  5. 在需要配对键盘的设备上搜索蓝牙键盘,搜索到相应蓝牙键盘名称后,将新的设备配对到键盘蓝牙通道2️⃣(W键 );

Tip

上述切换蓝牙通道及删除配对设备等,也可通过BT 1 / BT 2 / BT 3 / 无线 解除配对 等按键进行操作

采用BT 1 / BT 2 / BT 3按键切换蓝牙通道后,需要按下无线 广播配对手动开启蓝牙广播

2.4G接收器配对

  1. 将接收器插入电脑USB口通电
  2. 按下Lshift+Rshift+U 将键盘切换到2.4G无线模式
  3. 键盘未配对:可多次按下Lshift+Rshift+R启动配对通讯,直到正确连接输出按键
  4. 键盘已配对:按下Lshift+Rshift+O删除配对信息,可多次按下Lshift+Rshift+R启动配对通讯,直到正确连接输出按键
  5. 配对多个接收器:按下Lshift+Rshift+Q/W/E切换不同的无线通道,然后重复执行2-4三个步骤完成与不同接收器的配对
  6. 通过Lshift+Rshift+Q/W/E切换到不同的无线通道,可在多个配对的无线接收器之间切换。
  7. 如PAD等小键盘,无Lshift、Rshift,可通过配置工具配置切换 无线模式/无线 广播配对/无线 解除配对/BT 1 / BT 2 / BT 3按键,或通过键盘控制面板,启动配对通讯、删除配对信息、切换无线接收器

Tip

配对前请确保键盘固件更新到支持三模固件的版本,并确保接收器和键盘的固件版本对应。

状态提示灯说明

GT系列无线键盘无灯版指示灯一般为3颗,每个键盘指示灯的位置稍有不同,但是指示逻辑基本一致:

  • 蓝色灯-蓝牙连接成功、蓝牙输出
  • 绿色灯-USB输出
  • 红色灯-2.4G无线输出
  • 蓝色指示灯闪烁-蓝牙通道1️⃣广播中
  • 绿色指示灯闪烁-蓝牙通道2️⃣广播中
  • 红色指示灯闪烁-蓝牙通道3️⃣广播中
  • USB连接状态下,状态灯常亮
  • 蓝牙连接状态下,指示灯5秒后自动熄灭(可自定义常亮时长)
  • 蓝牙广播时闪烁30秒后未连接自动熄灭。

GT系列无线键盘单色RGB轴灯版默认采用轴灯作为指示,不同颜色代表不同状态:

  • 蓝色-蓝牙连接成功、蓝牙输出
  • 绿色-USB输出
  • 青色-2.4G无线输出
  • 粉色-蓝牙通道1️⃣广播中
  • 黄色-蓝牙通道2️⃣广播中
  • 红色-蓝牙通道3️⃣广播中
  • USB连接状态下,状态灯常亮
  • 蓝牙连接状态下,指示灯5秒后自动熄灭(可自定义常亮时长)
  • 蓝牙广播30秒后未连接自动熄灭。

GT系列无线键盘炫彩RGB轴灯版默认采用某颗轴灯作为指示,不同颜色代表不同状态:

  • 绿色-USB输出
  • 蓝色-蓝牙通道1️⃣输出
  • 红色-蓝牙通道2️⃣输出
  • 橙色-蓝牙通道3️⃣输出
  • 青色-2.4G无线1️⃣输出
  • 紫色-2.4G无线2️⃣输出
  • 粉色-2.4G无线3️⃣输出
  • 黄色-2.4G无线接收器接收模式启用
  • 指示灯可通过配置工具设置一颗状态灯开关按键进行开关
  • 指示灯支持独立运行,建议在使用电池时,关闭RGB轴灯,开启指示灯,指示灯将可自动关闭节能

关于充电

  • PCB自带锂电池充电功能,可通过USB连线进行充电。
  • 可插入电脑USB口充电,也可插入5V电源适配器充电。
  • 最常见的5V电源适配器就是手机充电头,但是不建议采用快充头进行充电,因为快充头支持9V/12V等较高电压输出,可能导致烧毁PCB。
  • 锂电池充电电流最大支持400mah左右(老版200mah),1000mah电池大概需要3小时左右能充满。

关于续航

  • 无轴灯版本,1000mah电池可使用约90天(每日8小时)
  • 新版带编码器与RGB矩阵灯的版本,1000mah电池可使用约80天(每日8小时)1
  • RGB轴灯耗电量非常大,开启轴灯后1000mah电池可使用仅约5天。2
  • 具体续航时间因硬件及使用环境等差异而不同,如电池实际容量(排除虚标)大小及损耗情况,无线信号强度等均对续航有影响

硬件运作方式

硬件上采用nRF52系列芯片+CH55x芯片协同实现的USB、蓝牙、2.4G无线功能

  • nRF52系列芯片当前支持nRF52810/nRF52811/nRF52832三款芯片
  • CH55x芯片主要使用CH552T或CH554T,也支持同系列的CH552G等芯片
  • nRF52主要负责 运行键盘主控程序、蓝牙通讯、2.4G通讯、灯光控制,是主功能芯片。
  • CH55x主要负责 USB通讯,包括转发nRF52数据到USB主机,转发配置数据到nRF52,烧录nRF52芯片固件

本页面最后修改时间2025-06-09

本页面操作说明全系列键盘通用,所有内容基于最新版固件,如与当前键盘实际不符,建议升级固件 更多键盘专有说明可以访问键盘产品信息页面

l

vim快捷键

行跳转快捷键

  • 文件行跳转
    • gg: 跳转到文件第一行。
    • G(Shift+g) : 跳转到文件最后一行。
    • nG(如10G) : 跳转到第n行。
    • :n(如:10+ 回车) : 跳转到第𝑛行。
    • H/ M/L : 跳转到当前屏幕的最高行(High)、中间行(Middle)、最低行(Low)。
  • 行内跳转
    • 0(数字零) : 跳转到当前行行首。
    • ^(Shift+6) : 跳转到当前行第一个非空字符。
    • $(Shift+4) : 跳转到当前行行尾。
  • 其他
    • Ctrl+o: 返回到跳转前的位置。
    • %: 跳转到与之匹配的括号行

vim-multiple-cursors插件快捷键

vim-multiple-cursors插件在Vim 中实现了类似Sublime Text/VS Code 的多光标编辑功能。核心在于使用Ctrl-n选择下一个匹配项,Ctrl-p跳回上一个,Ctrl-x跳过当前项。进入多光标模式后,可使用c(修改)、I(行首插入)、A(行尾插入) 等命令批量编辑。

核心快捷键(Normal/Visual 模式)

  • <C-n>(Ctrl+n) : 启动多光标模式并选择当前光标下的单词,或选择下一个匹配项。
  • <C-p>(Ctrl+p) : 移除上一个光标,撤销上一次的Ctrl-n操作。
  • <C-x>(Ctrl+x) : 跳过当前匹配的单词。
  • <C-g>(Ctrl+g) : 退出多光标模式,返回到单个光标。

使用流程

  1. 移动光标到想要修改的单词上。
  2. 按下<C-n>选中该单词。
  3. 继续按下<C-n>选中接下来的匹配项。
  4. 按下c(修改), i(插入), a(追加) 等模式键进入编辑模式。
  5. 输入新内容(所有光标处会同步修改)。
  6. 按下<Esc>退出多光标编辑模式。

可视模式(Visual Mode)使用

在可视模式下选中一段文本,然后按<C-n>,该插件会在选中的每一行行尾添加光标,方便批量操作。

常见问题与技巧

  • 退出: 如果选错了,使用<C-g>取消。
  • 兼容性: 建议将默认的<C-n>映射为其他键,以防与插件快捷键冲突。
  • 适用场景: 批量修改变量名、在多行开头添加注释符、快速格式化数据。

在 Vim 中使用 NERDTree 时,切换焦点的常用方法有:

1. 标准切换方法

  • Ctrl + w + w:在所有窗口间循环切换
  • Ctrl + w + h/j/k/l:向左/下/上/右切换窗口

2. 从 NERDTree 直接返回原文件

  • t:在新标签页打开文件(NERDTree 中)
  • T:在后台标签页打开文件
  • i:在水平分割窗口中打开
  • s:在垂直分割窗口中打开

3. 快速切换回原窗口

如果 NERDTree 在左侧,当前编辑文件在右侧:

  • Ctrl + w + l:从 NERDTree 切换到右侧窗口

4. NERDTree 特定命令

  • q:关闭 NERDTree 窗口
  • 重新打开::NERDTreeToggle:NERDTreeFocus

5. 我的常用配置(在 .vimrc 中)

vimrc

1
2
3
4
" 使用 Ctrl+n 切换 NERDTree
map <C-n> :NERDTreeToggle<CR>
" 自动切换焦点到文件
let NERDTreeQuitOnOpen = 1 " 打开文件后自动关闭 NERDTree

最简单的方式:直接按 Ctrl + w + w 即可在 NERDTree 和编辑窗口间切换。

l

Navidrome、Audiobookshelf 客户端推荐【自测】

https://makifx.com/boutique-software)

本人自建 音乐服(音海拾贝)| 有声书服(悦耳声阅)

群组链接:https://t.me/yinhai_chat

通知频道:https://t.me/yinhai_notify

【悦耳声阅】有声书分享频道:https://t.me/YueErFM

# Navidrome(音乐)

## IOS

DS Cloud
https://apps.apple.com/app/id6476057278

维克音乐

https://apps.apple.com/us/app/offline-music-player-wake/id6544783918?platform=iphone

LMP

https://apps.apple.com/us/app/lmp-a-better-music-player/id6451009326

音流
https://github.com/gitbobobo/StreamMusic

箭头音乐
https://cn.amcfy.com

Cinetry

https://github.com/gstory0404/Cinetry

LMP 音乐{TF}

https://testflight.apple.com/join/H0qG853j

## mac

DS Cloud
https://apps.apple.com/app/id6476057278

维克音乐

https://apps.apple.com/us/app/offline-music-player-wake/id6544783918?platform=iphone

FeiShin

https://github.com/jeffvli/feishin

Pure Music (棉花音乐)

https://github.com/pure-music/PureMusic/releases

Cinetry

https://github.com/gstory0404/Cinetry

## APTV

DS Cloud
https://apps.apple.com/app/id6476057278

维克音乐

https://apps.apple.com/us/app/offline-music-player-wake/id6544783918?platform=iphone

LMP

https://apps.apple.com/us/app/lmp-a-better-music-player/id6451009326

## Windows

FeiShin

https://github.com/jeffvli/feishin

音流
https://github.com/gitbobobo/StreamMusic

Pure Music (棉花音乐)

https://github.com/pure-music/PureMusic/releases

Cinetry

https://github.com/gstory0404/Cinetry

## Android

DS One(DS Cloud)

https://play.google.com/store/apps/details?id=com.cz.player.dsone

音流
https://github.com/gitbobobo/StreamMusic

tempus

https://github.com/eddyizm/tempus

tempo

https://github.com/CappielloAntonio/tempo/releases

箭头音乐
https://cn.amcfy.com

Cinetry

https://github.com/gstory0404/Cinetry

Symfonium

https://symfonium.app/

Pure Music (棉花音乐)

https://github.com/pure-music/PureMusic/releases

Musicfree(需配合插件使用)
https://github.com/CTZZG/MusicFree/releases 插件地址:

1
2
3
4
5
https://gitee.com/Rrance/WP/raw/master/音海拾贝.js




## Android TV

音流
https://github.com/gitbobobo/StreamMusic

Symfonium

https://symfonium.app/

Pure Music (棉花音乐)

https://github.com/pure-music/PureMusic/releases

## Linux

FeiShin

https://github.com/jeffvli/feishin

Pure Music (棉花音乐)

https://github.com/pure-music/PureMusic/releases

Cinetry

https://github.com/gstory0404/Cinetry

# Audiobookshelf(有声书)

##IOS 端

Audiobookshelf:
https://testflight.apple.com/join/wiic7QIW

Tonspur:

https://testflight.apple.com/join/E92V6bRM

Prologue:

https://testflight.apple.com/join/zTWS6ahB

Cinetry

https://github.com/gstory0404/Cinetry

希声:
https://apps.apple.com/cn/app/%E5%B8%8C%E5%A3%B0-%E4%B8%BA-audiobookshelf-%E6%89%93%E9%80%A0/id6754208326

AudioBooth:

https://testflight.apple.com/join/cAG6dVeN

dscloud:
https://apps.apple.com/app/id6476057278

SoundLeaf:
https://github.com/SoundLeaf/SoundLeafApp

ShelfPlayer:
https://apps.apple.com/us/app/shelfplayer/id6475221163

## 安卓

audiobookshelf:
https://play.google.com/store/apps/details?id=com.audiobookshelf.app

DS One(DS Cloud)

https://play.google.com/store/apps/details?id=com.cz.player.dsone

Cinetry

https://github.com/gstory0404/Cinetry

Lissen:
https://github.com/GrakovNe/lissen-android

LitLyric:
https://github.com/shane9b3/LitLyric---Beta

Kitzi:
https://github.com/bennybar/kitzi_abs_player

Buchable:
https://github.com/Vito0912/abs_flutter

## Windows

musicfree(需配合插件使用):

https://github.com/CTZZG/MusicFreeDesktop-1/releases

插件地址:

1
2
3
4
5
https://gitee.com/Rrance/WP/raw/master/audiobookshelf.js




Cinetry

https://github.com/gstory0404/Cinetry

Buchable:
https://github.com/Vito0912/abs_flutter

## MAC

Cinetry

https://github.com/gstory0404/Cinetry

希声:
https://apps.apple.com/cn/app/%E5%B8%8C%E5%A3%B0-%E4%B8%BA-audiobookshelf-%E6%89%93%E9%80%A0/id6754208326

l

WindowsPE和MacOS安装盘二合一制作方法

一、准备U盘

准备一个U盘,安装包一般大小都在12G以上,所以建议至少16G,或者直接使用移动硬盘。

插入U盘,打开Mac的磁盘工具

选择U盘-抹掉

  • 名称:随意

  • 格式:格式Mac OS扩展(日志式)

  • 方案:GUID分区图

notion image

抹掉完成之后,再对U盘进行分区用于制作Mac OS安装盘,点击+号,增加新的分区

分区信息:

  • 名称:UOS

  • 格式:Mac OS扩展(日志式)

  • 大小:必须大于你的安装包,我这里直接分了16G

新增分区之后,就可以准备制作Mac OS安装盘了。

二、制作Mac OS安装盘

下载好的Mac OS安装包默认放在应用程序中按照一下方式进行安装盘制作:

  1. 敲“sudo”(无引号)
  2. 空格
  3. 拖拽文件“createinstallmedia”到终端(文件位置在“安装macOS Ventura.app”-右键-显示包文件-Contents-Resources里)
  4. 敲“--volume”(无引号)
  5. 空格
  6. 从桌面把你之前插入的U盘的图标拖进终端(我这里U盘名字为UOS)
  7. 敲“--nointeraction”(无引号)
  8. 回车
  9. 输入密码(密码不显示)
  10. 回车,静待安装盘建立完成。

以上步骤综合为这么一串代码,请根据自己系统版本和U盘名字对应修改:

1
sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/UOS --nointeraction

整个制作过程如下,到最后显示出这个就表示安装盘制作完成。

1
2
3
4
5
6
7
8
sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/Install\ macOS\ Ventura --nointeraction
Password:
Erasing disk: 0%... 10%... 20%... 30%... 100%
Copying essential files...
Copying the macOS RecoveryOS...
Making disk bootable...
Copying to disk: 0%... 10%... 20%... 30%... 40%... 50%... 60%... 70%... 80%... 90%... 100%
Install media now available at "/Volumes/Install macOS Ventura"

到这里,如果你的引导没有屏蔽多余的启动项,在启动中已经可以看到这个安装盘了,选择既可以使用。

三、加入黑苹果EFI

安装盘制作完成之后,为了可以以后将U盘作为启动盘从BIOS的启动界面启动安装盘,就需要将自己配置好的引导文件EFI文件放到EFI分区中。

使用工具挂载EFI分区,比如用OpenCore Configurator 或者Hackintool 或者 OCAuxiliaryTools都可以,挂载U盘的EFI分区之后,将自己的配置好的EFI文件放进去,就成为了自己黑苹果的专用安装盘了。

那如果需要用于不同的机器来安装黑苹果,或者调试的时候修改EFI文件,总是需要挂载EFI分区,就比较麻烦了。

我们可以在引导分区之外,新建一个公开的引导分区。

打开磁盘工具,选择U盘,点分区,选择之前制作Mac OS安装盘剩下没有使用的部分,点+号,增加新的分区。

分区信息:

  • 名称:MAC_EFI(随意,不能有中文)

  • 格式:MS-DOS (FAT32)

  • 大小:1G(引导文件很小,一般大于200M即可)

notion image

这个新建的引导分区同样也可以放黑苹果的EFI引导文件,而且是无需挂载的,适合频繁修改调试引导配置和更换文件。

四、制作Windows PE

按照上面的方式同样新增一个分区

分区信息:

  • 名称:WINPE(随意,同样不能有中文)

  • 格式:MS-DOS (FAT32)

  • 大小:大于你的PE文件

新增分区完成之后,这里就需要一个支持UEFI启动的WinPE,一般PE主流格式都是exe格式,不符合我们的需要,所以需要在Window系统下先将PE制作成iso文件。

这里推荐老毛桃PE,功能比较多,可以联网,适合大多数PE需求。

然后在Mac下,打开iso文件,将里面的文件复制到新增的WINPE分区中。

结束

这样,一个Mac OS的安装盘和PE盘二合一的U盘就制作好了,剩下还有多余空间,可以当做正常存储U盘使用。

l

将威联通NAS的目录通过NFS共享,并挂载到内网Docker宿主机,作为容器目录使用

核心思路

先将远程内网主机的共享目录挂载到 Docker 宿主机的一个本地目录上,然后再将这个本地目录作为数据卷(Volume)或绑定挂载(Bind Mount)提供给 Docker 容器使用。

1
2
3
4
5
6
7
8
9
10
[ 内网共享主机 (NAS/Samba Server) ]
|
| (网络共享协议,如 NFS/SMB)
|
[Docker 宿主机 ]
| (本地文件系统挂载点,如 /mnt/nas/downloads)
|
| (Docker 卷或绑定挂载)
|
[ Docker 容器 (如 Transmission, qBittorrent) ]

威联通nas开启NFS共享

因为我的内网装有qBittorrent 的docker宿主机是基于ubuntu的服务器,所以推荐使用NFS。NFS 在 Linux 环境下性能好,开销低,是首选方案。如果docker宿主机是 Windows ,或启用了NAS的 Samba服务,这种方法更合适。

创建共享目录

威联通依次打开控制台⇨权限⇨共享目录⇨创建⇨共享文件夹

填写共享目录名称pt,记住文件夹名称,之后会用到。然后手动输入共享文件夹的路径,点击创建。

激活威联通nas的nfs功能

威联通依次打开控制台⇨网络和文件服务⇨Win/Mac/NFS⇨NFS服务

激活NFS v4服务和启用manage-gids,关闭写入高速缓存。

  • 启用最新的 NFS 主要版本v4:v4 在安全性(强认证)、性能(复合操作)和跨防火墙友好性(固定端口)方面有显著改进。
  • 启用manage-gids:对于 Docker 挂载场景,这可以极大地简化容器内用户(如 PUID=1000, PGID=1000)对挂载目录的读写权限管理,避免出现 “Permission denied” 错误。
  • 关闭写入高速缓存:对于 Docker 挂载,如果共享目录中存储的是重要的、不可再生的数据(如文档、数据库、个人文件),为了数据安全,建议停用。如果存储的是可以重新下载的缓存、临时文件或可丢弃的数据,可以启用以获得更好性能。

设置共享文件夹权限

创建完的共享文件夹,会在这里显示。点击图中按钮,编辑共享文件夹权限。

依次选择⇨选择权限类别:NFS主机访问⇨勾选访问权限⇨设置访问的IP地址或域名。

主机ip:192.168.60.0/24CIDR(无类别域间路由) 的表示方法,它表示了一个包含256个IP地址的网络段,范围从192.168.60.0 到 192.168.60.255。。

Squash:选择读写。需要docker宿主机能够读写共享目录。

Squash选项:选择不Squash所有用户。

内网docker宿主机设置

创建挂载目录/mnt/nas/downloads

1
sudo mkdir /mnt/nas/downloads

挂载在目录,192.168.50.218:/pt

1
sudo mount -t nfs4 -o rw,hard,intr,timeo=300,retrans=3 192.168.50.218:/pt /mnt/nas/downloads

参数解释

  • hard:在 NFS 服务器故障时,程序会一直等待直到服务器恢复,保证数据一致性。
  • intr:允许用户中断正在等待的 NFS 操作。
  • timeo=300:设置超时时间为十分之300秒(即30秒)。
  • retrans=3:设置重传次数为3次。

开机自动挂载

编辑 /etc/fstab文件,sudo vim /etc/fstab

1
2
# 在 /etc/fstab 末尾添加
192.168.50.218:/pt /mnt/nas/downloads nfs4 rw,hard,intr,timeo=300,retrans=3,_netdev,auto 0 0

注意_netdev 选项非常重要,它告诉系统在网络就绪后再挂载。

整体含义

将位于 IP 地址为 192.168.50.218 的服务器上的共享目录 /pt,通过网络文件系统版本 4 挂载到本地目录 /mnt/nas/downloads


参数解释

该配置行由 6 个字段组成,字段间用空格或制表符分隔:

  1. 192.168.50.218:/pt
    • 含义:NFS 服务器和它提供的共享路径。
    • 192.168.50.218:NFS 服务器的 IP 地址。
    • :/pt:服务器上被共享出来的目录路径。
  2. /mnt/nas/downloads
    • 含义挂载点。这是本地的一个空目录,远程共享的内容将出现在这个目录里。
  3. nfs4
    • 含义:文件系统类型。这里指定使用 NFS 版本 4
  4. rw,hard,intr,timeo=300,retrans=3,_netdev,auto
    • 含义:挂载选项,多个选项用逗号分隔。
    • rw:以读写模式挂载(而非只读 ro)。
    • hard硬挂载。如果服务器无响应,客户端会持续重试。这对于保证数据一致性非常重要,但可能导致进程在访问挂载点时卡住。
    • intr:允许中断正在等待服务器响应的 I/O 操作。当使用 hard 挂载时,如果服务器宕机,可以用这个选项来终止被挂起的进程。
    • timeo=300:设置超时时间为 300 十分之一秒(即 30 秒)。这是客户端等待服务器响应的时间。
    • retrans=3:在放弃并返回错误之前,进行 3 次 重传。
    • _netdev:这是一个非常重要的选项,它告诉系统这是一个网络设备。系统会等待网络就绪后再尝试挂载,避免系统启动时因网络未准备好而挂载失败。
    • auto:使用 mount -a 命令(通常在系统启动时执行)时会自动挂载此文件系统。
  5. 0
    • 含义:供 dump 备份工具使用。0 表示不需要被 dump 备份。
  6. 0
    • 含义:供 fsck 磁盘检查工具使用。0 表示在启动时不需要检查此文件系统(因为它是网络文件系统,不在本地磁盘上)。

docker宿主机运行qbittorrent容器,并挂载共享目录

1
2
3
4
5
6
7
8
9
10
docker run -d \
--name=qbittorrent \
-e PUID=$(id -u) \
-e PGID=$(id -g) \
-e TZ=Asia/Shanghai \
--net=host \
-v ~/software/docker/qbittorrent/config:/config \
-v /mnt/nas/downloads/qbittorrent/downloads:/downloads \
--restart unless-stopped \
lscr.io/linuxserver/qbittorrent:latest

qbittorrent默认端口8080,可在config目录里的qbittorrent.conf配置文件修改。

l

安装OpenVpn的Ubuntu22.04服务端和Windows10客户端

®
本文将在Ubuntu22.04服务器安装OpenVpn服务端,并在配置OpenVpn客户端ovpn文件。

安装OpenVpn和Easy-RSA

Easy-RSA主要用来生成CA证书,服务端证书和key,客户端证书和key。先登录Ubuntu服务器,然后用root身份执行下文的命令。

1
2
3
4
5
6
sudo apt update
sudo apt install openvpn easy-rsa

# 安装完可以查看下openvpn版本
openvpn --version
# 我的是OpenVPN 2.4.12版本

制作所需的证书

执行如下命令

1
2
3
4
5
6
7
8
9
10
cd /usr/share/easy-rsa

# 拷贝一份vars文件
cp vars.example vars

# 编辑vars文件
vim vars

# 在最后一行添加如下内容,这个 KEY_NAME 下文会用到,请记住
export KEY_NAME="myserver"

开始制作证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 执行完这个命令,会在/usr/share/easy-rsa下多出个pki目录
./easyrsa init-pki
chmod 777 pki

# 创建ca证书,此时在pki目录下会多出 ca.crt
./easyrsa build-ca nopass

# 创建服务端证书,命令中的myserver要换成前面vars文件中设置的KEY_NAME
# 此时,pki下的issued和private目录会多出myserver.crt、myserver.key 等文件
./easyrsa build-server-full myserver nopass

# 创建客户端证书
# 再次查看,pki下的issued和private目录会多出myclient.crt、myclient.key 等文件
./easyrsa build-client-full myclient nopass

# 创建DH密钥
./easyrsa gen-dh

配置OpenVpn服务端

拷贝配置文件

1
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

拷贝刚才创建的CA证书,服务端证书和key(私钥),客户端证书和key,以及创建tls的key

1
2
3
4
5
6
7
8
9
10
cd /etc/openvpn/
cp /usr/share/easy-rsa/pki/ca.crt .
cp /usr/share/easy-rsa/pki/dh.pem .
cp /usr/share/easy-rsa/pki/issued/myserver.crt server/
cp /usr/share/easy-rsa/pki/private/myserver.key server/
cp /usr/share/easy-rsa/pki/issued/myclient.crt client/
cp /usr/share/easy-rsa/pki/private/myclient.key client/

# 生成tls需要的key
openvpn --genkey tls-auth ta.key

编辑服务端配置文件server.conf,改成如下内容,安全起见我把默认端口1194,改成了11000:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# vpn服务端口
port 11000

# 使用tcp协议
proto tcp

# vpn使用的虚拟网卡设备
dev tun

# CA以及证书和私钥
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server/myserver.crt
key /etc/openvpn/server/myserver.key # This file should be kept secret
dh /etc/openvpn/dh.pem

# vpn服务端要给客户端分配的IP地址(以及网段)
server 10.8.100.0 255.255.255.0

ifconfig-pool-persist /var/log/openvpn/ipp.txt

# vpn服务端要帮客户端转发的网段(即192.168.50.0/255.255.255.254这些地址,才会经过vpn)
# 代表 vpn 转发 192.168.50.1 - 192.168.50.254的请求
push "route 192.168.50.0 255.255.255.0"

# 让客户端使用下面的dns服务器
push "dhcp-option DNS 114.114.114.114"
push "dhcp-option DNS 8.8.8.8"

# 客户端之间可以互相访问
client-to-client

# 支持多个客户端连接服务端
duplicate-cn
keepalive 10 120

# 开启tls安全,上文的ta.key就用在这里
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC

# 启用lzo压缩
comp-lzo

# 运行最多30个客户端连接
max-clients 30

# 持久key和tun设备
persist-key
persist-tun

status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log

# 记录的日期等级为3
verb 3

启动vpn服务端

1
2
3
4
5
systemctl start openvpn@server
systemctl status openvpn@server

# 感兴趣的话,可以查看日志
tail -f /var/log/openvpn/openvpn.log

如果你的Ubuntu系统是云服务器,通常管理后台可以设置防火墙,建议在Ubuntu关闭ufw:

1
2
3
4
5
# 停止ufw
sudo ufw disable
# 禁用ufw
sudo systemctl stop ufw
sudo systemctl disable ufw

设置IP转发

如果你搭建的VPN服务器所在的内网还有其他云服务器,你想访问其他云服务器就应该设置ip转发。就如上文描述的,我们在VPN服务端配置文件server.conf中配置了 push "route 192.168.0.0 255.255.255.224"

打开内核ip转发:

1
2
3
4
5
6
7
8
# 编辑文件/etc/sysctl.conf
vim /etc/sysctl.conf

# 打开如下一行,改为:
net.ipv4.ip_forward = 1

# 然修改永久生效
sysctl -p

设置防火墙(iptables )转发规则:

1
2
3
4
# 设置源地址翻译SNAT:把来自10.8.100.0/24的流量在离开网络接口ens3前,修改源ip为192.168.50.14
# enp0s31f6为你自己的网卡名称,可使用`ip addr show`查看。
# 192.168.50.14为安装openvpn 服务端的主机ip
iptables -t nat -A POSTROUTING -s 10.8.100.0/24 -o enp0s31f6 -j SNAT --to-source 192.168.50.14

重启下vpn服务端:systemctl start openvpn@server。到这里,服务端安装完成。

配置客户端ovpn文件

在openvpn官网下载客户端:这里。下载好以后点击运行,进行安装。

1
2
3
4
5
# 准备好Ubuntu上的这4个文件
/etc/openvpn/ca.crt
/etc/openvpn/ta.key
/etc/openvpn/client/myclient.crt
/etc/openvpn/client/myclient.key

创建客户端配置文件

打开终端,复制粘贴以下脚本指令,脚本会在~/openvpn-clients/目录下,创建一个client1.ovpn客户端配置文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 创建客户端的配置
cat > ~/openvpn-clients/client1.ovpn << 'EOF'
client
dev tun
proto tcp
remote 你的公网IP地址 11000
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verb 3
ca ca.crt
cert myclient.crt
key myclient.key
tls-auth ta.key 1
comp-lzo
route 192.168.50.0 255.255.255.0

<ca>
EOF

sudo cat /etc/openvpn/ca.crt >> ~/openvpn-clients/client.ovpn
cat >> ~/openvpn-clients/client1.ovpn << 'EOF'
</ca>

<cert>
EOF

sudo cat /etc/openvpn/client/myclient.crt >> ~/openvpn-clients/client1.ovpn
cat >> ~/openvpn-clients/client1.ovpn << 'EOF'
</cert>

<key>
EOF

sudo cat /etc/openvpn/client/myclient.key >> ~/openvpn-clients/client1.ovpn
cat >> ~/openvpn-clients/client1.ovpn << 'EOF'
</key>

<tls-auth>
EOF

sudo cat /etc/openvpn/ta.key >> ~/openvpn-clients/client1.ovpn
cat >> ~/openvpn-clients/client1.ovpn << 'EOF'
</tls-auth>
EOF

注意替换,你的公网IP地址和修改路由转发参数

上面的 route 192.168.50.0 255.255.255.0 也是告诉服务端,客户端访问这些 192.168.50.0/255.255.255.0 地址时,才经过VPN。

保存配置文件,然后启动 openvpn gui 客户端。通常,客户端会有opvn文件导入功能,导入客户端,点连接即可。连接成功显示如下:

img

然后,在CMD中ping VPN服务端的地址(下面10.8.100.1是vpn分配的网关地址,vpn客户端分配到的是10.8.100.6,192.168.50.28是vpn服务器内网ip,192.168.50.4是vpn服务所在内网的另一条机器的内网ip):
img
至此,vpn客户端和服务端全部安装完成。

l

HIFI日记:HQPlayer embedded (HQPlayer OS)嵌入版使用教程

HQPlayer播放器系列

一、前言

这篇文章继承自“DIY高性能音乐服务器”和“ROON+HQPlayer+NAA串流数播/网播完整教程”两篇文章,如果对于自己制作一台Core感兴趣的,可以跳转了解。经过大半年对于X86 Core的搭建,BLOG主在当前有限的环境下有了一些新的感悟。

二、什么是HQPlayer embedded

HQPlayer embedded是HQPlayer Linxu版本的延伸,是一个完全客制化的Linux系统,里面搭载了专门制作的HQPlayer OS系统,其定制的Network Audio Adapter协议是当前世界上最强的网络音频传输协议,同时它还提供了丰富的可调节选项,是当前实际上功能最多、性能最强、音质最好的播放系统。

img官方提供的NAA拓扑图

具体的请查阅官方介绍:点我

三、如何安装HQPlayer embedded

1、打开官方下载链接:点我
试用版每半小时将自动关机一次,其他功能与付费版一致

2、下载最新版本镜像并解压得到img文件
注意,当前HQPlayer embedded分为两个INTEL和AMD两个版本,各位可以根据自己的CPU自行选择,根据官方介绍,这似乎是指令集上有些不同,可能影响某些时候的运行效率。他们一般名字命名为:
INTEL:hqplayer-embedded-4.29.3-x64gen.7z
AMD:hqplayer-embedded-4.29.3-x64amd.7z

PS:国外论坛中有人提出AMD支持的指令集更完善,对音质的影响未知。intel系列CPU的玩家可以直接选择AMD版本,也没什么问题。

3、在主板上安装sata/nvme硬盘,或者插入USB设备,系统安装将完全清空整个硬盘,且不可继续做他用。根据安装方式不同,我们可以在硬盘中制作HQPlayer embedded系统,开机即可使用。也可以制作USB随身携带版本,但经过USB后,音质必然存在劣化。

4、下载镜像烧录软件
我们采用的是“balenaEtcher”进行烧录,他的优势是可以直接对硬盘和USB设备进行烧录,速度快且稳定。
官网下载:点我

5、安装balenaEtcher,并根据下方提示进行烧录镜像

img

(1)点击Flash from file选择下载好的HQE的img镜像

img

(2)选择需要写入的硬盘,注意这将完全破坏写入硬盘的所有数据。考虑到HQE本身就是个常驻运行系统,因此建议使用高性能的SSD作为启动盘为好。这里BLOG主选择的是INTEL傲腾,也是理论上同级别SSD中延迟最低、4K性能最好对硬盘,但考虑到BLOG主以前做过不同SSD测评,实在找不到什么音质规律,因此选择仅供参考。

img

img

(3)最后点击Flash!按钮,在弹出框中选择Yes,I’am sure,然后等待完成即可。

6、完成后将制作好的SSD装入音频服务器(Core)中,开机在主板设置成该硬盘启动,等待约30秒即可完成系统载入。

四、如何使用HQPlayer embedded

当前HQPlayer embedded本地播放功能难用到极点,而且本地播放到音质在没处理的情况下还不如NAA,因此这里仅推荐联网使用。很多朋友可能对网络处理没有特别多的概念,下面提供一下BLOG主当前系统部分拓扑图,各位可以参考,也可以搜索BLOG主之前写的相关文章。

img

五、HQE设置

安装完成HQE后,各位首先需要进入路由器界面,找到HQE服务器的内网IP地址,如下方,BLOG主自动分配的IP地址为:192.168.1.197

然后,将这个IP地址复制到浏览器中打开,即可进入HQE后台,在这里可以对HQE进行各种设置。在这个界面上,如果出现账号和密码需求,默认账号为“hqplayer”,默认密码则是“password”。如果需要修改密码则可以点到“Authentication”页面进行设置。

接下来,我们详细介绍设置页面下,各个选项的意义:

1、设置Backend(后端)

img

如果需要本地播放选择ALSA,如果需要通过网络进行NAA推送播放,则选择Network Audio

2、设置Output mode(音频输出模式)

img

Auto是根据音频本身的格式,输出PCM或者SDM。但如果希望强制音频转换成PCM或者SDM,可以选择下面两项强制输出。

3、Fixed volume(绝对音量)

img

该选项可以将音量锁定在某一个响度,非必要选项。如果不希望数字音量调节,可以勾选“enabled”(开启)并填入数字“0”。

4、Max volume/Min volume(最大音量/最小音量)

img

该选项可以自行决定音量响度的刻度尺,设定最小和最大两个数值,后面就可以在这个规定的范围内进行调节。如果打开了上面的选项,则此选项不生效。

5、Startup volume (启动音量)

img

本选项相当于音乐开头提供一个衰减,以降低对人耳的刺激,对音质无影响,可以不设置。

6、Adaptive volume(适应性音量)

img

自动平衡各音频的响度,保证每首曲子的音量基本一致,可能对音质有负面影响,建议不开启。

7、PCM gain compensation(PCM增益补偿)

img

播放PCM音频时,为每首曲子固定增加的音量,,可能对音质有负面影响,建议不开启。

8、Channels(声道)

img

选择输出声道数量,一般填写“2”,即两声道。如果是多声道音频,在硬件条件允许情况下,需要对此进行配对设置。

9、Options(其它设置)

img

Auto rate family:根据音频原采样率进行倍数升频,如果不选,则是根据设置的最高采样率进行升频。建议一定要开启,以保证不会出现SRC偏差。

Quick pause:快速暂停,允许在播放音频时迅速启动暂停/重新启动播放的功能。

Short buffer:短缓冲,可以有效降低播放延迟,但可能影响最终音质。除非是观看视频时出现明显音画不同步的情况,一般听音乐不选择此选项。

10、Log file(日志文件)

记录HQE系统运行时的日志文件,一般用户无需理会该选项,甚至可以选择关闭。

11、DSD sources(DSD信号源)

img

该部分为DSD信号源部分的设置:

Direct SDM:直接输出SDM信号,关闭升频。

Gain +6 dB:为所有DSD音频信号默认追加6dB响度。

Intergrator:低通滤波器,当前提供了5种可选,请根据听感自行选择。

SDM-SDM Conversion:DSD升频滤波设置,当前有wide和narrow两种选择。

img仅供参考

Noise filter:噪声滤波器,当前有9种可选,请根据实际听感选择。

SDM-PCM Conversion:DSD升频PCM滤波选择,当前有14个可选,请根据实际听感选择。

12、PCM settings/SDM settings(PCM播放设置/SDM播放设置)

img

该部分设置与桌面版HQPlayer完全一致,请参考这里

13、ALSA backend(ALSA后端设置/本地播放设置)

img

Device:输出设备选择

Channel offset:通道偏移,不知道有什么用,默认为0,请勿改动。

DAC bits:DAC的转换位深,根据硬件实际性能选择,如果不知道填数字“0”

Buffer time:缓冲时间,默认为100ms,可以根据硬件和体验实际进行调整。

DoP:将SDM信号打包成PCM信号输出

48k DSD:强制PCM升频DSD时采用48k整数倍升频(44.1Khz进行DSD升频为非整数倍升频,SRC可能导致失真),一般不开启,因为不推荐将PCM升频至DSD。

14、Network Audio backend(网络后端设置/NAA播放设置)

img

IPv6:打开对IPv6的IP地址支持,需要路由支持。

六、连接APP推送音乐

所有东西设置好!我们就可以开始听音乐了。将手机/平板连接进入与HQE同一个网络,然后下载合适的软件,选择HQE推送即可!下面推荐几个BLOG主尝试过后认为合适的方案供参考:

1、BubbleUPnP(Android)

支持连接Qobuz、TIDAL、Google Drive、Dropbox、Box、OneDrive以及本地NAS进行流媒体NAA推送播放。功能全面、响应迅速、软件免费、无广告,如果不需要ROON的数据功能,可以全面替代。

2、mconnect(Android/iOS)

持连接Qobuz、TIDAL、OneDrive以及本地NAS进行流媒体NAA推送播放。界面美观、功能全面、响应稍慢、有付费和免费版本可选择。

3、AirMusic(Android)

可以将手机/平板中所有音频信号通过UPNP协议发送,这样就可以通过整套HIFI系统看Youtube、Bilibili、抖音等视频了!注意本软件有付费和免费版,可能需要ROOT支持。

4、QQ音乐(Android/iOS)

在最新版本的QQ音乐中,HQ(含)以下音质可以直接推送到HQE中播放了!虽然并非无损格式,整体音质受损,但是瑕不掩瑜,毕竟大量无版权音乐可能只能在这里听到!顺便BS一下网易云,客户端稀烂,音质为所有播放器中垫底。

l

OpenCore添加ubuntu引导,引导双系统

问题描述

在此前已经安装好了Mac,并能正常引导但是Ubuntu的引导需要手动按F10进行选择,比较麻烦,尝试将Ubuntu的引导也加入到OC中。

参考国外大佬Ayush Sahay Chaudhary的博客[GUIDE] Opencore Dualboot/ Multiboot Guide进行的配置,该博客中有完整的win+mac+linux的安装步骤。

实现步骤

请确保你的OC中存在OpenShell.efi文件,没有可前往opencore官方网站进行抄作业

下载OpenCore Configurator

进入MAC,在网上下载OpenCore Configurator工具,工具版本要和OC文件版本对应。

在OpenShell中找到EFI的位置

启动到 OpenCore 并选择 OpenShell.efi

如果在OC中无法找到该选项而EFI中确实放置了OpenShell.efi,那么进入Mac中启动OpenCore Configurator。

转到工具> 挂载EFI

选择自己电脑EFI所在的硬盘并挂载

找到其中的EFI> OC> config.plist,在OpenCore Configurator中打开该文件

将其启用保存再进入OC中就可以看到OpenShell.efi

重启到 OpenCore 并选择 OpenShell.efi

你会看到这样的屏幕(这时请注意及时按一下按键)

这里的东西是,FS1, FS2,… FS7: 是所有连接到系统的驱动器的分区,你必须确定哪个是Linux 分区。

要查找分区开始输入

1
FS1:

然后输入

1
dir

继续这个操作一直到你在输入 DIR 后找到 EFI 的文件夹

输入

1
FS2:

然后输入

1
dir

再次这样输入

我在 FS7中找到了我的 总 EFI 分区:

检查你的EFI文件夹

1
2
3
cd EFI

dir

如果ubuntu的文件夹是在这个分区里面

输入

1
cd ../

回到你的根 EFI 分区,即 FS7

再次输入

1
map > map-table-linux.txt

将地址信息导出到txt文件

制作启动项地址

现在重新启动系统并从启动菜单中选择 macOS 驱动器启动到 macOS。

同样挂载EFI分区

打开 EFI分区可以看到,map-table-linux.txt

将其剪切到桌面,打开它

查到你在OpenShell中找到的驱动器号(我的是FS7),复制 PCI 行(图中选中的那一行)并将其粘贴到一个新的文本文件中,然后在 PCI 行之后添加这一行,如下所示,

1
/\EFI\ubuntu\grubx64.efi

注意:前面不能有空格

之后可以看到是这样子

1
PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,20-60-A0-49-8B-44-1B-00)/HD(1,GPT,B2C56269-054C-45C4-8ACS-C321A6B52982,0x800,0xAF000)/\EFI\ubuntu\grubx64.efi

在OpenCore Configurator中添加启动项

同样打开OpenCore Configurator,进入目录EFI> OC> config.plist,将config.plist在OpenCore Configurator中打开,然后去Misc-其它设置中,选择Entries-自定义条目。

在右下角添加自定义条目

路径中添加创建好的路径,名称填写Ubuntu,风格自动,勾选启用。

大功告成

效果展示

l