Ошибка при установке Wireguard

Можно поставить Tailscale

он под капотом использует wireguard и в целом намного удобней

Здравствуйте. С ядра версии 5.6.* драйвер wireguard включён в состав ядра. Сейчас в составе WB6 и прочих ядро версии 5.10. Поэтому по сути метода с apt install не будет. Разработчики WirenBoard должны собрать пакет с ядром, в котором будет включена опция задействования драйвера wireguard в виде модуля. В принципе, если они считают, что этот драйвер (модуль) нужен не всем, то они могли бы собрать отдельный пакет с ядром, в котором будет включен драйвер wireguard. Но вообще, могли бы уже включить его и в основном ядре. В особенности если задействовать модулем, модули для того и придуманы.

Помимо включения драйвера wireguard нужно включить ещё ряд опций задействующих алгоритмы шифрования. Но они будут и так задействованы после включения опции поддержки драйвера wireguard. На самом деле модуль wireguard можно было бы собрать руками, но т.к. в дистрибутивном ядре контроллера не включены алгоритмы шифрования, то только сборка ядра руками.

1 лайк

Добрый день. Если вам требуются дополнительные модули - то соберите с ними ядро.

Добрый день, я и собрал. Но мягко говоря такой ответ от тех. поддержки так себе.

Вы предлагаете всем купившим ваш продукт разбираться в тонкостях работы Linux?

Чтобы собрать ядро нужно установить Linux, хотя бы в виртуальную машину, установить кросскомпилятор, зависимости требуемые для сборки.

Которые в документации нормально не прописаны.

Я собирал ядро два раза. Первый раз оно собралось, но при сборке deb пакетов оказалось, что требуется пакет rsync, про который нигде в wiki страницах по сборке ядра не указано. А перед этим установил bison и openssl-dev.

В итоге установил rsync и собрал ядро ещё раз.

Так же я не уверен, что собрал ядро из актуального бранча в git, соответствующего ядру WB6 5.10.35. Хотя бы опишите нормально какой бранч брать и какие зависимости требуются для сборки.

Вообще, если бы в ядре были включены опции шифрования, требуемые wireguard, то используя файл Modules.symvers я бы мог дособрать только требуемый модуль wireguard, но они выключены.

Я не хвастаюсь, но решить ваш ребус я смог только потому, что использую Linux с 2006 года и когда-то использовать Gentoo и понимаю как настраивается ядро, как собирается. Сейчас в работе использую Debian.

Вы тоже предлагаете всем купившим ваш продукт стать “гуру” в Linux?

В целом для меня проблем нет.

Но вот остальным владельцам вашего продукта думаю всё не так легко.

Сделайте пожалуйста нормальную документацию с указанием какие конкретно пакеты ставить для сборки ядра, какой бранч с исходными кодами ядра брать с GIT репозитория.

Это всё же система умного дома, по крайней мере она так позиционируется, как следствие такая система подразумевает удалённое управление. Включить обогрев на даче, когда едешь на неё или проверить не протекает ли котёл. Что-то ещё.

Нет, конечно можно сделать телеграм бота, который будет отсылать и принимать команды, но это нужно уметь программировать.

Спасибо.

Андрей, это, мягко говоря, странный подход. У меня так же была необходимость в wireguard. Сделать совсем не тривиальную операцию по сборке ядра я сам не в состоянии. Выход оказался простым - платить $ за роутер с поддержкой wireguard, что я и сделал или платить специалистам, способным выполнить сборку каждый раз как вы переходите на новую версию ядра.

Записал пожелание о добавлении модуля wireguard в ядро в список для разработки. Если пожелание будет принято, то добавим модуль в ядро.

1 лайк

Здравствуйте, это отличная новость, я думаю что поддержка wireguard востребована большим количеством пользователей вашей системы, просто не все спрашивают.

Я правильно понимаю что для сборки ядра для WB6 нужно использовать бранч wb-2207/wb6-stretch: https://github.com/wirenboard/linux/tree/release/wb-2207/wb6-stretch

А в случае обновление до bullseye брать wb-2207/wb6-bullseye.

Тогда вопрос, какие отличия в коде ядра в зависимости от релиза Debian. Просто я не понимаю чем могут отличаться, версия ядра одна и таже, и там и там используется systemd как система инициализации.

Отличия могут быть уже в пакете, ядро может быть собрано компилятором из состава stretch или bullseye, но код же один и тот же. Или отличия всё же есть?

Хотелось бы попросить отразить в документации более подробно как и что брать для сборки ядра.

И ещё описать в документации процедуру восстановления прошивки контроллера в случае её повреждения. Есть инструкция для WB5, но она не совсем подходит для WB6 и более новой WB7.

Спасибо.

Да, для сборки ядра для последнего релиза wb-2207.

Предполагаю, что подойдет инструкция по сбросу к заводским настройкам:
https://wirenboard.com/wiki/Wiren_Board_6_Firmware_Update

Здравствуйте, выкладываю кому нужно DEB пакеты с ядром, собранным с поддержкой wireguard.

Так же там выложены текстовые файлы с командами для проверки что ядро загрузится и получит доступ к корневой файловой системе на MMC памяти, файл load_kernel_from_usb.txt.

Так же там выложен файл root_on_usb_flash.txt с командами для расположение корневой файловой системы на USB флешке, нужно USB 2.0 флешка.

Ядро собрано для Wirenboard 6. В версии дистрибутива Debian Stretch.

При последующем обновлении штатным способом, через
apt update
apt upgrade

пакет с ядром может обновиться до версии из репозитория Wirenboard, в котором не будет поддержки wireguard.

Так же при сборке ядра опции поддержки USB и USB Storage Device были включены монолитно в ядро, а не модулем для обеспечения возможности расположения корневой файловой системы на внешнем USB накопителе.

