Aller au contenu

Optimisation, trucs & astuces Raspberry

Tuto Raspberry pi 4 ovh
Publié dans Tutoriels · 10 Mars 2016
Tags: RASPBERRYRPIOPTIMISATION

Optimisation, trucs & astuces

Les points abordés :

  1. Accéder à la console du RPI sans écran/clavier branché à celui-ci
  2. Déporter le bureau virtuel du raspberry PI sur votre ordinateur (toujours sans écran)
  3. Optimiser le serveur http en remplaçant Apache2 par lighttpd
  4. Transformer le raspberry PI en seedbox (serveur multimédia avec client torrent intégré, le tout accessible sur le réseau et stocké sur un disque dur externe s’il vous plaît).
  5. Quelques manips pour personnaliser un peu la tronche du raspberry PI (nom, message d’arrivée etc…)

Accéder à la console du raspberry PI sans écran

Depuis le début des tutos, vous aurez peut-être constaté que j’utilise uniquement le mode console et non le bureau graphique, en effet je n’ai pas d’écran pour le Raspberry et j’y accède depuis mon ordinateur portable ce qui me permet de trimballer le RPI et d’y accéder depuis n’importe quel PC sans trainer un écran 19 pouces, un clavier, et une souris derrière moi Rire.

Ceci est possible grâce à la communication SSH, pour faire court et grossier : votre Raspberry pi comprend un serveur nommé : SSH, auquel vous pouvez vous connecter depuis un client SSH depuis n’importe quel PC, une fois connecté, vous aurez accès au terminal comme si vous étiez sur le rapsberry PI

image

Pour vous connecter à cette console, il vous suffit de télécharger et d’installer le programme gratuit Putty, puis de rentrer l’Ip locale de votre Raspberry PI et cliquer sur “Open”

image

Pour obtenir l’Ip réseau du raspberry PI, vous pouvez regarder sur le panel de votre box (les pc qui y sont connectés), ou brancher temporairement un écran au raspberry pi et taper la commande ifconfig, l’ip suis le libellé “inet addr”

image

Notez que cette IP peut changer (bien que votre box essaye généralement de conserver des Ip “favorites” par machine), vous pouvez donc la fixer une bonne fois pour toute avec la manip suivante qui permet de passer d’une Ip dite “dynamique” à une Ip “statique” :

Tapez dans la console :

Et remplacez

par

Il vous faudra remplacer le libellé de “address” par votre Ip réseaux actuelle ainsi que

netmask : Vous pouvez le trouver dans la valeur “Mask” du ifconfig

broadcast : Vous pouvez le trouver dans la valeur “Bcast” du ifconfig

gateway : C’est l’Ip de votre routeur/box, vous pouvez la trouver dans le panel admin de votre box sous le libellé (serveur DHCP le plus souvent)

Enregistrez et redémarrez, votre Ip sera fixe et toujours accessible depuis Putty.

Attention !! Notez bien que lorsque vous fixez cette ip, elle ne peut plus s’adapter dynamiquement à un autre réseau, aussi si vous trimballez votre rpi autre part, pensez à remettre l’ip en dynamique.

Déporter le bureau virtuel du raspberry PI sur votre ordinateur (toujours sans écran)

Si vous n’aimez pas trop la ligne de commande ou que vous souhaitez faire une manip sur le bureau virtuel du raspberry pi sans avoir d’écran, vous pouvez installer un serveur dit “VNC” qui permet de déporter l’affichage du raspberry Pi, sur un autre pc, vous avez donc un écran dans un autre ^^ :

image

Il existe de nombreux serveurs VNC disponibles, mais le moins contraignant à installer est tightvncserver.

Pour l’installer, tapez la ligne de commande

Il vous faudra alors lancer le serveur avec la commande

Et ce à chaque fois que vous voudrez l’utiliser, vous pouvez bien entendu vous débrouiller pour lancer cette commande au démarrage via un service ou un cron ou autre…

Au premier lancement il va vous demander un mot de passe pour se connecter au bureau distant, si vous n’êtes pas trop dingue, vous mettrez le même que celui de votre compte raspberry PI Sourire

