Update README.md

This commit is contained in:
aiminick 2018-12-31 22:57:49 +08:00 committed by GitHub
parent a03b1f1e9e
commit c76c77ff11
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 55 additions and 55 deletions

110
README.md
View File

@ -60,7 +60,7 @@
专门为 Flash Transition Layer 的 NAND 闪存开发的文件系统,在闪存随机读写性能上有较大提升,对小文件读取也有一定的优化,不支持在线扩容
**考虑到系统的健壮性和稳定,我们推荐使用 Ext4 **
**考虑到系统的健壮性和稳定,我们推荐使用 Ext4 **
### Docker
@ -146,7 +146,7 @@ Docker官方没有提供基于arm64的**docker-machine**可运行二进制程序
### AUFS
* 什么是AUFS文件系统
* 什么是AUFS文件系统
AUFS的全称是 advanced multi-layered unification filesystem 主要功能是把多个文件夹的内容合并到一起提供一个统一的视图主要用于各个Linux发行版的livecd中以及docker里面用来组织镜像
@ -192,18 +192,18 @@ AUFS曾是Docker默认的首选存储驱动它非常的稳定、有很多真
```
* **为什么不使用zRAM**
zSWAP同时使用内存和交换分区并根据实际情况自动调整所占内存的大小所缓存的数据在系统内存不够用时会自动存入到Swap文件/分区中大大提高了系统swap交换的效率更充分的利用了内存空间资源又避免了系统出现内存不够的情况而zRam完全使用内存来进行操作和存储数据完全占用内存一般用在大内存的场景这对于内存很小的树莓派来说就不合适了
zSWAP同时使用内存和交换分区并根据实际情况自动调整所占内存的大小所缓存的数据在系统内存不够用时会自动存入到Swap文件/分区中大大提高了系统swap交换的效率更充分的利用了内存空间资源又避免了系统出现内存不够的情况而zRam完全使用内存来进行操作和存储数据完全占用内存一般用在大内存的场景这对于内存很小的树莓派来说就不合适了
* **zSWAP在本系统中使用的内存分配器和数据压缩算法**
```shell
内存分配器zpool框架 smalloc、zbud、z3fold
1. 现实表明zsmalloc虽然压缩率高但是算法复杂还需要额外的线程负责内存整理耗费更多的cpu时间
1. 现实表明zsmalloc虽然压缩率高但是算法复杂还需要额外的线程负责内存整理耗费更多的cpu时间
2. 而zbud实现简单以内存page为单位的存储又不会产生内存碎片但是压缩率低最高只有2倍不满小内存系统的实际需求
2. 而zbud实现简单以内存page为单位的存储又不会产生内存碎片但是压缩率低最高只有2倍不满小内存系统的实际需求
3. 因此索尼开发了z3fold内存分配器和zbud的实现完全一致只是每个page可以存储3个compressed page**最高压缩率有 *3* 倍**逼近zsmalloc的4倍该技术在xperia xzp的中使用使4GB的手机获得超过4GB内存的体验
3. 因此索尼开发了z3fold内存分配器和zbud的实现完全一致只是每个page可以存储3个compressed page**最高压缩率有 *3* 倍**逼近zsmalloc的4倍该技术在xperia xzp的中使用使4GB的手机获得超过4GB内存的体验
我们在系统中选用了z3fold算法在系统 /boot/cmdline.txt 中可以看到配置:
@ -236,29 +236,29 @@ Linux有很多压缩算法lz,lzo,xz,gzip,lzma...
15. vhost //主机数据交互
16. vhost-net //主机网络数据交互
考虑到系统的通用性以上模块没有自动加载需要老铁们自行手动配置加载具体使用配置请查看KVM相关手册
考虑到系统的通用性以上模块没有自动加载需要老铁们自行手动配置加载具体使用配置请查看KVM相关手册
### UEFI启动
新系统抛弃了传统树莓派的启动方式使用当下PC流行的EFI方式启动系统其特性如下
1. 纯64位EFI方式引导
2. 可配置的UEFI BIOS
3. 虚拟SMBIOS硬件支持传统树莓派的系统模式下根本就没这玩意儿
4. 启动时可进入BIOS进行设置
5. 支持EFI专有的EL2启动模式以启用KVM硬件虚拟化的支持大幅度提升KVM性能需要开机在BIOS里设置默认使用EL1标准模式
6. 支持自定义启动选项:从其他设备、分区、文件等
1. 纯64位EFI方式引导
2. 可配置的UEFI BIOS
3. 虚拟SMBIOS硬件支持传统树莓派的系统模式下根本就没这玩意儿
4. 启动时可进入BIOS进行设置
5. 支持EFI专有的EL2启动模式以启用KVM硬件虚拟化的支持大幅度提升KVM性能需要开机在BIOS里设置默认使用EL1标准模式
6. 支持自定义启动选项:从其他设备、分区、文件等
**提示:如何设置系统启动方式**
1. 开机按住"ESC"进入"BIOS设置"
2. 选择"Raspberry Pi Configuration"
3. 进入"HypDxe Configuration"
4. 进入"System Boot Mode" 进行选择
1. 开机按住"ESC"进入"BIOS设置"
2. 选择"Raspberry Pi Configuration"
3. 进入"HypDxe Configuration"
4. 进入"System Boot Mode" 进行选择
该BIOS功能异常强大还有很多可配置选项各位老铁请自行发掘。 ^_^ :P
* EFI固件引用自 "andreiw/RaspberryPiPkg" 的项目
* EFI固件引用自 "andreiw/RaspberryPiPkg" 的项目
### TCP加速
@ -268,14 +268,14 @@ Linux有很多压缩算法lz,lzo,xz,gzip,lzma...
我们还是简答来说 TCP BBR 解决了什么问题吧
1. 在有一定丢包率的网络链路上充分利用带宽,非常适合高延迟、高带宽的网络链路
2. 降低网络链路上的 buffer 占用率,从而降低延迟,非常适合慢速接入网络的用户
1. 在有一定丢包率的网络链路上充分利用带宽,非常适合高延迟、高带宽的网络链路
2. 降低网络链路上的 buffer 占用率,从而降低延迟,非常适合慢速接入网络的用户
简单来说使用 TCP BBR 拥塞控制算法能够在一定程度上提升TCP传输速度和效率优化网络传输
简单来说使用 TCP BBR 拥塞控制算法能够在一定程度上提升TCP传输速度和效率优化网络传输
* 如何关闭
编辑 “/mnt/etc/sysctl.conf” 文件,执行命令 "sysctl -p" 查看结果,看不到以下注释掉的内容,代表关闭成功
编辑 “/mnt/etc/sysctl.conf” 文件,执行命令 "sysctl -p" 查看结果,看不到以下注释掉的内容,代表关闭成功
注释掉以下2行内容 (前面加上#即可)
```shell
@ -287,19 +287,19 @@ Linux有很多压缩算法lz,lzo,xz,gzip,lzma...
* 什么是VCVideoCore
VideoCore 是一个由Alphamosaic Ltd开发并且现在被Broadcom拥有的低功耗移动多媒体指令集架构。二维的DSP架构使其在软件中可以灵活且高效地编解码多媒体数据的同时保持低功耗。该IP核目前仅在Broadcom的SoC中被使用
VideoCore 是一个由Alphamosaic Ltd开发并且现在被Broadcom拥有的低功耗移动多媒体指令集架构。二维的DSP架构使其在软件中可以灵活且高效地编解码多媒体数据的同时保持低功耗。该IP核目前仅在Broadcom的SoC中被使用
简单来说VC就是树莓派的视频硬件解码加速芯片VC4 就是指第四代架构
简单来说VC就是树莓派的视频硬件解码加速芯片VC4 就是指第四代架构
由于树莓派使用的 VC4 没有发布硬解码部分的代码所以如果要使用硬件解码HardFP加速功能只能使用 VC32 硬件加速模式 (**我们的系统支持在64位模式下运行VC32硬件加速模式**)
由于树莓派使用的 VC4 没有发布硬解码部分的代码所以如果要使用硬件解码HardFP加速功能只能使用 VC32 硬件加速模式 (**我们的系统支持在64位模式下运行VC32硬件加速模式**)
**注意如果需要使用VC32 硬件加速模式请参照后面的设置开启显卡3D硬件加速**
**注意如果需要使用VC32 硬件加速模式请参照后面的设置开启显卡3D硬件加速**
* 使用方法
我们提供了系统VC4图形模式的双栈切换功能非常方便
我们提供了系统VC4图形模式的双栈切换功能非常方便
支持 VC32 硬件加速模式HardFP和 vc64 原生64位的兼容模式切换**系统默认使用原生vc64兼容模式**
支持 VC32 硬件加速模式HardFP和 vc64 原生64位的兼容模式切换**系统默认使用原生vc64兼容模式**
如需切换为vc32硬件加速模式只需要执行命令
@ -313,11 +313,11 @@ VideoCore 是一个由Alphamosaic Ltd开发并且现在被Broadcom拥有的低
enableVC64
```
**切换模式后需要重启系统生效**
**切换模式后需要重启系统生效**
### CPU硬标支持
在arm64的Linux主线内核上已经不再支持在 " **/proc/cpuinfo** " 中显示硬件型号名称而是使用DMI接口来获取相关信息这就造成了树莓派的很多程序如 **GPIO Wiringpi** 在运行时检查不到设备的硬件型号提示不支持的硬件无法运行我们修改了Arm64内核的相关文件提供了CPU硬标功能的支持现在可以同样在64位系统下显示硬件的型号了
在arm64的Linux主线内核上已经不再支持在 " **/proc/cpuinfo** " 中显示硬件型号名称而是使用DMI接口来获取相关信息这就造成了树莓派的很多程序如 **GPIO Wiringpi** 在运行时检查不到设备的硬件型号提示不支持的硬件无法运行我们修改了Arm64内核的相关文件提供了CPU硬标功能的支持现在可以同样在64位系统下显示硬件的型号了
截图!!
@ -329,43 +329,43 @@ VideoCore 是一个由Alphamosaic Ltd开发并且现在被Broadcom拥有的低
## 默认账户
用户名pi ,密码为: raspberry
用户名pi ,密码为: raspberry
## 安全增强
1. 不再设置默认的 **root** 用户密码,需要用户使用默认 **pi** 账户登录后通过 " **sudo passwd root** " 命令自行设置 **root** 用户密码
1. 不再设置默认的 **root** 用户密码,需要用户使用默认 **pi** 账户登录后通过 " **sudo passwd root** " 命令自行设置 **root** 用户密码
2. **默认没有开启 root 用户的ssh登录权限(默认仅支持 pi 用户远程ssh登录**
2. **默认没有开启 root 用户的ssh登录权限默认仅支持 pi 用户远程ssh登录**
3. 不再允许初始保留使用默认密码,首次使用 **pi** 账户登录后需要重新设置默认账户pi的密码
首次登陆后首先再次输入pi账户的默认密码 raspberry
然后按照系统提示重新设置pi账户密码并再次输入确认
然后按照系统提示重新设置pi账户密码并再次输入确认
## 默认仓库源为清华源
用户可自行配置为其他源
用户可自行配置为其他源
## 32位软件支持
系统默认已开启对32位软件包的支持无需手动添加安装32位软件请在包的名称后加入后缀 ":armhf"
系统默认已开启对32位软件包的支持无需手动添加安装32位软件请在包的名称后加入后缀 ":armhf"
例如: apt install ibc6:armhf // 安装32位的ibc6
注意:这里的冒号 ":" 是需要的哦
注意:这里的冒号 ":" 是需要的哦
## 启动模式
* 三种文件系统格式的镜像都支持 **开机自动扩展根分区**
* 第一次开机启动会自动重启并扩展 **root** 根分区(第一次安装系统会重启**2**次第一次检查文件系统第二次扩展root根分区所以需要等待一些时间
* 第一次开机启动会自动重启并扩展 **root** 根分区(第一次安装系统会重启**2**次第一次检查文件系统第二次扩展root根分区所以需要等待一些时间
* 两次重启后正常引导系统在这一次启动过程中会自动配置和生成Swap文件并完成最后的**系统初始化**这将消耗一段时间仅一次待完成Swap交换文件的设置后即可进入到登录界面
* 两次重启后正常引导系统在这一次启动过程中会自动配置和生成Swap文件并完成最后的**系统初始化**这将消耗一段时间仅一次待完成Swap交换文件的设置后即可进入到登录界面
* 如果使用的是BtrFS文件系统格式的镜像在最后完成系统初始化时不会创建Swap交换文件所以无需等待
* 如果使用的是BtrFS文件系统格式的镜像在最后完成系统初始化时不会创建Swap交换文件所以无需等待
* 因为正如前面文中提到的BtrFS文件系统不支持使用Swap交换文件的模式而只能使用交换分区的方式考虑到这一点我们在制作镜像的时候就已经默认创建并配置好了Swap交换分区所以当然不需要了这就是为什么BtrFS文件系统镜像会比其他两个镜像都大一些并且有3个分区其中一个1G大小的是默认的交换分区的原因:P
* 因为正如前面文中提到的BtrFS文件系统不支持使用Swap交换文件的模式而只能使用交换分区的方式考虑到这一点我们在制作镜像的时候就已经默认创建并配置好了Swap交换分区所以当然不需要了这就是为什么BtrFS文件系统镜像会比其他两个镜像都大一些并且有3个分区其中一个1G大小的是默认的交换分区的原因 :P
* 自动扩容脚本部分参考了树莓派官方和 UMRnInside/RPi-arm64 项目的部分内容
@ -382,7 +382,7 @@ VideoCore 是一个由Alphamosaic Ltd开发并且现在被Broadcom拥有的低
### 网络预配置
镜像支持在启动前提前配置好网络(无线、有线网络均可配置)
镜像支持在启动前提前配置好网络(无线、有线网络均可配置)
* 无线网络配置 /boot/wlan0
@ -428,9 +428,9 @@ source-directory /etc/network/interfaces.d
### 自动任务预配置
系统支持自定义任务自启动脚本,可以在系统启动前预先配置
系统支持自定义任务自启动脚本,可以在系统启动前预先配置
编辑脚本文件 "/boot/rc-local" ,加入自定义的脚本内容
编辑脚本文件 "/boot/rc-local" ,加入自定义的脚本内容
## 其他杂项配置
@ -448,7 +448,7 @@ apt-get install libc6-armel
这里以安装mate桌面环境为例
执行以下命令,然后重启即可
执行以下命令,然后重启即可
```shell
sudo apt-get install --no-install-recommends xserver-xorg -y
@ -464,22 +464,22 @@ dtoverlay=vc4-fkms-v3d
gpu_mem=256 这个值最小应应保证不低于128
注意:
vc4-fkms-v3d 是较好的优选兼容模式
也可以设置为 vc4-kms-v3d 全硬件加速,但是在远程等环境下显示会有一些问题
vc4-fkms-v3d 是较好的优选兼容模式
也可以设置为 vc4-kms-v3d 全硬件加速,但是在远程等环境下显示会有一些问题
除非你是本地接显示器,一般不建议设置为 vc4-kms-v3d
```
然后重启即可
然后重启即可
----
# 系统测试
一个不完全的测试结果,只是理论数据,仅供参考
一个不完全的测试结果,只是理论数据,仅供参考
使用 Ext4 标准文件系统和 树莓派3B+ 的 UnixBench 测试结果和同类Debian Aarch64系统相比
综合整体性能全面超越对比测试系统的2~3倍以上部分指标甚至达到了10倍以上1000%的提升
综合整体性能全面超越对比测试系统的2~3倍以上部分指标甚至达到了10倍以上1000%的提升
----
@ -493,17 +493,17 @@ UEFI BIOS 界面
# 系统由来
首先感谢一位先驱,来自国外 **bamarni** 大神发布了开源的树莓派64位系统 **pi64** 正是他的无私奉献和开源分享的精神开创了树莓派64位系统的先河仅以此系统对bamarni大神表示崇高的敬意和感谢
首先感谢一位先驱,来自国外 **bamarni** 大神发布了开源的树莓派64位系统 **pi64** 正是他的无私奉献和开源分享的精神开创了树莓派64位系统的先河仅以此系统对bamarni大神表示崇高的敬意和感谢
本来之前就打算说一说这个系统的由来的,忘记了,这次补上,先给大家上张图:
以上截图来自于国内某树莓派64位系统论坛管理员对发布的树莓派64位系统介绍的部分摘要注意以上红色框注部分
以上截图来自于国内某树莓派64位系统论坛管理员对发布的树莓派64位系统介绍的部分摘要注意以上红色框注部分
我们来自一个忠实的开源爱好者社区看到上诉内容的时候感到十分的震惊和愤怒对这位所发布的64位系统进行了下载和深度测试结果发现了一些问题…
然而这位 “牛B的大神” 居然连无线这种基本问题都没有解决就叫嚣着如何如何牛掰,后续冒似长时间都没有解决这些关键问题,然而出自该“大神”之手的一些列系统后来宣称 “**对其树莓派3B+的无线问题无解**” ,一边打着“优化”的口号,自持着所谓的牛掰能力,做了一些所谓的优化,上来叫嚣着 “**吊打**” 同类系统之类的言语。结果,我们发现不管是我们的测试结果,还是他自己的很多用户都发现了所谓 “**优化**” 后的系统所带来的诸多问题…
正好我们社区内部也有使用树莓派64位系统的需求加上处于对开源精神的崇高敬意和对这位 “牛掰大神” 的愤怒我们发布了我们自己的树莓派64位系统并通过与“树莓派爱好者基地”合作独家发布也就是之前发布的一系列64位系统
正好我们社区内部也有使用树莓派64位系统的需求加上处于对开源精神的崇高敬意和对这位 “牛掰大神” 的愤怒我们发布了我们自己的树莓派64位系统并通过与“树莓派爱好者基地”合作独家发布也就是之前发布的一系列64位系统
对于这种 **无知的、不知天高地厚、恬不知耻、狂妄自大的 “大神”**,真是嗤之以鼻,对于国外大神他给予的 “**辣鸡**” 评价,叫嚣着 “**吊打**” 同类系统的行为表示愤慨和同情,同情他的**无知、可悲、可怜**
@ -515,7 +515,7 @@ UEFI BIOS 界面
对于“狂妄之徒”言论的一些说明,仍然是那位,这里就不点名了,玩家自行补脑,真是厚颜无耻,还是先上一个截图:
为了避免不明真相的吃瓜群众被误导这里讲下这货钻了什么空子他采用非EFI模式引导这种模式下树莓派的标准内核是支持显示Hardware内容的而以EFI模式启动的系统采用的是全新的EFI引导模式抛弃了传统的方式包括原生aarch64架构的ARM64系统都是不会到 /proc/cpuinfo 下写入信息的
为了避免不明真相的吃瓜群众被误导这里讲下这货钻了什么空子他采用非EFI模式引导这种模式下树莓派的标准内核是支持显示Hardware内容的而以EFI模式启动的系统采用的是全新的EFI引导模式抛弃了传统的方式包括原生aarch64架构的ARM64系统都是不会到 /proc/cpuinfo 下写入信息的
关于这点,已经在上面 “ **CPU硬标支持** ” 的部分说明过了这不是什么问题也不是什么BUG我们的系统也支持在 /proc/cpuinfo 下的CPU硬标显示这没有什么好炫耀的**只是实在看不惯这位“牛人”说话的口气**使UEFI用的是虚拟的SMBIOS所以在EFI引导模式下查看CPU信息的正确做法是
@ -525,7 +525,7 @@ UEFI BIOS 界面
dmidecode -t 4
```
如上图所示dmidecode命令是专门读取SMBOIS硬件信息的命令通过该命令我们能够获取有关CPU更详细的信息情况而不是 cat /proc/cpuinfo 传统方式这些简单的信息我们甚至能看到CPU支持的频率CPU支持的特性例如上图可以看到SMBIOS开启了CPU虚拟化的支持这些都是 cat /proc/cpuinfo 传统模式所不具备的
如上图所示dmidecode命令是专门读取SMBOIS硬件信息的命令通过该命令我们能够获取有关CPU更详细的信息情况而不是 cat /proc/cpuinfo 传统方式这些简单的信息我们甚至能看到CPU支持的频率CPU支持的特性例如上图可以看到SMBIOS开启了CPU虚拟化的支持这些都是 cat /proc/cpuinfo 传统模式所不具备的
另外必须要说明的是在传统模式下非EFI引导的方式是无法使用 **dmidecode** 命令获取信息的因为它根本就没有BIOS对于某些别有用心的人误导群众指鹿为马这里必须要站出来说明一下以免大家被误导