ODROID N2

C'est un vrai petit PC, il intègre 'Petitboot' sorte de BIOS comme sur un PC. Elle va nous servir comme serveur agri-culturel dans une des serres, à la fois pour la création sonore utilisant les capteurs présents et à l'aide, la surveillance des cultures.

la page de 'get started donne l'adresse de l'image minimale ubuntu pour N2

https://wiki.odroid.com/odroid-n2/odroid-n2

ODROID C4 à été un bon terrain d'expérimentation.

On commence à travers la liaison série

nmtui pour définir la connexion WiFi que j'utilise

apt update; apt upgrade (quand le unattended-upgrade à fini)… ça c'est fait… je me rassure il ne change pas de noyau 4.9 …

apt update; apt upgrade -y
dpkg-reconfigure tzdata
dpkg-reconfigure locales
apt install odroid-wiringpi odroid-wiringpi-python vim git
journalctl --vacuum-size=1M
echo "SystemMaxUse=5M" >> /etc/systemd/journald.conf

Ajout bouton on/off

Connexion du bouton sur 9/11

ajouter dans /media/boot/boot.ini dans la section Boot Args juste apres la ligne bootargs en surcharge

### in case of GPIOX.3 (Pin 11) of 2x20 pins connector
setenv gpiopower "479"
setenv bootargs ${bootargs} gpiopower=${gpiopower}

En profiter pour regarder si il y a overlays=“spi0 i2c0 i2c1 uart0”

Ajout interface graphique

autologin

apt remove lightdm # si besoin?
apt install nodm

modifier /etc/default nodm pour loger l'utilisateur odroid et pas root

# nodm configuration
# Set NODM_ENABLED to something different than 'false' to enable nodm
NODM_ENABLED=true
# User to autologin for
NODM_USER=odroid
# First vt to try when looking for free VTs
NODM_FIRST_VT='7'
# X session
NODM_XSESSION=/usr/bin/startfluxbox
# Options for nodm itself
NODM_OPTIONS=
# Options for the X server.
# Format: [/usr/bin/<Xserver>] [:<disp>] <Xserver-options>
# The Xserver executable and the display name can be omitted, but should
# be placed in front, if nodm's defaults shall be overridden.
NODM_X_OPTIONS='-nolisten tcp'
# If an X session will run for less than this time in seconds, nodm will wait an
# increasing bit of time before restarting the session.
NODM_MIN_SESSION_TIME=60
# Timeout (in seconds) to wait for X to be ready to accept connections. If X is
# not ready before this timeout, it is killed and restarted.
NODM_X_TIMEOUT=300

..j'ai cherché longtemps le truc de remplacer Xsession par startfluxbox … pour avoir une compatibilité maximale et surtout le lancement automatique par le fichier .fluxbox/startup !

bureau fluxbox

Un bureau fluxbox minimaliste consommant moins de 300Mo (mieux que les 800 de mate ou 600 de xfce),
sous root pour minimiser les temps de latence (attention aux connexion…)

apt install xserver-xorg-core xserver-xorg-input-libinput xinit dbus-x11 xfonts-base x11-xserver-utils x11-utils libgl1-mesa-dri mesa-utils mesa-utils-extra apt install vim fluxbox xterm xfonts-base x11-xserver-utils apt install pcmanfm xpad avahi-daemon # options mkdir -p /root/.fluxbox echo "startfluxbox" > /root/.xsession

echo "
# fluxbox startup-script:
# ~/.fluxbox/startup
# Lines starting with a '#' are ignored.
# doit finir par exec fluxbox
#fbsetbg -l
fbsetroot -solid black
xterm -T 'Top' -e /usr/bin/top &
/root/.fluxbox/x11vnc.sh 2>&1 > /tmp/x11vnc.log &
exec fluxbox -log ~/.fluxbox/fluxbox.log
" > /root/.fluxbox/startup
chmod 755 /root/.fluxbox/startup

menu fluxbox ./fluxbox/menu

