News:

Cerchi un tool di pulizia del sistema? Prova Mind Cleaner

Menu principale

[RISOLTO] Skype con webcam rovesciata!

Aperto da ginoza, Giovedì 29 Luglio 2010, 17:37:16

Discussione precedente - Discussione successiva

ginoza

Ho installato sul portatile Asus X66IC Linux Mint 9 KDE e tutto funziona bene. Eccetto che in Skype la webcam incorporata mi fa vedere l'immagine 'rovesciata', cioè capovolta..., con la testa ai piedi!...Come mai? Non riesco a risolvere il problema.
Mentre sul computer fisso ( dove pure ho installato Linux Mint 9 kde) la webcam in skype funziona bene in modo corretto
Qualcuno mi può dare una mano per risolvere questo strano problema?
Grazie.
Gino.

midnite

ciao, anch'io ho avuto il problema della webcam ribaltata su un portatile asus, ma con mint8 gnome.
il fatto è che su alcuni portatili (la webcam integrata) viene montata rovesciata per problemi di spazio

prima cosa, verifica con un altro programma che non sia un'anomalia di skype (non credo)

quindi apri il terminale e digita
lsusb
dovresti ottenere un risultato del tipo
Bus 001 Device 001: ID xxxx:yyyy Webcam
controlla che l'id della tua webcam xxxx:yyyy sia presente a questo indirizzo
http://linux-uvc.berlios.de/#devices
nel mio caso nella colonna status c'era indicato una warning col numero 3, che appunto vuol dire:
CitazioneThis camera module is known to be mounted upside-down in some notebooks...

se è così prova a vedere questa guida, nel mio caso ha funzionato


enziosavio

Usa  il  Cacciavite  ...........
Non  Scherzo. :ciao:

ginoza

Grazie delle risposte. Non capisco una cosa: come mai sullo stesso portatile Asus X66IC le distro Kubuntu 10.04, Debian 5.0.4, OpenSuse 11.3 la stessa webcam funziona a dovere e in modo corretto?...Non credo che 'usando il cacciavite..' , come dice enziosavio possa risolvere il problema. Mah! Anche in Windows 7 la webcam va bene. E allora?
Non ho capito bene in pratica cosa dovrei fare secondo midmite, che mi consiglia di seguire una guida: non ho capito come fare! Scusami, ma non ho ancora abbastanza dimestichezza con Linux Mint che trovo molto bella.
Se qualcuno mi suggerisse un metodo o una guida chiara ne sarei grato.
Grazie.
Gino 
 

midnite

beh se è come penso, la tua webcam è ribaltata, quindi il "raddrizzamento" dell'immagine viene gestita tramite software (dal driver)... dove tutto ti funziona, vuol dire che il driver installato fa il suo dovere.

quello che ti ho consigliato io è
1) identificare la tua webcam col comando lsusb dato nel terminale
2) verificare sul sito http://linux-uvc.berlios.de/#devices che sia supportata dai driver uvc
3) quindi ti ho indirizzato ad una guida passo-passo per modificare ed installare i driver
(eventualmente dimmi dove trovi difficoltà che provo ad aiutarti)

altra cosa che mi viene in mente è quella di aggiornare il kernel e vedere se grazie a questo il problema si risolve in automatico, ma non conosco kde e non riesco a guidarti per via grafica

enziosavio

Perchè  Mint 9  Kde  non  ha  il  terminale?
Scherzo  Midnite  :D :D :D

ginoza

Grazie, midnite, della risposta. Ti posto il risultato del comando lsusb:
gino@gino-laptop ~ $ lsusb
Bus 002 Device 002: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub                 
Bus 001 Device 003: ID 04f2:b071 Chicony Electronics Co., Ltd 2.0M UVC Webcam / CNF7129
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
gino@gino-laptop ~ $
mi pare c he la webcam venga riconosciuta dal progrmma. Ma quale della quattro elencate è la mia webcam incorporata?
Grazie.
Gino.

dieguitus


midnite