Lorsqu’il demande si vous voulez de la lecture seule, répondez n (non)

Le serveur est lancé et configuré :

image

Notez que le serveur est lancé par défaut sur le port “2” qu’il faudra retenir, ainsi que l’adresse ip de votre raspberry (cf partie connexion à la ligne de commande)

Il vous faut maintenant un client de connexion VNC sur la machine où vous souhaitez déporter l’affichage du raspberry PI, realVNC est gratuit, simple, performant et dispo pour Linux, Mac , et Windows: http://www.realvnc.com/download/viewer/  - Windows 32 - Windows 64 - RASPBERRY - RASPBERRY ARM

Installez et lancez realVnc puis entrez l’adresse Ip réseau de votre Raspberry PI, suivie de votre port (par défaut 2) les deux séparés par “:”

image

Et cliquez sur “Connect”

NB : de mémoire, un warning va vous avertir que la connexion n’est pas sécurisée, cliquez sur le bouton continue (à moins que ça vous froisse que ca ne soit pas sécurisé évidemment Tire la langue, chez vous ça ne change pas grand chose, mais évitez de vous connecter depuis un lieu public ou du boulot)

Le client vous demande alors le mot de passe que vous avez donné au serveur VNC lors de son installation :

image

Vous arrivez ensuite sur votre bureau distant et pouvez interagir avec comme vous le souhaitez Sourire

Optimiser le serveur http en remplaçant Apache par Lighttpd

On a vu dans le tuto Tuto Configurer en serveur comment mettre en place un serveur dit “http” pouvant héberger des sites web sur le Raspberry PI.

Nous avions choisi le serveur Apache qui est le plus populaire, mais aussi le plus vieux et le plus lourd de ce qui se fait en ce moment.

Apache fait beaucoup d’entrées fichiers ce qui peut à long terme abimer la carte SD de votre raspberry PI, il est donc plus intéressant de se tourner vers ) des serveurs plus légers comme Nginx (vs 1.81) ou lighttpd Les deux sont très rapides, légers et peu gourmands en ressources, et n’en déplaisent aux fanatiques de l’un ou de l’autre : ils sont relativement équivalents.

Parce qu’il faut faire un choix, et parce qu’il s’est avéré moins chiant à installer, j’ai choisis lighttpd * les pro-nginx vous pouvez huer *.

lighttpd a surtout un gros avantage pour moi : il est beaucoup plus simple de le relier à PHP que nginx (c’est du vécu, j’ai fait 4/5 tutos sur nginx, aucun n’était d’accord avec l’autre, et certains parlaient même d’installer lighttpd en premier puis de le désinstaller afin d’avoir les prérequis pour nginx… bref)

Donc si vous avez Apache, commencez par le désinstaller correctement sinon il fera interférence avec lighttpd par la suite. Attention cependant apache peut être très chiant a désinstaller, le mieux reste encore de repartir d’un Raspian vierge si vous le pouvez, sinon je vous laisse vous amuser comme je l’ai fait à tester tout plein de manip pour vous débarrasser de l’outrecuidant correctement.

La commande suivante semble fonctionner pour la désinstallation d’apache2  (à vos risques et perils):

sudo apt-get remove --purge $(dpkg -l apache* | grep ii | awk '{print $2}')

Installez ensuite Lighttpd

Puis les pré-requis pour avoir php5 et le relier à Lighhtpd

Redémarrez le serveur http

A ce moment là si vous avez des erreurs types “port 80 busy” un truc du style, c’est que vous avez mal désinstallé Apache et qu’il tourne encore, ou qu’un autre serveur Http est déjà en place.

Et enfin réattribuez les bons droits sur les bons dossiers pour que Lighttpd puisse faire son boulot

Si tout s’est bien passé vous devriez pouvoir vous connecter via un navigateur à l’Ip de votre Raspberry PI et voir la page d’accueil par défaut de lighttpd

image

Pour ce qui est de la base de données, je vous conseille également de désinstaller MySQL (si vous n’avez installé aucune appli qui tourne avec évidemment) et de le remplacer par SQLite qui est un peu moins gourmand et épargnera votre raspberry PI également :

