I'm having a problem getting v4l2 to capture, using the bttv 0.8.38 driver. I have enumerated the device, and manage to queue my buffers up ok, and start the streaming without error. But then I do the following: ... FD_ZERO(&fds); FD_SET(vid, &fds); tv.tv_sec = 10; tv.tv_usec =0; i = select(vid + 1, &fds, 0, 0, &tv); if(i == -1) perror("select error"); if(i == 0) perror("select timeout"); if(FD_ISSET(vid, &fds)) { vb.type = V4L2_BUF_TYPE_CAPTURE; if(ioctl(vid, VIDIOC_DQBUF, &vb) < 0) { perror("couldn't dq buf"); return -1; } ... When I run, it gives me: couldn't dq buf: Input/output error Why does DQBUF return -IOERR? Eagle