USB Network Native Driver for ESXi更新到支持ESXi7.0.1

USB Network Native Driver for ESXi今天更新到新版本,支持ESXi7.0.1了,我之前有ESXi7.0.0机器因为使用了USB网卡驱动一直没法升级到7.0.1。(ESXi升级补丁会报该USB网卡驱动缺少依赖,因为那个依赖从7.0.0的版本更新到7.0.1,版本就对不上了)

下面演示由vCenter管理的EXSi主机更新7.0.1(包含该USB网卡驱动)。

首先将USB网卡驱动更新下载,再将ESXi7.0.1离线包VMware-ESXi-7.0.1-16850804-depot.zip下载,然后用ESXi Customizer PS来封装镜像。具体步骤参照ESXi-Customizer-PS

封装驱动

将这个封装好的ISO上传到vCenter的Lifecycle Manager里。

在Lifecycle Manager中导入ISO

创建基准。

创建基准1

选择刚才上传好的ISO。

选择ISO

完成。

创建基准完成

然后去要升级的ESXi Host,把所有虚拟机置于挂起或关机状态。进入维护模式。

进入维护模式

在更新选项卡下方,附加基准。

附加基准

选择刚才创建的基准,附加。

选择基准

勾选该基准并修复。

使用该基准修复

接受协议和确定后,开始修复。

修复中

完成后ESXi自动重启,等待一会,vCenter显示连接上了ESXi,能看到7.0.1版本号了。

升级完成

更新说明里提到了USB NIC Bindings are now automatically persistent。

所以我们可以去ssh里把相应的之前设置的启动脚本注释掉了。

树莓派4b安装Android TV 10

TechFigure的视频

How to Install Full Android TV 10 on Raspberry Pi 4 with Hardware Acceleration! 看到树莓派4b可以安装安卓TV10系统了,就按照视频体验了下。整个过程大概需要20分钟。

以下为简单步骤:

1. 下载所需要的文件

https://konstakang.com/devices/rpi4/网站中,打开LineageOS 17.1 Android TV – KonstaKANG (Android 10)页面,下载其中的lineage-17.1-20200815-UNOFFICIAL-KonstaKANG-rpi4-atv.ziprecovery2boot,再去https://sourceforge.net/projects/opengapps/files/arm/20200927/中下载open_gapps-arm-10.0-tvstock-20200927.zip

2. 写sd卡和U盘。

macOS下使用balenaEtcher将atv.zip写入sd卡(工具会自动解压img文件)。

写入sd卡

将其它两个文件放入U盘。

3. 将写好的SD卡和U盘插入树莓派4b,连接键盘鼠标,开机。

开机界面

开机后基本都是常规的设置。

熟悉的Android TV界面

此时是没有Google Play的。

设置完成后,点击设备偏好设置,可以先修改语言。

关于-》最下面的内部版本号,一直点到提示已开启开发者模式。

退到上一层菜单(我连接的USB键盘是F2键后退,F1为Home),进入新增加的开发者选项。开启Root access。并开启本地终端。

回到主屏幕,点击左侧Apps,从右侧菜单选择本地终端。

su

rpi4-recovery.sh   //需要一点时间完成

reboot

4. 重启进入recovery。

选择右下角的”Swipe to Allow modifications”。

选择Install。

选择右下角的”Select Storage”,选择U盘。

选择”open_gapps-arm-10.0-tvstock-20200927.zip”, “Swipe to confirm Flash”。此处需要一点时间来完成。

安装完毕后,选择”Wipe Dalvik”,”Swipe to Wipe”。

点击屏幕左上角的上下箭头标志,返回主菜单。

选择”Wipe”,”Swipe to Factory Reset”。

再次点击上下箭头标志,返回主菜单。

选择Mount。

勾选上Boot和System,继续保留Data和USB-OTG。

再次点击上下箭头标志,返回主菜单。

选择Install。

选择”lineage-17.1-rpi-recovery2boot.zip”,”Swipe to confirm Flash”。

