Jump to content
  • 0

Nanopi Neo Air and CAM500B


fehlfarbe
 Share

Question

Armbianmonitor:

Hi,

 

I'm want to use my old Nanopi Neo Air with CAM500B as wifi webcam. I flashed the latest armbian bionic image, installed v4l-utils and tried to list the cameras properties with `v4l2-compliance` and `v4l2-ctl --all` but the tools always crash and I can't kill them. `dmesg` shows a NULL pointer exception:

 

[   56.994526] 8<--- cut here ---
[   56.997657] Unable to handle kernel NULL pointer dereference at virtual address 00000068
[   57.005825] pgd = c774af94
[   57.008606] [00000068] *pgd=00000000
[   57.012243] Internal error: Oops: 5 [#1] SMP THUMB2
[   57.017122] Modules linked in: brcmfmac brcmutil sun8i_codec_analog sun8i_adda_pr_regmap sun4i_i2s snd_soc_simple_card snd_soc_simple_card_utils snd_soc_core lima snd_pcm_dmaengine gpu_sched sun4i_gpadc_iio snd_pcm cfg80211 snd_timer industrialio snd soundcore rfkill sun8i_thermal zram sunxi_cedrus(C) v4l2_mem2mem uio_pdrv_genirq uio cpufreq_dt sch_fq_codel usb_f_acm u_serial g_serial libcomposite ip_tables x_tables pwrseq_simple
[   57.055242] CPU: 1 PID: 2012 Comm: v4l2-compliance Tainted: G         C        5.4.35-sunxi #trunk
[   57.064192] Hardware name: Allwinner sun8i Family
[   57.068916] PC is at v4l2_g_parm_cap+0x3c/0xb4
[   57.073363] LR is at v4l2_g_parm_cap+0x27/0xb4
[   57.077808] pc : [<c0796c04>]    lr : [<c0796bef>]    psr: 00030033
[   57.084072] sp : d43d1d50  ip : d43d1d84  fp : d4e74840
[   57.089296] r10: c0ab69f0  r9 : c0aaf59c  r8 : d4f9d100
[   57.094521] r7 : d70fd328  r6 : 00000000  r5 : d4ef6000  r4 : c0f04f48
[   57.101100] r3 : 00000080  r2 : fffffff0  r1 : 00000000  r0 : d43d1d54
[   57.107618] Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb  Segment none
[   57.114913] Control: 50c5387d  Table: 54dbc06a  DAC: 00000051
[   57.120652] Process v4l2-compliance (pid: 2012, stack limit = 0x7ede4d8a)
[   57.127429] Stack: (0xd43d1d50 to 0xd43d2000)
[   57.131780] 1d40:                                     00000002 00000000 00000000 00000000
[   57.139945] 1d60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   57.148110] 1d80: 00000000 6a7c03d8 c104e334 c0f04f48 d4ef6000 d4e74840 c0ab69f0 c078a355
[   57.156274] 1da0: c07b2311 d43d1e54 00000000 6a7c03d8 c0cc5604 d70fd328 c0cc5615 c078a31d
[   57.164440] 1dc0: c0f04f48 d70fd694 c0aaf59c c078af73 d73c0000 00000000 d4f9d100 00000000
[   57.172605] 1de0: 00000000 d4ef6000 00000000 c0aaf59c c0f04f48 c023f9c5 00080040 c0ec5700
[   57.180769] 1e00: 1f0be000 6a7c03d8 d7007c18 c0cc5615 c0f04f48 00000004 00000000 00000003
[   57.188934] 1e20: 000000cc d4ef6000 d4ef6000 c078b41f c0f05400 bef96b8c d4e74840 c078adf5
[   57.197098] 1e40: 00000000 00000000 00000000 00000000 c9bd4200 00000001 00000000 00000000
[   57.205262] 1e60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   57.213426] 1e80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   57.221581] 1ea0: 00000000 d69bed78 00000001 00000000 00000001 d43d1ed0 00000004 c0f04f48
[   57.229746] 1ec0: 60030013 c0150cc7 00000004 d43d1ed0 00000000 6a7c03d8 00000000 6a7c03d8
[   57.237910] 1ee0: 00000000 c0f04f48 d4e74840 bef96b8c 00000003 bef96b8c d73d0ce8 c0262f41
[   57.246075] 1f00: d4e2a240 00000002 d08fc7f8 d4e2a248 00000000 c0f04f48 00000000 00000000
[   57.254239] 1f20: 00000000 00000000 00000000 6a7c03d8 5ac3c35a 00000002 d4e2a240 d08fc7f8
[   57.262405] 1f40: d4e2a248 00000001 02364058 00000001 bef9705c c0253b5b 00000000 6a7c03d8
[   57.270569] 1f60: c0f04f48 d4e74840 00000000 d4e74840 c0cc5615 bef96b8c 00000003 00000036
[   57.278735] 1f80: bef9705c c02635d5 7123fc00 b6f34968 00000001 bef97060 00000036 c0101224
[   57.286900] 1fa0: d43d0000 c0101001 b6f34968 00000001 00000003 c0cc5615 bef96b8c 7123fc00
[   57.295064] 1fc0: b6f34968 00000001 bef97060 00000036 bef9a47c bef96a84 004c3e78 bef9705c
[   57.303229] 1fe0: 004c3f00 bef969b4 004845e7 b6d150a8 60030030 00000003 00000000 00000000
[   57.311407] [<c0796c04>] (v4l2_g_parm_cap) from [<c078a355>] (v4l_g_parm+0x39/0x90)
[   57.319055] [<c078a355>] (v4l_g_parm) from [<c078af73>] (__video_do_ioctl+0x17f/0x314)
[   57.326963] [<c078af73>] (__video_do_ioctl) from [<c078b41f>] (video_usercopy+0x1ff/0x4bc)
[   57.335219] [<c078b41f>] (video_usercopy) from [<c0262f41>] (do_vfs_ioctl+0x8d/0x6e0)
[   57.343042] [<c0262f41>] (do_vfs_ioctl) from [<c02635d5>] (ksys_ioctl+0x41/0x58)
[   57.350431] [<c02635d5>] (ksys_ioctl) from [<c0101001>] (ret_fast_syscall+0x1/0x62)
[   57.358072] Exception stack(0xd43d1fa8 to 0xd43d1ff0)
[   57.363116] 1fa0:                   b6f34968 00000001 00000003 c0cc5615 bef96b8c 7123fc00
[   57.371281] 1fc0: b6f34968 00000001 bef97060 00000036 bef9a47c bef96a84 004c3e78 bef9705c
[   57.379443] 1fe0: 004c3f00 bef969b4 004845e7 b6d150a8
[   57.384491] Code: 01db bf44 2302 61ab (6eb3) 68db 
[   57.389321] ---[ end trace b0284d13f94bede6 ]---

 

