(Firmware Activate/Download : Supported)
可以使用下面命令升级固件
root@nas:~ # nvmecontrol firmware usage: nvmecontrol firmware [-s slot] [-f path_to_firmware] [-a]
问题是intel并没有放出来单独的固件文件,只有一个升级光盘。所以还是需要用intel的固件工具来升级。(光盘我解压过,没找到固件... 有大虾能提取出来的话麻烦告知一下~)
所以我们在这里,使用一个特殊的玩法来升级固件:用虚拟机加载固件升级光盘来升级。
要使用虚拟机来升级固件的话,需要达成下面这个重要条件
将SSD的PCI-e设备直通给虚拟机
接下来我们来搞定这个事情。
FreeBSD下面的虚拟机软件就是bhyve,我们使用vm-bhyve来进行管理虚拟机。
首先新建一个虚拟机
root@nas:~ # vm create -t windows flashvm root@nas:~ # vm list NAME DATASTORE LOADER CPU MEMORY VNC AUTOSTART STATE flashvm default uefi 2 2G - No Stopped
在这里我们使用windows的模板来创建虚拟机。由于虚拟机只是用来升级SSD固件,所以其他各种参数都是缺省值即可。
接下来我们要把nvme的SSD PCI设备控制权从宿主机移交给虚拟机。
找到SSD的PCI编号
root@nas:~ # pciconf -lv | grep nvme nvme0@pci0:3:0:0:	class=0x010802 card=0x370d8086 chip=0x09538086 rev=0x01 hdr=0x00
在这里,nvme0的PCI编号为 pci0:0:3:0:0,然后用devctl命令将它从主机detach
root@nas:~ # devctl detach pci0:3:0:0
我们从dmesg的信息可以看出nvme0已经detach了
nvd0: lost device - 0 outstanding nvd0: remo