Reboot。

5. 重启后,系统需要重新设置(因为我们上面进行了Factory Reset)。

此时的设置步骤和其它国际版Android TV盒子基本一致,比如Shield TV等。请保证网络畅通。可以从左侧Apps调出Google Play,安装更多的应用。

设置完毕
添加Youtube

6. 装好以后才发现,可以和Xbox One X的一个旧游戏手柄连上,控制起来方便多了。其它支持的蓝牙遥控器应该也是可以的,但我手里只有Shield TV Pro 2019的遥控器,不想给树莓派用。

7. 可能因为设备为非认证设备,在Google Play里是搜索不到Netflix的。不过可以从Apkmirror下载一些旧版本(比如6.26.1),通过adb从电脑安装到树莓派4上(树莓派Android TV里重新开启开发者选项,勾选USB调试,USB连接电脑和树莓派4)。经测试该Netflix应用可以使用键盘鼠标控制,因为是非原生应用,需要从系统右上角的设置齿轮点开,选择应用,从所有应用中找到后启动。如果想为此类非适配应用添加Android TV的图标和Launcher可以搜索网上已有的各种教程。

8. https://konstakang.com/devices/rpi4/LineageOS17.1/ 文中提到了硬件编解码不能正常工作,所以都是软件编解码,这样性能就有所吃紧,实际测试中,本地Kodi播放1080P还算流畅,4K播放就已经很卡。就没再测试在线的Netflix和Youtube 4K。Youtube 1080P和Netflix 1080P播放还是比较流畅的。

综上,此版本系统在树莓派4b上,用于体验Android TV 10系统还算可以,但作为日常使用的电视盒子是不合格的。(作者频道里还有安装Android 10 Mobile的视频)

Android 10

PS: 另外不知道是固件问题还是我的HDMI线问题,接到有扬声器的显示器上,声音很小,需要把扬声器音量调到很大。

ESXi on Arm 10/22 更新

前些天在ESXi on Arm — 树莓派4b安装ESXi中体验了在树莓派4b上使用ESXi on Arm。一些Arm64虚拟机用了十几天体验还可以。用Arm虚拟机体验了一些应用,比如Pi-hole,HomeAssistant,OpenMediaVault,AdGuard Home等等。

今天看到ESXi Arm Edition这里在10/22更新了新版本,有了一些Bug修复和新功能。

Changelog中首先声明的就是不能升级安装。但是可以选择Preserve VMFS的方式安装。安装好以后原有的虚拟机的Datastore里的虚拟机文件夹都还在,可以通过注册虚拟机的方式重新添加就可以用了。

下载镜像VMware-VMvisor-Installer-7.0.0-17068872.aarch64.iso,写入一个新的U盘(非之前已安装ESXi的U盘)。macOS下我用balenaEtcher写入。

原有ESXi关闭所有虚拟机,进入维护模式(其实没太大意义,因为我们不是升级),关机。

插入新写好的U盘,接上键盘。开机。(比如说我原有ESXi在三星U盘上,新写好的是金士顿)。

在白色树莓界面,按ESC,进入UEFI启动菜单,选择从新写好的金士顿U盘启动。启动界面还是跟之前一样记得按Shift+O去修改autoPartitionOSDataSize=xxxx。

加载完毕,选择安装在三星U盘后,会弹出如下提示:

在当前安装介质发现了已有VMFS

选择preserve。然后后面安装步骤都一样了。

安装好以后,拔掉安装的金士顿U盘,重启。

启动完毕后,应该默认是DHCP,如果分配到的IP和之前不一样,可以进去修改一下静态地址,设置dns之类的。(ESXi系统本身是全新的,只是虚拟机文件的的VMFS datastore还在。所以其它NTP之类的设置也要重新去设置。)

一切设置完毕后。浏览器访问该VMFS datastore。选择注册虚拟机。

注册虚拟机

选择虚拟机文件夹,选择可选的vmx文件,点击注册。