Is the camera broken or is this a driver problem?

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

I think the camera driver was not loaded. Maybe v4l2_g_parm_cap crashed while trying to  get /dev/video1 capabilities (cedrus).

Try to disable cedrus and review OV5640 parms to be able to load the driver.

Link to comment
Share on other sites

Help Armbian team helping you!

  • 0

Thanks. I unloaded cedrus but the problem is still present. Indeed, the OV5640 driver isn't loaded. I expected the camera will work plug&play because the /dev/video0 device is present. But the device is also there without a connected camera. Looks like the driver isn't part of the current kernel (5.4.35-sunxi) because modprobe lists only "ov2680   ov2685   ov5645   ov5647   ov5675   ov5695   ov7251   ov772x   ov7740   ov8856   ov9640"?

Link to comment
Share on other sites

  • 0

Maybe you should update your kernel to 5.4.43 and/or run armbian-config:

https://github.com/armbian/build/blob/master/config/kernel/linux-sunxi-current.config#L4362

 

I can't see any node /dev/video0 created from your dmesg info. Perhaps you have loaded a driver manually that created the node?

Camera is not Plug&Play , the node /dev/videoX should be created only if a device is probed with success.

 

reboot and check : ls /dev/video*

 

Link to comment
Share on other sites

  • 0

I updated to kernel 5.4.43 but the module was still not available. A fresh install of the latest bionic image with kernel 5.4.43 is working. Camera driver loads at startup and I can take videos (at least at 640x480) with GStreamer :) Many thanks!

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...