====== Orange PI 3B ======
Globalement pour l'installation, se référer à
[[homeserver:olinolinux|Installer un serveur Olimex A20, LIME 2]]
[[homeserver:olinolinux|Installer un serveur Olimex A20, LIME 2]]
Pour utilisation serveur auto hébergé.
Un grand merci à https://debian-fr.org, notamment Verner ;) pour les conseils avisés et expertises.
===== Liens =====
* https://github.com/defencedog/orangepi3b_v2.1/blob/main/Ethernet_Dead.md
* https://www.armbian.com/orangepi3b/
* https://discord.com/channels/934722269522059335/934724729481342997
* https://www.minimachines.net/actu/orange-pi-3b-une-carte-de-developpement-sous-rk3566-121015
===== Augmenter la zram des log =====
Par défaut que 50Mo, le serveur râle de temps en temps...
Pour augmenter cela, éditer
/etc/default/orangepi-ramlog
Et passer à 500 Mo
# size of the tmpfs mount --
# please keep in mind to adjust /etc/default/orangepi-zram-config too when increasing
SIZE=50M
Rebooter
===== Brancher un disque USB au démarrage pour augmenter le stockage =====
Dans mon cas, sert à créer un stockage externe nextclound (qui hébergera notamment la musique de Navidrome)
Editer le fstab et insérer cette ligne. Les options sont importantes afin que la séquence de boot ne soit pas perturbée.
UUID=a85a287d-6bc2-4b6d-8219-33ea9cd3d2e2 /diskUSB ext4 user,exec,noauto,x-systemd.automount,errors=remount-ro 0 2
===== Nextcloud =====
Afin d'éviter les erreurs de la version 29, installer Nextcloud en sous domaine ;)
===== Gestion Ventilo =====
Pour l'instant, juste un script qui allume des diodes.
A adapter avec le ventillo.
Le script
cat scripts/fan.sh
#!/bin/bash
WAIT=0.5
gpio mode 10 out
gpio mode 6 out
gpio mode 5 out
while true; do
gpio write 10 0
gpio write 6 0
gpio write 5 0
sleep $WAIT
gpio write 10 1
gpio write 6 1
gpio write 5 1
sleep $WAIT
done
Le service systemd
cat /etc/systemd/system/fan.service
[Unit]
Description=Gestion du ventilateur
ConditionPathExists=/home/crust/scripts/fan.sh
after=network.target
[Service]
Type=forking
ExecStart=/home/crust/scripts/fan.sh start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
Activer le service au démarrage
systemctl enable fan.service
===== Bug carte ethernet =====
Je ne sais pourquoi la carte ethernet du jour au lendemain est devenue HS. Impossible d'obtenir une IP
Bug référencé ici
https://www.reddit.com/r/OrangePI/comments/1aojmn3/orange_pi_3b_ethernet_doesnt_work/
La solution est d'écrire un script et de relancer le réseau
#!/bin/sh
# SOURCE https://www.reddit.com/r/OrangePI/comments/1aojmn3/orange_pi_3b_ethernet_doesnt_work/
/usr/local/bin/io -4 0xFDC60284 0x3f3f3f3f
/usr/local/bin/io -4 0xFDC6028C 0x003f003f
/usr/local/bin/io -4 0xFDC60298 0x3f003f00
/usr/local/bin/io -4 0xFDC6029C 0x3f3f3f3f
/usr/local/bin/io -4 0xfdc60388 0xFFFF0049
/usr/sbin/service networking restart
Par contre il faudra le lancer après chaque reboot... Donc le coller sur une crontab root
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
# Fix ethernet bug
@reboot /home/crust/scripts/fixethernet.sh
Attention cette procédure semble changer l'ipv6 de la carte, donc il faut mettre à jour sa zone DNS... A suivre.
===== Ajout d'infos au message lors du login =====
Modifier le message d'accueil
Le message d'accueil lors du login ssh se compose d'une succession de fichier lus les uns après les uns et se situant dans /etc/update-motd.d/ .
Il suffit de les préfixer d'un nombre, ils sont lus par ordre croissant.
ls /etc/update-motd.d/
10-orangepi-header 41-orangepi-config
10-uname 35-orangepi-tips 92-unattended-upgrades
30-orangepi-sysinfo 40-orangepi-updates 98-orangepi-autoreboot-warn
Exemple d'ajout
# nano /etc/update-motd.d/31-disk-usb
Avec ce contenu
#!/bin/bash
# Afficher l'occupation disque du disque externe
DISK=/diskUSB/
NOMDISK="ZIK"
# Couleurs
VERT="\e[0;92m"
COLDEFAUT="\033[0m"
echo -e "Storage("$VERT$NOMDISK$COLDEFAUT"):\t"$VERT$(df -h $DISK | grep G | awk '{print $5}')$COLDEFAUT " of "$(df -h $DISK | grep G | awk '{print $2}')
echo ""
Le rendre executable
# chmod +x /etc/update-motd.d/31-disk-usb
Puis au prochain log, l'insertion sera effective ;)
Pour le tester de suite
update-motd
===== Migration vers DEBIAN 12 / YUNOHOST 12 =====
Passage sans soucis
Mise à jour complète au préalable et backups des apps et du systeme
yunohost tools update
yunohost tools upgrade apps
yunohost tools upgrade system
Backups
yunohost backup create --apps -n 20241109apps -o /diskUSB
yunohost backup create --system -n 20241109sys -o /diskUSB
Lancement de la migration
yunohost tools migrations run
yunohost tools migrations run --accept-disclaimer
Accès refusé aux pages internet, relancer nginx et c'est réglé
service nginx restart
Soucis au niveau d'apt. Pour le régler :
yunohost tools regen-conf apt --dry-run --with-diff
yunohost tools regen-conf apt --force
Soucis au niveau d'une clef (ugly) méthode pour le régler :
cd /etc/apt
cp trusted.gpg trusted.gpg.d
Installation du rspamd pose soucis. Suffit de supprimer l'ancienne version manuellement
apt purge rspamd
rm -rf /etc/rspamd
Et d'installer la brique éponyme de yunohost via l'API web de yunohost
yunohost --version
yunohost:
repo: stable
version: 12.0.6
yunohost-admin:
repo: stable
version: 12.0.3.5
yunohost-portal:
repo: stable
version: 12.0.6
moulinette:
repo: stable
version: 12.0.3
ssowat:
repo: stable
version: 12.0.3
lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
===== Créer une liste blanche (whitelist) et une liste noire (blacklist) pour rspamd (yunohost 12) =====
Après avoir relu la doc très consistante de **rspamd** et épluché le web, j’ai adopté cette solution qui me convient (elle peut être très adaptée à tous les besoins mais faut l’assimiler ;)
Donc, tout ce passe dans /etc/rspamd et surtout dans le dossier local.d/ (donc dans **/etc/rspamd/local.d** ). Ce dossier permet que les additions de config ne soient pas effacées en cas de mise à jour et de compléter les conf existantes sans les effacer.
De base, il n’y a que le fichier redis.conf
Créer un fichier de **multimap.conf** contenant la map suivante :
WHITELIST_SENDER_DOMAIN {
type = "from";
filter = "email:domain";
map = "${LOCAL_CONFDIR}/local.d/whitelist.sender.domain.map";
action = "accept";
}
WHITELIST_SENDER_EMAIL {
type = "from";
map = "${LOCAL_CONFDIR}/local.d/whitelist.sender.email.map";
action = "accept";
}
BLACKLIST_SENDER_DOMAIN {
type = "from";
filter = "email:domain";
map = "${LOCAL_CONFDIR}/local.d/blacklist.sender.domain.map";
action = "reject";
}
BLACKLIST_SENDER_EMAIL {
type = "from";
map = "${LOCAL_CONFDIR}/local.d/blacklist.sender.email.map";
action = "reject";
}
Créer ensuite un fichier **whitelist.sender.domain.map** qui permettra une liste blanche basée sur le domaine.extension et un fichier **whitelist.sender.email.map** qui fournira une liste blanche basée sur l’adresse mail
Donc, par exemple **whitelist.sender.domain.map**
site1.ext
site2.ext
Et pour les adresses mails **whitelist.sender.email.map**
mail@site1.ext
mail@site2.ext
Faire de même pour la liste noire, pour cela créer 2 fichiers **blacklist.sender.domain.map** et **blacklist.sender.email.map** et les renseigner comme ceux de la liste blanche. Sinon les laisser vides.
Attention, pour la blacklist , les mails reviendront à l’expéditeur avec ce message
: host serveur.ext[XX.XX.XX.XX] said: 554 5.7.1 Matched map:
BLACKLIST_SENDER_DOMAIN (in reply to end of DATA command)
Relancer ensuite **rpsamd**
service rspamd restart
C’est mis en place
Plus d’infos ici : [[https://rspamd.com/doc/modules/multimap.html|Multimap module]]