1

Я пытаюсь запустить OpenVPN на каком-либо устройстве с Linux Embedded. Поиск ОС и релизной версии:

/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. Поэтому я попытался построить это самостоятельно. Я скачал дистрибутив YoctoProject Poky с версией ядра 4.1.0. Потратив некоторое время, я сделал это. Загрузка модуля TUN в норме. В 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 ]---

Что я делаю не так? Как решить проблему? Спасибо!

0