注册

注册成功。

注册成功

在虚拟机菜单下可以看到该虚拟机。可以选择操作编辑设置去确认是否有丢失的配置。

虚拟机菜单

重复以上步骤注册其它虚拟机,不需要的虚拟机可以按文件夹去删除。

全部注册完毕

检查完设置没问题以后,虚拟机开机检查。

除了我暂时不用的Pi-hole,都开机了。

开机

最后简单过一下更新说明:

Fix for https://flings.vmware.com/esxi-arm-edition/bugs/1098 (PSOD adding to VDS) 修复加入分布式交换机时紫屏的bug,我之前版本也加入VDS了,没遇到bug。

Support for Arm N1 SDP platform 新设备支持。

Support for VMs on Neoverse N1 CPU 没太懂,之前使用这个CPU不支持创建VM吗?和上面一行是相关的吧。

Support for UEFI-less VMs 支持非UEFI的VM,是指DeviceTree么?

Pass-thru stability improvements to LS1046A and LX2160A platforms 对两个平台的直通稳定性的提升。

Fix for vCenter/DRS incorrect CPU usage 对vCenter/DRS中错误显示CPU使用率的修复。

Fix for VM crash when VM storage fills up 修复VM在VM存储占满后崩溃的问题。

Stability fix for non-coherent DMA device support 不太懂,提升该种设备的稳定性。

Installer: tolerate RAM size within 4% of 4GB instead of 3.125 (for the otherwise unsupported RK3399 boards) 对4GB内存的限制的允许误差修改为在-4%以内,之前为-3.125%。相当于放宽了一点点内存限制,应该是因为RK3399达不到-3.125%之内。

Serial port handling improvements (for unsupported/unknown boards, to be a bit more resilient of firmware configuration errors) 对串口处理的一些改进。

ESXi on ARM中安装Raspios-buster-arm64

看到标题是不是就觉得这是瞎折腾?

没错。如果树莓派4b中安装了ESXi on ARM,在ESXi中再安装Raspios,性能肯定不如直接使用树莓派4b裸装Raspios。

但是如果你使用一台8G版本树莓派4b,单独用一个Raspios又有点浪费了。可以试着在ESXi中多装几个Arm Linux系统,比如CentOS,Raspios,Ubuntu。然后可以在ESXi中随意切换虚拟机开关机。甚至可以同时运行几个Arm Linux系统,榨干它的性能。ESXi是可以超配的。如下图(各个虚拟的Linux空载时)。另外,还可以用到虚拟机的快照,克隆等功能,方便在上面开发测试软件,比如Pi-hole之类的。

同时开启5个Arm Linux虚拟机

Ubuntu,PhotonOS,Debian,CentOS在https://flings.vmware.com/esxi-arm-edition中附带的Pdf文档都说明了是支持并验证过的,方法也就是挂载ISO文件,去安装虚拟机。我就不做演示了。下面演示下装Raspios的过程。

因为官方下载到的2020-05-27-raspios-buster-arm64.img 并不默认支持EFI启动,而ESXi on Arm又只支持EFI启动,所以无法直接使用该镜像,我们要借助Debian的rescue mode来解决这个问题。

1. 下载raspios的img。使用StarWind V2V Converter转成vmdk(2个文件,上传至ESXi的datastore后显示成1个)。

2. 下载debian-10.6.0-arm64-netinst.iso,上传至datastore。

3. 创建虚拟机,类型Linux-Debian 10 x64。删掉原有虚拟的硬盘,添加上面转过的vmdk作为硬盘。光驱里加载Debian的iso文件,记得勾选上已连接,并去虚拟机选项里把引导选项的强行执行EFI设置的下次引导钩上。然后保存。cpu可以分2个核,内存1G或者2G都可以。网卡确保是能连外网的。

记得勾选这个

4. 启动虚拟机,去EFI设置的boot选项里,选择光驱启动 EFI DVD/CDROM。

