Chinaunix首页 | 论坛 | 博客
  • 博客访问: 255356
  • 博文数量: 65
  • 博客积分: 2599
  • 博客等级: 少校
  • 技术积分: 710
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-04 10:49
文章分类

全部博文(65)

文章存档

2015年(4)

2013年(2)

2012年(4)

2011年(51)

2010年(4)

分类: LINUX

2011-09-14 22:35:10

    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不熟。如果真的有高人
帮着修改了,希望留在这里,让看到的人都可以学习一下。
  1. #! /bin/bash

  2. ## This script is used to load v4l2 modules
  3. is_install=2
  4. kernel_version=`uname -r`
  5. module_path=/lib/modules/${kernel_version}/build/drivers/media

  6. if [ $# -ne 1 ]
  7. then
  8.     echo "Only install or uninstall"
  9.     exit
  10. fi

  11. # @1:we should make sure arg is install or uninstall
  12. if [ "$1" = "install" ]
  13. then
  14.     is_install=1
  15. elif [ "$1" = "uninstall" ]
  16. then
  17.     is_install=0
  18. else
  19.     echo "Only install or uninstall"
  20.     exit
  21. fi
  22. # @2: if install, then install dependences and vivi.ko
  23. if [ ${is_install} -eq 1 ]
  24. then
  25.     insmod ${module_path}/video/videobuf2-core.ko
  26.     insmod ${module_path}/media.ko
  27.     insmod ${module_path}/video/videodev.ko
  28.     insmod ${module_path}/video/v4l2-common.ko
  29.     insmod ${module_path}/video/videobuf2-memops.ko
  30.     insmod ${module_path}/video/videobuf2-vmalloc.ko
  31.     insmod ${module_path}/video/vivi.ko
  32.     echo "Success install! Go to Play, Boy! Girl should not touch these! ^_^"
  33.     exit
  34. fi

  35. # @3: if uninstall, then check if modules have all been insmod.
  36. ## if Yes, rmmod all the modules; if not, the module is used by others, should not be touched
  37. ## To-Be-FIXED
  38. if [ ${is_install} -eq 0 ]
  39. then
  40.     rmmod ${module_path}/video/vivi
  41.     rmmod ${module_path}/video/v4l2_common
  42.     rmmod ${module_path}/video/videodev
  43.     rmmod ${module_path}/media
  44.     rmmod ${module_path}/video/videobuf2_vmalloc
  45.     rmmod ${module_path}/video/videobuf2_memops
  46.     rmmod ${module_path}/video/videobuf2_core
  47.     echo "Success uninstall! Go to Sleep, Boy!"
  48.     exit
  49. fi
Really hope you could see these!
   
阅读(1365) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~