infatti... se vai nella pagina http://linux-uvc.berlios.de/#devices e cerchi la webcam, tramite codice 04f2:b071
ti ritrovi la riga
Citazione04f2:b071   CNF71297 (Asus N10JA2 netbooks and K50IN notebooks)   Chicony Electronics    [3]
a destra (ultima colonna) vedi che c'è una warning, con il numero 3?
se vai in basso sempre in quella pagina si legge:
Citazione3 This camera module is known to be mounted upside-down in some notebooks. Applications that use the libv4l library should display the video correctly, as libv4l detects upside-down cameras and rotates the image automatically. See Hans de Goede's post on the linux-uvc-devel mailing list for more information. For applications that don't use libv4l, try holding your computer upside-down.
traducendo con google... 3 La presente modulo fotocamera è noto per essere montato capovolto in alcuni notebook.

quindi la webcam è supportata dai driver uvc, e si sa che in alcuni casi è montata alla rovescia... visto che i driver presenti nel tuo sistema non riescono a ruotare l'immagine in automatico (come dovrebbero) devi seguire la procedura che ti abbiamo indicato
http://forum.ubuntu-it.org/index.php/topic,199106.msg2625035.html#msg2625035

ginoza

Grazie dell'aiuto che mi state dando! Ora ho seguito la prima parte della guida secondo il link che mi avete dato: ho scaricato il file gz e scompatato e poi fatto la modifica con copia e incolla e salvato conforme quanto suggerito ( a proposito, qui devo solo cliccare su "Salva" oppure su "Salva come"?..).
Adesso mi trovo in difficoltà! Non so cosa esattamente significa: "Dopo aver applicato la patch, prima del make va utilizzato sudo make menuconfig....! Come faccio ad applicare la patch? che cosa è la patch? Scusate la mia ignoranza.
Dopo quel famoso copia e incolla e il salvataggio, io avevo dato subito il comando dal terminale sudo make menuconfig, ma avevo ricevuto questa risposta: "make:*** Nessuna regola per creare l'obiettivo menuconfig. Arresto".
Attendo ancora illuminazioni in merito. Speriamo di farcela!...
Grazie.
Gino.

Pedro

Forse hai sbagliato qualcosa, la path in questo caso e quella modifica al file uvc_video.c .
Vediamo un po, scaricare il file gz o bz2 da http://linuxtv.org/hg/v4l-dvb estrarlo ed entra dentro la cartella, doppio clic sul file uvc_video.c per editarlo e schiaccia sulla lente o su cerca > Trova e nella finestra che si apre Cerca static void uvc_video_decode_data e da qui
CitazioneLa funzione si sviluppa da questa riga all'ultima parentesi graffa prima che inizi "static void uvc_video_decode_end".
copi incolli
Citazionestatic void uvc_video_decode_data(struct uvc_streaming *stream,
      struct uvc_buffer *buf, const __u8 *data, int len)
{
   struct uvc_video_queue *queue = &stream->queue;
   unsigned int maxlen, nbytes, row_size, to_be_copied, shift_right;
   void *mem;

   if (len <= 0)
      return;

