This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
linux-kernel-dev:capitole:capitol-13 [2016/09/01 07:55] razvan created |
linux-kernel-dev:capitole:capitol-13 [2016/09/02 09:34] (current) razvan [Resurse utile] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 12. Drivere video în Linux ====== | + | ====== 13. Drivere video în Linux ====== |
===== Subiecte abordate ===== | ===== Subiecte abordate ===== | ||
Line 10: | Line 10: | ||
* [[http://lwn.net/Articles/203924/|LWN: The Video4Linux API: an introduction]] | * [[http://lwn.net/Articles/203924/|LWN: The Video4Linux API: an introduction]] | ||
+ | * [[https://linuxtv.org/wiki/index.php/Developer_Section|LinuxTV Wiki: Developer Section]] | ||
+ | * [[https://linuxtv.org/wiki/index.php/Anatomy_of_a_V4L_driver|Anatomy of a V4L Driver]] | ||
+ | * [[https://linuxtv.org/downloads/v4l-dvb-apis-new/media/media_uapi.html|Linux Media Infrastructure userspace API]] | ||
+ | * [[https://linuxtv.org/downloads/v4l-dvb-apis-new/media/media_kapi.html|Media subsystem kernel internal API]] | ||
+ | * [[https://linuxtv.org/downloads/v4l-dvb-apis-new/media/v4l-drivers/index.html|Video4Linux (V4L) driver-specific documentation]] | ||
+ | * [[https://www.kernel.org/doc/Documentation/media/kapi/|Linux Kernel Documentation: Media KAPI]] | ||
+ | * [[https://github.com/umlaeute/v4l2loopback/|v4l2loopback - a kernel module to create V4L2 loopback devices]] | ||
+ | ===== Arhivă de suport ===== | ||
+ | |||
+ | Arhiva de suport pentru exerciții se găsește [[http://koala.cs.pub.ro/training/res/linux-kernel-dev/arc/cap-13-tasks.zip|aici]]. Descărcați arhiva și apoi decomprimați-o folosind comanda<code> | ||
+ | unzip cap-13-tasks.zip | ||
+ | </code> | ||
===== Demo-uri/Discuții ===== | ===== Demo-uri/Discuții ===== | ||
- | TODO | + | Anatomie a implementării driver-ului ''videodev'' (driverul intermediar sau server pentru infrastructura v4l2), parcurgerea funcțiilor și structurilor principale |
+ | |||
+ | Anatomie a implementării driver-ului ''vivi'' (//virtual video driver//) | ||
+ | |||
+ | Implementarea unui driver USB, parcurgerea funcțiilor și structurilor principale | ||
+ | |||
+ | Anatomie a implementării driver-ului ''uvcvideo'' (//USB Video Class//) | ||
===== Exerciții ===== | ===== Exerciții ===== | ||
- | ==== ioctl în dispozitiv de tip caracter ==== | + | ==== Implementare driver video virtual ==== |
+ | |||
+ | Pornind de la modelul driver-ului [[http://lxr.free-electrons.com/source/drivers/media/platform/vivi.c?v=3.13|vivi]], implementați un driver video virtual minimal care să răspundă la investigația folosind comanda ''v4l2-ctl''. | ||
- | TODO | + | <note tip> |
+ | Pentru a investiga dispozitivul ''video0'' se poate folosi comanda<code> | ||
+ | v4l2-ctl --all | ||
+ | </code> | ||
+ | Pentru a investiga dispozitivul ''video1'' se poate folosi comanda<code> | ||
+ | v4l2-ctl --all -d 1 | ||
+ | </code> | ||
+ | </note> |