Domanda:
Come visualizzare un'immagine tramite ssh?
Francesco Boi
2018-01-17 22:17:59 UTC
view on stackexchange narkive permalink

Mi sono connesso al mio raspberry tramite ssh da un altro pc, vorrei mostrare un'immagine che si trova sul mio raspberry sullo schermo del mio PC. Ho provato a seguire la risposta a questa domanda di astrogeek.

Supponiamo che il mio utente raspberry sia pi e il pc dell'utente sia pc.

Ho eseguito sul mio pc il comando

  xhost + pi @ <rasp_ip>  

e sul terminale connesso via ssh al raspberry

  DISPLAY = pc @ <pc_ip>: 0  

ma quando provo ad aprire l'immagine * jpg con fbi e altri strumenti ma niente.

Qualcuno sa come farlo senza copiare l'immagine localmente?

Lo stesso metodo funzionerà utilizzando la pi-camera in tempo reale con il comando raspistill -t 3000 , ad esempio?

EDIT: il sistema operativo del mio PC è Ubuntu.

È un PC Windows? In tal caso, l'inoltro X non funzionerà, perché il tuo PC Windows non esegue il server di visualizzazione X.
No, è Ubuntu. Lo specificherò nella domanda, grazie
Per raspicam potresti invece voler installare / abilitare UV4L (questo fornisce un server video in streaming basato su HTTP; puoi anche scattare foto): https://www.linux-projects.org/uv4l/installation/
Cinque risposte:
#1
+4
Fabian
2018-01-22 04:06:26 UTC
view on stackexchange narkive permalink

Un'altra opzione con Raspbian è feh.

  1. connettiti dal tuo pc con ssh -X [email protected] (X!)
  2. user @ raspi maiuscola: ~ $ feh /path/picture.jpg

Nota: il caricamento non è velocissimo, attendi pazientemente.

Se il pacchetto feh è mancante, puoi installarlo tramite cli:

sudo apt-get update; sudo apt-get install feh

feh funziona ma fbi e pqiv no. Grazie
#2
+3
user13700
2018-01-21 22:26:56 UTC
view on stackexchange narkive permalink

Visualizzazione di un'immagine tramite ssh presa letteralmente:

Installa libsixel-bin sul PI e usa un terminale abilitato per sixel sul PC. L'XTerm di Debian può farlo, quindi probabilmente anche l'XTerm di Ubuntu.

Aggiungilo a $ HOME / .Xresources sul PC:

  XTerm * decTerminalID: vt340XTerm * numColorRegisters: 256  

Sixel over SSH

Ulteriori informazioni su Sixel sono su github.com/ saitoha / libsixel.

#3
+1
madneon
2018-01-17 23:49:41 UTC
view on stackexchange narkive permalink

Se hai un'installazione predefinita di Ubuntu puoi "montare" il tuo Raspberry con una connessione SSH e sfogliarlo facilmente come directory locali.

In Nautilus (browser di file predefinito) modifica la posizione (premi Ctrl + L per evidenziare la barra degli indirizzi), inserisci qualcosa del genere:

  sftp: // username @ host: port / path  

Ad esempio:

Screenshot showing sftp usage

Puoi omettere la porta se è 22 di default di SSH, e ovviamente puoi usare letterale nome_host se si dispone di DNS o nome_host.local se le macchine LAN utilizzano mDNS.

#4
+1
Chetan Bhargava
2018-01-18 01:07:27 UTC
view on stackexchange narkive permalink

Dalla tua macchina Ubuntu

  xhost + ssh -X pi @ <rasp_ip>  

Una volta connesso, la chiamata alle tue applicazioni grafiche le aprirà sul tuo collegamento del computer.

