設定を保持したままアップグレード
前ページでOpenWRT最新ファームウェアが問題なく動作することが分かったので、次は既にアクセスポイント専用機として運用している、もう1機のGL-AR750Sを今度は設定を保持したまま、同じファームウェアへ入れ替えてみます。
こちらのメーカーファームウェアは少し古くてv.3.211でしたが、大差はなさそう。
そしてOpenWRT側は同じv19.07.8です。
ファームウェア入れ替えアップグレードの手順で先ほどと異なるのは、この書き込み前確認で「現在の設定を保持する」にチェックをいれたままにしておくところのみ。
IPアドレスも変わらないので数分後、そのままブラウザでLuCIを開き直すと、アップグレード済のシステムが正常に稼働していました。
予め設定バックアップの対象にしていたパスは全て保持されていた他、 /mnt 下にあるSDカードのマウントポイントもそのままでした。
一方、 Startup InitScripts で一部サービスを無効にしていた設定は全て消えていたので、こちらは再度設定し直す必要があります。
パッケージの一括再インストール
設定は全てシステム内に残っているものの、ユーザが自分で入れたパッケージは、綺麗サッパリ消えているので、入れ直す必要があります。
これがOpenWRTにおけるアップグレードの鬼門なのですが、今回は幸い同じ機種が2つあるので、両者のインストール済パッケージ一覧を比較し、不足リストを生成してopkgで一括インストールしてみましょう。
まず2機目(通称:E4)のアップグレード直後のインストール済パッケージ一覧から。
(なお、前ページで述べたath10kファームウェア入れ替えだけは、既に済ませています)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
root@GL-AR750SE4:~# opkg list-installed | cut -f 1 -d ' ' ath10k-board-qca9887 ath10k-firmware-qca9887 base-files block-mount busybox ca-bundle cgi-io dnsmasq dropbear firewall4 fstools fwtool getrandom hostapd-common iw iwinfo jansson4 jshn jsonfilter kernel kmod-ath kmod-ath10k kmod-ath9k kmod-ath9k-common kmod-cfg80211 kmod-crypto-aead kmod-crypto-ccm kmod-crypto-cmac kmod-crypto-crc32c kmod-crypto-ctr kmod-crypto-gcm kmod-crypto-gf128 kmod-crypto-ghash kmod-crypto-hash kmod-crypto-hmac kmod-crypto-manager kmod-crypto-null kmod-crypto-rng kmod-crypto-seqiv kmod-crypto-sha256 kmod-gpio-button-hotplug kmod-hwmon-core kmod-lib-crc-ccitt kmod-lib-crc32c kmod-mac80211 kmod-nf-conntrack kmod-nf-conntrack6 kmod-nf-flow kmod-nf-log kmod-nf-log6 kmod-nf-nat kmod-nf-reject kmod-nf-reject6 kmod-nfnetlink kmod-nft-core kmod-nft-fib kmod-nft-nat kmod-nft-offload kmod-nls-base kmod-phy-ath79-usb kmod-ppp kmod-pppoe kmod-pppox kmod-scsi-core kmod-slhc kmod-usb-core kmod-usb-ehci kmod-usb-storage kmod-usb2 libblobmsg-json20220515 libc libgcc1 libiwinfo-data libiwinfo-lua libiwinfo20210430 libjson-c5 libjson-script20220515 liblua5.1.5 liblucihttp-lua liblucihttp0 libmnl0 libnftnl11 libnl-tiny1 libpthread libubox20220515 libubus-lua libubus20220601 libuci20130104 libuclient20201210 libucode20220812 libustream-wolfssl20201210 libwolfssl5.5.4.ee39414e logd lua luci luci-app-firewall luci-app-opkg luci-base luci-lib-base luci-lib-ip luci-lib-jsonc luci-lib-nixio luci-mod-admin-full luci-mod-network luci-mod-status luci-mod-system luci-proto-ipv6 luci-proto-ppp luci-ssl luci-theme-bootstrap mtd netifd nftables-json odhcp6c odhcpd-ipv6only openwrt-keyring opkg ppp ppp-mod-pppoe procd procd-seccomp procd-ujail px5g-wolfssl rpcd rpcd-mod-file rpcd-mod-iwinfo rpcd-mod-luci rpcd-mod-rrdnsswconfig ubi-utils uboot-envtools ubox ubus ubusd uci uclient-fetch ucode ucode-mod-fs ucode-mod-ubus ucode-mod-uci uhttpd uhttpd-mod-ubus urandom-seed urngd usign wireless-regdb wpad-basic-wolfssl |
次に前ページで構築した1機目(通称:A7)の完成状態でのパッケージ一覧。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
root@GL-AR750SA7:~# opkg list-installed | cut -f 1 -d ' ' ath10k-board-qca9887 ath10k-firmware-qca9887 base-files blkid block-mount busybox ca-bundle cgi-io dnsmasq dropbear firewall4 fstools fwtool getrandom hostapd-common iw iwinfo jansson4 jshn jsonfilter kernel kmod-ath kmod-ath10k kmod-ath9k kmod-ath9k-common kmod-cfg80211 kmod-crypto-aead kmod-crypto-ccm kmod-crypto-cmac kmod-crypto-crc32c kmod-crypto-ctr kmod-crypto-gcm kmod-crypto-gf128 kmod-crypto-ghash kmod-crypto-hash kmod-crypto-hmac kmod-crypto-manager kmod-crypto-null kmod-crypto-rng kmod-crypto-seqiv kmod-crypto-sha256 kmod-fs-ext4 kmod-gpio-button-hotplug kmod-hwmon-core kmod-lib-crc-ccitt kmod-lib-crc16 kmod-lib-crc32c kmod-mac80211 kmod-nf-conntrack kmod-nf-conntrack6 kmod-nf-flow kmod-nf-log kmod-nf-log6 kmod-nf-nat kmod-nf-reject kmod-nf-reject6 kmod-nfnetlink kmod-nft-core kmod-nft-fib kmod-nft-nat kmod-nft-offload kmod-nls-base kmod-phy-ath79-usb kmod-ppp kmod-pppoe kmod-pppox kmod-scsi-core kmod-slhc kmod-usb-core kmod-usb-ehci kmod-usb-storage kmod-usb2 libblkid1 libblobmsg-json20220515 libbz2-1.0 libc libffi libgcc1 libgd libgdbm libiwinfo-data libiwinfo-lua libiwinfo20210430 libjpeg-turbo libjson-c5 libjson-script20220515 liblua5.1.5 liblucihttp-lua liblucihttp0 liblzma libmnl0 libncurses6 libnftnl11 libnl-tiny1 libopenssl1.1 libpng libpopt0 libpthread libpython3-3.10 libreadline8 librt libsqlite3-0 libubox20220515 libubus-lua libubus20220601 libuci20130104 libuclient20201210 libucode20220812 libustream-wolfssl20201210 libuuid1 libwebp libwolfssl5.5.4.ee39414e logd lua luci luci-app-firewall luci-app-opkg luci-app-vnstat luci-base luci-compat luci-lib-base luci-lib-ip luci-lib-jsonc luci-lib-nixio luci-mod-admin-full luci-mod-network luci-mod-status luci-mod-system luci-proto-ipv6 luci-proto-ppp luci-ssl luci-theme-bootstrap mtd netifd nftables-json odhcp6c odhcpd-ipv6only openssh-client openssh-keygen openwrt-keyring opkg ppp ppp-mod-pppoe procd procd-seccomp procd-ujail px5g-wolfssl python3 python3-asyncio python3-base python3-cgi python3-cgitb python3-codecs python3-ctypes python3-dbm python3-decimal python3-distutils python3-email python3-light python3-logging python3-lzma python3-multiprocessing python3-ncurses python3-openssl python3-pydoc python3-readline python3-sqlite3 python3-unittest python3-urllib python3-uuid python3-xml rpcd rpcd-mod-file rpcd-mod-iwinfo rpcd-mod-luci rpcd-mod-rrdns rsync swconfig terminfo ubi-utils uboot-envtools ubox ubus ubusd uci uclient-fetch ucode ucode-mod-fs ucode-mod-ubus ucode-mod-uci uhttpd uhttpd-mod-ubus urandom-seed urngd usign vnstat vnstati wireless-regdb wpad-basic-wolfssl zlib |
こちらのパッケージ増加分は、主に以下の機能を追加したものです。
これら2つのリストをテキストファイルに書き出し、 diff で差分を抽出。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
$ diff -u ./A7_list-installed_fin.txt ./E4_list-installed_plain.txt | grep ^-[0-9a-zA-Z] | sed s/^-// blkid kmod-fs-ext4 kmod-lib-crc16 libblkid1 libbz2-1.0 libffi libgd libgdbm libjpeg-turbo liblzma libncurses6 libopenssl1.1 libpng libpopt0 libpython3-3.10 libreadline8 librt libsqlite3-0 libuuid1 libwebp luci-app-vnstat luci-compat openssh-client openssh-keygen python3 python3-asyncio python3-base python3-cgi python3-cgitb python3-codecs python3-ctypes python3-dbm python3-decimal python3-distutils python3-email python3-light python3-logging python3-lzma python3-multiprocessing python3-ncurses python3-openssl python3-pydoc python3-readline python3-sqlite3 python3-unittest python3-urllib python3-uuid python3-xml rsync terminfo vnstat vnstati zlib |
これを収めたテキストファイルを使って、次の要領で opkg で一括インストールします。
|
1 |
root@GL-AR750SE4:~# cat ./E4_bulk_install_packages.txt | xargs -r opkg install |
再度パッケージリストを取得して、1機目との差異が無いことを確認したら、念のために一度再起動させます。
/etc/config/の不要な設定ファイルの一括削除
ファームウェアアップグレード時に設定を保持したことから、/etc/config/には古いファームウェアの設定、特にGL-iNet独自の設定が残ったままになっています。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
root@GL-AR750SE4:~# ls -1 /etc/config ddns dhcp dnscrypt-proxy dropbear firewall fstab gl_s2s glbigdata glconfig glcrond glforward glfw glipv6 glmodem glmqtt installed.packages luci mwan3 network nodogsplash openvpn rpcd rtty samba stubby svclist.txt system system1 tertf tor ubootenv ucitrack uhttpd unbound vnstat vpn_service wireguard wireguard_server wireless |
対して初期状態から構築した1機目の同じフォルダは、これだけしかありません。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root@GL-AR750SA7:~# ls -1 /etc/config dhcp dropbear firewall fstab installed.packages luci network rpcd svclist.txt system ubootenv ucitrack uhttpd vnstat wireless |
これもパッケージの一括インストールと同じ要領で不要なファイルを抽出し、
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ diff -u ./A7_configfiles.txt ./E4_configfiles.txt | grep ^+[0-9a-zA-Z] | sed s/^+// ddns dnscrypt-proxy gl_s2s glbigdata glconfig glcrond glforward glfw glipv6 glmodem glmqtt mwan3 nodogsplash openvpn rtty samba stubby system1 tertf tor unbound vpn_service wireguard wireguard_server |
結果を収めたテキストファイルを rm に投げつけて一括削除します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
root@GL-AR750SE4:/etc/config# cat /root/E4_obsolete_configfiles.txt | xargs -r rm root@GL-AR750SE4:/etc/config# ls -1 dhcp dropbear firewall fstab installed.packages luci network rpcd svclist.txt system ubootenv ucitrack uhttpd vnstat wireless |
以上でGL-AR750Sのファームウェア入れ替えアップグレード作業は完了です。







