4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenWrt APK OPKG パッケージインストール

4
Last updated at Posted at 2023-08-29

:flag_jp: Japanese notation

OpenWrt_icon.png

はじめに

記事について

OpenWrt初期設定・運用ガイドです
インストールから各種設定、チューニングなどをまとめています

初心者対応構成

デバイスアクセス

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

デバイス再起動

  • 必要に応じて
reboot

終了

  • コンソール終了
exit

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
    • パスワード:設定したパスワード
  • QRコード:
    192.168.1.1
    QR192.168.1.1.png

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ログイン

  • ブラウザ:

192.168.1.1:7681

  • ユーザー名:root
  • パスワード:設定したパスワード
  • QRコード:
    192.168.1.1:7681
    QR_062248.png

ファイラー (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)
    • 手動インストール
自動インストール
  • キー入力:Win+x > a > はい
  • 最新版ソフトウェアのインストール
powershell:クライアントPC
$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

※/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

192.168.1.1:19999

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

LOLCAT

虹色で綺麗(なだけ)

#!/bin/sh
PKGS="lolcat"
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

サンプル

lolcat /etc/config/network

Attended Sysupgradeowut

自動アップグレード

アップグレード.png

#!/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

パッケージ確認

他デバイス設定

フラッシュ&インストールシステム

aios.png

初期化

ファクトリーリセット(初期化)

# 要注意
firstboot && reboot now

This will erase all settings and remove any installed packages. Are you sure? [N/y]

初期化:入力モード
y

デバイスリセットボタン

デバイスのリセットボタンを5秒押し続ける

あとがき

参考資料(感謝:relaxed:

https://github.com/gSpotx2f

新しいOpenWrt LuCIテーマ

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?