5. 加载Debian,选择Advanced options,然后Rescue mode。

Advanced options
Rescue mode

6. 语言,国家,键盘都默认即可。

7. 随意设置一个Hostname, Domain name, time zone.

8. Device to use as root file system 选择 /dev/sda2,一定不要选错。然后Mount separate /boot选Yes。在/dev/sda2中运行shell。

/dev/sda2
Yes
/dev/sda2

9. Continue。

Continue

10. 接下来在下方依次输入下面几行命令,注意因为需要联网下载,所以每一步都需要很长时间(根据网络情况而定)。如果某一步没有成功,一定要再执行一遍确保成功了再下一行。如果提示空间不足之类的,那就apt autoremove; apt autoclean之类的试试。

apt update
apt install linux-image-arm64
apt install grub-efi-arm64
grub-install --efi-directory=/boot/
update-grub
exit

整个过程其实就是通过debian的rescue去给raspios加了grub-efi启动选项支持。

11. 关闭虚拟机。 把Debian的ISO虚拟光驱断开连接并且去掉打开电源时连接。

12. 开机,等待第一个启动选项自动加载。完成后就看到熟悉的树莓派系统了。

13. 初始化设置。先不要更新,因为应该会遇到空间不足的问题。

14. 关机。加大硬盘的容量,比如扩大到20G。

扩大硬盘

15. 保存,开机。进入系统后去sudo raspi-config。选择第7项 Advanced Options。

第七项

16. 选择A1 Expand Filesystem。

A1

17. 然后重启检查下硬盘是不是扩大了。

已扩容

18. 可以apt update或upgrade啦。

19. 如果想安装open-vm-tools,可以按照ESXi-Arm-Fling-Doc.pdf文档中的第12步操作编译,该文档是Ubuntu中的步骤,Debian同样适用。

VMware Tools

ESXi on Arm — 树莓派4b安装ESXi

昨天VMware官方博客发布了https://blogs.vmware.com/vsphere/2020/10/announcing-the-esxi-arm-fling.html。以fling(非正式产品,属于社区性质的早期阶段产品,旨在从用户处得到一定的反馈和测试)的形式发布了esxi-arm-edition 。

具体的一些安装要求可以参照requirements

对于个人用户,可以使用4G和8G版本的树莓派4b来安装此版本ESXi.

简单总结了几点要求:

更新EEPROM(支持U盘启动)到最新并刷UEFI引导固件(ESXi on Arm需要,使用存储卡),具体步骤可以参考fling中的pdf或者树莓派4 U盘启动+ UEFI引导 (4G版树莓派4b要去启动设置中将 Limit RAM to 3GB 禁用。)

注册My VMware并下载fling中的ESXi ISO文件,制作U盘启动盘(也可以在安装时把ESXi宿主系统安装在这个U盘或USB移动硬盘上,建议使用USB3.0,如果只用作ESXi系统,不用于虚拟机Datastore,有16G或者32G就足够了。USB移动硬盘可以是Sata,也可以是NVMe)

USB外接键盘和HDMI接口的显示器

带外接电源的USB3.0 hub,我用的是奥睿科的某款(非广告,理论上此类可独立供电hub都可以)

Youtube上找到一个视频教程,还是很不错的,安装部分在后面。

安装步骤如下(也可参照pdf):

1. 将Hub与树莓派4b的usb3.0连接并接入独立电源,键盘通过usb2.0连接,显示器通过HDMI连接,U盘启动盘插入Hub。

2. 通电开机,在白色树莓界面,按ESC进入启动设置,到启动顺序中将U盘调整至最前,保存设置使生效。

3. 启动出现ESXi安装进度条,如果需要调整ESXi系统空间大小,可以在此时按Shift+O,在最下方的启动命令后方空格加上autoPartitionOSDataSize=xxxx 比如8G空间就是8192,这样剩余的U盘空间还可以在系统安装成功之后通过https://koolshare.cn/thread-180336-1-1.html此文的方法创建Datastore。

