vivi.ko 是V4L2 framework的虚拟设备,专门用作V4L2 driver的示例代码,也为学习V4L2用户态编程
提供了方便,可以说他是学习V4L2的最佳途径。
安装:
由于Linux Kernel的版本更新很快,而且一贯使用最新的技术,毫不犹豫的摒弃过时的思想,一个模块的
改变在不同版本之间改变极大。所以同一种方法不能使用于不同的版本。
但是由于Linux Kernel依旧使用Kconfig,我们就能够找出模块之间的依赖,安装顺序安装和卸载!
1. 读取Kconfig
drivers/media/video/Kconfig
2. 找出依赖关系
直接搜索vivi,顺着依赖关系一直找
3. 编写脚本安装
这里需要说明一个极其简单的问题。一般我们都会使用某一个发行版的Linux,很少有人自己去LFS,
所以你需要的模块在发行版中不一定会有。而且发行版是否会修改Kernel,以及修改了哪些部分,我们
也懒得去找。所以,应该自己编译内核,从纯净的kernel做起是一个极其好的开端。
我写的脚本,还不完善,如果有高手看到我的博文,希望不令赐教,我对于awk不熟。如果真的有高人
帮着修改了,希望留在这里,让看到的人都可以学习一下。
- #! /bin/bash
-
-
## This script is used to load v4l2 modules
-
is_install=2
-
kernel_version=`uname -r`
-
module_path=/lib/modules/${kernel_version}/build/drivers/media
-
-
if [ $# -ne 1 ]
-
then
-
echo "Only install or uninstall"
-
exit
-
fi
-
-
# @1:we should make sure arg is install or uninstall
-
if [ "$1" = "install" ]
-
then
-
is_install=1
-
elif [ "$1" = "uninstall" ]
-
then
-
is_install=0
-
else
-
echo "Only install or uninstall"
-
exit
-
fi
-
# @2: if install, then install dependences and vivi.ko
-
if [ ${is_install} -eq 1 ]
-
then
-
insmod ${module_path}/video/videobuf2-core.ko
-
insmod ${module_path}/media.ko
-
insmod ${module_path}/video/videodev.ko
-
insmod ${module_path}/video/v4l2-common.ko
-
insmod ${module_path}/video/videobuf2-memops.ko
-
insmod ${module_path}/video/videobuf2-vmalloc.ko
-
insmod ${module_path}/video/vivi.ko
-
echo "Success install! Go to Play, Boy! Girl should not touch these! ^_^"
-
exit
-
fi
-
-
# @3: if uninstall, then check if modules have all been insmod.
-
## if Yes, rmmod all the modules; if not, the module is used by others, should not be touched
-
## To-Be-FIXED
-
if [ ${is_install} -eq 0 ]
-
then
-
rmmod ${module_path}/video/vivi
-
rmmod ${module_path}/video/v4l2_common
-
rmmod ${module_path}/video/videodev
-
rmmod ${module_path}/media
-
rmmod ${module_path}/video/videobuf2_vmalloc
-
rmmod ${module_path}/video/videobuf2_memops
-
rmmod ${module_path}/video/videobuf2_core
-
echo "Success uninstall! Go to Sleep, Boy!"
-
exit
-
fi
Really hope you could see these!
阅读(1380) | 评论(0) | 转发(0) |