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 è
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.
