From c76c77ff11bda363a58695927cfbf859ce56c989 Mon Sep 17 00:00:00 2001 From: aiminick <83101338@qq.com> Date: Mon, 31 Dec 2018 22:57:49 +0800 Subject: [PATCH] Update README.md --- README.md | 110 +++++++++++++++++++++++++++--------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 70a3ab1..02374f0 100644 --- a/README.md +++ b/README.md @@ -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... * 什么是VC(VideoCore) -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!对于某些别有用心的人误导群众,指鹿为马,这里必须要站出来说明一下,以免大家被误导!