Приветствую! Появилась необходимость на железке с 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 ]---
Куда дальше копать? Спасибо!