4. 接下来的界面和步骤对于熟悉ESXi安装的朋友就不会陌生了。

显示版本为7.0.0
熟悉的加载过程
关于Fling版本的一些说明
EULA
选择安装介质
选择键盘layout,默认即可
设置Root密码
提示此安装介质将会被重新分区
安装进度条走的很快
安装完成
启动后自动获取IP

如果安装之前没有把U盘启动顺序调到前面,可以在安装好ESXi之后再去UEFI的启动顺序中设置。

安装之后,可以在上方启动成功后的界面按F2,输入Root密码去设置网络或者开启ESXi Shell等常规设置。然后就可以在局域网中通过vSphere client网页https://192.168.1.77 (上方DCUI界面显示的IP)去进一步设置了。

vSphere Web Client界面,包括专门设计的小图标

登陆之后,如果不是中文,建议去网页上方的下拉菜单的设置中切换语言。

点击下拉菜单切换语言
ESXi首页

几个推荐的设置或实践:

管理→系统→时间和日期,Edit NTP Settings, 设置使用网络时间协议,随主机启动和停止,NTP服务器可以使用你自己熟悉的时间服务器,比如ntp1.aliyun.com,保存。切换到服务菜单,启动ntpd服务。稍等一会,在切换到时间和日期页面,时间就会同步成功了。此处的时间还是以UTC时区显示,但其它近期任务等事件的时间戳都会是你所在的时区了,比如东八区。

如果没有在ESXi的黄色DCUI界面开启ESXi Shell和SSH服务,可以在网页客户端的服务中将TSM和TSM-SSH服务启动(请根据需求开启)。

个人使用可以用root账户来进行今后的管理操作,如果涉及多用户,建议在安全和用户菜单中,针对某一系统预设的角色添加用户,或者添加符合自己需求的特定角色后,再添加用户。

如果不方便使用USB存储来做Datastore,可以添加一个iSCSI存储来做Datastore,此操作可以通过ESXi shell来设置,也可以通过网页端操作。以ESXi shell为例:

    esxcli iscsi software set -e true 开启软件iSCSI

    esxcli iscsi adapter list 查看iSCSI适配器信息

查看iSCSI适配器

   把iSCSI适配器与vmk0绑定

绑定iSCSI适配器

    添加iSCSI target (我在局域网的群晖中划分了一部分硬盘做iSCSI)

添加已有的target

    重启ESXi后,此Datastore就会在数据存储菜单中看到了。

iSCSI Datastore

pdf文档中列出了目前支持的客户机系统

Ubuntu 20.04 LTShttps://ubuntu.com/download/server/arm

CentOS Linux 8http://isoredirect.centos.org/centos/8/isos/aarch64/

openSUSE Leap 15.2http://download.opensuse.org/ports/aarch64/distribution/leap/15.2/iso/

Photon OS 3.0https://github.com/vmware/photon/wiki/Downloading-Photon-OS

Debian 10.xhttps://cdimage.debian.org/debian-cd/current/arm64/iso-cd/

Fedora 32 Serverhttps://getfedora.org/en/server/download

以Ubuntu为例,下载ubuntu-20.04.1-live-server-arm64.iso,上传至Datastore,供创建虚拟机时做光盘引导。

选择ISO作为引导盘
安装过程

安装成功

Arm版Ubuntu安装成功

在ESXi首页的资源使用情况图中,可以看出来4G版Pi 4b在安装两个虚拟机之后内存是瓶颈了(我还装了一个VMware Photon虚拟机),所以更推荐使用8G版Pi 4b,一台树莓派上可以同时运行几个客户机,比如Ubuntu,Debian,CentOS等。

资源占用

Tips:

此版本ESXi on Arm中没有自带VMware Tools的安装文件,所以无法通过虚拟机操作菜单安装,不过ESXi-Arm-Fling-Doc.pdf文档中,提供了创建虚拟机之后在虚拟机中编译并安装Open VM Tools的步骤。