Utiliser le raspberry PI comme une seedbox

Une seedbox est un serveur dédié au téléchargement de fichiers vidéos/audio/multimédia etc…

Il est très simple de transformer le Raspberry pi en seedbox afin de pouvoir faire les choses suivantes :

  • Avoir un client torrent disponible via une interface web sécurisée
  • Pouvoir lancer des torrents à télécharger de n’importe où et en partager non stop tant que le Raspberry est allumé (donc tout le temps vu le peu que ça consomme)
  • Enregistrer automatiquement les films (légaux bien entendu) téléchargés sur un disque dur externe (bah oui votre carte SD risque de faire la gueule sinon)
  • Accéder aux films de la seedbox depuis n’importe quel PC de votre réseau. On va commencer par monter un disque dur (le plus gros possible) de manière permanente sur le Raspberry PI, puis installer un serveur de partage de fichiers afin de pouvoir rendre accessibles nos fichiers depuis tous les pc de notre réseau, puis on installera un client de torrent permettant le téléchargement et l’envoi de fichiers multimédias, enfin on configurera tout ça pour lier les éléments ensemble.
  • Monter le disque dur: des bidouilles de commandes, aucun programme
  • Installer le serveur de partage de fichiers : on choisira Samba, qui permet le partage avec des pc Linux, Windows et Mac (mais pas sans douleur)
  • Installer un client torrent : on choisira Transmission, le célèbre client torrent natif d’Ubuntu, à mon sens le meilleur qui existe, simple, ultra fonctionnel, beau, peut être utilisé en ligne de commande, en fenêtre depuis le bureau ou carrément via une interface web (ce qui nous intéresse le plus).

Premièrement on update parce que ça ne fait jamais de mal avant une installation :

sudo apt-get update

puis on installe un paquet qui nous sera indispensable par la suite :

sudo apt-get install ntfs-3g

Puis, on trouve un disque dur assez balèze (genre 2To) et on le branche au port USB du raspberry PI. La rapidité de transmission est un plus, mais ce qu’il vous faut c’est surtout :

  • Un disque dur grosse capacité
  • Un disque dur avec une alim externe (le rpi étant très mauvais avec les périphériques alimentés par USB).
  • Un disque dur formaté en NTFS (vous pouvez le mettre en FAT mais il vous faudra modifier quelques paramètres de ce tuto)
  • Placez au moins un fichier test.txt sur le disque dur pour faire des tests d’ouverture de disque plus loin dans le tuto

on va créer une sorte de “lecteur permanent” dans le dossier “media” sur lequel on pointera notre client de torrents.

sudo mkdir -p /media/disque2To

On configure les droits pour que le client torrent puisse écrire dans ce lecteur

sudo chmod -R 777 /media/disque2To

Attendez quelques secondes le temps que le rpi détecte le disque dur puis tapez

sudo blkid

Une liste de périphériques s’affichent, retenez le champ UUID pour le périphérique ayant le LABEL qui correspond à votre disque dur (mon disque dur 2To s’appelle IdleBox)

image

Maintenant qu’on connaît l’identifiant unique de notre disque dur, on va spécifier au rpi de lier à chaque démarrage cette id au dossier qu’on a créé spécialement pour lui (/media/disque2To).

On édite pour ça le fichier /etc/fstab

sudo nano /etc/fstab

et on y ajoute la ligne

UUID=F21843B31843759F       /media/disque2To ntfs-3g   defaults       0       2

Évidemment l’UUID doit être modifié en fonction de votre UUID à vous.

image

Puis on sauvegarde et on reboot

sudo reboot

A ce stade la normalement le contenu de votre disque dur est monté et est disponible via le dossier /media/disque2To, vous pouvez vérifier qu’il contient bien votre fichier test.txt avec la commande.

cd /media/disque2To && ls

image

(oui moi j’ai un peu plus de bordel qu’un simple fichier test.txt mais le principe reste la Tire la langue)

Cette phase est très délicate, le système ou le disque dur font souvent la sourde oreille, vérifiez donc bien que vous avez vos fichiers dans /media/disque2To sans quoi la suite du tuto ne fonctionnera pas.

