Far funzionare Smartcam su Ubuntu Intrepid

3 commenti - Post a comment

Smartcam, per chi non lo sapesse, è un programma per utilizzare i telefonini come webcam in programmi quali aMsn o Skype (funziona sia su Linux che su Windows).

Purtroppo, però,non funziona su Ubuntu Intrepid.
Girovagando un po' in Internet ho trovato come risolvere questo problema.
Questa ottima guida si riferisce a Fedora ma grazie al forum di Ubuntu ho trovato come adattarla a quest'ultima distribuzione.

Per compilare su Ubuntu potete seguire la guida di Divilinux , ma sicuramente il processo non funzionerà in quanto avrete un errore.
Applicando però questa patch al file smartcam.c (modificate le prime righe del file in modo che puntino al vostro file).

Per patchare il file date:
sudo patch -p1 < vostro_file.patch

a questo punto riprendete a compilare e a seguire le istruzioni di Divilinux.
Per farlo funzionare, poi, dovete settare i giusti permessi a /dev/video0.
Aprite con permessi di root con un editor di testo il file /etc/udev/rules.d/40-permissions.rules
gksu gedit /etc/udev/rules.d/40-permissions.rules

e modificate la voce
SUBSYSTEM=="video4linux", GROUP="video"
così
SUBSYSTEM=="video4linux", GROUP="video", MODE="0666"

A questo punto avete finito e la guida di Divilinux o quella linkata per Fedora vi spiegheranno come caricare il modulo e utilizzare il programma.


 
Andrea ha detto...

ciao, per caso a te funziona con kernel 2.6.28? riesco a patchare e compilare il modulo ma quando lo carico segfaulta..

niandubay ha detto...

patch for kernell 2.6.27-12-generic ??? when i try to compile driver, i have many errors... you can tell me all the dependencies... i don`t speak english

juanch0@juanch0-laptop:~/Escritorio/smartcam/src/driver$ make -C /lib/modules/`uname -r`/build M=`pwd` modules
make: se ingresa al directorio `/usr/src/linux-headers-2.6.27-12-generic'
CC [M] /home/juanch0/Escritorio/smartcam/src/driver/smartcam.o
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c: En la función ‘smartcam_mmap’:
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:194: error: declaración implícita de la función ‘vmalloc_to_pfn’
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:195: error: declaración implícita de la función ‘remap_pfn_range’
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:195: error: ‘PAGE_SHARED’ no se declaró aquí (primer uso en esta función)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:195: error: (Cada identificador no declarado solamente se reporta una vez
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:195: error: para cada funcion en la que aparece.)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c: En el nivel principal:
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:559: error: ‘video_ioctl2’ no se declaró aquí (no en una función)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:566: error: se especificó el campo desconocido ‘type’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:572: error: se especificó el campo desconocido ‘vidioc_querycap’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:572: aviso: la inicialización crea un entero desde un puntero sin una conversión
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:573: error: se especificó el campo desconocido ‘vidioc_enum_fmt_cap’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:573: aviso: la inicialización crea un entero desde un puntero sin una conversión
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:574: error: se especificó el campo desconocido ‘vidioc_g_fmt_cap’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:574: aviso: la inicialización crea un entero desde un puntero sin una conversión
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:574: error: el elemento inicializador no es calculable al momento de la carga
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:574: error: (cerca de la inicialización de ‘smartcam_vid.tvnorms’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:575: error: se especificó el campo desconocido ‘vidioc_try_fmt_cap’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:575: aviso: la inicialización crea un entero desde un puntero sin una conversión
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:575: error: el elemento inicializador no es calculable al momento de la carga
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:575: error: (cerca de la inicialización de ‘smartcam_vid.current_norm’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:576: error: se especificó el campo desconocido ‘vidioc_s_fmt_cap’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:576: aviso: inicialización desde un tipo de puntero incompatible
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:577: error: se especificó el campo desconocido ‘vidioc_reqbufs’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:577: aviso: inicialización desde un tipo de puntero incompatible
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:578: error: se especificó el campo desconocido ‘vidioc_querybuf’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:579: error: se especificó el campo desconocido ‘vidioc_qbuf’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:579: aviso: la inicialización crea un entero desde un puntero sin una conversión
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:580: error: se especificó el campo desconocido ‘vidioc_dqbuf’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:580: aviso: faltan llaves alrededor del inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:580: aviso: (cerca de la inicialización de ‘smartcam_vid.lock’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:580: aviso: la inicialización crea un entero desde un puntero sin una conversión
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:581: error: se especificó el campo desconocido ‘vidioc_s_std’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:581: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:581: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:582: error: se especificó el campo desconocido ‘vidioc_enum_input’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:582: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:582: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:583: error: se especificó el campo desconocido ‘vidioc_g_input’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:583: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:583: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:584: error: se especificó el campo desconocido ‘vidioc_s_input’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:584: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:584: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:585: error: se especificó el campo desconocido ‘vidioc_queryctrl’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:585: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:585: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:586: error: se especificó el campo desconocido ‘vidioc_g_ctrl’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:586: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:586: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:587: error: se especificó el campo desconocido ‘vidioc_s_ctrl’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:587: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:587: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:588: error: se especificó el campo desconocido ‘vidioc_cropcap’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:588: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:588: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:589: error: se especificó el campo desconocido ‘vidioc_g_crop’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:589: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:589: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:590: error: se especificó el campo desconocido ‘vidioc_s_crop’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:590: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:590: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:591: error: se especificó el campo desconocido ‘vidioc_g_parm’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:591: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:591: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:592: error: se especificó el campo desconocido ‘vidioc_s_parm’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:592: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:592: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:593: error: se especificó el campo desconocido ‘vidioc_streamon’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:593: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:593: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:594: error: se especificó el campo desconocido ‘vidioc_streamoff’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:594: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:594: aviso: (cerca de la inicialización de ‘smartcam_vid’)
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:596: error: se especificó el campo desconocido ‘vidiocgmbuf’ en el inicializador
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:596: aviso: exceso de elementos en el inicializador de struct
/home/juanch0/Escritorio/smartcam/src/driver/smartcam.c:596: aviso: (cerca de la inicialización de ‘smartcam_vid’)
make[1]: *** [/home/juanch0/Escritorio/smartcam/src/driver/smartcam.o] Error 1
make: *** [_module_/home/juanch0/Escritorio/smartcam/src/driver] Error 2
make: se sale del directorio `/usr/src/linux-headers-2.6.27-12-generic'

Cyr4x ha detto...

Uoncomment line 603 in smartcam.c before compiling the driver.