Archivio mensile:Aprile 2026

Ho ritrovato un vecchio NanoPi Neo : Attivare led, SPI e scheda audio

molto tempo fa avevo acquistato un FrindlyArm NanoPiNeo per un progettino, ma poi ho desistito.

Un altra idea mi è balzata alla mente con lui ed ho cercato di ricompilare tramite Armbian un immagine che potesse resuscitare il piccolo. ma quando provava ad ottenere i binari del arm, andata in errore.

Ricercando in giro, ho trovato un vecchio repository di armbian dove ho trovato una vecchia immagine che riusciva a fare il boot al Neo

https://armbian.hosthatch.com/archive/nanopineo/archive

ed il file in questio è

https://armbian.hosthatch.com/archive/nanopineo/archive/Armbian_23.8.1_Nanopineo_jammy_current_6.1.47_minimal.img.xz

La console seriale dava segni di vit, ma i led vrde del powser e blu dell’hearthbeat, dopo poco si spegnevano: ma almeno il Neo era funzionate e nel syslog ho trovato questo errore:

[ 3.675400] leds-gpio leds: error -EBUSY: Failed to get GPIO '/leds/pwr'
[ 3.675447] leds-gpio leds: probe with driver leds-gpio failed with error -16

i led funzionavano in quanto con

echo 10 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio10/direction
echo 1 > /sys/class/gpio/gpio10/value

ho acceso il led blu !

Per correggere questo comportaento anomalo ho installato

sudo apt install device-tree-compiler -y

poi ho generato un overlay

cat << 'EOF' > /tmp/fix-leds.dts
/dts-v1/;
/plugin/;

/ {
    fragment@0 {
        target-path = "/leds";
        __overlay__ {
            status = "disabled";
        };
    };

    fragment@1 {
        target-path = "/";
        __overlay__ {
            leds-fixed {
                compatible = "gpio-leds";

                led-status {
                    label = "nanopi:blue:status";
                    gpios = <&pio 0 10 0>;
                    linux,default-trigger = "heartbeat";
                };
            };
        };
    };
};
EOF

dtc -@ -I dts -O dtb -o /tmp/fix-leds.dtbo /tmp/fix-leds.dts
sudo cp /tmp/fix-leds.dtbo /boot/overlay-user/fix-leds.dtbo
sudo reboot

lo scopo dell’overlay è disabilitare completamente la sezione LEDS nel DTS “originale” di Armbian in quanto errato (sono presenti tre leds!) e mettiamo uno “reale” che contenga le istruzioni corretta

ed installato via

dtc -@ -I dts -O dtb -o /tmp/fix-leds.dtbo /tmp/fix-leds.dts
sudo cp /tmp/fix-leds.dtbo /boot/dtb/allwinner/overlay/

con il file /boot/armbianEnv.txt come quello qui sotto

$ more /boot/armbianEnv.txt
verbosity=1
bootlogo=false
console=serial
overlay_prefix=sun8i-h3
overlays=analog-codec spi-spidev usbhost1 usbhost2
rootdev=UUID=a2c543fb-0c99-4254-a56b-dd20d6670583
rootfstype=ext4
user_overlays=fix-leds
param_spidev_spi_bus=0
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

con spi-spidev e analog-codec saranno anche presenti il bus spi (per collegare in un futuro un diplay led) ed attivarte l’uscitas analogica della souund-car. Intaffit

$ ls -lart /dev/spi*
crw-rw---- 1 root spi 153, 0 Apr 23 17:37 /dev/spidev0.0
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Codec [H3 Audio Codec], device 0: CDC PCM Codec-0 [CDC PCM Codec-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
$

Alla fine dei giochi ho deciso di non attivare l’SPI in quanto (e non capisco il motivo.. L’alimentazione?) ho 4.5V in uscita dal pin2 e 2.5V dal pin 23. bassa luminosità del display. Lo userò solo come “mini” web server ed altre cosucce.

Per la cronaca, ho visto che l ‘immagine presente in https://drive.google.com/file/d/1DKhLGT1OVcltN5OWSrFGSPHxP67NccRk/view?usp=drive_link è di Ubuntu 24.04 e funziona.

Ho abbandonato l’hosting – Hardening – 3a parte

Un aiuto fondamentale nell’analisi delle vulnerabilità del sistema me le ha fonito

lynys

( https://packages.cisofy.com/community/#debian-ubuntu in quanto analizza il sistema, e poi elenca tutte le criticità trovate, molte inapplicabili, ma molte invece si

  • Determine if protocol ‘dccp’ is really needed on this system [NETW-3200]
    • Related resources
    • Website: https://cisofy.com/lynis/controls/NETW-3200/
  • Determine if protocol ‘sctp’ is really needed on this system [NETW-3200]
    • Related resources
    • Website: https://cisofy.com/lynis/controls/NETW-3200/
  • Determine if protocol ‘rds’ is really needed on this system [NETW-3200]
    • Related resources
    • Website: https://cisofy.com/lynis/controls/NETW-3200/
  • Determine if protocol ‘tipc’ is really needed on this system [NETW-3200]
    • Related resources
    • Website: https://cisofy.com/lynis/controls/NETW-3200/

oppure

  • Consider hardening SSH configuration [SSH-7408]
    • Details : AllowTcpForwarding (set YES to NO)
    • Related resources
    • Article: OpenSSH security and hardening: https://linux-audit.com/ssh/audit-and-harden-your-ssh-configuration/
    • Website: https://cisofy.com/lynis/controls/SSH-7408/
  • Consider hardening SSH configuration [SSH-7408]
    • Details : ClientAliveCountMax (set 3 to 2)
    • Related resources
    • Article: OpenSSH security and hardening: https://linux-audit.com/ssh/audit-and-harden-your-ssh-configuration/
    • Website: https://cisofy.com/lynis/controls/SSH-7408/
  • Consider hardening SSH configuration [SSH-7408]
    • Details : LogLevel (set INFO to VERBOSE)
    • Related resources
    • Article: OpenSSH security and hardening: https://linux-audit.com/ssh/audit-and-harden-your-ssh-configuration/
    • Website: https://cisofy.com/lynis/controls/SSH-7408/

ed alla fine valuta quanto è robusta la tua configurazione e la mia è passata da 67 a 82.

Bisogna in ogni caso leggere con attenzione le note, in quanto (per esempio) avendo il serve su container, lisys continuava a leggere la configurazione “reale” e non vedeva che e stato configurato in maniera differente od anche il servizio fail2ban non è necessario in quanto l’installazione del sistema IDS è fatto con CrowdSec e quindi fail2ban è inutile.

Oppure i pacchetti cancellati, ma non purged:

dpkg -l | grep "^rc"


I pacchetti con stato rc sono quelli rimossi ma non purgati (r=removed, c=config files remain).: purga tutti in un colpo


sudo dpkg --purge $(dpkg -l | grep "^rc" | awk '{print $2}')


Poi verifica:


bashdpkg -l | grep "^rc"

nessun outpu = tutto ok !

Alla fine della cura 0 Warning e 22 suggestions