#!/bin/bash # script per update IOB-PI (file readParallela) secondo la tipologia del raspberry tra 8 e 12 ingressi revNum=`awk '/^Revision/ {sub("^1000", "", $3); print $3}' /proc/cpuinfo` anno=2000 model='na' ram=0 # decodifica da questa tabella: https://elinux.org/RPi_HardwareHistory e https://ozzmaker.com/check-raspberry-software-hardware-version-command-line case $revNum in 0002 | 0003 | 0004 | 0005 | 0006) anno='2012' model='B' ram=256 ;; 0007 | 0008 | 0009) anno='2013' model='A' ram=256 ;; 000d | 000e | 000f) anno='2012' model='B' ram=512 ;; 0010) anno='2014' model='B+' ram=512 ;; 0011) anno='2014' model='CM1' ram=512 ;; 0012) anno='2014' model='A+' ram=256 ;; 0013) anno='2015' model='B+' ram=512 ;; 0014) anno='2014' model='CM1' ram=512 ;; 0015) anno='2014' model='A+' ram=512 ;; a01040 | a01041 | a21042) anno='2015' model='2 Model B' ram=1024 ;; a22042) anno='2016' model='2 Model B' ram=1024 ;; 900021) anno='2016' model='A+' ram=512 ;; 900032) anno='2016' model='B+' ram=512 ;; 900092) anno='2015' model='Zero' ram=512 ;; 900093 | 920093) anno='2016' model='Zero' ram=512 ;; 9000c1) anno='2017' model='Zero W' ram=512 ;; a02082 | a22082 | a22082 | a32082) anno='2016' model='3 Model B' ram=1024 ;; a020a0) anno='2017' model='CM3' ram=1024 ;; a020d3) anno='2018' model='3 Model B+' ram=1024 ;; 9020e0) anno='2018' model='3 Model A+' ram=512 ;; a02100) anno='2019' model='CM3' ram=1024 ;; a03111) anno='2019' model='4 Model B' ram=1024 ;; b03111 | b03112) anno='2019' model='4 Model B' ram=2048 ;; b03114) anno='2020' model='4 Model B' ram=2048 ;; b03115) anno='2022' model='4 Model B' ram=2048 ;; c03111 | c03112) anno='2019' model='4 Model B' ram=4096 ;; c03114) anno='2020' model='4 Model B' ram=4096 ;; c03115) anno='2022' model='4 Model B' ram=2048 ;; d03114) anno='2020' model='4 Model B' ram=8192 ;; d03115) anno='2022' model='4 Model B' ram=8192 ;; 902120) anno='2021' model='Zero 2 W' ram=512 ;; *) anno='2000' model='Unknown' ram=128 ;; esac echo "RPI $anno | model $model | RAM $ram" echo "Revisione: $revNum" # default a 8 IN... selIn=8 # verifico anno/ram, se almeno 2014 e 1gb --> 12 bit... if [ $anno -gt 2015 ] && [ $ram -gt 512 ]; then selIn=12 fi echo "Scelta versione $selIn ingressi" # fermo esecuzione... #/etc/init.d/MapoIOB stop systemctl stop MapoIOB echo "Arrestato servizio..." # fix permessi chown pi:pi . -R # --- NUOVA LOGICA: Aggiorna IOB.cfg invece di copiare file python --- echo "Aggiornamento IOB.cfg per $selIn ingressi..." # Usa sed per trovare la riga numParams e cambiarla sed -i "s/^numParams.*/numParams=$selIn/" IOB.cfg # ------------------------------------------------------------------ # fix permessi chown pi:pi . -R chmod +x readP* # conf redis # aggiunta passwd accesso se mancante file="/etc/redis/redis.conf" line="24068Seriate" # Check if the line is missing if grep -q "$line" "$file"; then echo "requirepass ok!" else # execute the sed command echo "requirepass missing! adding" sed -i '/#requirepass*/a\requirepass 24068Seriate' $file fi # aggiunta criterio save da num changes line="save 3600 1 600 10" if grep -q "$line" "$file"; then echo "save rdb OK" else # execute the sed command echo "save rdb not found: adding!" sed -i '/# save 3600*/a\save 3600 1 600 10 300 100 60 10000' $file fi # riportare bind a solo localhost sed -i '/#bind 127.0.0.1*/c\bind 127.0.0.1 -::1' $file # rimozione bind a rete globale x test sed -i '/bind 0.0.0.0/c\#bind 0.0.0.0' $file # riavvio redis systemctl restart redis # riavvio esecuzione... systemctl restart MapoIOB echo "Modifiche effettuate..." echo "Attenzione: verificare effettiva partenza servizio, per farlo digitare il comando" echo "/etc/init.d/MapoIOB restart" echo "--------------------------------" echo "In particolare il file IOB.cfg deve contenere NMAXSEND = 5 nella sezione [time]" echo "--------------------------------" echo "Inoltre verificare presenza sezioni [blink] [invert] [filter]" echo "------------------"