В таких случаях один способ узнать больше, чтобы выполнить команду в трассированием
strace cat /dev/video0
, который будет показывать более подробную информацию о точке сбоя:
....
open("/dev/video0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFCHR|0660, st_rdev=makedev(81, 0), ...}) = 0
fadvise64(3, 0, 0, POSIX_FADV_SEQUENTIAL) = 0
read(3, 0x2379000, 65536) = -1 EINVAL (Invalid argument)
....
, который в в моем случае, похоже, говорится, что устройство my/dev/video0 не поддерживает требуемую операцию: так что в этом случае «cat» пытается прочитать 64k байт с устройства.
Однако, я обнаружил, что с помощью NC (Netcat) вместо того, чтобы кошка сделал работу для этой цели:
nc -l 1234 </dev/video0
с соответствующим:
nc 127.0.0.1 1234 | mplayer tv://device=/dev/stdin
для отображения на местном уровне; здесь также будет работать порт туннеля SSH.
Возможно, результат работы * dmesg * может быть полезен – Federico
@Federico dmesg не дает результата при выполнении cat/dev/video0 – pranavk
Недостаточно привилегий? Оболочки IME не всегда дают сообщения об ошибках, которые можно ожидать. Попробуйте 'strace' и посмотрите, что произойдет, когда сбой' sys '(sys-call). – marko