Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

keenetic-info (kss)

Дашборд роутера на KeeneticOS: модель, CPU, память, температуры, WAN, клиенты, компоненты. Источники — RCI (127.0.0.1:79), /proc, /sys.

Проверено на KeeneticOS 3.9 / 4.x / 5.1.2, архитектуры mips / mipsel / aarch64.

Установка

opkg update && opkg install curl jq
curl -fsSL https://raw.githubusercontent.com/pumbaX/keenetic-info/main/install.sh | sh

Команды

Команда Что делает
kss показать дашборд
kss -c компактный вид, одна строка на раздел
kss -f подробный вид (по умолчанию)
kss update обновить скрипт из репозитория
kss debug выгрузить сырые ответы RCI в /tmp/kn-info-debug
kss --help справка
NO_COLOR=1 kss вывод без ANSI-цвета (для логов и пайпов)
KN_INFO_STYLE=compact сделать компактный вид видом по умолчанию

Постоянная настройка (надёжнее, чем переменная в профиле):

echo 'KN_INFO_STYLE=compact' > /opt/etc/kn-info.conf

Приоритет: флаг командной строки > переменная окружения > конфиг > подробный вид.

Что изменилось в 2.3.0

  • Температура вынесена в отдельную строку и окрашивается по порогу: до 55°C зелёный, 55–69°C жёлтый, от 70°C красный.
  • Клиенты — отдельная метка, без слова «клиентов».
  • Разделитель внутри строки — · вместо |, метки в cyan.
  • Ядра показываются как ×2, прошивка — 5.1.2 preview · 5.01.C.2.0-2 · 21 Jul 2026.

Что изменилось в 2.2.0

Компактный вид переработан: 7 строк, выравнивание по метке, без рамки. Убраны Load Average, список VPN и список компонентов — в подробном виде они остались. Аптайм в компактном виде выводится как 9 дн. 06:08:12. Накопитель показывается без служебных префиксов; если разделов несколько, каждый подписывается точкой монтирования.

Что изменилось в 2.1.0

  • Компактный режим kss -c: 9 строк вместо 25, разделы склеены через |.
  • Починено определение SoC. tr-эмуляция strings спотыкалась о NUL-байты в библиотеке, и процессор падал в фолбэк /proc/cpuinfo, где на ARMv8 лежит бесполезное ARMv8 Processor rev 4 (v8l). Теперь три пути по очереди: stringsgrep -atr, плюс дополнительный источник /proc/device-tree/compatible и расширенный список путей к библиотекам.

Что изменилось в 2.0.0

Причины, по которым 1.x не заводился на свежих прошивках:

  1. localhost127.0.0.1. ndm слушает порт 79 только на IPv4-loopback. localhost уходит в резолвер и может отдать ::1 либо адрес от DNS роутера — curl молча возвращает пустоту, и все поля становятся пустыми.
  2. .model.device с цепочкой фолбэков. В KeeneticOS 4.x/5.x каноничное имя устройства лежит в .device; .model остаётся для совместимости, но не на всех сборках. Порядок: .device.model.description.
  3. CPU на aarch64. /proc/cpuinfo на ARMv8 не содержит ни Hardware, ни model name — старый код давал Unknown. Модель SoC берётся из /lib/libndmMwsController.so (как в KeenKit), /proc/cpuinfo — фолбэк.
  4. Парсинг JSON. Блочный awk-парсер температур разваливался на compact-JSON: после WifiMaster0 он брал первую temperature во всём документе. Теперь основной путь — jq, а фолбэк нормализует JSON в поток токенов и работает одинаково на compact и pretty.
  5. Архитектура определяется через opkg print-architecture (различает mips / mipsel), а не по строке из RCI.
  6. RAM и uptime берутся из show/system (.memory, .uptime) — те же цифры, что в веб-интерфейсе. /proc остался фолбэком.
  7. Компоненты читаются из .ndw.components / .ndw.features с фолбэком на верхний уровень (старые прошивки).
  8. WAN IP — интерфейс с defaultgw == true, а не первый попавшийся address (раньше на роутере с несколькими интерфейсами показывался LAN-адрес).
  9. Диагностика вместо пустого экрана: если RCI не отвечает, скрипт печатает, что именно проверить, и выходит с кодом 1.
  10. printf вместо echo -e, нет временных файлов в /tmp, поддержка NVMe/eMMC в списке накопителей.

Зависимости

curl — обязательно. jq — опционально: без него скрипт работает, но вложенные поля парсятся приближённо.

About

No description, website, or topics provided.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages