Understanding webcam 's Linux device drivers - linux-device-driver

As far as I know, device driver is a part of SW that is able to communicate with a particular type of device that is attached to a computer.
In case of a USB webcam, the responsible driver is UVC that supports any UVC compliant device. This means that enables OS or other computer program to access hardware functions without needing to know precise details of the hardware being used.
For this reason, I installed UVC Linux device driver by running:
opkg install kernel-module-uvcvideo
Webcam has been recognised by Linux kernel: dev/video0. However, I still wasn't able to perform video streaming with FFmpeg, as I was missing V4L2 API. I installed V4L2, by configuring kernel.
My queries are:
How UVC driver and V4L2 are linked together?
What is the purpose of V4L2 API?
If I haven't installed UVC first, it would be installed with V4L2?
LinuxTV refers: The uvcvideo driver implementation is adherent only to the V4L2 API. This means that UVC is part of V4L2 API?

Related

Is PCI 3.0 compatible with PCI 2.1?

I upgrade my cPCI board to an adlink-3970 (PCI 3.0). The machine boots up to windows, all the drivers are installed correctly including the my PCI 2.1 device's driver (meaning the CPU was able to read the ROM over the PCI bus). However, when I try reading data from my PCI 2.1 device, all the registers read 0. Are these two boards not compatible?
More info:
I've read that they should be compatible and the electrical/mechanical specs indicate that they are. I've also tried swapping in for another CPU board but with the same results. The only difference in the upgraded board is that the CPU uses a PCIe-PCI bridge to communicate on the PCI bus. I'm wondering if that's the issue.
PCIe is backward compatible. A PCIe3.0 card will work on a PCIe2.0 slot.

Where Can i find an emulator to test my operating system for ARMv8?

I am currently writing an OS based on ARMv8 processor. I want to find an emulator that acts like the processor so I can see my OS working or not and to check my work.
I am on windows 10. are there any emulators recommended ?
I searched SO but no answer. thanks.
Looks like QEMU version 2.1+ is what you want
the latest version of upstream QEMU (2.1) now includes full ARMv8 system emulation support. This means that users can use upstream QEMU to run a full 64-bit ARMv8-A kernel and filesystem, such as a 64-bit Ubuntu cloud image. This was no small endeavour as it involved emulating a completely new instruction set, exception model, CPU implementation, and more. The implementation was verified with a custom instruction verification tool (RISU) and was heavily reviewed upstream by an engaged and incredibly supportive upstream QEMU community.
source

Redhat OS with notebook to Embedded controller RPI

Now I have the Redhat:Linux OS on notebook computer there are many applications inside that computer.
Reason that I need to port Redhat:OS to RPI that computer was installed Labview application and Labview with NiDAQmx , VISA I/O.(Now it's running fine on notebook with NI6008)
The question is how can I port that linux OS to my Raspberry PI with driver of RPI?(I need to know step by step)
NI does not support running LabVIEW standard on ARM processors - see What Linux Distributions Do National Instruments Drivers and Software Support?.
NI does have a Real Time modules that supports ARM processors, but not the Pi - see Targetting Raspberry PI.
You can still connect a NI6008 DAQ to your Pi and access the data using a driver such as Low Cost USB DAQ Driver for use with Raspberry Pi, but you will have to consume the data with an application written in a language other than LabVIEW (such as Python).

Cannot update FEZ Hydra firmware: Device is not connected or not responding

Update 1:
Hi friends, could you please recommend me a powered USB hub in Australia(preferred in Melbourne)? I guess my problem is caused by the insufficient power supply.
Hi friends,
I have a FEZ Hydra Basic kit. I got it in 2012 (might be in Sep).
Today I downloaded the latest SDKs, drivers and everything(NETMF and Gadgeteer Package 2014 R1). (.NET Micro Framework 4.3 and the firmware I have on my laptop is 4.2.6.2)
But the firmware on my deivce is 4.1.x.x(I was lucky to saw the device's firmware version just once and I followed the instruction on the software FEZ Config, but failed with errors).
After that, I cannot get the Device's firmware version any more.
I found changing USB ports sometimes help. I have 4 USB ports, some of them can connected to the device, others are not.
So I have no idea to update the firmware in other way.
Could someone please help me to figure out how to find a way to update my firmware?
In the attached image, it shows: the FEZ Config detected the FEZ Hydra and was trying to get the device's firmware version, but it failed to do so and followed by an error message say: Failure - Device is not connected or not responding.
As I mentioned above, I was lucky to see the FEZ Config successfully got the device's version only once.
So my guess is - is it because the output power is not strong enough to support the operation, so I have to use something like a USB hub which has a strong and stable power?(I saw someone mentioned this and cannot find the comments any more).
Bt the way, all USB ports I mentioned above are directly on my laptop which means they get power directly from motherboard, so they should have strong and stable power to support my operations.
I have been stuck at this issue for the whole day, I really hope some friends can help me out.
Thank you very much in advance.
I've had like the same issue. While updating the firmware it threw me that message and I could not reach my Gadgeteer *Fez Hydra at all. I managed to solve it by attaching an external power supply to it. I use the USB Client DP (Dual Power) 1.3. This way you do need the power over USB part and you can safely update the firmware.
USB Client: https://www.ghielectronics.com/catalog/product/280
edit: If that doesn't solve your isse you might want to reset the Loader first. Which is given as a tip on the GHI website before updating the firmware.

porting virtual video driver in linux kernel

I am trying to build vivi driver in linux kernel..
I tried using make menuconfig but i didnt see any option to enable vivi driver.
Can someone tell me the process to enable vivi drivers in kernel
-kiran
LINUX KERNEL 3.12 :
The support for vivi [virtual video driver] can be enable by following:
Device Driver --> Multimedia support --> Cameras/video grabbers support --> Media test drivers --> Virtual Video Driver.
It's under 'Device Drivers' -> 'Multimedia support' -> 'Video capture adapters' -> 'Virtual Video Driver'.
It has dependencies on VIDEO_DEV, VIDEO_V4L2 and ( FRAMEBUFFER_CONSOLE or STI_CONSOLE ).
It's also not supported on Sparc machines.
Reading the Kconfig files is usually the best place to start looking for this kind of thing.