编译的Open VM Tools被识别

已知问题:

USB3.0性能达不到协议上限,使用USB3.0的外接网卡(比如一些螃蟹USB网卡)时最高只能达到200Mbps。

监控中的网络和磁盘数据不准确,是因为I/O驱动的问题,目前还在开发中。

不同SoC的ARM设备之间不能进行vMotion,比如eMAG和树莓派之间。

此试用license为180天,过期需要重新安装,理论上也可以用其它有效的x86版vSphere license来授权。

此次ESXi on Arm并非只为树莓派设计,更多的使用场景和以后的发展方向应该是一些Arm-based SmartNICs,或者其它ARM服务器。Nvidia提出收购ARM要约之后,最近的VMworld2020大会上,Nvidia和VMware也宣布了一些合作,其中包括Project Monterey。(和NVIDIA, Pensando, and Intel这三家SmartNIC顶级厂商都建立了合作伙伴关系)有兴趣的可以去链接中查看或者网上搜索下。

相关文章

我的ESXi on Arm硬件

树莓派4 U盘启动+ UEFI引导

vSphere Clustering Service (vCLS)

更新vCenter到7.0 Update1之后,发现虚拟机视图下,多了一个vCLS文件夹,并且下面有3个虚拟机。

vCLS

官方博客文章了解到这是vSphere7.0 Update1新引入的vSphere Clustering Service,简单来说,把一部分控制平面的功能,从vCenter中解耦,并且分布式的由最多3个轻量级虚拟机per Cluster(VMware PhotonOS)分担。当ESXi少于3个时,vCLS虚拟机个数等于ESXi个数。

从介绍来看,这三个虚拟机的生命周期不需要用户或者管理员去处理,而是通过vSphere ESX Agent Manager来管理的,如果我们强行对某一vCLS虚拟机关机,那么Manager检测到少了一个vCLS虚拟机时,会再把它开机。如果我们关闭vCLS虚拟机后快速把虚拟机删除掉,那么Manager就会再创建一个vCLS虚拟机。实际测试也是这样的。

可以想像到今后vSphere会尝试把更多的控制平面服务解耦并分布式部署,有点微服务的意思了。

PS: 因为这个轻量级虚拟机目前还只有X86版,所以如果vCenter7.0Update1的cluster加入了ESXi on Arm的host,那么是无法创建vCLS虚拟机的,就会发现日志里一直在尝试创建,然后又删除。。。解决办法目前只能是Arm的host不加到Cluster里,或者不升级Update1的vCenter。

10月21日更新:

思科警告它的HyperFlex用户不要升级vCenter7.0 Update1,其中提到EAM会尝试关闭其HyperFlex controller VMs(和vCLS相似功能)并删除。(从上面我们看EAM确实会对vCLS VMs进行生命周期的控制),看来是个兼容性的问题。😓

https://www.theregister.com/2020/10/20/cisco_hyperflex_vmware_warning/

Aquantia万兆网卡在Windows下几乎没有上传速度

好久没玩Fifaonline4了,今天国庆节前的周日,公司放假,在iMac Pro的Bootcamp Windows10里装了游戏,准备玩几局,结果游戏比赛中每局都会弹出网络错误,然后游戏就断了。按说我这联通千兆宽带,再怎么差也不至于网络不好到每局都断开吧,于是找了游戏客服,客服给了一个网络检查工具,看起来就是检查延时的。也都是几毫秒到几十毫秒之内。看不出什么问题。

闲着没事用Speedtest测了一下速,发现了问题,下载测速能够达到800多M(光猫桥接主路由有一点损耗),但是上传居然只有0.04M,估计这样就是时不时网络上传就断了,所以游戏里才会弹出网络错误。

RSC为Enabled时测速

由于我用的是iMac Pro自带的Aquantia 万兆以太网口,怀疑是不是因为Bootcamp的驱动有问题,就试了下用Wifi连接网络,发现Wifi虽然因为无线路由有点落后而导致下载速度降到了400M左右,但是上传能稳定在北京联通的上限30M左右。

看来是这个有线网卡的问题,就在网上搜了搜AQUANTIA万兆网卡的问题,发现有华硕论坛里也提到了Aquantia万兆网卡的上传问题,还有Intel万兆网卡的问题,继续搜索,发现了macrumors论坛里有人提到了Aquantia万兆网卡在Mac Pro上Bootcamp时的上传问题。我这是iMac Pro,应该也差不多。

帖子里提到,要去网卡属性的高级属性里,将RSC(Recv Segment Coalescing) IPv4 和IPv6 从默认的Enabled改成Disabled。

设置成功后,再次Speedtest测速,一切正常,进入游戏也没有再发生网络错误。

RSC为Disabled时测速

树莓派4 U盘启动+ UEFI引导

几个月前得知树莓派可以通过更新EEPROM来U盘启动,大概方法就是在系统里更新重启后检查sudo rpi-eeprom-update,如果latest和current一致就说明已经是最新啦。(抱歉忘了截图。。。)

那么如何让树莓派4得到UEFI引导呢?

Github中的https://github.com/raspberrypi/firmware/ 和 https://github.com/pftf/RPi4/ 可以配合起来搞定(注意后者目前还是一个实验性的项目)。

大致步骤(以我的4GB树莓派4为例,已通过前面的步骤更新过EEPROM):

1. 将树莓派关机,取出存储卡,插入电脑读卡器(我的是macOS系统)

2. 下载最新的raspberrypi firmware并解压成一个firmware-master文件夹

3. 下载最新的RPi4 UEFI firmware (当前1.20)并解压成RPi4_UEFI_Firmware_v1.20文件夹

4. 将存储卡格式化成fat32,如果你和我一样使用macOS,可以使用diskutil命令来操作

diskutil list
/dev/disk2 (external, physical):
  #:                      TYPE NAME                          SIZE      IDENTIFIER
  0:              FDisk_partition_scheme         *15.9 GB    disk2
  1:              Windows_FAT_16 BOOT        134.2 MB   disk2s1
  2:              Linux                                             1.3 GB    disk2s2

使用如下命令格式化并将label设置成UEFI,一定要注意写对你上面查询到的存储卡的/dev/diskx !!!

diskutil partitionDisk /dev/disk2 1 MBRFormat “MS-DOS” UEFI R

5. 删除掉 firmware-master/boot 目录下所有的kernel*.img  文件,并将整个boot文件夹剩下的文件复制到格式化好的存储卡里,还以macOS为例(默认从Github下载下来的两个压缩包都解压到了桌面)

rm ~/Desktop/firmware-master/boot/kernel*.img
cp -rf ~/Desktop/firmware-master/boot/* /Volumes/UEFI

6. 复制RPi4_UEFI_Firmware_v1.20目录下所有文件到存储卡

cp -rf ~/Desktop/RPi4_UEFI_Firmware_v1.20/* /Volumes/UEFI

7. 编辑存储卡里的config.txt文件,追加gpu_mem=16。如果你和我用的一样,都是4GB版本,添加此设置,8GB版本不需要此设置。

echo “gpu_mem=16” >> /Volumes/UEFI/config.txt

8. 拔掉存储卡,如果使用macOS,可以 diskutil eject /dev/disk2后拔掉。

9. 将存储卡插入树莓派,开机,当你看到白色树莓标志时,按ESC键,就可以进入设置菜单了。(假设你已经在树莓派上插好了某UEFI引导的USB启动盘,比如Windows on ARM。这里推荐使用有外接独立供电的USB Hub来扩展USB存储,比如USB3.0的U盘,移动硬盘等)

10. Boot Maintenance ManagerBoot OptionsChange Boot Order 来切换启动顺序,再次没有截图,借用别人的截图意思一下

切换启动顺序到UEFI引导 U盘启动

调整启动顺序后,保存重启即可。