Sommario:

Esecuzione senza schermo/display (senza testa) su Raspberry Pi o altri computer basati su Linux/unix: 6 passaggi
Esecuzione senza schermo/display (senza testa) su Raspberry Pi o altri computer basati su Linux/unix: 6 passaggi

Video: Esecuzione senza schermo/display (senza testa) su Raspberry Pi o altri computer basati su Linux/unix: 6 passaggi

Video: Esecuzione senza schermo/display (senza testa) su Raspberry Pi o altri computer basati su Linux/unix: 6 passaggi
Video: 🍓 IL MIGLIOR SISTEMA OPERATIVO PER RASPBERRY PI / LINUX ARM 2022 2024, Dicembre
Anonim
Esecuzione senza schermo/display (senza testa) su Raspberry Pi o altri computer basati su Linux/unix
Esecuzione senza schermo/display (senza testa) su Raspberry Pi o altri computer basati su Linux/unix

Quando la maggior parte delle persone acquista un Raspberry PI, pensa di aver bisogno di uno schermo di computer. Non sprecare i tuoi soldi in monitor e tastiere non necessari. Non perdere tempo a spostare tastiere e monitor tra computer. Non legare una TV quando non è necessaria. Puoi facilmente utilizzare il tuo computer principale per accedervi.

L'esecuzione senza testa (senza display) di Raspberry Pi o altri sistemi Unix può essere estremamente utile. Ho usato xWindows per molti anni ed è fantastico quando hai bisogno di display grafici invece di righe di comando. Nel caso dei robot, spesso non è pratico utilizzare un monitor perché si muove o è troppo piccolo per un monitor. I Raspberry PI possono essere alimentati con batterie e in posizioni che rendono poco pratico avere un monitor. L'uso di SSH consente i comandi di linea, ma ci sono interfacce grafiche utili.

Questo istruibile non è un tutorial xWindows. Ti fornisce informazioni sufficienti per iniziare. Non lasciarti intimidire dalla terminologia e dal gergo. In realtà è abbastanza facile usare xWindows di base.

Passaggio 1: terminologia che può sembrare confusa

Probabilmente puoi saltare questa sezione. Fare riferimento a questa sezione se uso parole o concetti che si desidera comprendere. Questi concetti di base possono interessarti o possono essere utili per discutere un problema che stai riscontrando.

Non lasciarti intimidire dalla quantità di informazioni qui

C'è terminologia e gergo che sembra molto confuso. Non è necessario a meno che tu non abbia bisogno di chiedere aiuto in modo da poter porre la domanda giusta. È facile da configurare e utilizzare. Non memorizzare la terminologia. Basta mettersi a proprio agio con i concetti.

Cosa significa "correre senza testa"?

L'esecuzione senza testa è dove un computer funziona senza display, tastiera e mouse. A volte lo chiameremo server. È un computer che viene utilizzato in remoto invece di accedervi direttamente dalla tastiera e dallo schermo. L'esecuzione di un Microsoft Windows headless significa che non è possibile eseguire alcun programma grafico. Per esempio. Microsoft Windows richiede un display, quindi richiede un display. D'altra parte, l'esecuzione di Microsoft Word su un sistema Unix headless funziona bene. L'utilizzo di xWindows su Unix consente di eseguire programmi grafici da computer remoti.

xWindows

Poiché Microsoft "Windows" è di proprietà di Microsoft, Unix non può usare facilmente questo termine. Invece, abbiamo "xWindows" per fornire la stessa funzionalità ma non è legato a un display sullo stesso computer. Il desktop Microsoft Windows, il desktop Unix xWindows e il desktop Apple hanno tutti un desktop con un menu di avvio e icone. Facendo clic su un'icona o sul menu di avvio si aprirà una finestra.

xWindows gira su Unix

Se non stai utilizzando Microsoft Windows o Apple, probabilmente stai eseguendo Unix. Android, Raspbian, Linux, Solaris, Noobs, Ubuntu e molti altri sono versioni comuni di Unix. La maggior parte di queste versioni Unix viene fornita con xWindows installato. Android è l'eccezione perché funziona su computer così piccoli che xWindows è troppo lento.

Desktop (xServer)

Quando apri una finestra (su qualsiasi piattaforma), deve essere visualizzata su un desktop. Per un xWindows, questo desktop è chiamato xServer che ha una tastiera, un mouse e un display. Infatti, diversi utenti avranno ciascuno un xServer (con display, tastiera e mouse) sui computer della rete. Possono utilizzare client xWindows su qualsiasi computer in quella rete.

Microsoft Windows e Apple hanno lo stesso concetto di desktop/finestra. La grande differenza è che il desktop deve trovarsi sullo stesso computer di Windows. Possono avere solo 1 utente che accede ai programmi tramite finestre aperte.

Passaggio 2: abilitare SSH e configurare la rete

