更新OpenWrt固件#

注解

OpenWrt目前只适用于NitroWall NW678。

我们建议通过预装的`Attended Sysupgrade<https://openwrt.org/docs/guide-user/installation/attended.sysupgrade>`__ 来更新 OpenWrt。要使用该服务,您需要对其进行配置,以忽略之前已安装的 “nitrowall “软件包:

  1. 进入系统 -> 已参加的系统升级 -> 配置并启用高级模式 -> 保存并应用

    ../_images/openwrt_upgrade1.png
  2. 回到概览,搜索可用的更新

    ../_images/openwrt_upgrade2.png
  3. 在已安装的软件包列表中搜索并删除 “nitrowall “软件包。然后申请固件镜像

    ../_images/openwrt_upgrade4.png
  4. 等待镜像的建立。然后安装它。检查是否设置了 “保持设置和当前配置”。

    ../_images/openwrt_upgrade5.png
  5. 软件将被安装,NitroWall将重新启动。

  6. 重启后,我们需要重新安装`nitrowall.ipk<https://www.nitrokey.com/files/ci/nitrowall/nitrowall_1.0.0-0_x86_64.ipk>`_ 包。* 这将调整你的磁盘大小,并在你的*/boot/grub/grub.cfg中添加内核参数*pcie_aspm=off* ,该参数修复了*igb* 驱动程序的问题`bug<https://bugzilla.kernel.org/show_bug.cgi?id=205073>`_ 。

  7. 在系统->软件->上传软件包下,上传软件包

    ../_images/openwrt_installnw2.png ../_images/openwrt_installnw1.png
  8. 安装它。之后,NitroWall将重新启动。

    ../_images/openwrt_installnw3.png
  9. 通过`更新 OpenWrt 出席 Sysupgrade<https://openwrt.org/docs/guide-user/installation/attended.sysupgrade>`__。

除上述说明外,你还可以通过ssh登录并执行这个脚本::

#!/bin/sh
BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)"
DISK="${BOOT%%[0-9]*}"
PART="$((${BOOT##*[^0-9]}+1))"
ROOT="${DISK}${PART}"
echo "INFO: resize partion ${ROOT}"
parted -s -a opt ${DISK} "resizepart ${PART} 100%"
LOOP="$(losetup -f)"
losetup ${LOOP} ${ROOT}
echo "INFO: resize filesytem ${ROOT}"
fsck.ext4 -y -f ${LOOP}
resize2fs ${LOOP}
echo "INFO: add pcie_aspm=off as boot parameter"
sed -i s/rootwait/rootwait\ pcie_aspm=off/g /boot/grub/grub.cfg
reboot