Japanese notation
はじめに
記事について
OpenWrt初期設定・運用ガイドです
インストールから各種設定、チューニングなどをまとめています
初心者対応構成
- スクリプトでの自動設定
- 学びたい人はUCI (ttyd)、Webコンソール (LuCi)、ファイラー (SFTP)にて比較作業がおススメ
デバイスアクセス
PowerShellの開始
- パワーシェル起動:キー入力:
Win+x>a>はい - コンソールログイン (パワーシェル)
※192.168.1.1以外の場合、以下の形式で入力後にワンライナーを入力下さい
$ip="192.168.*.*"
- コンソールログイン (192.168.1.1用)
万能型ワンライナー
if(!$ip){$ip="192.168.1.1"}; ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -o GlobalKnownHostsFile=NUL -o HostKeyAlgorithms=+ssh-rsa -tt root@$ip
インストール
インストールは目的で取捨選択
アップデート
- 最初必須
※アップデート情報は再起動でリセット
#!/bin/sh
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
非推奨
command -v opkg && opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
command -v apk && apk upgrade
Webコンソール(LuCi)
リリースビルド(RC含む)は不要
#! /bin/sh
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg list $PATTERN 2>/dev/null
command -v apk && apk search $PATTERN 2>/dev/null
LuCi日本語化
#! /bin/sh
I18N="ja"
PKGS="luci-i18n-base-${I18N} luci-i18n-opkg-${I18N} luci-i18n-firewall-${I18N} luci-i18n-package-manager-${I18N} luci-i18n-attendedsysupgrade-${I18N}"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
-
ブラウザ:
192.168.1.1- ユーザー名:
root - パスワード:
設定したパスワード
- ユーザー名:
Dashboard
#!/bin/sh
I18N="ja"
PKGS="luci-mod-dashboard luci-i18n-dashboard-${I18N}"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
UCI(TTYD)
WEBからSSHが使える
かなり便利
#!/bin/sh
I18N="ja"
PKGS="luci-app-ttyd luci-i18n-ttyd-${I18N}"
LAN="$(uci -q get network.lan.device || echo lan)"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
uci set ttyd.@ttyd[0]=ttyd
uci set ttyd.@ttyd[0].command='/bin/login -f root ' # 自動ログイン
uci commit ttyd
service ttyd restart
/etc/init.d/rpcd restart
TTYDログイン
- ブラウザ:
- ユーザー名:
root- パスワード:
設定したパスワード
ファイラー (SFTP)
#!/bin/sh
PKGS="openssh-sftp-server"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
- クライアント設定(WIndows)
- 手動インストール
- ダウンロード:WinSCP
- 手動インストール
自動インストール
- キー入力:
Win+x>a>はい - 最新版ソフトウェアのインストール
$psVersion = $PSVersionTable.PSVersion.Major
$LINKS = Invoke-WebRequest "https://winscp.net/eng/download.php"
$LINKS_VERSION = $LINKS.Links | Where-Object {$_.href -like "*WinSCP-*-Setup.exe*"} | Select-Object -ExpandProperty href
$VERSION = ($LINKS_VERSION -split '/')[-2] -replace "WinSCP-([0-9]+\.[0-9]+\.[0-9]+).*", '$1'
Write-Host "Version to install: $VERSION"
$downloadUrl = "https://jaist.dl.sourceforge.net/project/winscp/WinSCP/$VERSION/WinSCP-$VERSION-Setup.exe?viasf=1"
Write-Host "Downloading from: $downloadUrl"
$ONAMAE = (whoami).Split('\')[1]
$destinationPath = "C:\Users\$ONAMAE\Downloads\WinSCP-$VERSION-Setup.exe"
Invoke-WebRequest -Uri $downloadUrl -OutFile $destinationPath
Write-Host "Installing WinSCP..."
Start-Process -FilePath $destinationPath -ArgumentList "/VERYSILENT /NORESTART" -Wait
Invoke-Expression "C:\Users\$ONAMAE\AppData\Local\Programs\WinSCP\WinSCP.exe"
-
警告>強制的に貼り付け - WinSCP設定
- セッション
- ホスト名:
192.168.1.1 - ユーザー名:
root
- ホスト名:
- セッション
- パスワード:
設定したパスワード-
ログインをクリック
-
ファイラー (filebrowser)
mkdir -p /tmp && wget --no-check-certificate -O /tmp/filebrowser.sh "https://site-u.pages.dev/www/custom-scripts/filebrowser.sh" && chmod +x /tmp/filebrowser.sh && sh /tmp/filebrowser.sh -i
- 管理画面 (初期値)
Web Interface: http://192.168.0.1:8080/
Username:admin
Password:admin12345678
※/etc/config/filebrowserのパスワードは12文字以上必須
BusyBoxフルバージョン
※トラブルになりがち(標準仕様と挙動等変わるコマンドがある為)
#!/bin/sh
PKGS="coreutils"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
CPU負荷分散
4コアシステム以上でより有効
※全体的なパフォーマンスが向上し、さらには消費電力が削減される可能性があります
※2core ターゲットでは、ベンチマークのみを除くと、パフォーマンスが低下する可能性があります
#!/bin/sh
PKGS="irqbalance"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
uci set irqbalance.irqbalance=irqbalance
uci set irqbalance.irqbalance.enabled='1'
uci commit irqbalance
/etc/init.d/irqbalance start
SQM(Smart Queue Management)
WAN側帯域コントローラー
★スナップショット必須
※リリースビルドも効果大
※要チューニング
#!/bin/sh
I18N="ja"
DOWNLOAD='0'
UPLOAD='0'
PKGS="luci-app-sqm luci-i18n-sqm-${I18N}"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
. /lib/functions/network.sh
network_flush_cache
network_find_wan6 NET_IF6
network_get_physdev NET_L2D6 "${NET_IF6}"
uci set sqm.@queue[0].enabled='1'
uci set sqm.@queue[0].interface=${NET_L2D6}
uci set sqm.@queue[0].download=${DOWNLOAD}
uci set sqm.@queue[0].upload=${UPLOAD}
uci commit sqm
/etc/init.d/sqm start
/etc/init.d/sqm enable
# reboot
QoS(Network Traffic Control)
LAN側帯域コントローラー
#!/bin/sh
I18N="ja"
PKGS="tc-full luci-app-qos luci-i18n-qos-${I18N}"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
# reboot
ネットワーク統計インターフェイス
#!/bin/sh
I18N="ja"
PKGS="luci-i18n-statistics-${I18N}"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
/etc/init.d/collectd enable
/etc/init.d/rpcd restart
帯域幅モニター
#!/bin/sh
I18N="ja"
PKGS="luci-i18n-nlbwmon-${I18N}"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
# reboot
ネットデータ
#!/bin/sh
PKGS="netdata"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
WiFiスケジュール
WiFi制御
#!/bin/sh
I18N="ja"
PKGS="wifischedule luci-app-wifischedule luci-i18n-wifischedule-${I18N}"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
追加テーマ
#!/bin/sh
PKGS="luci-theme-openwrt luci-theme-material luci-theme-openwrt-2020"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
Attended Sysupgrade(owut)
自動アップグレード
#!/bin/sh
I18N="ja"
PKGS="attendedsysupgrade-common luci-app-attendedsysupgrade luci-i18n-attendedsysupgrade-${I18N} auc owut"
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
カスタム フィード gSpotx2f
現在のバージョン
※カスタムフィードに関し、配布元の構成変更が頻繁にある為、インストール出来ない事場合、適弁コマンドを修正下さい
また依頼あれば対応します
- ログ情報
- CPUステータス
- CPUパフォーマンス
- 温度センサー
- インターネット可用性確認
- モデム再起動モジュール
- 電子メール通知モジュール
{
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
API_PATH="24.10"
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
API_PATH="25.12"
PKG_EXT="apk"
;;
*)
echo "Incompatible version: $OPENWRT_RELEASE"
exit 1
;;
esac
echo "OpenWrt Version: $OPENWRT_RELEASE"
echo "API Path: $API_PATH"
echo "Package Extension: .$PKG_EXT"
echo ""
get_package_name() {
local package_pattern="$1"
local api_url="https://api.github.com/repos/gSpotx2f/packages-openwrt/contents/${API_PATH}"
local response=$(wget --no-check-certificate -q -O - "$api_url")
local package_name=$(echo "$response" | jsonfilter -e '@[*].name' | grep "${package_pattern}.*\.${PKG_EXT}" | head -n1)
if [ -z "$package_name" ]; then
echo "[ERROR] Not found: $package_pattern"
else
echo "$package_name"
fi
}
echo "Fetching package list from GitHub API..."
LOG_VIEWER=$(get_package_name "luci-app-log-viewer")
CPU_STATUS=$(get_package_name "luci-app-cpu-status")
CPU_PERF=$(get_package_name "luci-app-cpu-perf")
TEMP_STATUS=$(get_package_name "luci-app-temp-status")
INTERNET_DETECTOR=$(get_package_name "internet-detector_")
INTERNET_DETECTOR_APP=$(get_package_name "luci-app-internet-detector")
INTERNET_DETECTOR_MODEM=$(get_package_name "internet-detector-mod-modem")
INTERNET_DETECTOR_EMAIL=$(get_package_name "internet-detector-mod-email")
DISKA_INFO=$(get_package_name "luci-app-disks-info")
echo ""
echo "Current Version -------------------------"
echo "${LOG_VIEWER}"
echo "${CPU_STATUS}"
echo "${CPU_PERF}"
echo "${TEMP_STATUS}"
echo "${INTERNET_DETECTOR}"
echo "${INTERNET_DETECTOR_APP}"
echo "${INTERNET_DETECTOR_MODEM}"
echo "${INTERNET_DETECTOR_EMAIL}"
echo "${DISKA_INFO}"
echo "-----------------------------------------"
}
ログ情報
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
API_PATH="24.10"
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
API_PATH="25.12"
PKG_EXT="apk"
;;
esac
PACKAGE_PATTERN="luci-app-log-viewer"
API_URL="https://api.github.com/repos/gSpotx2f/packages-openwrt/contents/${API_PATH}"
DOWNLOAD_BASE_URL="https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/${API_PATH}"
TMP_DIR="/tmp"
RESPONSE=$(wget --no-check-certificate -q -O - "$API_URL")
PACKAGE_NAME=$(echo "$RESPONSE" | jsonfilter -e '@[*].name' | grep "${PACKAGE_PATTERN}.*\.${PKG_EXT}" | head -n1)
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME} ${DOWNLOAD_BASE_URL}/${PACKAGE_NAME}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME}
rm ${TMP_DIR}/${PACKAGE_NAME}
/etc/init.d/rpcd restart
CPUステータス
CPUの使用率等リアルタイム表示
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
API_PATH="24.10"
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
API_PATH="25.12"
PKG_EXT="apk"
;;
esac
PACKAGE_PATTERN="luci-app-cpu-status"
EXCLUDE_PATTERN="luci-app-cpu-status-mini"
API_URL="https://api.github.com/repos/gSpotx2f/packages-openwrt/contents/${API_PATH}"
DOWNLOAD_BASE_URL="https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/${API_PATH}"
TMP_DIR="/tmp"
RESPONSE=$(wget --no-check-certificate -q -O - "$API_URL")
PACKAGE_NAME=$(echo "$RESPONSE" | jsonfilter -e '@[*].name' | grep "${PACKAGE_PATTERN}.*\.${PKG_EXT}" | grep -v "${EXCLUDE_PATTERN}" | head -n1)
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME} ${DOWNLOAD_BASE_URL}/${PACKAGE_NAME}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME}
rm ${TMP_DIR}/${PACKAGE_NAME}
/etc/init.d/rpcd restart
CPUパフォーマンス
CPUのパフォーマンスコントローラー
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
API_PATH="24.10"
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
API_PATH="25.12"
PKG_EXT="apk"
;;
esac
PACKAGE_PATTERN="luci-app-cpu-perf"
API_URL="https://api.github.com/repos/gSpotx2f/packages-openwrt/contents/${API_PATH}"
DOWNLOAD_BASE_URL="https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/${API_PATH}"
TMP_DIR="/tmp"
RESPONSE=$(wget --no-check-certificate -q -O - "$API_URL")
PACKAGE_NAME=$(echo "$RESPONSE" | jsonfilter -e '@[*].name' | grep "${PACKAGE_PATTERN}.*\.${PKG_EXT}" | head -n1)
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME} ${DOWNLOAD_BASE_URL}/${PACKAGE_NAME}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME}
rm ${TMP_DIR}/${PACKAGE_NAME}
/etc/init.d/cpu-perf enable
/etc/init.d/rpcd restart
温度センサー
デバイス各センサーのリアルタイム表示
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
API_PATH="24.10"
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
API_PATH="25.12"
PKG_EXT="apk"
;;
esac
PACKAGE_PATTERN="luci-app-temp-status"
API_URL="https://api.github.com/repos/gSpotx2f/packages-openwrt/contents/${API_PATH}"
DOWNLOAD_BASE_URL="https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/${API_PATH}"
TMP_DIR="/tmp"
RESPONSE=$(wget --no-check-certificate -q -O - "$API_URL")
PACKAGE_NAME=$(echo "$RESPONSE" | jsonfilter -e '@[*].name' | grep "${PACKAGE_PATTERN}.*\.${PKG_EXT}" | head -n1)
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME} ${DOWNLOAD_BASE_URL}/${PACKAGE_NAME}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME}
rm ${TMP_DIR}/${PACKAGE_NAME}
/etc/init.d/rpcd restart
インターネット可用性確認
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
API_PATH="24.10"
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
API_PATH="25.12"
PKG_EXT="apk"
;;
esac
API_URL="https://api.github.com/repos/gSpotx2f/packages-openwrt/contents/${API_PATH}"
DOWNLOAD_BASE_URL="https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/${API_PATH}"
TMP_DIR="/tmp"
RESPONSE=$(wget --no-check-certificate -q -O - "$API_URL")
PACKAGE_NAME=$(echo "$RESPONSE" | jsonfilter -e '@[*].name' | grep "internet-detector_.*\.${PKG_EXT}" | head -n1)
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME} ${DOWNLOAD_BASE_URL}/${PACKAGE_NAME}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME}
rm ${TMP_DIR}/${PACKAGE_NAME}
/etc/init.d/internet-detector enable
PACKAGE_NAME_UI=$(echo "$RESPONSE" | jsonfilter -e '@[*].name' | grep "luci-app-internet-detector.*\.${PKG_EXT}" | head -n1)
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME_UI} ${DOWNLOAD_BASE_URL}/${PACKAGE_NAME_UI}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME_UI}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME_UI}
rm ${TMP_DIR}/${PACKAGE_NAME_UI}
/etc/init.d/rpcd restart
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
API_PATH="24.10"
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
API_PATH="25.12"
PKG_EXT="apk"
;;
esac
PACKAGE_PATTERN="internet-detector-mod-modem"
API_URL="https://api.github.com/repos/gSpotx2f/packages-openwrt/contents/${API_PATH}"
DOWNLOAD_BASE_URL="https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/${API_PATH}"
TMP_DIR="/tmp"
RESPONSE=$(wget --no-check-certificate -q -O - "$API_URL")
PACKAGE_NAME=$(echo "$RESPONSE" | jsonfilter -e '@[*].name' | grep "${PACKAGE_PATTERN}.*\.${PKG_EXT}" | head -n1)
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME} ${DOWNLOAD_BASE_URL}/${PACKAGE_NAME}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME}
rm ${TMP_DIR}/${PACKAGE_NAME}
/etc/init.d/internet-detector restart
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
API_PATH="24.10"
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
API_PATH="25.12"
PKG_EXT="apk"
;;
esac
PACKAGE_PATTERN="internet-detector-mod-email"
API_URL="https://api.github.com/repos/gSpotx2f/packages-openwrt/contents/${API_PATH}"
DOWNLOAD_BASE_URL="https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/${API_PATH}"
TMP_DIR="/tmp"
RESPONSE=$(wget --no-check-certificate -q -O - "$API_URL")
PACKAGE_NAME=$(echo "$RESPONSE" | jsonfilter -e '@[*].name' | grep "${PACKAGE_PATTERN}.*\.${PKG_EXT}" | head -n1)
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME} ${DOWNLOAD_BASE_URL}/${PACKAGE_NAME}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME}
rm ${TMP_DIR}/${PACKAGE_NAME}
/etc/init.d/internet-detector restart
カスタムフィード ARGON
テーマ ARGON (テンプレート)
※Chrome ブラウザを強くお勧めします。このテーマではいくつかの新しい css3 機能が使用されていますが、現時点で最も互換性が高いのは Chrome のみです。
#!/bin/sh
OPENWRT_RELEASE=$(grep 'DISTRIB_RELEASE' /etc/openwrt_release 2>/dev/null | cut -d"'" -f2)
case "$OPENWRT_RELEASE" in
19.*|20.*|21.*|22.*|23.*|24.*)
PKG_EXT="ipk"
;;
SNAPSHOT|25.*|26.*)
PKG_EXT="apk"
;;
esac
TMP_DIR="/tmp"
PKGS="luci-compat luci-lib-ipkg"
[ -f /tmp/.update_done ] || {
command -v opkg >/dev/null 2>&1 && opkg update
command -v apk >/dev/null 2>&1 && apk update
touch /tmp/.update_done
}
command -v opkg && opkg install $PKGS 2>/dev/null
command -v apk && apk add $PKGS 2>/dev/null
ALL_RELEASES=$(wget --no-check-certificate -q -O - "https://api.github.com/repos/jerrykuku/luci-theme-argon/releases")
PACKAGE_NAME=$(echo "$ALL_RELEASES" | jsonfilter -e '@[*].assets[*].name' | grep "luci-theme-argon" | grep "\.${PKG_EXT}$" | head -n1)
TAG_NAME=$(echo "$ALL_RELEASES" | jsonfilter -e '@[0].tag_name')
DOWNLOAD_URL="https://github.com/jerrykuku/luci-theme-argon/releases/download/${TAG_NAME}/${PACKAGE_NAME}"
wget --no-check-certificate -O ${TMP_DIR}/${PACKAGE_NAME} ${DOWNLOAD_URL}
command -v opkg && opkg install ${TMP_DIR}/${PACKAGE_NAME}
command -v apk && apk add ${TMP_DIR}/${PACKAGE_NAME}
rm ${TMP_DIR}/${PACKAGE_NAME}
/etc/init.d/rpcd restart
テーマ EDGE
#! /bin/sh
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
wget --no-check-certificate -O /tmp/luci-theme-edge.ipk https://github.com/noct99/blog.vpngame.com/raw/main/luci-theme-edge.ipk
opkg install /tmp/luci-theme-edge.ipk
rm /tmp/luci-theme-edge.ipk
/etc/init.d/rpcd restart
テーマ OPENTOMATO
#! /bin/sh
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
wget --no-check-certificate -O /tmp/luci-theme-opentomato.ipk https://github.com/noct99/blog.vpngame.com/raw/main/luci-theme-opentomato.ipk
opkg install /tmp/luci-theme-opentomato.ipk
rm /tmp/luci-theme-opentomato.ipk
/etc/init.d/rpcd restart
テーマ TANO
#! /bin/sh
UPDATE="${UPDATE:-$(command -v opkg && opkg update >&2; command -v apk && apk update >&2; echo 1)}"
wget --no-check-certificate -O /tmp/luci-theme-tano.ipk https://github.com/noct99/blog.vpngame.com/raw/main/luci-theme-tano.ipk
opkg install /tmp/luci-theme-tano.ipk
rm /tmp/luci-theme-tano.ipk
/etc/init.d/rpcd restart
パッケージ確認
他デバイス設定
フラッシュ&インストールシステム
初期化
ファクトリーリセット(初期化)
# 要注意
firstboot && reboot now
This will erase all settings and remove any installed packages. Are you sure? [N/y]
y
デバイスリセットボタン
デバイスのリセットボタンを5秒押し続ける




