新闻中心
linux系统使用驱动的方法
2019-02-18 16:57 作者:同三维 出处:www.videotsw.com
linux在工程项目中应用是比较多的,所以在选用视频采集卡时也要购买能支持linux系统的视频采集卡。同三维目前针对linux系统新增多了多款音视频采集卡驱动,下面我们就简单的介绍下,此次Linux驱动的支持主要基于Ubuntu的发行版本。
同三维XIDrivers的视频驱动部分采用V4L2架构,音频采用alsa架构。
添加驱动之前,需要先加载相关的依赖文件。
a,获取依赖的模块:demop modinfo,用modinfo查看模块的依赖。
modinfo module_name.ko
以T306E.ko为例子
+++++++++++++++++++++++++++++++++++
filename: T306EPRO.ko
license: Dual BSD/GPL
description: xi capture
alias: pci:v00001172d0000A006sv*sd*bc*sc*i*
**depends: videobuf2-core,snd-pcm,snd,videodev,videobuf2-vmalloc,v4l2-common
vermagic: 3.0.0-14-generic SMP mod_unload modversions
parm: xi_debug:enable debug messages (int)
parm: index:Index value for audio soundcard. (array of int)
parm: id:ID string for audio soundcard. (array of charp)
parm: enable:Enable this audio soundcard. (array of int)
+++++++++++++++++++++++++++++++++++
depends: videobuf2-core,snd-pcm,snd,videodev,videobuf2-vmalloc,v4l2-common
通过这一样可以获得系统依赖的内核模块,这些模块需要先加载
b,加载依赖的模块,并测试
modprobe depends_module_name.ko
以T306EPRO.ko为例子
通过上一步骤,获得T306EPRO.ko的依赖模块:
videobuf2-core,snd-pcm,snd,videodev,videobuf2-vmalloc,v4l2-common
+++++++++++++++++++++++++++++++++++
modprobe videobuf2-core
modprobe snd-pcm
modprobe snd
modprobe videodev
modprobe videobuf2-vmalloc
modprobe v4l2-common
+++++++++++++++++++++++++++++++++++
通过modprobe加载依赖项目后,通过dmesg验证加载是否正常,如果没有报错,说明依赖模块已经加载成功
c,编译加载驱动(以T306EPRO.ko为例)
tree
++++++++++++++++++++++++++++++++++++
├── Bin
│ └── XI006AEPRODevice.o
├── Include
│ ├── Drivers
│ │ └── T306EPRO_Device.h
│ └── OSAbstract
│ ├── OSAbstract.h
│ └── PrivateType.h
├── install
├── Makefile
├── ReadMe
└── Source
├── Drivers
│ └── T306EPRO
│ │ ├── alsa.c
│ │ ├── alsa.h
│ │ ├── audio.c
│ │ ├── audio.h
│ │ ├── Makefile
│ │ ├── v4l2_10_04.c
│ │ ├── v4l2_10_04.h
│ │ ├── v4l2.c
│ │ ├── v4l2_centos6.c
│ │ ├── v4l2_centos6.h
│ │ ├── v4l2.h
│ │ ├── v4l2_vb2.c
│ │ ├── v4l2_vb2.h
│ │ ├── v4l2_vb.c
│ │ ├── v4l2_vb.h
│ │ └── xi006aepro.c
├── Makefile
└── OSAbstract
├── Makefile
└── OSAbstractImpl.c
cd /Source; make clean; make
sudo insmod Drivers/T306EPRO/T306EPRO.ko
d,测试驱动
vlc:http://www.linuxtv.org/wiki/index.php/VLC
mplayer: http://www.linuxtv.org/wiki/index.php/MPlayer
arecord: arecord -c 2 -r 44100 -D hw 1:0 > test.pcm