2 лайка

Хорошая новость, в конфигурации ядра на GIT репозитории все нужные опции для поддержки wireguard включены по умолчанию.

Как следствие в новых пакетах с ядром в штатном репозитории Wirenboard модуль wireguard должен присутствовать.

Это если разработчики случайно не забыли отключить требуемые параметры.

Если всё же включили их специально - ждите, с новым ядром поддержка wireguard должна присутствовать из коробки.

Включили специально, как раз по запросам пользователей.

1 лайк

как проверить? )

Было б замечательно если бы включили по просьбам и другие недостающие модули о которым писалось не раз…
Например

  • чтобы упсы APC через usb в режиме hid работали
  • чтобы ip rule работал

экономия в 10кб размера ядра смысла не имеет, а пользы всем больше будет
или сделать как делают в том же openwrt или подобных, в ядре только самое нужное, а всё остальное через пакеты подулями ядра .ko прекрасно ставится и работает.

предлагать пользователям компилировать ядро самостоятельно конечно можно, но это ни разу не клиентоориентированность и нацеленность на создание классного продукта…

Проверить версию ядра

uname -r

Ядро должно быть версии выше 5.5.*.

В репозитории wirenboard последнее штатное ядро было версии 5.10.35, сейчас возможно более новое.

Если ядро младше версии 5.6, то обновляешь систему

apt update
apt upgrade

Перед обновлением удостоверься, что на корневой файловой системе и /mnt/data достаточно свободного места

df -h

После обновления перезагружаешься, ещё раз проверяешь версию ядра

uname -r

Должно быть 5.10.*, но может быть и выше.

Далее ставишь пакет wireguard-tools

apt install wireguard-tools

Ну и настраиваешь wireguard туннель.

Можешь просто попробовать загрузить модуль ядра wireguard

modprobe wireguard

И далее смотришь, что он загрузился

lsmod | grep wireguard

инструкция неполная )
какие репозитории добавлены?
у меня

apt install wireguard-tools
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Пакет wireguard-tools недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list

E: Для пакета «wireguard-tools» не найден кандидат на установку

Слушай, наверное я ставил из debian-backports
https://packages.debian.org/buster-backports/wireguard-tools
Но не подключая репозиторий:

wget http://ftp.us.debian.org/debian/pool/main/w/wireguard/wireguard-tools_1.0.20210223-1~bpo10+1_armhf.deb
dpkg -i wireguard-tools_1.0.20210223-1~bpo10+1_armhf.deb

Получилось?

Собственно для настройки Wireguard туннеля тебе нужны только утилиты из пакета wireguard-tools. Версии утилит из debian buster backprts бинарно совместимы с версией дистрибутива wirenboard на базе stretch.

Ты можешь даже не ставить их из пакета, а просто распаковать deb пакет и положить их по тем же путям, как файлы утилит лежат в пакете.

1 лайк

не, судя по всему, не только

wg-quick up client6
[#] ip link add client6 type wireguard
RTNETLINK answers: Operation not supported
Unable to access interface: Protocol not supported
[#] ip link delete dev client6
Cannot find device "client6"

модуля wireguard нет
на моём десктопе

$ modinfo wireguard | grep filename
filename:       /lib/modules/5.11.0-41-generic/kernel/drivers/net/wireguard/wireguard.ko

$ dpkg -S /lib/modules/5.11.0-41-generic/kernel/drivers/net/wireguard/wireguard.ko
linux-modules-5.11.0-41-generic: /lib/modules/5.11.0-41-generic/kernel/drivers/net/wireguard/wireguard.ko

на WB такого модуля нет )
откуда взял? )

Какая версия wirenboard? Какая версия дистрибутива wirenboard, на базе debian stretch или другая?

Какая версия ядра в wirenboard?

Покажи вывод

uname -a

Вот в этом сообщении: Ошибка при установке Wireguard - #34 от пользователя Konstantin_Ivanov

Я написал, что версия ядра должна быть выше 5.5.

На момент написания сообщения в официальном репозитории witenboard версия была 5.10.35-wb113.

Вот в этом сообщении:

Я выложил собранные мной deb пакеты с поддержкой wireguard.

Некоторые опции для работы wireguard были выключены и их нужно было включить, скомпилировать ядро и собрать deb пакеты.

Т.к. на момент когда я настраивал wireguard в репозитории wirenboard ядро было без поддержки wireguard.

А вот в этом сообщении: Ошибка при установке Wireguard - #30 от пользователя Konstantin_Ivanov

Я написал, что в git репозитории с исходными кодами ядра wirenboard все нужные опции для поддержки wireguard включены. И теперь при сборке ядра поддержка wireguard уже должна быть.

Вот в этом сообщении: Ошибка при установке Wireguard - #31 от пользователя BrainRoot

Представитель команды разработчиков или администратор форума подтвердил, что в исходных кодах ядра wirenboard, а точнее в конфигурации для сборки поддержка wireguard включена.

Из этого следует, что в репозитории wirenboard новые пакеты с ядром уже должны включать модуль wireguard.

Поэтому тебе нужно сделать

apt update
apt upgrade

Убедиться, что обновилось ядро, перезагрузиться с ним. Далее проверить что есть модуль wireguard и настроить VPN.

Если после обновления из репозитория и перезагрузки модуля нет - значит разработчики ещё не поместили в репозиторий deb пакет с ядром, в котором есть модуль wireguard.

Можешь установить собранный мной пакет, смотри ссылку на Яндекс диск или подождать пока разработчики обновят пакет с ядром в репозитории.

1 лайк

спасибо за развёрнутый ответ… сейчас пока нет времени с этим повозиться ) на днях , может, получится )