固件更新

本指南介绍了如何更新Nitrokey 3的固件。

警告

本指南仍处于实验状态!

备注

只有 0.11 及更新版本的固件才能进行更新。

重要

更新可能导致数据丢失,所以要确保你启用了适当的备份登录方法,并/或确保Nitrokey Pro不是你的应用程序/服务的唯一认证/2FA方式。

如何更新

重要

在更新过程中,千万不要断开Nitrokey 3的连接或中止进程,这很可能会使你的设备失去作用。

  1. 确保你已经安装了最新的`pynitrokey`版本,请查看<../../software/nitropy/all-platforms/installation.html>`__针对你的操作系统的安装说明。

  2. 下载最新的稳定`固件镜像<https://github.com/Nitrokey/nitrokey-pro-firmware/releases>`__。

    重要

    对于生产使用,你应该选择最新的稳定版本(所以只有不包含 "预发布 "或 "RC "的版本)。

  3. 要应用该更新,请运行。

$ nitropy pro enable-update
$ nitropy pro update nitrokey-pro-firmware-<version>.bin

替代更新方法

或者可以使用 dfu-util 来进行固件更新。

  1. 安装dfu-util

    Binaries for Windows are available at: * http://dfu-util.sourceforge.net/releases/

    For macOS binaries are available via Homebrew: * https://formulae.brew.sh/formula/dfu-util

    *只限于macOS:*通过Homebrew安装`dfu-util`。

    brew install dfu-util
    
  2. 使用Nitrokey App v1.5-RC7或更高版本,将Nitrokey Pro的启动模式改为更新模式。

  3. 现在用以下命令来应用更新

    $ dfu-util -D update_binary.bin
    
  4. 现在可以通过Nitrokey应用程序再次改变启动模式。

故障排除

问题: ``libnitrokey``不能被发现。

如果不能自动找到libnitrokey,可以用环境变量提供它的路径。

$ env LIBNK_PATH=/libnk/path/libnitrokey.so nitropy pro enable-update

要在你的系统上找到libnitrokey,请使用。

$ locate libnitrokey.so

Linux 许可错误

**问题:**我在更新时得到``permission denied for /dev/hidrawX``。

这可能意味着你的用户没有必要的权限来读写设备。请确认你已经设置了正确的`udev-rules`_。下载这个`udev-rules`_集,并把它放在你的udev规则目录中(例如,/etc/udev/rules.d)。然后从USB插槽中取出你的Nitrokey 3并运行。``udevadm control --reload-rules && udevadm trigger``或者重新启动你的机器。之后,更新应该可以工作,没有权限问题。