En cas d’erreur vérifiez bien :

  • Que votre disque dur est bien connecté au port usb du raspberry PI, démarré et alimenté lors du démarrage du raspberry PI
  • Que votre disque dur est bien formaté au format NTFS
  • Que votre disque dur est bien alimenté par une source autre que le raspberry PI
  • Que l’UUID entré dans le /etc/fstab correspond bien à l’UUID de votre disque dur

Si l’erreur persiste, essayez de trouver l’erreur au démarrage du Raspberry PI, généralement il vous indique d’où vient la couille avec un gros “FAILED” rouge.

Bien !! Le plus dur est fait !! Rire

Maintenant on vas faire en sorte que le disque dur (accessible depuis le dossier /media/disque2To si vous avez bien suivi) soit également disponible en partage, c’est-à-dire que les autres PC de votre réseau local puissent y accéder !

Pour celà, il vous faudra installer un serveur de partage sur votre Raspberry PI, le plus connu (et le seul que je connais d’ailleurs) est samba !

On installe donc samba :

sudo apt-get install samba

Il est possible qu’il soit déjà installé, chez moi il l’était mais c’est peut-être parce que j’avais fait la manip précédemment, dans tous les cas la commande ne vous fera pas de mal Sourire.

Maintenant que samba est installé il va falloir partager le dossier /media/disque2To sur le réseau.

Pour ça, on commence par éditer le fichier de configuration de samba :

sudo nano /etc/samba/smb.conf

Cherchez la ligne

# security = user

et placez en dessous :

security = share

image

De cette manière vous ouvrez un peu votre serveur de partage aux utilisateurs autres que les utilisateurs interne du rpi

Puis cherchez le bloc [print$] …

Et placez en dessous le bloc :

[disque2To]
comment = Disque multimedia
path = /media/disque2To
browseable = yes
guest ok = yes
writeable = yes
public = yes
create mask = 0777
directory mask = 0777

image

Enfin redémarrez samba

sudo service samba restart

Et remettez un ptit coup de permission sur votre dossier partagé pour être sûr.

chmod 777 –R /media/disque2To

Vous devriez maintenant voir le partage depuis vos autres PC, par exemple depuis mon Windows Seven :

image

Vérifiez bien que vous avez la permission d’entrer et d’écrire dans le disque.

nb : Il est possible que ce sale bataw de Windows vous demande un login/mot de passe alors que nous avons tout fait pour justement ne rien avoir à mettre.

Il vous faudra alors taper:

login : WORKGROUP\votre login Windows

mdp : votre mot de passe Windows

Cochez la case ‘se souvenir’ histoire de ne plus être emmerdé par la suite.

Bien !! Maintenant que nous avons un disque dur monté et partagé sur le réseau. Il va falloir le remplir avec vos films de vacances légalement téléchargés via un logiciel de torrent !

Le must pour moi en matière de logiciel de torrent c’est transmission : léger, simple, ergonomique, dispose d’une jolie interface web et facilement configurable

sudo apt-get install transmission-daemon

Transmission va utiliser deux dossiers sur votre disque dur, un dossier pour stocker les fichiers temporaires de téléchargements, et un dossier pour stocker les fichiers finaux, on va donc créer ces deux dossiers

sudo mkdir /media/disque2To/downloaded /media/disque2To/pending

downloaded : dossier qui contiendra vos films de vacances terminés
pending : dossier qui contiendra vos films de vacances en cours de téléchargement

On place ensuite l’utilisateur “pi” dans le groupe de transmission

sudo usermod -a -G debian-transmission pi

Et on place les deux dossiers précédemment créé dans ce groupe aussi (c’est la fête du slip pour gérer les permissions)

chgrp debian-transmission /media/disque2To/downloaded /media/disque2To/pending

Enfin (et c’est la dernière manip concernant les permissions) on donne un droit 770 sur les deux dossiers

chmod -R 770 /media/disque2To/downloaded /media/disque2To/pending

On édite le fichier de configuration de transmission pour lui filer nos deux dossiers et régler quelques autres configs rigolotes :

sudo nano /etc/transmission-daemon/settings.json

Trouvez les lignes qui correspondent à ça :