   /* Copy the video data to the buffer. */
   maxlen = buf->buf.length - buf->buf.bytesused;
   mem = queue->mem + buf->buf.m.offset + buf->buf.bytesused;
   nbytes = min((unsigned int)len, maxlen);
   row_size = stream->cur_frame->wWidth *
                 stream->format->bpp / 8;
   /* Each loop "nbytes" is decremented of the number of bytes just copied.
    * So are there any other bytes to be copied?
    */
   while (nbytes > 0) {
      /* As the rows of modified frames have to be fulfilled from
       * bottom-left to top-right, each cycle tries to complete a
       * single row.
       * In this cycle where is it needed to start to store bytes
       * within the selected row? From the beginning or shifted
       * right? Because other bytes could have been already stored in
       * that row without completing it, so it could be needed a right
       * shift.
       */
      shift_right = buf->buf.bytesused % row_size;
      /* In this cycle how many byte can we copy in the selected row?
       */
      if (nbytes > row_size - shift_right)
         to_be_copied = row_size - shift_right ;
      else
         to_be_copied = nbytes;
      /* "queue->mem + buf->buf.m.offset" is the base-address where to
       * start to store the current frame. This address refers to a
       * preallocated area (just for a sigle frame) taking part in a
       * circular buffer, where to store a fixed number of sequent
       * frames.
       */
      memcpy(queue->mem + buf->buf.m.offset
             /* Go to the end of this frame. */
             + row_size * stream->cur_frame->wHeight
             /* Go back for the number of bytes corrisponding to the
              * already fully completed rows.
         */
             - (buf->buf.bytesused - shift_right)
             /* Go back at the starting point of the upper row. */
             - row_size
             /* Shift right on this row if it is needed. */
             + shift_right,
             data,
             to_be_copied );
      /* Update "data", "byteused" and "nbytes" values. */
      data += to_be_copied;
      buf->buf.bytesused += to_be_copied ;
      nbytes -= to_be_copied;
   }
   /* Complete the current frame if the buffer size was exceeded. */
   if (len > maxlen) {
      uvc_trace(UVC_TRACE_FRAME, "Frame complete (overflow).\n");
      buf->state = UVC_BUF_STATE_DONE;
   }
}
Salva il file chiudi e prosegui dal link.


ginoza

Grazie, Pedro, della risposta. Seguendo il tuo suggerimento e rifatto esattamente il copia e incolla tutto per bene (almeno penso...), adesso mi trovo con questo problema: dove apro il terminale per dare dentro il comando ' sudo make menuconfig'?
Nella cartella dove ho scaricato e poi scompattato il file v4l-dvb-9652f85 ecc.., ecc, oppure apro un terminale direttamente in modo autonomo? Le ho provate tutte e due e ambedue mi danno errore...non arrivo a nessuna conclusione.
Come fare?
Grazie.
Gino

midnite

ok, allora siamo arrivati ad aver modificato del file come indicato, quindi hai aperto il terminale e navigato fino a dentro la cartella che hai scompattato e da lì hai digitato il comando
sudo make menuconfig
gli hai dato la tua password e a questo punto ha dato un errore? è probabile che allora nel tuo sistema manchi qualche pacchetto da installare... posta l'output che restituisce, così vediamo di cosa si tratta

ginoza

Ti posto il risultato del comando sudo make menuconfig.

gino@gino-laptop ~/Scrivania/v4l/v4l-dvb-9652f85e688a $ sudo make menuconfig
[sudo] password for gino:
make -C /home/gino/Scrivania/v4l/v4l-dvb-9652f85e688a/v4l menuconfig
make[1]: ingresso nella directory «/home/gino/Scrivania/v4l/v4l-dvb-9652f85e688a/v4l»
make -C /lib/modules/2.6.32-21-generic/build -f /home/gino/Scrivania/v4l/v4l-dvb-9652f85e688a/v4l/Makefile.kernel config-targets=1 mixed-targets=0 dot-config=0 SRCDIR=/lib/modules/2.6.32-21-generic/build v4l-mconf
make: Entering an unknown directory
make: *** /lib/modules/2.6.32-21-generic/build: No such file or directory.  Stop.
make: Leaving an unknown directory
make[1]: *** [/lib/modules/2.6.32-21-generic/build/scripts/kconfig/mconf] Errore 2
make[1]: uscita dalla directory «/home/gino/Scrivania/v4l/v4l-dvb-9652f85e688a/v4l»
make: *** [menuconfig] Errore 2
gino@gino-laptop ~/Scrivania/v4l/v4l-dvb-9652f85e688a $

Io non ci capisco niente!...Speriamo di riuscire con il tuo aiuto a risolvere questo problema.
Grazie.
Gino.

midnite

praticamente ti dice che ci sono problemi con la cartella...
make: Entering an unknown directory
make: *** /lib/modules/2.6.32-21-generic/build: No such file or directory.  Stop.
make: Leaving an unknown directory

che dia fastidio la scrivania? mi pare che kde la gestisca in modo differente da gnome,
però non saprei... prova a spostare la cartella v4l-dvb-9652f85e688a nella tua home,
(il percorso diventerà /home/gino/v4l-dvb-9652f85e688a/) e lancia il comando da lì