[begin] (Fluxbox)
[exec] (Bash) { /usr/bin/xterm -T "Bash" -e /bin/bash --login} <>
[exec] (ROX) {rox-filer} <>
[exec] (Xkill) {xkill} <>
[exec] (Xrefresh) {xrefresh} <>
[submenu] (Monitoring) {}
[exec] (Pstree) { xterm -T "Pstree" -e /usr/bin/pstree.x11} </usr/share/p
ixmaps/pstree16.xpm>
[exec] (Top) { xterm -T "Top" -e /usr/bin/top} <>
[exec] (Top) { xterm -T "HTOP" -e /usr/bin/htop} <>
[exec] (Xconsole) {xconsole -file /dev/xconsole} <>
[exec] (Xload) {xload} <>
[end]
[submenu] (Styles) {}
[stylesdir] (/usr/share/fluxbox/styles)
[stylesdir] (~/.fluxbox/styles)
[end]
[config] (Configuration)
[workspaces] (Workspaces)
[reconfig] (Reconfigure)
[restart] (Restart)
[exec] (Power Off) {sudo /sbin/shutdown -h now}
[exec] (Reboot) {sudo /sbin/shutdown -r now}
[exit] (Exit)
[end]

VNC

apt install x11vnc avahi-daemon
x11vnc -storepasswd votre_mot_de_passe ~/.vnc_passwd
echo "
sleep 3
/usr/bin/x11vnc -rfbauth /root/.vnc_passwd -geometry 1024x780 \
-reopen -bg -avahi -forever -display :0
exit 0
" >/root/.fluxbox/x11vnc.sh

Premier capteur weather board

de https://wiki.odroid.com/odroid-n2/application_note/software/weather_board avec pour nous une sortie OSC
Connexion sur 1-3V 2→SDA 3→SDC 9→GND

apt install i2c-tools libi2c-dev python3-smbus phyton3-liblo
cd /usr/src
git clone https://github.com/hardkernel/WEATHER-BOARD.git
cp -a ./WEATHER-BOARD/python_weather/* /usr/local/bin/
chmod 755 /usr/local/bin/BME280.py /usr/local/bin/SI1132.py /usr/local/bin/weather_board.py

weather_board_osc.py.tgz

Machine sonore

Serveur son : Jack2
GUI : Qjackctl
Outils de programmation : Puredata Script de lancement start.sh présent dans le répertoire et lancé par le startup de fluxbox

Puredata vanilla

pour optimiser au maximum, nous laisserons les patch en no-gui donc la partie graph ne sera utile que pour la mise au point
Liste des paquets Puredata utilisables

puredata puredata-core puredata-dev puredata-doc puredata-extra puredata-gui puredata-gui-l10n puredata-import puredata-utils multimedia-puredata pd-ableton-link pd-ambix pd-arraysize pd-autopreset pd-bassemu pd-beatpipe pd-boids pd-bsaylor pd-chaos pd-cmos pd-comport pd-creb pd-csound pd-cxc pd-cyclone pd-deken pd-deken-apt pd-earplug pd-ekext pd-ext13 pd-extendedview pd-fftease pd-flext-dev pd-flext-doc pd-flite pd-freeverb pd-ggee pd-gil pd-hcs pd-hexloader pd-hid pd-iem pd-iemambi pd-iemguts pd-iemlib pd-iemmatrix pd-iemnet pd-iemutils pd-jmmmp pd-jsusfx pd-kollabs pd-lib-builder pd-libdir pd-list-abs pd-log pd-lyonpotpourri pd-mapping pd-markex pd-maxlib pd-mediasettings pd-mjlib pd-moonlib pd-motex pd-mrpeach pd-mrpeach-net pd-nusmuk pd-osc pd-pan pd-pddp pd-pdogg pd-pdp pd-pdstring pd-pduino pd-plugin pd-pmpd pd-pool pd-puremapping pd-purepd pd-purest-json pd-readanysf pd-rtclib pd-sigpack pd-slip pd-smlib pd-syslog pd-tclpd pd-testtools pd-unauthorized pd-upp pd-vbap pd-wiimote pd-windowing pd-xbee pd-xsample pd-zexy pdal