“download-dir”:” /un/chemin/pourri” ,
“incomplete-dir”:” /un/autre/chemin/pourri” ,
“incomplete-dir-enabled”: false,
“rpc-password”: “un mot de passe crypté super long type {EBIBEIUBSIBSIBSIUB…”,
“rpc-username”:”transmission”,
“rpc-whitelist “: “127.0.0.1”,

et remplissez-les avec les bonnes valeurs

“download-dir”:” /media/disque2To/downloaded” ,
“incomplete-dir”:” /media/disque2To/pending” ,
“incomplete-dir-enabled”: true,
“rpc-password”: “mon mot de passe”,
“rpc-username”:”mon pseudo”,
“rpc-whitelist “: “127.0.0.1,*.*.*.*”,

Évidemment les lignes ne sont pas toutes collées les unes sous les autres, il vous faudra les chercher Sourire (je vous avais pas dit que je vous vendrai du bonheur ?)

nb : Notez que j’ai placé la clause *.*.*.* dans rpc-whitelist, celle-ci indique que toutes les adresses Ip ont le droit de se connecter à votre seedbox (si elles connaissent le user/mot de passe bien entendu), ceci vous permet de vous connecter de partout dans le monde à votre seedbox (il faudra penser à débloquer le port 9091 de votre routeur/box si vous souhaitez y accéder de l’extérieur quand même mais bon…) si vous voulez que Transmission n’accepte que les Ip réseau locale, vous pouvez mettre 192.168.*.* à la place.

Enregistrez le bousin et relancez le service

sudo service transmission-daemon reload

Votre seedbox est fin prête !!

Pour télécharger de nouveaux films de vacances via des fichiers torrents vous n’avez plus qu’à vous connecter via un navigateur à votre seedbox à l’adresse :

http://ip.du.raspberry.pi:9091

ip.du.raspberry.pi : L’Ip réseau de votre Raspberry PI (ou son Ip web si vous y accédez depuis un autre endroit que votre réseau local)

9091: port par défaut de Transmission (vous pouvez le modifier dans le setting.json, moi j’ai mis 666 pour le fun Tire la langue)

A la connexion Transmission vous demandera les login et mot de passe entrés dans le setting.json:

image

Et paf vous atterrissez sur votre client torrent :

Vos fichiers une fois téléchargés apparaîtront dans le dossier downloaded de votre disque dur, lui même disponible en partage depuis tout votre réseau local.

test

[Bonus] Personnaliser un peu le Raspberry PI

Changer le nom du Raspberry PI

Par défaut le rpi s’appelle Raspberry pi ce qui est laid nous en conviendrons on à donc cette ligne qui précède toutes nos commande:

pi@raspberrypi: ~#

Pour changer ce nom il faut éditer les fichiers /etc/hostname et /etc/hosts, dans ces deux fichiers, remplacez le nom raspberrypi par le nom que vous souhaitez, puis sauvegardez, fermez et redémarrez le raspberry PI, j’ai appelé le mien pib0x (…je sais… mais je n’avais pas d’idées et j’avais la gueule de bois, ne me jugez pas T_T)

image

Mettre un message d’accueil

Lors de l’ouverture d’une console sur votre rpi, vous avez un message par défaut de toute beauté qui s’affiche :

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Type ‘startx’ to launch a graphical session

On va changer ça par quelque chose d’un peu plus yorkmouth !!

Pour celà il faut éditer le fichier /etc/motd et remplacer le message par ce que vous souhaitez puis sauvegarder et rebooter (encore et toujours)!! Personnellement je vous conseille un message en ascii ça claque toujours

image

Pas besoin de vous prendre la tête des jours à faire l’ascii vous-même, des services existent pour ça, suivez le guide

Je repasserais certainement sur ce tuto pour ajouter de petites astuces de temps en temps, aussi pensez à venir lorgner quand vous avez une minute Sourire




Mentions Légales - raspberry-pi.ovh 2022 © Copyright- Raspberry Pi est une marque déposée de la Raspberry Foundation - Les contenus rédigés par raspberry-pi.ovh sont distribués sous license open source.
Retourner au contenu