Orange Pi Zero 2

L’Orange PI Zero 2 est une carte de dĂ©veloppement puissante offrant de nombreuses possibilitĂ©s avec son processeur 4 coeurs 64 bits (H6), 1GB, ethernet, WIFI, Bluetooth, HDMI, USB pour environ 40€. Allez faire un tour sur aliexpress.com. Attention Ă  ne pas le confondre avec l’Orange Pi Zero qui utilise un processeur H3, 32 bits.

Installation Operating System

Allez sur le site Armbian pour tĂ©lĂ©charger l’image de la version « Bullseye », version non stable Ă  ce jour, pour l’Orange Pi Zero 2 . Flashez l’image sur une carte SD de minimum 16 Go. Connectez l’Orange Pi au rĂ©seau et trouvez son adresse IP. Connectez vous en ssh (logiciel Bitwise par exemple) avec l’utilisateur ‘root’ et le mot de passe ‘1234’.

Activez le bureau (Desktop) pour pouvoir accĂ©der en mode graphique. Dans une fenĂȘtre terminal :

armbian-config

Faite l’installation du Desktop. Une fois terminĂ©, revenez au menu System et choisissez Enable Desktop

Cela active le Desktop pour l’utilisateur non root uniquement.

Dans la fenĂȘtre ‘Terminal’ faites les mises Ă  jour:
apt-get update
apt-get upgrade

Installez TightVNC server pour avoir un accĂšs graphique Ă  distance via l’extension VNC client du navigateur Chrome ou TightVNC pour Windows.
apt-get install tightvncserver

Lancez VNC en mode manuel :
vncserver :1

Il vous sera demandĂ© un mot de passe. Ne mettez pas plus de 8 caractĂšres. Vous pouvez Ă  prĂ©sent tester VNC avec par exemple l’extension VNC de chrome en se connectant sur ‘adresse_ip_orangepi:5901’.

Pour un lancement automatisé on va créer un fichier de script:
nano /usr/local/bin/mon_vnc.sh

#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1920x1080"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;
stop)
/usr/bin/vncserver -kill :${DISPLAY}
;;
restart)
$0 stop
$0 start
;;
esac
exit 0

Copiez le texte ci-dessus et copiez le dans nano avec un click bouton droit si vous utilisez Bitwise SSH. Pensez Ă  rendre ce fichier executable.
 chmod +x /usr/local/bin/mon_vnc.sh

On peut à présent réaliser les 3 opérations suivantes :
/usr/local/bin/mon_vnc.sh start
/usr/local/bin/mon_vnc.sh stop
/usr/local/bin/mon_vnc.sh restart

Pour un lancement automatique de VNC au boot de l’orange pi on crĂ©e un service dans ‘systemd’.
nano /lib/systemd/system/mon_vnc.service

[Unit]
 Description=Manage Mon Serveur VNC 
 [Service]
 Type=forking
 ExecStart=/usr/local/bin/mon_vnc.sh start
 ExecStop=/usr/local/bin/mon_vnc.sh stop
 ExecReload=/usr/local/bin/mon_vnc.sh restart
 User=root
 [Install]
 WantedBy=multi-user.target

Pour la prise en compte de ce nouveau service dans systemd.
systemctl daemon-reload
systemctl enable mon_vnc.service

A présent vous pouvez rebooter votre systÚme et vérifier avec VNC la connection en mode graphique.
systemctl start mon_vnc.service
systemctl stop mon_vnc.service
systemctl restart mon_vnc.service
systemctl status mon_vnc.service

Bullseye Desktop

A présent vous avez un OrangePi Zero 2 contrÎlable à distance depuis un PC sur votre réseau.

Installation Samba

Pour Ă©changer des fichiers facilement entre l’OrangePi et un PC sur le rĂ©seau, il est intĂ©ressant d’installer Samba qui permettra de le voir directement.

Installez Samba.
apt-get install samba samba-common-bin

Il faut modifier le fichier de configuration pour l’adapter au rĂ©seau et dĂ©finir les autorisations.
 nano /etc/samba/smb.conf

Tout en bas du fichier rajouter les lignes suivantes :

[OpiZero2]
comment =  Samba on Orange Pi
path = /
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
share modes = yes 

Avec path = / on accÚde directement à la racine du systÚme pour avoir la liberté de naviguer partout. Attention à mettre, si besoin, les autorisations chmod 
 qui vont bien.

Relancez samba .
systemctl restart smbd.service

A prĂ©sent l’OrangePi devrait ĂȘtre visible des autres PC sur le rĂ©seau. On peut changer son nom sur le rĂ©seau en tapant dans une fenĂȘtre de terminal :
hostnamectl set-hostname nouveau-nom

Installation du serveur web Apache 2

Apache2 est l’une des applications de serveur web les plus utilisĂ©es au monde, robuste et fiable. Elle tourne parfaitement sur des SBC (Single-Board Computer) comme l’Orange Pi ZĂ©ro 2.

Commencez par une mise Ă  jour du systĂšme:

apt-get update
apt-get upgrade

ProcĂ©dez Ă  l’installation :

apt install apache2 -y

Testez le fonctionnement d’Apache en ouvrant la page web à l’adresse IP de votre Orange PI

http://<adresse IP> ex: http://192.168.0.100

Par dĂ©faut, le site web se trouve dans le dossier /var/www/html/et Apache retourne le fichier/var/www/html/index.html.

Le fichier de configuration d’Apache est Ă  adapter, en particulier si vous souhaitez mettre des pages dynamiques dans le dossier /var/www/html/cgi-bin.

nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>

	ServerName localhost

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html

	ScriptAlias "/cgi-bin/" "/var/www/html/cgi-bin/"
	<Directory "/var/www/html/cgi-bin/">
                AllowOverride None
                Options +ExecCGI
                AddHandler cgi-script .cgi .pl .py
                Require all granted
        </Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Activez le module cgid pour les pages dynamiques en tapant :

a2enmod cgid
puis
systemctl restart apache2

TEST DES SCRIPTS DYNAMIQUES

CGI (Common Gateway Interface) dĂ©finit une mĂ©thode d’interaction entre un serveur web et des programmes gĂ©nĂ©rateurs de contenu externes, plus souvent appelĂ©s programmes CGI ou scripts CGI. Il s’agit d’une mĂ©thode simple pour ajouter du contenu dynamique Ă  votre site web en utilisant votre langage de programmation prĂ©fĂ©rĂ© comme perl ou python. Ici seul dans le dossier cgi-bin les programmes seront exĂ©cutables comme dĂ©fini par la directive ScriptAlias du fichier de configuration d’Apache. 

Dans le dossier cgi-bin, mettez un petit fichier ‘test.py’ en python pour tester son exĂ©cution. Rendez ce fichier executable.

#!/usr/bin/python3

print("Content-type:text/html\n\n")
print("hello")

Appelez la page depuis un navigateur.

http://<adresse IP>/cgi-bin/test.py

Si vous avez une erreur serveur, vérifiez que votre page test.py est écrite avec une fin de ligne LF adaptée Unix et non CR+LF de windows.

À prĂ©sent vous disposez d’un systĂšme d’exploitation complet avec un serveur web sur le port 80.

Articles sur l’Orange Pi Zero 2