LINUX.ORG.RU
ФорумAdmin

TUN/TAP на Buffalo Linkstation LS-WXL

 , , ,


0

1

Имею Buffalo LS-WXL.

root@LS-WXLBB0:~# uname -a
Linux LS-WXLBB0 3.3.4-88f6281 #1 Thu Jun 22 15:47:23 JST 2017 armv5tel GNU/Linux

Пытаюсь поднять на нём OpenVPN-клиент. OpenVPN жалуется на отсутствие TUN/TAP.

Хочу установить tun как подгружаемый модуль (без замены ядра).

apt-get на зверьке есть, но родные репозитории Buffalo к нему больше не существуют, а проблемы с прикручиванием Debian'овских пусть будут отдельной историей. Использую в качестве пакетного менеджера ipkg, но через него похоже как не вытянуть tun.

Скачал http://vtun.sourceforge.net/tun/tun-1.1.tar.gz

Он попросил исходники ядра, которые я ему скачал.

Дальше столкнулся с

"configure: error: Linux kernel /usr/src/linux is not configured"

Сделал в папке с исходниками ядра

make defconfig

Теперь имею

root@LS-WXLBB0:~/tun-1.1/linux# ./configure
loading cache ./config.cache
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for kgcc... gcc
checking for gawk... gawk
checking for a BSD compatible install... /opt/bin/install -c
configure: error: Unsupported kernel version.

Заметил, что там есть только папки 2.2 и 2.4

root@LS-WXLBB0:~/tun-1.1/linux# ls
2.2/  2.4/  Makefile.in  aclocal.m4  confdefs.h  config.cache  config.log  configure*  configure.in  create_dev*

Для ядра 3.3.4 мне нужно брать какие-то другие исходники TUN/TAP?

Насколько я понимаю, vtun - только приложение, само использующее TUN/TAP, но на всякий случай ещё скачал vtun-3.0.3.tar.gz

Там при ./configure имею проблему

configure: checking for LZO Library and Header files ... ...
checking "for lzo_asm.h"... "no"
checking "for lzo1x.h"... "no"
configure: error: LZO library not found.

Из ipkg-пакета vtun ставится вроде как успешно:

root@LS-WXLBB0:~# ipkg install  vtun_3.0.2-2_arm.ipk
Installing vtun (3.0.2-2) to root...
Configuring vtun
Successfully terminated.

Но не похоже, что он ставит сам TUN:

root@LS-WXLBB0:~# modprobe tun
FATAL: Module tun not found.

Итак, как мне заполучить рабочий TUN/TAP на LS-WXL?

★★★★★

Так ведь сейчас tun/tap в ядре, если я ничего не путаю. Сейчас — это где-то с первых 3.x как минимум

XMs ★★★★★
()
Последнее исправление: XMs (всего исправлений: 1)
Ответ на: комментарий от XMs

Тогда опишу с самого начала:

OpenVPN выдаёт

Thu Sep 20 15:52:32 2018 Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)
Thu Sep 20 15:52:32 2018 Note: Attempting fallback to kernel 2.2 TUN/TAP interface
Thu Sep 20 15:52:32 2018 Cannot open TUN/TAP dev /dev/tun0: No such file or directory (errno=2)
Thu Sep 20 15:52:32 2018 Exiting

Если тупо при помощи touch создать пустые файлы на месте отсутствующих устройств, то ошибки меняются на такие:

Thu Sep 20 15:54:02 2018 Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)
Thu Sep 20 15:54:02 2018 Note: Attempting fallback to kernel 2.2 TUN/TAP interface
Thu Sep 20 15:54:02 2018 TUN/TAP device /dev/tun0 opened
Thu Sep 20 15:54:02 2018 /sbin/ifconfig tun0 10.10.1.48 netmask 255.255.240.0 mtu 1500 broadcast 10.10.15.255
ifconfig: SIOCSIFADDR: No such device
Thu Sep 20 15:54:02 2018 Linux ifconfig failed: external program exited with error status: 1
Thu Sep 20 15:54:02 2018 Exiting

Если использовать для создания «устройств» mknod, то ошибки от OpenVPN такие:

Thu Sep 20 15:59:22 2018 Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)
Thu Sep 20 15:59:22 2018 Note: Attempting fallback to kernel 2.2 TUN/TAP interface
Thu Sep 20 15:59:22 2018 Cannot open TUN/TAP dev /dev/tun0: No such device (errno=19)
Thu Sep 20 15:59:22 2018 Exiting

Что с этим делать?

Для справки:

root@LS-WXLBB0:~# find / -name if_tun.h
/mnt/disk1/.optware/include/linux/if_tun.h
/usr/src/linux/include/linux/if_tun.h
/opt/include/linux/if_tun.h

eugrus ★★★★★
() автор топика
Ответ на: комментарий от madcore

Взять конфиг моего текущего ядра - это видимо у производителя прошивки для зверька? Или есть совет, как его выискать в системе?

eugrus ★★★★★
() автор топика
Ответ на: комментарий от madcore

Вообще если и отвлечься от поисков конфига, я пробовал запускать menuconfig, но он жалуется на ncurses, хотя они установлены через ipkg и н.п. mc работает.

root@LS-WXLBB0:/usr/src/linux# make menuconfig
 *** Unable to find the ncurses libraries or the
 *** required header files.
 *** 'make menuconfig' requires the ncurses libraries.
 ***
 *** Install ncurses (ncurses-devel) and try again.
 ***
make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
make: *** [menuconfig] Error 2
eugrus ★★★★★
() автор топика
Последнее исправление: eugrus (всего исправлений: 1)
Ответ на: комментарий от eugrus

Я не сталкивался с твоим зверьком.
/proc/config.gz наверное отсутствует?
Пропустил, что исходники у тебя тоже со стороны.

madcore ★★★★★
()
Ответ на: комментарий от madcore

/proc/config.gz отсутствует и find / -name config.gz нигде его не находит.

И исходники действительно скачал с kernel.org - нету ли в ядре из прошивки каких-то дописанных японцами (Buffalo) модулей я не знаю.

eugrus ★★★★★
() автор топика
Ответ на: комментарий от eugrus

Можно попробовать тот же make defconfig, потом в .config поправить CONFIG_TUN=m и CONFIG_TAP=m
make modules
Ручками скопировать получившиеся новые модули в соответствующую /lib/modules/....
Уже имеющиеся не затирать.
Потом depmod -a
modprobe tun
Ведро должно быть точно такой же версии.
Но вряд-ли сработает, надо конфиг угадывать

madcore ★★★★★
()
Ответ на: комментарий от eugrus

make modules_install сам положит куда надо (если соберет)

Вопросы свои задавать надо производителю.
Тебе нужны исходники и конфиг ядра (включая точную версию и патчи) этого дерьма и из них уже собирать себе модуль.

zgen ★★★★★
()
Ответ на: комментарий от eugrus

Если тупо при помощи touch создать пустые файлы на месте отсутствующих устройств

Уух! Во-первых, устройства создаются с помощью mknod или MAKEDEV

Во-вторых, без поддержки устройство создавать бесполезно.

В третьих, обычно находят конфиг от запущенного ядра, находят либо исходники от производителя или подбирают версию ядра максимально рядом (чтобы в т.ч. указатели не поплыли) и собирают отдельно нужный модуль кросс-компилированием на компьютере.

Deleted
()
Ответ на: комментарий от zgen

Идея как раз и была не делать make modules_install, чтобы не поломать уже существующие.

Тебе нужны исходники и конфиг ядра (включая точную версию и патчи) этого дерьма и из них уже собирать себе модуль.

А мышкам надо стать ёжиками!

eugrus ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.