Ad esempio, questo funziona per l'applicazione di test xeyes. Tuttavia ho provato con fbi e fim ad aprire un'immagine jpg: entrambi hanno restituito un errore simile: ioctl VT_GETSTATE: ioctl inappropriato per il dispositivo. Questo sembra essere generato dal fatto che fbi e fim scrivono direttamente nel frame buffer e si aspettano di trovare un dispositivo collegato al lampone.
-1
Ciao, grazie per la tua risposta. La tua risposta sembra buona. Tuttavia ricevo alcuni errori e avvisi (anche quando accedo con ssh o aggiornamento) sulle impostazioni locali. Penso che i problemi di locales stiano influenzando anche questo prolem quindi cercherò di risolvere i problemi di locales e poi tornerò qui.
Gli errori delle impostazioni locali di @FrancescoBoi riguardano la lingua, la tabella codici, ecc. Non dovrebbero influire sulla visualizzazione delle immagini. Ecco un articolo sulle impostazioni locali https://www.raspberrypi.org/forums/viewtopic.php?t=11870
@teoguso -X non è deprecato ma -Y ha un obiettivo diverso. Fare riferimento a https://man.openbsd.org/ssh. Non ho ancora testato -Y.
@FrancescoBoi sei riuscito a risolverlo?
No, non lo ero. Riproverò passo dopo passo e incollerò gli errori.
Errore durante l'utilizzo di fbi: utilizzo di "DejaVu Sans Mono-16", dimensione pixel = 16.67 file = / usr / share / fonts / truetype / ttf-dejavu / DejaVuSansMono.ttfioctl VT_GETSTATE: ioctl inappropriato per il dispositivo (non una console Linux) ---- - Errore con pqiv: (pqiv: 4206): GLib-GObject-WARNING **: Tentativo di aggiungere la proprietà GtkSettings :: gtk-button-images dopo che la classe è stata inizializzata uso: pqiv [opzioni] pqiv versione 0.12 di Phillip Bernd ----- Errore con sudo pqiv: connessione X11 rifiutata a causa di un'autenticazione errata. Impossibile aprire il display X11 .--------- Ripeto che xeyes funziona.
Grazie per il vostro sostegno. Come suggerito da un altro utente ho provato feh e con feh è tutto ok. Con fbi e pqiv n.
#5
  0
cacachu
2018-01-21 18:33:07 UTC
view on stackexchange narkive permalink

Il modo più semplice di cui sono a conoscenza è UV4L, perché puoi ottenere un flusso video o immagini JPEG in tempo reale di ciò che il Raspberry Pi sta visualizzando sullo schermo HDMI ad esso collegato (o visualizzerebbe, se lo fai non hanno uno schermo HDMI collegato). È facile perché apri il browser e digita l'URL corretto (ad es. Http: // rpi_address : 8080 / stream / webrtc) per avviare lo stream nella pagina. C'è anche un pulsante per registrare il video in .webm standard. Inoltre, è possibile inviare i tasti del tuo PC al Raspberry Pi per controllarlo dall'interno del browser stesso, ma questa è un'altra storia. Non hai necessariamente bisogno di un server X in esecuzione sul tuo Rpi.

Per fare questo, dovrai installare il driver raspidisp seguendo queste istruzioni che menzionano questo su raspidisp in fondo alla pagina:

Il driver raspidisp trasforma l'uscita HDMI in un dispositivo di input virtuale compatibile con Video4Linux (come una fotocamera). Non hai necessariamente bisogno di un display collegato alla porta di uscita HDMI del Raspberry Pi. In altre parole, questo driver può catturare tutto ciò che vedi o vedresti sullo schermo.

Questo è utile se hai un Raspberry Pi headless. Con l'aiuto di UV4L Streaming Server puoi avere il pieno controllo del Raspberry Pi da qualsiasi browser (in esecuzione su un PC nella stessa rete, per esempio). Infatti, è possibile eseguire lo streaming del frame buffer di Raspberry Pi su una pagina web standard nel browser (senza plugin) con latenza molto bassa e, allo stesso tempo, inoltrare eventi di input da tastiera o mouse dal PC al Raspberry Pi . Se vuoi provare questo, oltre a uv4l-raspidisp, deve essere installato il pacchetto uv4l-raspidisp-extras:

$ sudo apt-get install uv4l-raspidisp-extras

Il pacchetto sopra include un servizio di sistema che avvia automaticamente un'istanza uv4l all'avvio e, se installato, anche un'istanza del Streaming Server in ascolto sulla porta 9080 per impostazione predefinita. Il servizio istruisce uv4l ad analizzare il file di configurazione /etc/uv4l/uv4l-raspidisp.conf per i valori di impostazione iniziali.

Questa è una DEMO, più mirata sul mostrare le sue capacità di lettura, ma puoi farti un'idea.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...