C'est un Single Board Computer genre Raspberry en mieux
Notre usage est celui d'une machine de création sonore utilisant des capteurs, cela nécessite l'installation de puredata (purr,pd-l2ork,vanilla) et l'acces correcte aux GPIO, bouton Power (uart,i2c,…), ici c'est la C4 plutôt que la N2 parce qu'elle est plus petite et loge bien dans nos tuyaux.
de https://wiki.odroid.com/odroid-c4/getting_started/os_installation_guide#tab__odroid-c4hc4, récupérer l'image minimale ubuntu focal C4
apt install odroid-wiringpi odroid-wiringpi-python vim git journalctl --vacuum-size=1M echo "SystemMaxUse=5M" >> /etc/systemd/journald.conf
root@odroid:~# gpio readall +-----+-----+---------+------+---+--- C4 ---+---+------+---------+-----+-----+ | I/O | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | I/O | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3V | | | 1 || 2 | | | 5V | | | | 493 | 8 | SDA.2 | ALT1 | 1 | 3 || 4 | | | 5V | | | | 494 | 9 | SCL.2 | ALT1 | 1 | 5 || 6 | | | 0V | | | | 481 | 7 | IO.481 | IN | 1 | 7 || 8 | 1 | ALT1 | TxD1 | 15 | 488 | | | | 0V | | | 9 || 10 | 1 | ALT1 | RxD1 | 16 | 489 | | 479 | 0 | IO.479 | IN | 1 | 11 || 12 | 1 | IN | IO.492 | 1 | 492 | | 480 | 2 | IO.480 | IN | 1 | 13 || 14 | | | 0V | | | | 483 | 3 | IO.483 | IN | 1 | 15 || 16 | 1 | IN | IO.476 | 4 | 476 | | | | 3.3V | | | 17 || 18 | 1 | IN | IO.477 | 5 | 477 | | 484 | 12 | MOSI | ALT4 | 1 | 19 || 20 | | | 0V | | | | 485 | 13 | MISO | ALT4 | 1 | 21 || 22 | 1 | IN | IO.478 | 6 | 478 | | 487 | 14 | SLCK | ALT4 | 1 | 23 || 24 | 1 | OUT | SS | 10 | 486 | | | | 0V | | | 25 || 26 | 0 | IN | IO. 23 | 11 | 433 | | 474 | 30 | SDA.3 | ALT2 | 1 | 27 || 28 | 1 | ALT2 | SCL.3 | 31 | 475 | | 490 | 21 | IO.490 | IN | 1 | 29 || 30 | | | 0V | | | | 491 | 22 | IO.491 | IN | 1 | 31 || 32 | 0 | IN | IO. 24 | 26 | 434 | | 482 | 23 | IO.482 | IN | 0 | 33 || 34 | | | 0V | | | | 495 | 24 | IO.495 | IN | 0 | 35 || 36 | 1 | OUT | IO. 22 | 27 | 432 | | | 25 | AIN.2 | | | 37 || 38 | | | 1V8 | 28 | | | | | 0V | | | 39 || 40 | | | AIN.0 | 29 | | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | I/O | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | I/O | +-----+-----+---------+------+---+--- C4 ---+---+------+---------+-----+-----+
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}
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 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]
apt install x11vnc 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
Une partie particulière pour nos installations audio
apt install qjackctl puredata- extra multimedia-puredata
liste des paquets puredata dans cette debian: list_paquet_puredata.txt
Archives
Le suivi du noyau est un peu chaotique, ceux téléchargés ne sont pas satisfaisant voir pas fonctionnels … je passe par la phase de fabrication d'Armbian : https://docs.armbian.com/Developer-Guide_Build-Preparation/
cd ~ #user odroid précédemment crée sudo apt-get -y -qq install git git clone --depth=1 --branch=main https://github.com/armbian/build cd build ./compile.sh # ATTENTION il faut plus de 16Go sur exclusivement une ubuntu jammy !
on obtient dans ./build/images/ le fichier Arm…img
Sinon
Il faut utiliser le noyau 4.9 legacy pour avoir un bon compromis avec le 'device tree' des GPIO… et ne pas encore passer sur un 5 ou 6 ! (ce qui est un véritable problème pour le suivi)
j'avais récupèré : https://wiki.odroid.com/odroid-c4/os_images/ubuntu/mate/20220713 pour avoir un bureau que je viderai, +VNC +…De fait en y repassant, les images desktop fournis par Armbian ou Dietpi (qui utilise le noyau armian) ne me sont pas fonctionnelles en version legacy :(
Je me connecte en serie par gtkterm. Dans le cas de l'image récupérée toute faite il faut faire du ménage de ce qui m'est inutile
apt remove --purge office* cups shotwell rhythmbox transmission-common transmission-gtk simple-scan poppler-utils apparmor modemmanager brltty mate-desktop pipewire lightdm apt autoremove journalctl --vacuum-size=1M echo "SystemMaxUse=5M" >> /etc/systemd/journald.conf
gpio readall +-----+-----+---------+------+---+--- C4 ---+---+------+---------+-----+-----+ | I/O | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | I/O | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3V | | | 1 || 2 | | | 5V | | | | 493 | 8 | SDA.2 | IN | 1 | 3 || 4 | | | 5V | | | | 494 | 9 | SCL.2 | IN | 1 | 5 || 6 | | | 0V | | | | 481 | 7 | IO.481 | IN | 1 | 7 || 8 | 1 | IN | TxD1 | 15 | 488 | | | | 0V | | | 9 || 10 | 1 | IN | RxD1 | 16 | 489 | | 479 | 0 | IO.479 | IN | 1 | 11 || 12 | 1 | IN | IO.492 | 1 | 492 | | 480 | 2 | IO.480 | IN | 1 | 13 || 14 | | | 0V | | | | 483 | 3 | IO.483 | IN | 1 | 15 || 16 | 1 | IN | IO.476 | 4 | 476 | | | | 3.3V | | | 17 || 18 | 1 | IN | IO.477 | 5 | 477 | | 484 | 12 | MOSI | IN | 1 | 19 || 20 | | | 0V | | | | 485 | 13 | MISO | IN | 1 | 21 || 22 | 1 | IN | IO.478 | 6 | 478 | | 487 | 14 | SLCK | IN | 1 | 23 || 24 | 1 | IN | SS | 10 | 486 | | | | 0V | | | 25 || 26 | 0 | IN | IO. 23 | 11 | 433 | | 474 | 30 | SDA.3 | IN | 1 | 27 || 28 | 1 | IN | SCL.3 | 31 | 475 | | 490 | 21 | IO.490 | IN | 1 | 29 || 30 | | | 0V | | | | 491 | 22 | IO.491 | IN | 1 | 31 || 32 | 0 | IN | IO. 24 | 26 | 434 | | 482 | 23 | IO.482 | IN | 0 | 33 || 34 | | | 0V | | | | 495 | 24 | IO.495 | IN | 0 | 35 || 36 | 0 | IN | IO. 22 | 27 | 432 | | | 25 | AIN.2 | | | 37 || 38 | | | 1V8 | 28 | | | | | 0V | | | 39 || 40 | | | AIN.0 | 29 | | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | I/O | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | I/O | +-----+-----+---------+------+---+--- C4 ---+---+------+---------+-----+-----+ ===== truc autour du device tree ===== * https://forums.raspberrypi.com/viewtopic.php?t=339588 * https://stackoverflow.com/questions/21670967/how-to-compile-dts-linux-device-tree-source-files-to-dtb /boot/dtb/amlogic# dtc -I dtb -O dts meson-sm1-odroid-c4.dtb -o meson-sm1-odroid-c4.dts :-( ... trop de taf de ce coté du device tree ... je laisse tombé et reviens sur les images Hardkernel Odroid! ===== install truc fluxbox ===== <code c> #si image toute faite apt install software-properties-common add-apt-repository ppa:hardkernel/ppa apt update apt install odroid-wiringpi sudo usermod -G sudo odroid #user odroid deja fait # dans tous les cas apt install vim fluxbox xterm xfonts-base x11-xserver-utils apt install pcmanfm xpad # options
Connexion du bouton sur 9/11
ajouter dans /media/boot/boot.ini pour Ubuntu-Odroid ou boot.cmd pour Armbian juste avant # Load kernel, dtb and initrd
### in case of GPIOX.3 (Pin 11) of 2x20 pins connector setenv gpiopower "479" setenv bootargs ${bootargs} gpiopower=${gpiopower} #recompile mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
apt remove lightdm 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 !
# fluxbox startup-script: # ~/.fluxbox/startup # Lines starting with a '#' are ignored. # doit finir par exec fluxbox #fbsetbg -l xterm -T "Top" -e /usr/bin/top & /usr/bin/x11vnc -rfbauth ~/.vnc/passwd -forever -display :0 & exec fluxbox -log ~/.fluxbox/fluxbox.log
apt install x11vnc x11vnc -storepasswd votre_mot_de_passe ~/.vnc_passwd
poser x11vnc -many -rfbauth ~/.vnc_passwd dans un startmenu … cf https://doc.ubuntu-fr.org/x11vnc