Archivi categoria: Raspberry Pi

Raspberry Pi – Script per avvio programmi allo start-up

Oggi vi voglio parlare di come si scrive uno script che si avvia automaticamente. Può servire per esempio quando una alcuni programmi che non riescono a partire di default all’avvio. Vi spiegherò come configurare l’avvio dello script in automatico o quando lo volete voi.
Questo script avvierà in automatico la mappatura della cartella di rete.

Distribuzione di riferimento:  Raspbian ultima versione

Guida di riferimento: raspberry pi – run program at start up , Script per avvio programmi allo start-up

Prima di cominciare creiamo una cartella

CODICE DA SCRIVERE NEL TERMINALE :

sudo mkdir /mnt/sambashare
sudo chown -R pi /mnt/sambashare
sudo chmod -R 777 /mnt/sambashare

Creare lo script

La prima cosa da fare è creare lo script. Uno script è un pezzo di codice che una volta reso eseguibile viene appunto eseguito e svolge le azioni per il quale è stato scritto.
Creiamo lo script chiamato per esempio SMBShare:

CODICE DA SCRIVERE NEL TERMINALE :

sudo nano /etc/init.d/SMBShare

Si aprirà l’editor nano completamente vuoto. Copiateci tutto il seguente Script :

CODICE DA SCRIVERE NEL TERMINALE :

#! /bin/sh
# /etc/init.d/SMBShare

### BEGIN INIT INFO
# Provides:          SMBShare
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SMBShare Automatic mount Folder Share
# Description:       SMBShare Automatic mount Folder Share
### END INIT INFO

# If you want a command to always run, put it here
start() {
echo -n "Starting SMBShare : "
### Create Mount HD ###
### run application you want to start ###
sudo mount -t cifs //IP_address/scan /mnt/sambashare -o uid=1000,iocharset=utf8,username="nome_utente",password="password",sec=ntlm
echo
}
# Restart the service SMBShare
stop() {
echo -n "Stopping SMBShare :"
### Delate Mount HD  ###
### kill application you want to stop ###
sudo umount /mnt/sambashare
echo
}
### main logic ###
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status SMBShare
;;
restart|reload|condrestart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0

Una volta scritto in accordo alle vostre necessita date un bel CTRL-O per salvare e CTRL-X  per uscire dall’editor nano.

Fate però attenzione a non avviare programmi che richiedono risposte da parte dell’utente. Per esempio non fate partire programmi che richiedono di dare conferme tipo –y o –n ( -s o -n) altrimenti lo script bloccherà l’avvio del raspberry aspettandosi appunto un vostro input. Con i programmi sopra, una volta configurati (dopo il primo avvio) lo script funziona benissimo.

Rendere lo script eseguibile e funzionante

Adesso che il codice è pronto dobbiamo fare in modo che non sia considerato un semplice pezzo di testo (anche poco comprensibile…) ma bensì un codice da eseguire. Vediamo come…

Rendiamo lo script eseguibile con:

CODICE DA SCRIVERE NEL TERMINALE :

sudo chmod 755 /etc/init.d/SMBShare 

Facciamo un test

Per vedere se funzione digitiamo da terminale i seguenti comandi.

Per avviare lo script

CODICE DA SCRIVERE NEL TERMINALE :

sudo service SMBShare start 

mentre per stopparlo

CODICE DA SCRIVERE NEL TERMINALE :

sudo service SMBShare stop

Nota: seguendo pedissequamente la guida originale dovrei usare:

CODICE DA SCRIVERE NEL TERMINALE :

sudo /etc/init.d/SMBShare start
sudo /etc/init.d/SMBShare stop

Io ho preferito usare la forma:  service SMBShare start|stop mostrata sopra perché si ricorda decisamente più facilmente ed è comunque efficacie. Nel caso potete anche usare i comandi start|stop|restart|reload|status;

Far eseguire lo script automaticamente allo start-up

Per far eseguire automaticamente lo script allo start-up del sistema dare il commando:

CODICE DA SCRIVERE NEL TERMINALE :

sudo update-rc.d SMBShare defaults

Nota: nel mio caso l’ultimo commando non è stato dato perché preferisco scegliere io quando e se far partire I servizi che ho raccolto nello script. Quindi una volta avviato il sistema, per avviare i servizi scelti in un colpo solo do il comando:

CODICE DA SCRIVERE NEL TERMINALE :

sudo service SMBShare start

E tutto funziona senza problemi 🙂

Se volete rimuovere lo script automatico all’avvio e usarlo come lo uso io non date il comando sudo update-rc.d SMBShare defaults oppure se, presi dall’entusiasmo di copiare e incollare comandi sul terminale avete erroneamente beccato anche l’ultimo, nessun problema…lo rimuovete con:

CODICE DA SCRIVERE NEL TERMINALE :

sudo update-rc.d -f SMBShare remove

 

Raspberry Pi – Come aggiungere una stampante al Raspberry Pi

A differenza di una tipica macchina Windows, il piccolo Raspberry Pi Rasbian è in ambiente Linux e per installare i driver di una stampante dobbiamo dare una serie di comandi semplici.

Che cosa ho bisogno?
Per questo tutorial avrete bisogno delle seguenti cose:

1 Raspberry Pi con installato il Sistema Operativo Rasbian installato
1 stampante USB-based o accessibile in rete tramite IP
Installazione di CUPS sul Pi e Abilitare l’accesso remoto

Per collegare una stampante con il Raspberry Pi, abbiamo prima bisogno di installare Common Unix Printing System (CUPS). E ‘il momento di accendere il vostro Pi e passare al terminale (sia sul Pi stessa o tramite Putty in SSH ).

Al terminale, digitare il seguente comando per avviare l’installazione di CUPS:

sudo apt-get install cups

Quando viene richiesto di continuare, digitare Y e premere Invio. Una volta che l’installazione di base è completa, abbiamo bisogno di fare alcune piccole modifiche amministrative. Il primo ordine del giorno è quello di aggiungere noi stessi per il gruppo di utenti che ha accesso alle stampanti / coda di stampa. Il gruppo di utente creato da CUPS è “lpadmin”. L’utente Rasbian default è “pi” (modificate il comando di conseguenza se volete un altro utente che abbia il permesso di stampare).

Al terminale digitare il seguente comando:

sudo usermod-a-G lpadmin pi

Per i curiosi, la “-a” interruttore permette di aggiungere un utente esistente (pi) a un gruppo esistente (lpadmin), specificato dallo switch “-G”.

La nostra parte finale del lavoro di pre-configurazione è quello di consentire l’editing remoto della configurazione di CUPS. Il resto della configurazione può essere completata tramite il browser web del Pi.Ora passiamo a modificare i parametri del file /etc/cups/cupsd.conf . Al terminale, digitare il seguente comando:

sudo nano / etc / cups / cupsd.conf

All’interno del file, guardare per questa sezione:

# Solo ascoltare le connessioni dalla macchina locale

Listen localhost: 631

Commentare la “Listen localhost: 631” linea e aggiungere “Port 631” vedi come segue :

# Solo ascoltare le connessioni dalla macchina locale
# Listen localhost: 631
Port 631

Questo indica a CUPS per ascoltare qualsiasi contatto su qualsiasi interfaccia di rete fintanto che è diretto alla porta 631.

Più in basso nel file di configurazione fino a vedere le sezioni “location”. Nel blocco di seguito, abbiamo in grassetto le righe è necessario aggiungere alla configurazione:

<Location />
# Limitare l'accesso al server ...
Order allow, deny
Allow @ locale
</ Location>

<Location / admin>
# Limitare l'accesso alle pagine di amministrazione ...
Order allow, deny
Allow @ locale
</ Location>

<Location / admin / conf>
AuthType predefinito
Richiedi all'utente SYSTEM @

# Limitare l'accesso ai file di configurazione ...
Order allow, deny
Allow @ locale
</ Location>

L’aggiunta di “Allow @locale” consente l’accesso a CUPS da qualsiasi computer della rete locale. Ogni volta che si apportano modifiche al file di configurazione di CUPS, è necessario riavviare il server CUPS. Per riavviare il servizio di CUPS eseguire il seguente comando:

sudo / etc / init.d / cups restart

Dopo il riavvio di CUPS, si dovrebbe essere in grado di accedere al pannello di amministrazione tramite un qualsiasi computer della rete locale, puntando il suo browser web all’indirizzo http:// [IP o il nome host del Pi]: 631 (esempio : http://192.168.1.203:631) .

Aggiunta di una stampante a CUPS


La prima volta che navigare a http:// [IP del Pi o hostname]: 631, vedrete il CUPS homepage di default, come si vede nello screenshot qui sopra. La sezione che ci interessa è la scheda “Amministrazione”. Fare clic su di esso ora.

All’interno del pannello di amministrazione, fare clic su Aggiungi stampante. Se si riceve un avviso relativo certificato di sicurezza del sito, andare avanti e fare clic su Procedi comunque di ignorarlo. Ti verrà richiesto di inserire un nome utente e una password.

Vai avanti e inserire il nome utente e la password dell’account che si aggiunge al gruppo “lpadmin” in precedenza nel tutorial (ad esempio se si sta utilizzando un default Raspbian installazione, il login / password è “pi” / “raspberry”). Fare clic su “Log In”.

Dopo il login, ti verrà presentata una lista delle stampanti rilevate (sia locali che in rete).Selezionare la stampante che si desidera aggiungere al sistema:

Dopo aver selezionato la stampante, ti verrà offerto l’opportunità di modificare il nome, la descrizione e posizione della stampante, oltre a consentire la condivisione in rete. Dal momento che la nostra stampante è già una stampante di rete, abbiamo lasciato “Condividi questa stampante” incontrollato:

Dopo aver modificato il nome della stampante e l’aggiunta di una posizione, ti verrà richiesto di selezionare il driver specifico che si desidera utilizzare per la stampante. Nonostante il fatto che si scoprì automaticamente la stampante e il nome della stampante, CUPS non fa alcun tentativo di scegliere il driver giusto per voi. Scorrere fino a visualizzare un numero di modello che soddisfa le tue. In alternativa, se si dispone di un file PPD per la stampante che avete scaricato dal produttore, è possibile caricare che con il pulsante “Scegli file”:

L’ultimo passo di configurazione è di guardare oltre alcune impostazioni di stampa generali, come quello che si desidera che la modalità stampante predefinita di essere, la carta predefinito sorgente / dimensioni, ecc Dovrebbe default per i preset corretti, ma non fa mai male a controllare:

Dopo aver fatto clic su “Imposta opzioni predefinite”, ti verrà presentato con la pagina di amministrazione predefinita per la stampante appena aggiunta al sistema CUPS:

Tutto sembra a posto. La vera prova, tuttavia, è in realtà qualcosa di stampa. Apriamo Leafpad, editor di testo predefinito di Rasbian, e inviare un messaggio:

A questo punto, se avete aggiunto l’unico utente che deve accedere alla stampante al gruppo “lpadmin” e che hai aggiunto l’unica stampante che si desidera accedere al sistema CUPS, il gioco è fatto. Per eventuali altri utenti che si desidera aggiungere o stampanti aggiuntive, basta eseguire attraverso i rispettivi passi nel tutorial di nuovo per farlo.