Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

OPENWRT_KMOD_SYMBOL_MISMATCH Сетевое оборудование и VPN

AmneziaWG в OpenWrt: ошибка загрузки модуля kmod-amneziawg (Symbol Mismatch)

Обновлено: 25.08.2026 · Официальная документация ↗
  • Ошибка kmod: failed to insert module amneziawg.ko: Unknown symbol in module при запуске на OpenWrt роутере.
  • Сообщение opkg install kmod-amneziawg: satisfies_dependencies_for: Cannot satisfy the following dependencies for kmod-amneziawg: kernel (= ...).
  • Сетевой интерфейс awg0 не создается через UCI или командную строку.
  • Роутер падает в перезагрузку при попытке старта туннеля через LuCI.

1. Причина ошибки Symbol Mismatch / Kernel Checksum

Модули ядра Linux в OpenWrt строго привязаны к контрольной сумме ядра (vermagic). Если сборка роутера и скомпилированный пакет kmod-amneziawg имеют малейшие различия в опциях сборки ядра, модуль блокируется защитой ядра.

2. Проверка текущей версии ядра и vermagic роутера

# Версия ядра на роутере
uname -a
# Хеш vermagic
opkg status kernel | grep Version

3. Установка с флагом игнорирования зависимостей (Workaround)

Если ядро отличается лишь минорным билдом, выполните установку с пропуском проверки контрольной суммы:

opkg install --nodeps --force-depends kmod-amneziawg
# Попытка ручной загрузки модуля
insmod amneziawg

4. Проверка зарегистрированных символов в dmesg

dmesg | grep -i amneziawg

5. Корректная сборка под точный vermagic через OpenWrt SDK

При наличии реального конфликта символов выполните сборку модуля в официальном SDK вашей версии прошивки:

# Внутри контейнера с OpenWrt SDK
./scripts/feeds update -a && ./scripts/feeds install amneziawg-kmod
make package/amneziawg-kmod/compile -j$(nproc)
# Перенесите полученный .ipk файл на роутер через scp
💡 Практика специалистов: Для старых роутеров с 64-128 МБ RAM (MIPS) используйте исключительно kmod-версию: Go-клиент быстро исчерпает доступную оперативную память, вызвав OOM Killer.

Частые вопросы (FAQ)

Опасно ли использовать флаг --force-depends для модуля ядра?

Если API структур ядра изменилось между минорными версиями, принудительная загрузка может вызвать Kernel Panic роутера и циклическую перезагрузку (Bootloop).

Можно ли использовать пользовательский amneziawg-go вместо модуля ядра на OpenWrt?

Да, можно использовать Go-реализацию (amneziawg-go). Она работает в пространстве пользователя через TUN-интерфейс и не зависит от версии ядра, но потребляет больше CPU роутера.

Как удалить аварийный модуль из автозагрузки OpenWrt?

Удалите символическую ссылку из /etc/modules.d/: rm -f /etc/modules.d/*amneziawg, после чего выполните reboot.

Где взять готовые пакеты kmod-amneziawg под официальные релизы OpenWrt?

В официальном репозитории релизов Amnezia VPN на GitHub в разделе Releases представлены предсобранные пакеты под популярные архитектуры (MIPS, ARM, AArch64, x86_64).

Полезные материалы
Рекомендуем