L'installazione del sistema operativo (ad es. Linux, Raspbian, …) richiede un monitor, una tastiera e un mouse. Per un Raspberry PI, puoi utilizzare temporaneamente la tua TV per questo e la tastiera/mouse USB più economici che puoi trovare (o prendere in prestito). Altri computer potrebbero richiedere temporaneamente hardware specifico durante l'installazione. Dopo aver abilitato SSH e configurato la rete, questa apparecchiatura non dovrebbe più essere necessaria.

Per Raspbian e Noobs, questo viene fatto facilmente durante l'installazione. Per apportare queste modifiche dopo l'installazione, è possibile aprire un terminale di comando della riga ed eseguire il comando "sudo raspi-config". Attualmente, l'opzione 2 (rete) consente di configurare la rete. L'opzione 5 (opzioni di interfacciamento) sotto-opzione p2 SSH consente di abilitare ssh. Questi potrebbero cambiare con le versioni future.

Per altri sistemi Unix, fare riferimento ai manuali per queste opzioni di configurazione.

Una volta abilitata la rete, sarà necessario salvare l'indirizzo IP da utilizzare in seguito. Dal terminale di comando della riga, emettere il comando "sudo ifconfig". Sei interessato a Eth0 (connessione cablata) o wlan0 (connessione wifi). Il valore "inet" avrà 4 numeri separati da punti (es. #.#.#.# - nel mio caso 192.168.1.4).

In un ambiente domestico, questo indirizzo IP rimarrà probabilmente lo stesso. Tuttavia, ci sono situazioni in cui potrebbe cambiare. Se hai questo problema dove cambia, puoi impostare un IP statico nel tuo router (vedi la documentazione del router), cercare il nuovo indirizzo IP nel router (vedi la documentazione del router) o collegare un monitor/tastiera ed emettere il comando ifconfig menzionato sopra.

Passaggio 3: installare un desktop (xServer) su altri computer che accedono ai client XWindows sul computer senza testa

Per Windows, preferisco Mobaxterm che è gratuito per uso non aziendale. Non lasciarti intimidire da tutte le opzioni. Ha molte funzionalità di cui non hai bisogno.

Per i sistemi Unix, il desktop verrà in genere eseguito sul display locale del computer. Se è così, lo hai già installato.

Passaggio 4: configurare l'XServer

Configura l'XServer
Configura l'XServer
Configura l'XServer
Configura l'XServer

Microsoft Windows che utilizza Mobaxterm:

Per creare una sessione desktop, fare clic sull'icona della sessione seguita da un clic sull'icona SSH. Nel campo host remoto, inserisci l'indirizzo IP dall'alto. clicca su "specifica nome utente" per abilitare il campo id utente e inserisci l'id utente nel campo accanto ad esso (es. "pi" per Raspbian). Fare clic sulla scheda "Impostazioni SSH avanzate" e nel campo dell'ambiente remoto, selezionare l'ambiente desktop installato su quella macchina (ad esempio desktop lxde per Raspian). Fare clic su OK per salvare le modifiche. Ora puoi fare clic su questa sessione per aprire il desktop per quel computer. La prima volta ti verrà chiesto di salvare la password. Dopo aver salvato la password, non ti verrà più richiesta la password.

Unix xServer

ssh pi@#.#.#.# "DISPLAY=$DISPLAY nohup xxxxx" o usando sudo per ottenere l'accesso come root: ssh pi@#.#.#.# "DISPLAY=$DISPLAY nohup sudo -E xxxxx" dove #. #.#.# è l'indirizzo IP del computer client xWindows. dove pi è l'ID utente. xxxxx è il comando (ad esempio lxterminal per un terminale di comando di linea).

Ti suggerisco di esaminare ssh-keygen per eliminare la richiesta della password..

Passaggio 5: Opzionale: unione del desktop XServer con il desktop Microsoft Windows in Mobaxterm

Opzionale: unione del desktop XServer con il desktop Microsoft Windows in Mobaxterm
Opzionale: unione del desktop XServer con il desktop Microsoft Windows in Mobaxterm
Opzionale: unione del desktop XServer con il desktop di Microsoft Windows in Mobaxterm
Opzionale: unione del desktop XServer con il desktop di Microsoft Windows in Mobaxterm
Opzionale: unione del desktop XServer con il desktop Microsoft Windows in Mobaxterm
Opzionale: unione del desktop XServer con il desktop Microsoft Windows in Mobaxterm

L'opzione migliore con Mobaxterm è l'integrazione del desktop xServer nel desktop di Microsoft Windows. Taglia e incolla tra gli ambienti è facile. Puoi facilmente passare da una finestra all'altra indipendentemente dalla finestra di xServer (ad es. alt-tab). Ha meno spese generali.

Tuttavia, se si rimuove il desktop xServer, sarà necessario aggiungere il menu di avvio da quel desktop. Per lxde (come nel caso di Raspbian), questo è lxpanel. Per altri desktop, dovrai esaminare come implementano il loro menu di avvio in modo da poter avviare programmi sul computer remoto.

Configurazione della modalità multi-finestra di Mobaxterm Fare clic su Impostazioni -> configurazione. Selezionare la scheda X11 e selezionare "modalità multifinestra" nella modalità di visualizzazione del server X11. Fare clic su OK per salvare.

Il desktop xServer continuerà a funzionare in un'unica finestra finché non si modifica la definizione della sessione.

Modifica la definizione della sessione per eseguire il menu di avvio anziché il desktop

Fare clic con il tasto destro sulla sessione e selezionare Modifica sessione. Fare clic sulla scheda Impostazioni SSH avanzate. Cambia l'ambiente remoto in Interactive Shell invece del desktop che hai selezionato. Imposta il comando di esecuzione per eseguire il menu di avvio per il desktop xServer (es.specify "lxpanel" per Raspberry Pi perché questo è il menu di avvio per lxde). Fare clic su OK per salvare le modifiche.

Sposta e ridimensiona il nuovo menu di avvio Quando il mouse passa sopra questo nuovo menu di avvio, si espanderà, il che è fastidioso quando stai cercando di fare qualcosa con Microsoft Windows. Posizionarlo in un luogo poco utilizzato è estremamente importante.

Ecco le istruzioni per lxpanel (come in Raspbian)

Per altri desktop, dovrai determinare come apportare queste modifiche.

Fare doppio clic sulla sessione per avviare lxpanel. Questo aggiungerà una barra di avvio per il sistema xWindows remoto nella parte superiore dello schermo. Fare clic con il tasto destro del mouse su questa barra di avvio e fare clic su "Impostazioni pannello". In queste impostazioni, seleziona "sinistra" nel bordo e "centro" nell'allineamento. Cambia l'altezza al 20% e la larghezza a 20 pixel. Fare clic sulla scheda Avanzate. Assicurati che la riduzione a icona sia selezionata e modifica la dimensione quando ridotta a 2 pixel. Fare clic su Chiudi per applicare le modifiche.

Quando ridotto a icona, il nuovo menu di avvio sarà appena percettibile nel centro sinistro del desktop di Windows. Sarà una rientranza nera molto sottile. Spostando il mouse su di esso, si espanderà. Il menu delle applicazioni è l'icona in alto. Puoi usarlo per aprire nuove finestre e applicazioni remote secondo necessità.

Passaggio 6: non impostare una password di root o accedere come root

Gli utenti inesperti impostano la password dell'utente ROOT e utilizzano direttamente ROOT (di solito sempre). Se non hai l'esperienza per sapere come utilizzare le alternative, non dovresti accedere a un root. Il root può essere estremamente pericoloso e dovrebbe essere usato solo quando è veramente necessario.

Non ho mai impostato la password dell'utente ROOT. Invece, uso una delle tante alternative e le chiudo immediatamente quando non ho più bisogno dell'autorità ROOT.

Esecuzione di 1 comando con autorità di root

sudo xxxxx (es. sudo apt-get install gparted)

Esecuzione di diversi comandi con autorità di root in un terminale di comando di linea

sudo su

Utilizzare il comando exit per tornare al normale prompt dell'utente.

Esecuzione di programmi grafici con autorità di root

sudo -E xxxxx (es. sudo -E gparted)

Il "terminale root" di Raspberry Pi richiede una password amministrativa

Non impostare la password ROOT per questo motivo.

Invece, usa il comando "sudo -E su" menzionato sopra. In alternativa, puoi modificare "terminale di root" sulla barra di avvio. Per modificare il comando per il menu dell'applicazione -> strumenti di sistema -> terminale di root. Se si fa clic con il tasto destro del mouse su "terminale root" e si selezionano proprietà, è possibile selezionare la scheda "voce desktop". Sostituisci il comando con "lxterminal -e sudo -E su". Questo aprirà un prompt dei comandi di riga come utente root e ti consentirà di eseguire comandi grafici perché la variabile DISPLAY viene conservata.

"Raspberry Pi Configuration" richiede una password amministrativa

Non impostare la password per root per questo motivo.

Cambia invece il comando per il menu dell'applicazione -> preferenze -> Configurazione Raspberry Pi. Se si fa clic con il tasto destro del mouse su "Configurazione Raspberry Pi" e si seleziona Proprietà, è possibile selezionare la scheda "Voce desktop". Verifica che il comando termini con sudo -A rc_gui. In tal caso, sostituire l'intero comando con "sudo -E rc_gui".

"Applicazioni preferite" richiede password amministrativaNon impostare la password per root per questo motivo.

Cambia invece il comando per il menu dell'applicazione -> preferenze -> Applicazioni preferite. Se si fa clic con il tasto destro del mouse su "Applicazioni preferite" e si seleziona Proprietà, è possibile selezionare la scheda "Voce desktop". Verificare che il comando debba terminare con sudo -A rp-prefapps. In tal caso, sostituire l'intero comando con "sudo -E rp-prefapps".

E opzione per sudo

Il -E forza sudo a passare tutte le variabili d'ambiente. La variabile d'ambiente DISPLAY deve essere conservata per i comandi grafici in modo che sappiano come comunicare con xServer. Attenzione: le altre variabili potrebbero entrare in conflitto con il nuovo ambiente root in fase di compilazione. Passare solo la variabile DISPLAY sarebbe una soluzione di gran lunga migliore.

Consigliato: