CN101615125B - 视频装置代理驱动方法以及其模块 - Google Patents
视频装置代理驱动方法以及其模块 Download PDFInfo
- Publication number
- CN101615125B CN101615125B CN200810129034A CN200810129034A CN101615125B CN 101615125 B CN101615125 B CN 101615125B CN 200810129034 A CN200810129034 A CN 200810129034A CN 200810129034 A CN200810129034 A CN 200810129034A CN 101615125 B CN101615125 B CN 101615125B
- Authority
- CN
- China
- Prior art keywords
- video
- driver
- unit
- virtual
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明披露视频装置代理驱动方法以及其模块。此视频装置代理驱动方法包含:自一第一操作系统的一虚拟文件系统取得一第一指令。将此第一指令转换为一第二指令。虚拟一第二操作系统的核心。根据第二指令,利用第二操作系统的核心,控制一视频装置驱动器。本发明还披露一种视频装置代理驱动模块。
Description
技术领域
本发明涉及一种装置驱动方法及其模块,且特别是涉及一种视频装置代理驱动方法及其模块。
背景技术
过去,一般硬件厂商在开发硬件时,往往只针对微软视窗操作系统(Microsoft Windows)开发相对应其硬件的驱动程序。因此,linux操作系统上能正常使用的硬件远少于微软视窗操作系统。
然而,linux操作系统由于其自由软件及开放程序代码的特性,使得linux操作系统受到广泛的关注。近来,更是随着linux操作系统渐渐的被一般使用者接受,对应于linux操作系统的硬件相关规格也随之被陆续推出。其中,针对视频装置,推出了Video for linux(V4L)来对在linux操作系统上使用的视频装置作规范。目前,更是推出了下一代的Video for linux2(V4L2)。不过,碍于硬件厂商对于支持linux操作系统的硬件缺乏开发经验亦或是成本考虑,使得linux操作系统空有相关硬件规格,却鲜少有兼容的硬件及其驱动程序。
因此,需要一种视频装置驱动方法,用以使用现有的驱动程序在linux操作系统驱动视频装置。
发明内容
因此本发明一方面是在提供一种视频装置代理驱动方法,用以在linux操作系统之下,使用视窗操作系统的驱动程序来控制视频装置。
根据本发明一实施例,一种视频装置代理驱动方法包含下列步骤:
(1)自第一操作系统的虚拟文件系统取得第一指令。
(2)将此第一指令转换为第二指令。
(3)虚拟第二操作系统的核心。
(4)根据第二指令,利用第二操作系统的核心,控制视频装置驱动器。
(5)在第二操作系统的核心中建立一虚拟连结接口驱动器。
(6)向虚拟连结接口驱动器注册视频装置驱动器。
(7)通过虚拟连结接口驱动器初始化视频装置驱动器。
本发明另一方面是提供一种视频装置代理驱动模块。
根据本发明另一实施例,此视频装置代理驱动模块包含一虚拟装置、一指令转换器以及一虚拟核心。其中,虚拟装置用以自第一操作系统的虚拟文件系统取得第一指令。指令转换器用以将第一指令转换为第二指令。虚拟核心用以虚拟第二操作系统的核心,并藉此根据第二指令,控制视频装置驱动器。虚拟核心包含一虚拟连结接口驱动器。虚拟连结接口驱动器包含:一注册器,用以供视频装置驱动器注册;以及f一初始化器,用以初始化视频装置驱动器。
附图说明
为使本发明的上述和其它目的、特征、优点与实施例能更明显易懂,结合附图的详细说明如下:
图1示出了依照本发明一实施例的一种视频装置代理驱动方法的流程图。
图2示出了依照本发明另一实施例的视频装置代理驱动方法以控制视频装置驱动器。
图3示出了依照本发明又一实施例的视频装置代理驱动方法以虚拟视窗操作系统的核心。
图4示出了依照本发明一实施例的一种视频装置代理驱动模块的方块图。
图5示出了依照本发明另一实施例的一种视频装置代理驱动模块的虚拟连结接口驱动器。
附图符号说明
100:视频装置代理驱动方法 214:虚拟连结接口驱动器
101-124:步骤 216:视频装置
200:视频装置代理驱动模块 218:连结接口
202:虚拟装置 220:注册器
204:指令转换器 222:初始化器
206:虚拟核心 224:回传器
208:linux操作系统 226:第二设定器
210:虚拟文件系统 228:停止器
212:视频装置驱动器 230:地址转换表
213:第一设定器
具体实施方式
图1示出了依照本发明一实施例的一种视频装置代理驱动方法100的流程图。此视频装置代理驱动方法100用以在linux操作系统之下,使用视窗操作系统的驱动程序来控制视频装置。如图所示,此视频装置代理驱动方法100包含下列步骤(应了解到,在本实施例中所提及的步骤,除特别叙明其顺序外,均可依实际需要调整其前后顺序,甚至可能同时或部分同时执行):
(1)取得第一指令(步骤102)。
(2)将第一指令转换为第二指令(步骤104)。
(3)虚拟视窗操作系统(Windows)的核心(kernel)(步骤106)。
(4)根据第二指令控制视频装置驱动器(步骤108)。
其中,在步骤102中,自linux操作系统的虚拟文件系统取得第一指令,且此第一指令为linux操作系统的应用指令(application command)。在步骤104中,其第二指令为虚拟视窗操作系统(Windows)的应用指令。在步骤108中,根据第二指令,利用虚拟的视窗操作系统的核心,控制一视频装置驱动器。此视频装置驱动器为视频装置在虚拟视窗操作系统上的驱动程序,且此视频装置驱动器符合视窗驱动程序模型(Windows Driver Model,WDM)。
另外,取得第一指令的步骤可包含:
(1.1)传送虚拟装置设定文件(步骤101)。
其中,在步骤101中,传送一虚拟装置设定文件至虚拟文件系统。因此,虚拟文件系统把一虚拟装置视为一实体装置,而使得虚拟装置自虚拟文件系统取得第一指令。
此外,在控制视频装置驱动器(步骤108)前,此视频装置代理驱动方法100可初始化视频装置驱动器,使得此视频装置驱动器接下来可被直接控制。因此,此视频装置代理驱动方法100也可包含下列步骤:
(3.1)建立虚拟连结接口驱动器(步骤112)。
(3.2)注册视频装置驱动器(步骤114)。
(3.3)初始化视频装置驱动器(步骤116)。
其中,在步骤112中,在视窗操作系统的核心中建立一虚拟连结接口驱动器。其中,此虚拟连结接口驱动器用以控制视频装置驱动器与视频装置驱动器所驱动的视频装置之间的连结接口。此连结接口可为通用串行总线(universal serial bus,USB)、IEEE1394、加速图形端口(acceleratedgraphics port,AGP)、外围控制器接口(peripheral controller interface,PCI)或PCI Express。在步骤114中,向虚拟连结接口驱动器注册视频装置驱动器。在步骤116中,通过虚拟连结接口驱动器初始化视频装置驱动器。
图2示出了依照本发明另一实施例的视频装置代理驱动方法以控制视频装置驱动器。其中,在本实施例中所提及的步骤,除特别叙明其顺序者外,均可依实际需要调整其前后顺序,新增或删除部分步骤,甚至可能同时或部分同时执行。具体而言,图1中控制视频装置驱动器(步骤108)可包含下列步骤:
(4.2)传送开始回传指令(步骤118)。
其中,在步骤118中,由虚拟连结接口驱动器传送一开始回传指令给视频装置驱动器,以驱动视频装置回传一影音串流。
另外,在传送开始回传指令(步骤118)之前,可包含以下步骤:
(4.1)传送设定指令(步骤117)。
其中,在步骤117中,先由虚拟连结接口驱动器传送一设定指令给视频装置驱动器,以设定视频装置所回传的影音串流。
在图2中,控制视频装置驱动器(步骤108)也可包含:
(4.3)传送停止回传指令(步骤120)。
其中,在步骤120中,由虚拟连结接口驱动器传送一停止回传指令给视频装置驱动器,以令视频装置停止回传影音串流。
图3示出了依照本发明又一实施例的视频装置代理驱动方法以虚拟视窗操作系统的核心。具体而言,可依下列步骤虚拟视窗操作系统的核心:
(3.a)建立一地址转换表(步骤122)。
(3.b)转换linux操作系统与视窗操作系统的函数地址以及寄存器地址(步骤124)。
其中,在步骤122中,地址转换表为linux操作系统与视窗操作系统之间函数(function)地址以及寄存器(register)地址的转换表。在步骤124中,根据此地址转换表,转换linux操作系统与视窗操作系统的函数地址以及寄存器地址。
图4示出了依照本发明一实施例的一种视频装置代理驱动模块200的方块图。其中,此视频装置代理驱动模块200用以在linux操作系统之下,使用虚拟视窗操作系统的驱动程序来控制视频装置。此视频装置代理驱动模块200包含一虚拟装置202、一指令转换器204以及一虚拟核心206。虚拟装置202用以自一linux操作系统208的一虚拟文件系统210取得一第一指令。其中,第一指令为linux操作系统208的应用指令,且虚拟装置202符合Video for linux(V4L)或Video for linux 2(V4L2)的规范。指令转换器204用以将第一指令转换为一第二指令。其中,第二指令为视窗操作系统的应用指令。虚拟核心206用以虚拟一视窗操作系统的核心,并藉此根据第二指令,控制一视频装置驱动器212。其中,此视频装置驱动器212为一视频装置216用于视窗操作系统的驱动程序,且此视频装置驱动器212符合视窗驱动程序模型(Windows Driver Model,WDM)。
在图4中,虚拟装置202可包含一第一设定器213。此第一设定器213用以传送一设定文件至虚拟文件系统210。因此,虚拟文件系统210把虚拟装置202视为一实体装置,而使得虚拟装置202自虚拟文件系统210取得第一指令。
另外,在图4中,虚拟核心206可包含一虚拟连结接口驱动器214。虚拟连结接口驱动器214用以控制视频装置驱动器212与视频装置驱动器212所驱动的视频装置216之间的连结接口218。其中,此连结接口218为通用串行总线(universal serial bus,USB)、IEEE1394、加速图形端口(accelerated graphics port,AGP)、外围控制器接口(peripheralcontroller interface,PCI)或PCI Express。
在图4中,虚拟核心206也可包含一地址转换表230。此地址转换表230用以转换linux操作系统208与虚拟核心206所虚拟的视窗操作系统的函数地址以及寄存器地址。
图5示出了依照本发明另一实施例的一种视频装置代理驱动模块的虚拟连结接口驱动器214。此虚拟连结接口驱动器214包含一注册器220以及一初始化器222。其中,注册器220用以供视频装置驱动器212注册。初始化器222用以初始化视频装置驱动器212。
在图5中,虚拟连结接口驱动器214可包含一回传器224。其中,此回传器224用以传送一开始回传指令给视频装置驱动器212,以驱动视频装置216回传一影音串流。
另外,在图5中,虚拟连结接口驱动器214可包含第二设定器226。其中,在传送开始回传指令之前,此第二设定器226用以传送一设定指令给视频装置驱动器212,以设定视频装置216所回传的影音串流。
在图5中,虚拟连结接口驱动器214也可包含停止器228。其中,停止器228用以传送一停止回传指令给视频装置驱动器212,以令视频装置216停止回传影音串流。
由上述本发明实施例可知,应用本发明具有下列优点。可利用现有的视窗操作系统驱动程序在linux系统上驱动视频装置。因此,本发明不需要另外针对linux操作系统作一驱动程序即可在linux操作系统正常使用视频装置及此视频装置所产生的影音串流。
虽然本发明已以一实施例披露如上,但其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围的前提下,当可作若干的更改与修饰,因此本发明的保护范围应以本发明的权利要求为准。
Claims (13)
1.一种视频装置代理驱动方法,包含:
自一第一操作系统的一虚拟文件系统取得一第一指令;
将该第一指令转换为一第二指令;
虚拟一第二操作系统的核心;
根据该第二指令,利用该第二操作系统的核心,控制一视频装置驱动器;
在该第二操作系统的核心中建立一虚拟连结接口驱动器;
向该虚拟连结接口驱动器注册该视频装置驱动器;以及
通过该虚拟连结接口驱动器初始化该视频装置驱动器。
2.如权利要求1所述的视频装置代理驱动方法,其中取得该第一指令的步骤包含:
传送一虚拟装置设定文件至该虚拟文件系统。
3.如权利要求1所述的视频装置代理驱动方法,其中控制该视频装置驱动器的步骤包含:
由该虚拟连结接口驱动器传送一开始回传指令给该视频装置驱动器,以驱动一视频装置回传一影音串流。
4.如权利要求3所述的视频装置代理驱动方法,其中控制该视频装置驱动器的步骤包含:
在传送该开始回传指令之前,先由该虚拟连结接口驱动器传送一设定指令给该视频装置驱动器,以设定该视频装置所回传的该影音串流。
5.如权利要求3所述的视频装置代理驱动方法,其中控制该视频装置驱动器的步骤包含:
由该虚拟连结接口驱动器传送一停止回传指令给该视频装置驱动器,以令该视频装置停止回传该影音串流。
6.如权利要求1所述的视频装置代理驱动方法,其中虚拟该第二操作系统的核心的步骤包含:
建立一地址转换表;以及
根据该地址转换表,转换该第一操作系统与该第二操作系统的函数地址以及寄存器地址。
7.一种视频装置代理驱动模块,包含:
一虚拟装置,用以自一第一操作系统的一虚拟文件系统取得一第一指令;
一指令转换器,用以将该第一指令转换为一第二指令;以及
一虚拟核心,用以虚拟一第二操作系统的核心,并藉此根据该第二指令,控制一视频装置驱动器;
其中该虚拟核心包含一虚拟连结接口驱动器,
该虚拟连结接口驱动器包含:
一注册器,用以供该视频装置驱动器注册;以及
一初始化器,用以初始化该视频装置驱动器。
8.如权利要求7所述的视频装置代理驱动模块,其中该虚拟装置包含一第一设定器,用以传送一设定文件至该虚拟文件系统,以自该虚拟文件系统取得该第一指令。
9.如权利要求7所述的视频装置代理驱动模块,其中该虚拟连结接口驱动器用以控制该视频装置驱动器与一视频装置之间的连结接口。
10.如权利要求9所述的视频装置代理驱动模块,其中该虚拟连结接口驱动器包含一回传器,用以传送一开始回传指令给该视频装置驱动器,以驱动该视频装置回传一影音串流。
11.如权利要求10所述的视频装置代理驱动模块,其中该虚拟连结接口驱动器还包含一第二设定器,用以在传送该开始回传指令之前,传送一设定指令给该视频装置驱动器,以设定该视频装置所回传的该影音串流。
12.如权利要求10所述的视频装置代理驱动模块,其中该虚拟连结接口驱动器还包含一停止器,用以传送一停止回传指令给该视频装置驱动器,以令该视频装置停止回传该影音串流。
13.如权利要求7所述的视频装置代理驱动模块,其中该虚拟核心还包含一地址转换表,用以转换该第一操作系统与该第二操作系统的函数地址以及寄存器地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810129034A CN101615125B (zh) | 2008-06-24 | 2008-06-24 | 视频装置代理驱动方法以及其模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810129034A CN101615125B (zh) | 2008-06-24 | 2008-06-24 | 视频装置代理驱动方法以及其模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101615125A CN101615125A (zh) | 2009-12-30 |
CN101615125B true CN101615125B (zh) | 2012-09-19 |
Family
ID=41494783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810129034A Active CN101615125B (zh) | 2008-06-24 | 2008-06-24 | 视频装置代理驱动方法以及其模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101615125B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1065346A (zh) * | 1991-03-26 | 1992-10-14 | 国际商业机器公司 | 具有通用操作系统接口的设备驱动系统 |
US5909576A (en) * | 1995-08-16 | 1999-06-01 | International Business Machines Corporation | Method and apparatus for using device drivers of a first operating system, under the control of a second operating system |
CN1434942A (zh) * | 1999-12-21 | 2003-08-06 | 通用仪器公司 | 使设备驱动可跨操作系统平台移植的抽象设备驱动模型 |
CN101008903A (zh) * | 2006-01-23 | 2007-08-01 | 联想(北京)有限公司 | 一种虚拟机系统及其设备访问方法 |
-
2008
- 2008-06-24 CN CN200810129034A patent/CN101615125B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1065346A (zh) * | 1991-03-26 | 1992-10-14 | 国际商业机器公司 | 具有通用操作系统接口的设备驱动系统 |
US5909576A (en) * | 1995-08-16 | 1999-06-01 | International Business Machines Corporation | Method and apparatus for using device drivers of a first operating system, under the control of a second operating system |
CN1434942A (zh) * | 1999-12-21 | 2003-08-06 | 通用仪器公司 | 使设备驱动可跨操作系统平台移植的抽象设备驱动模型 |
CN101008903A (zh) * | 2006-01-23 | 2007-08-01 | 联想(北京)有限公司 | 一种虚拟机系统及其设备访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101615125A (zh) | 2009-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7743390B2 (en) | Driving method of a driverless peripheral device with a cross platform | |
US8660817B2 (en) | Hardware test and diagnosis system and method | |
WO2005089139A3 (en) | Remote usb port system and method | |
WO2009057545A1 (ja) | 多軸駆動ドライバの制御方法、及び多軸駆動ドライバ、並びにそれを備えた多軸駆動制御システム | |
WO2005101170A3 (en) | Selectable commands for displaying user interface panels | |
EP2055553A3 (en) | Method for determining an achievable torque operating region for a transmission | |
JP2008515259A5 (zh) | ||
TW200705272A (en) | Method using foreground image data to display and background program to load and execute computer program | |
WO2007035785A3 (en) | Mechanism to upgrade system capability without affecting service | |
CA2587681A1 (en) | Multimedia card interface method, computer program product and apparatus | |
CN101615125B (zh) | 视频装置代理驱动方法以及其模块 | |
CN106909348A (zh) | 一种基于uefi固件的国产处理器平台下的显卡初始化方法 | |
CN101902238A (zh) | Usb无线扩展系统 | |
CN106575278A (zh) | 通用串行总线仿真层 | |
WO2004031950A3 (en) | Device representation apparatus and methods | |
CN101202028B (zh) | 显示器烧录系统与烧录方法 | |
US8473968B2 (en) | Driving method and application thereof | |
US20150095540A1 (en) | External device and a transmission system and the method of the heterogeneous device | |
KR101284791B1 (ko) | 휴대용 단말기를 이용한 컴퓨터 운영체제 구현 방법 및 그 장치 | |
CN100403237C (zh) | 具触控显示功能的键盘及其方法 | |
US11334339B2 (en) | USB device and firmware updating method thereof | |
CN103699424A (zh) | 一种模拟仿真mtk软件的方法 | |
CN102205817B (zh) | 车载系统音量操作的显示控制方法和装置 | |
TW200627908A (en) | Method of using camera of mobile phone as external camera of computer | |
CN105740109A (zh) | 接口信号一致性测试方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |