我已经安装了第三方包librealsense
。作为下载的一部分,它设置uvcvideo
为编译为内核模块。完成后,我重新启动到修改后的内核。我可以看到我的uvcvideo.ko
文件,但由于某种原因它没有加载。这里发生了什么?
$ sudo modprobe uvcvideo
modprobe: ERROR: could not insert 'uvcvideo': Unknown symbol in module, or unknown parameter (see dmesg)
$ uname -r
4.4.0-47-generic
$ ls /lib/modules/4.4.0-47-generic/updates/dkms/
uvcvideo.ko vboxguest.ko vboxsf.ko vboxvideo.ko
$ dmesg | grep uvcvideo
[ 44.581338] uvcvideo: Unknown symbol vb2_queue_init (err 0)
[ 44.581344] uvcvideo: Unknown symbol v4l2_fh_exit (err 0)
[ 44.581354] uvcvideo: Unknown symbol video_ioctl2 (err 0)
[ 44.581357] uvcvideo: Unknown symbol media_device_unregister (err 0)
[ 44.581361] uvcvideo: Unknown symbol vb2_streamoff (err 0)
[ 44.581363] uvcvideo: Unknown symbol media_entity_create_link (err 0)
[ 44.581368] uvcvideo: Unknown symbol vb2_queue_release (err 0)
[ 44.581373] uvcvideo: Unknown symbol vb2_poll (err 0)
[ 44.581377] uvcvideo: Unknown symbol v4l2_fh_del (err 0)
[ 44.581379] uvcvideo: Unknown symbol v4l2_fh_add (err 0)
[ 44.581381] uvcvideo: Unknown symbol vb2_ops_wait_finish (err 0)
[ 44.581391] uvcvideo: Unknown symbol vb2_dqbuf (err 0)
[ 44.581395] uvcvideo: Unknown symbol __media_device_register (err 0)
[ 44.581397] uvcvideo: Unknown symbol v4l2_subdev_init (err 0)
[ 44.581403] uvcvideo: Unknown symbol vb2_reqbufs (err 0)
[ 44.581405] uvcvideo: Unknown symbol v4l2_device_register_subdev (err 0)
[ 44.581411] uvcvideo: Unknown symbol vb2_expbuf (err 0)
[ 44.581415] uvcvideo: Unknown symbol video_devdata (err 0)
[ 44.581417] uvcvideo: Unknown symbol vb2_streamon (err 0)
[ 44.581419] uvcvideo: Unknown symbol v4l2_ctrl_replace (err 0)
[ 44.581424] uvcvideo: Unknown symbol media_entity_init (err 0)
[ 44.581426] uvcvideo: Unknown symbol vb2_querybuf (err 0)
[ 44.581428] uvcvideo: Unknown symbol vb2_qbuf (err 0)
[ 44.581434] uvcvideo: Unknown symbol vb2_buffer_done (err 0)
[ 44.581437] uvcvideo: Unknown symbol vb2_plane_vaddr (err 0)
[ 44.581439] uvcvideo: Unknown symbol v4l2_fh_init (err 0)
[ 44.581442] uvcvideo: Unknown symbol video_unregister_device (err 0)
[ 44.581444] uvcvideo: Unknown symbol v4l2_prio_init (err 0)
[ 44.581448] uvcvideo: Unknown symbol v4l2_event_subscribe (err 0)
[ 44.581452] uvcvideo: Unknown symbol vb2_vmalloc_memops (err 0)
[ 44.581457] uvcvideo: Unknown symbol v4l2_device_register (err 0)
[ 44.581459] uvcvideo: Unknown symbol media_entity_cleanup (err 0)
[ 44.581464] uvcvideo: Unknown symbol v4l2_ctrl_merge (err 0)
[ 44.581469] uvcvideo: Unknown symbol __video_register_device (err 0)
[ 44.581472] uvcvideo: Unknown symbol vb2_ops_wait_prepare (err 0)
[ 44.581475] uvcvideo: Unknown symbol vb2_create_bufs (err 0)
[ 44.581478] uvcvideo: Unknown symbol v4l2_device_unregister (err 0)
[ 44.581480] uvcvideo: Unknown symbol vb2_mmap (err 0)
[ 44.581482] uvcvideo: Unknown symbol v4l2_event_queue_fh (err 0)
[ 44.581487] uvcvideo: Unknown symbol v4l2_event_unsubscribe (err 0)
我修改了脚本以支持新内核(4.8.0-xx)。
链接:https ://github.com/JJHu1993/librealsense-patch.git
``` 补丁内核模块创建成功
卸载模块 uvcvideo 应用补丁模块 uvcvideo 插入 uvcvideo 成功
脚本已成功完成。请参阅安装指南以获取更多说明。
jjhu@jjhu-computer:~/projects/librealsense$ uname -r 4.8.0-52-generic
```