Closed flexxxxer closed 1 year ago
у меня нет идей кроме как проверять количество ядер процессора (если это вообще возможно) и если оно равно 1, то допускать что процессор "медленный" в роутере
Приведите пожалуйста, вывод команды cat /opt/etc/entware_release
для Вашего "старого" устройства.
~ # cat /opt/etc/entware_release
release=entware
arch=mipsel
cpu=mips32r2
cpu_subtype=unknown
float=soft
gcc=8.4.0
gcc_flags=-O2 -pipe -mno-branch-likely -mips32r2 -mtune=mips32r2 -fno-caller-saves -msoft-float
libc=glibc
libc_version=2.27
~ #
Нет, не подходит.
Тогда cat /proc/cpuinfo
~ # cat /proc/cpuinfo
system type : MediaTek MT7628 SoC
machine : Unknown
processor : 0
cpu model : MIPS 24KEc V5.5
BogoMIPS : 385.02
wait instruction : yes
microsecond timers : yes
tlb_entries : 32
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa : mips1 mips2 mips32r1 mips32r2
ASEs implemented : mips16 dsp
shadow register sets : 1
kscratch registers : 0
package : 0
core : 0
VCED exceptions : not available
VCEI exceptions : not available
~ #
В этом случае, можно предложить следующий вариант для Вашего процессора:
cat /proc/cpuinfo | grep 'system type' | cut -d':' -f2 | cut -d' ' -f3 | grep -q MT7621 && sleep 10
В этом случае, можно предложить следующий вариант для Вашего процессора:
cat /proc/cpuinfo | grep 'system type' | cut -d':' -f2 | cut -d' ' -f3 | grep -q MT7621 && sleep 10
ваше решение не производит ожидания на моем роутере, и даже если бы производило то что, все подряд процессоры 1 ядерные добавили бы?
В этом случае, можно предложить следующий вариант для Вашего процессора:
cat /proc/cpuinfo | grep 'system type' | cut -d':' -f2 | cut -d' ' -f3 | grep -q MT7621 && sleep 10
ваше решение не производит ожидания на моем роутере, и даже если бы производило то что, все подряд процессоры 1 ядерные добавили бы?
Хорошо, предложите свое решение, которое будет Вас устраивать. Если не подходит предложений вариант - просто используйте свое решение.
то есть вместо того чтобы продолжить дискуссию и всё же добавить решение проблемы вы просто закрываете пул реквест и всё?
А нельзя повторить основную команду, с задержкой 10с, если если все Впн соединения имеют статус неподключенных? Тогда флаг слабого процессора вообще не нужен. На баше не писал какие-то серьёзные проекты, только небольшие скрипты, поэтому с конкретной реализацией прям сейчас не смогу помочь.
А нельзя повторить основную команду, с задержкой 10с, если если все Впн соединения имеют статус неподключенных? Тогда флаг слабого процессора вообще не нужен. На баше не писал какие-то серьёзные проекты, только небольшие скрипты, поэтому с конкретной реализацией прям сейчас не смогу помочь.
нет нельзя. проблема в том что сброс соединения и чтение его состояния в функции где я внес исправление является местом ошибки. выполнение kvas setup
два раза подряд с промежутком в 10 и более секунд ничего не даст, как и выполнение kvas vpn rescan
два раза подряд с промежутком в 10 и более секунд
А нельзя повторить основную команду, с задержкой 10с, если если все Впн соединения имеют статус неподключенных? Тогда флаг слабого процессора вообще не нужен. На баше не писал какие-то серьёзные проекты, только небольшие скрипты, поэтому с конкретной реализацией прям сейчас не смогу помочь.
нет нельзя. проблема в том что сброс соединения и чтение его состояния в функции где я внес исправление является местом ошибки. выполнение
kvas setup
два раза подряд с промежутком в 10 и более секунд ничего не даст, как и выполнениеkvas vpn rescan
два раза подряд с промежутком в 10 и более секунд
А так? Правда надо ещё реализовать getIsLinkInterface(), либо найти аналогичную функцию из проекта, если она есть
for inface_cli in ${inface_list}; do
# переподключаем текущее соединение
reset_connection "${inface_cli}"
isLink = getIsLinkInterface(inface_cli)
if ! isLink {
# Костыль, для старых процессоров
sleep 10
}
# получаем описание интерфейса
description=$(get_value_interface_field "${inface_cli}" description | sed 's|\/|\\/|g')
и что должен делать getIsLinkInterface
?
Проверить, есть ли соединение на этом интерфейсе. Если есть соединение, то вернуть True, если нет, то False
ладно, попробую на днях реализовать, посмотрим получится ли
ваше решение не производит ожидания на моем роутере, и даже если бы производило то что, все подряд процессоры 1 ядерные добавили бы? то есть вместо того чтобы продолжить дискуссию и всё же добавить решение проблемы вы просто закрываете пул реквест и всё?
Вы не даете достаточной обратной связи и не хотите помочь самому себе. Вами не было предоставлено никакой информации, на основании которой Вы сделали подобный вывод, а Ваше сообщение выше я склонен рассматривать больше, как претензию, а не как просьбу о помощи, потому, я принял решение о закрытии данной дискуссии.
Если есть желание помочь себе, то необходима информация о которой я написал выше. Так же, прошу прояснить о какой именно ошибке идет речь в Вашем сообщении, цитирую: "и чтение его состояния в функции где я внес исправление является местом ошибки".
@qzeleza
На самом деле вывода /proc/cpuinfo
достаточно, потому что строка processor
это не количество, а порядковый номер процессора. То есть 0 - это один.
awk '/^processor/{n+=1}END{print n}' /proc/cpuinfo
@flexxxxer
Можешь добавить вывод из cat /sys/devices/system/cpu/kernel_max
?
или любого файла из это директории
Я имею роутер Zyxel Keenetic Extra II где одноядерный процессор 2016 года. При выполнении
kvas setup
илиkvas vpn rescan
он почти всегда определяет vpn-подключения как отключенные/не работающие из-за чего настройка (выполнениеkvas setup
) невозможно. Это исправление к описанной выше проблеме.