LINUX.ORG.RU

Падает tun модуль

 , , , ,


1

1

Приветствую! Появилась необходимость на железке с Linux Embedded запустить OpenVPN. Посмотрел что внутри, а внутри:

/mnt/flash/etc# cat *release*
ID=axis
NAME=Axis (based on Poky from the Yocto Project)
VERSION=6.15.4 (dizzy)
VERSION_ID=6.15.4
PRETTY_NAME=Axis (based on Poky from the Yocto Project) 6.15.4 (dizzy)
JFFSID="id-68598-6.15.4-65"

uname -a
Linux axis-accc8e68897c 4.1.0 #1 PREEMPT Thu Oct 20 13:03:48 CEST 2016 armv7l GNU/Linux

Но ни tun ни tap модулей в системе нет. Чтож, решил собрать сам. Взял репозиторий YoctoProject Poky с версией ядра 4.1.0, потратив некоторое количество времени собрал модули ядра и openvpn. Модуль на подопытном запустился, insmod не ругается, в dmesg:

tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>

Но, при попытке запуска openvpn в dmesg вываливается:

Unable to handle kernel NULL pointer dereference at virtual address 00000098
pgd = 8c004000
[00000098] *pgd=0c0f8831, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] PREEMPT ARM
Modules linked in: tun brcmfmac brcmutil datacache(O) dsplog(PO) ambad(PO) ambhdmi(PO) mn34220pl(PO) iav(PO) imgproc(PO) vout(PO) dsp(PO) hw_timer(PO)
CPU: 0 PID: 1282 Comm: openvpn Tainted: P           O    4.1.0 #1
Hardware name: Ambarella S2L (Flattened Device Tree)
task: 8d0c3400 ti: 8f0f0000 task.ti: 8f0f0000
PC is at __dev_get_by_name+0x2c/0x80
LR is at __dev_get_by_name+0x24/0x80
pc : [<802cfb3c>]    lr : [<802cfb34>]    psr: 800d0013
sp : 8f0f1eb8  ip : 00000000  fp : 00000000
r10: 8f02eb80  r9 : 8f0f1ee0  r8 : 8cfad400
r7 : 400454ca  r6 : 00000000  r5 : 8f0f1ee0  r4 : 00000000
r3 : 9e370001  r2 : 00000000  r1 : 00000000  r0 : 00000000
Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c53c7d  Table: 0c204059  DAC: 00000015
Process openvpn (pid: 1282, stack limit = 0x8f0f0208)
Stack: (0x8f0f1eb8 to 0x8f0f2000)
1ea0:                                                       00000000 8cfad400
1ec0: 7edb90b8 7f12be64 00000001 8ce86000 ffffff9c 8000f524 8f0f0000 00000000
1ee0: 00000000 00000000 00000000 00000000 00003001 00000000 00000000 00000000
1f00: 8ce86019 8f02eb80 8f02eb80 00000004 00000004 7edb90b8 8f0f0000 8bf77648
1f20: 7edb90b8 800b90b0 00000001 8f02eb88 00000004 8c061d00 00000000 00000000
1f40: 00000400 00000004 8f02eb80 8ce86000 8f02eb88 00000020 00000004 8f02eb80
1f60: 8ce86000 800a8240 00000000 8f02eb80 8f02eb80 400454ca 00000004 7edb90b8
1f80: 8f0f0000 00000000 00000000 800b96a4 01c40f20 7edb90b8 00000004 00000036
1fa0: 8000f524 8000f3a0 01c40f20 7edb90b8 00000004 400454ca 7edb90b8 00000000
1fc0: 01c40f20 7edb90b8 00000004 00000036 000aabf4 000aabf0 76fdb000 00000000
1fe0: 000aa350 7edb90b4 00073f90 76d5de4c 600d0010 00000004 a00cf8cd 49554620
[<802cfb3c>] (__dev_get_by_name) from [<7f12be64>] (tun_chr_ioctl+0x1a4/0xe10 [tun])
[<7f12be64>] (tun_chr_ioctl [tun]) from [<800b90b0>] (do_vfs_ioctl+0x78/0x638)
[<800b90b0>] (do_vfs_ioctl) from [<800b96a4>] (SyS_ioctl+0x34/0x58)
[<800b96a4>] (SyS_ioctl) from [<8000f3a0>] (ret_fast_syscall+0x0/0x3c)
Code: e1a00005 ebf784fa e3a03001 e3493e37 (e5942098) 
---[ end trace cfef6916b6e15082 ]---

Куда дальше копать? Спасибо!

Есть ли в корневой такой срипт удава

/lib/udev/rules.d/80-net-name-slot.rules

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

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

Такого файла на устройстве нет. Есть вот такой /lib/udev/rules.d/50-udev-default.rules и в нем строка KERNEL==«tun», MODE=«0666», OPTIONS+=«static_node=net/tun» Как я понял он выставляет только права. В чем еще может быть проблема?

vlad-online
() автор топика
Ответ на: комментарий от Iron_Bug

Практически из коробки, убрал некоторые модули debug без которых модуль вобще не загружался ссылаясь на отсутствие символьных имен.

vlad-online
() автор топика
Ответ на: комментарий от Iron_Bug

Для железки я ядро не собирал, она мне досталась с собранным ядром. Это серийное устройство, просто немного надо расширить функционал. SDK для чипа в свободном доступе нет.

vlad-online
() автор топика
Ответ на: комментарий от vlad-online

если SDK нет, то ты как собираешь вообще? там может быть патченный компилятор или патчи на само ядро, которые разработчики запилили, чтобы линь на железяке поднялся.
но если там хотя бы собрано тем же компилятором, то тебе нужен как минимум конфиг ядра, которое на железке.

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

Ну я примерно так и предполагал, но попытка не пытка, оно хотя бы загрузилось) Чтож спасибо на этом! будем трясти вендора

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