mirror of
https://github.com/necronicle/z2k.git
synced 2026-04-28 03:20:25 +00:00
187 lines
9 KiB
Bash
187 lines
9 KiB
Bash
#!/bin/sh
|
||
# debug.sh - Диагностика модулей ядра для z2k на Keenetic
|
||
|
||
echo "+==================================================+"
|
||
echo "| z2k - Диагностика модулей ядра |"
|
||
echo "+==================================================+"
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "1. ИНФОРМАЦИЯ О СИСТЕМЕ"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "Архитектура: $(uname -m)"
|
||
echo "Ядро: $(uname -r)"
|
||
echo "Версия Keenetic: $(cat /etc/version 2>/dev/null || echo 'не определена')"
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "2. ДИРЕКТОРИИ С МОДУЛЯМИ"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "Системные модули:"
|
||
ls -la /lib/modules/ 2>/dev/null || echo "Директория не существует"
|
||
echo ""
|
||
|
||
echo "Entware модули:"
|
||
ls -la /opt/lib/modules/ 2>/dev/null || echo "Директория не существует"
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "3. НАЛИЧИЕ ФАЙЛОВ МОДУЛЕЙ"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
for mod in xt_NFQUEUE xt_multiport xt_connbytes nfnetlink_queue; do
|
||
echo "Модуль: $mod"
|
||
find /lib/modules/ -name "${mod}.ko" 2>/dev/null || echo " Файл не найден"
|
||
done
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "4. ЗАГРУЖЕННЫЕ МОДУЛИ (lsmod)"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "Все netfilter модули:"
|
||
lsmod | grep -E 'nf|xt_' | head -20
|
||
echo ""
|
||
echo "Интересующие нас модули:"
|
||
for mod in xt_NFQUEUE xt_multiport xt_connbytes nfnetlink_queue; do
|
||
if lsmod | grep -q "^${mod} "; then
|
||
echo " [OK] $mod загружен"
|
||
else
|
||
echo " [FAIL] $mod НЕ загружен"
|
||
fi
|
||
done
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "5. ВЕРСИИ MODPROBE"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "Системный modprobe:"
|
||
which /sbin/modprobe && /sbin/modprobe --version 2>&1 | head -3
|
||
echo ""
|
||
echo "Entware modprobe:"
|
||
which /opt/sbin/modprobe && /opt/sbin/modprobe --version 2>&1 | head -3
|
||
echo ""
|
||
echo "Дефолтный modprobe:"
|
||
which modprobe && modprobe --version 2>&1 | head -3
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "6. ПОПЫТКА ЗАГРУЗКИ ЧЕРЕЗ /sbin/modprobe"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
for mod in xt_NFQUEUE xt_multiport xt_connbytes; do
|
||
echo "Попытка загрузки: $mod"
|
||
/sbin/modprobe "$mod" 2>&1
|
||
echo "Exit code: $?"
|
||
echo ""
|
||
done
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "7. ПОПЫТКА ЗАГРУЗКИ ЧЕРЕЗ insmod"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
kernel_ver=$(uname -r)
|
||
mod_path="/lib/modules/${kernel_ver}"
|
||
|
||
echo "Путь к модулям: $mod_path"
|
||
echo ""
|
||
|
||
for mod in xt_NFQUEUE.ko xt_multiport.ko xt_connbytes.ko; do
|
||
mod_file=$(find "$mod_path" -name "$mod" 2>/dev/null | head -1)
|
||
if [ -n "$mod_file" ]; then
|
||
echo "Попытка загрузки: $mod_file"
|
||
/sbin/insmod "$mod_file" 2>&1
|
||
echo "Exit code: $?"
|
||
else
|
||
echo "Файл $mod не найден"
|
||
fi
|
||
echo ""
|
||
done
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "8. DMESG (последние 30 строк)"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
dmesg | tail -30
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "9. ПРОВЕРКА ЗАВИСИМОСТЕЙ"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "ip_tables:"
|
||
lsmod | grep ip_tables
|
||
echo ""
|
||
echo "x_tables:"
|
||
lsmod | grep x_tables
|
||
echo ""
|
||
echo "nfnetlink:"
|
||
lsmod | grep nfnetlink
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "10. ПОПЫТКА ЗАГРУЗКИ ЧЕРЕЗ /opt/sbin/insmod (с полным путём)"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
kernel_ver=$(uname -r)
|
||
for mod in xt_NFQUEUE xt_multiport xt_connbytes; do
|
||
mod_file="/lib/modules/${kernel_ver}/${mod}.ko"
|
||
echo "Попытка: /opt/sbin/insmod $mod_file"
|
||
/opt/sbin/insmod "$mod_file" 2>&1
|
||
exitcode=$?
|
||
echo "Exit code: $exitcode"
|
||
|
||
# Проверить загрузился ли
|
||
if lsmod | grep -q "^${mod} "; then
|
||
echo "[OK] Модуль $mod успешно загружен!"
|
||
else
|
||
echo "[FAIL] Модуль $mod НЕ загрузился"
|
||
# Показать последние строки dmesg
|
||
echo "Последние сообщения ядра:"
|
||
dmesg | tail -5
|
||
fi
|
||
echo ""
|
||
done
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "11. ПОПЫТКА ЗАГРУЗКИ ЧЕРЕЗ /opt/sbin/modprobe -d"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
kernel_ver=$(uname -r)
|
||
mod_dir="/lib/modules/${kernel_ver}"
|
||
echo "Директория модулей: $mod_dir"
|
||
echo ""
|
||
|
||
for mod in xt_NFQUEUE xt_multiport xt_connbytes; do
|
||
echo "Попытка: /opt/sbin/modprobe -d $mod_dir $mod"
|
||
/opt/sbin/modprobe -d "$mod_dir" "$mod" 2>&1
|
||
exitcode=$?
|
||
echo "Exit code: $exitcode"
|
||
|
||
# Проверить загрузился ли
|
||
if lsmod | grep -q "^${mod} "; then
|
||
echo "[OK] Модуль $mod успешно загружен!"
|
||
else
|
||
echo "[FAIL] Модуль $mod НЕ загрузился"
|
||
fi
|
||
echo ""
|
||
done
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "12. ФИНАЛЬНОЕ СОСТОЯНИЕ МОДУЛЕЙ"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "Загруженные модули:"
|
||
lsmod | grep -E 'xt_NFQUEUE|xt_multiport|xt_connbytes|nfnetlink_queue'
|
||
echo ""
|
||
|
||
echo "Проверка каждого модуля:"
|
||
for mod in xt_NFQUEUE xt_multiport xt_connbytes nfnetlink_queue; do
|
||
if lsmod | grep -q "^${mod} "; then
|
||
echo " [OK] $mod загружен"
|
||
else
|
||
echo " [FAIL] $mod НЕ загружен"
|
||
fi
|
||
done
|
||
echo ""
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "13. ПОСЛЕДНИЕ СООБЩЕНИЯ DMESG"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
dmesg | tail -20
|
||
echo ""
|
||
|
||
echo "+==================================================+"
|
||
echo "| Диагностика завершена |"
|
||
echo "+==================================================+"
|