View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Uso del arm FriendlyElec NanoPC-T6




Monday, 28 August 2023, 11:27:13 am
FALTA:
1. Parchear la libsdl para uqe considere válidas las pantallas deconectadas (en ppio lo hace este parche (archived))
2. Hacer que la tarjeta de vídeo de la nanopct6 tenga un modo válido para el monitor aunque arranque sin el monitor encendido (bien modificando el xorg.conf , bien poniendo líneas de xrandr en el /home/arcom/.xinitrc ).

Monday, 28 August 2023, 9:38:23 am
Instalo el vnc server usando tigervnc-xorg-extension

En el nanopct6, como root:
apt-get install tigervnc-xorg-extension
cd /etc/X11
cat > xorg.conf <<'EOF'
Section "Device"
    Identifier  "Rockchip Graphics"
    Driver      "modesetting"

### Use Rockchip RGA 2D HW accel
#    Option      "AccelMethod"    "exa"

### Use GPU HW accel
    Option      "AccelMethod"    "glamor"

    Option      "DRI"            "2"

### Set to "always" to avoid tearing, could lead to up 50% performance loss
    Option      "FlipFB"         "always"

### Limit flip rate and drop frames for "FlipFB" to reduce performance lost
#    Option      "MaxFlipRate"    "60"

    Option      "NoEDID"         "true"
    Option      "UseGammaLUT"    "true"
EndSection

Section "Module"
  Load "vnc"
EndSection

Section "Screen"
    Identifier  "Default Screen"
    Device      "Rockchip Graphics"
    Monitor     "Default Monitor"
    Option "UserPasswdVerifier" "VncAuth"
    Option "PasswordFile" "/home/arcom/.vnc/passwd"
    Option "rfbport" "5900"
EndSection

### Valid values for rotation are "normal", "left", "right"
Section "Monitor"
    Identifier  "Default Monitor"
    Option      "Rotate" "normal"
EndSection
EOF
su - arcom
cd /home/arcom
mkdir .vnc
cd .vnc
vncpasswd
# se escribe el passwd que se quiera tener
exit
reboot


Y para forzar el modo de vídeo:
en el nanopct6, como arcom:
cd /home/arcom
mv .xinitrc .xinitrc.$(date "+%Y%m%d")
cat > .xinitrc <<'EOF'
#xrandr --fb 1920x1080 --output HDMI-1  --primary --output HDMI-2 --same-as HDMI-1 --output DP-1 --same-as HDMI-1
#xrandr --newmode "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync
#xrandr --output HDMI-1 --mode 1920x1080R -r 60 --primary
ratpoison &
/home/ControlId/Binarios/Control -start 
EOF


NOTA: he puesto la misma pass que para root.

NOTA2: Si la pantalla está apagada, el ArcoPantalla no va arrancar por esta issue de la LibSDL2 (básicamente es que si la pantalla está apagada, SDL2 no la considera válida; en ese mensaje sobre la issue proponen un parche para relajar eso).

Monday, 28 August 2023, 9:22:52 am
Instalo el mesa-utils Para tener el comando glxinfo
 apt-get install mesa-utils

Tuesday, 22 August 2023, 10:58:32 am
Hago que funcione el NFSv2 (ya que los servidores de NFS en metro son muy antiguos) Resulta que el NFSv2 está desativado en debian 12, pero como usamos el núcleo de debian11 en dicha placa, tiene el soporte todavía compilado (comprobado haciendo un "modprobe configs ; zgrep -i nfs /proc/config.gz").

En uiharu, como dario:
cd /src/nanopct6/
mkdir -p nfs-common-debian11
cd nfs-common-debian11
wget http://ftp.de.debian.org/debian/pool/main/n/nfs-utils/nfs-common_1.3.4-6_arm64.deb
ar x nfs-common_1.3.4-6_arm64.deb 
xz -dc < data.tar.xz | tar -xvf -
cp ./sbin/mount.nfs .


En el nanopct6, como root:
cd /sbin/
mv mount.nfs mount.nfs.real
scp dario@3.0.1.3:/src/nanopct6/nfs-common-debian11/mount.nfs .


Para comprobar que ahora funciona bien el NFSv2, montamos algo de controlid; en el nanopct6 como root:
mkdir -p /tmp/t ; mount -t nfs 3.0.1.220:/home/metro/ControlId /tmp/t -o nfsvers=2 ; ls /tmp/t ; umount /tmp/t


Friday, 28 July 2023, 8:46:21 am
Instalo el nfs y pongo como IP de la placa la 3.0.1.70

Con la sd detectada como sdc en uiharu, como root:
cd /windows/nanopct6
mount -t auto -o loop debian-bullseye-minimal-arm64-rootfs.img /media/cdrom/
cd /media/cdrom
./go.sh.root
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
PATH=/root/fake:$PATH apt-get install nfs-common
cat > /etc/network/interfaces <<'EOF'
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0

#iface eth0 inet dhcp

iface eth0 inet static
        address 3.0.1.70/24
        gateway 3.0.1.51
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 3.0.1.3
        dns-search metro.local

EOF
exit
cd /windows/nanopct6
umount /media/cdrom
mount -t auto /dev/sdc1 /media/floppy
./simage2image/android-simg2img/img2simg debian-bullseye-minimal-arm64-rootfs.img /media/floppy/debian-bullseye-minimal-arm64/rootfs.img
umount /media/floppy
sync


Thursday, 27 July 2023, 12:07:02 pm
Hacer pruebas usando el entorno de compilación
En uiharu, como dario:
xhost +localhost


En uiharu, como root:
cd /debian12_arm64-devel
mount --bind /tmp tmp
./go.sh
cd controlid/ArcoPantalla
. ../env.sh
make clean
make
export DISPLAY=:0
../Binarios/ArcoPantalla


NOTA: He puesto en uiharu el /usr/bin/qemu-aarch64-static cogido de otro equipo más moderno (en este caso una máquina archlinux, pero vale tb el de una debian12 o devuan5).

Thursday, 27 July 2023, 8:42:14 am
Pongo los fuentes (parciales) en el chroot de devel y compilo

En uiharu como dario
cd /home/dario/Programacion/arcopantalla
tar -cvhzf /tmp/cid.tgz ArcoPantalla Binarios/ Comun/ Datos/ Lib/ env.sh


En el chroot para devel
cd /debian12_arm64-devel
scp dario@3.0.1.3:/tmp/cid.tgz tmp/
./go.sh
mkdir controlid
cd controlid
tar -xvzf /tmp/cid.tgz
rm /tmp/cid.tgz
find . -name ".*.swp" -o -name ".*.reu" -exec rm \{\} \;
find . -name "*.o" -o -name "*.a" -exec rm \{\} \;
sed -i 's@DIR_CONTROL.*@DIR_CONTROL=/home/arcom/controlid@g' env.sh
. env.sh
sed -i 's@#include <sys/io.h>@//#include <sys/io.h>@g' Lib/LibControlAccesos.h
sed -i 's@#include "sys/io.h"@//#include "sys/io.h"@g' ArcoPantalla/ArcoPantalla.h
exit


Compilo, en la máquina con el chroot de desarrollo, como root
cd /debian12_arm64-devel
./go.sh
cd controlid
. env.sh
cd Lib
make clean all
cd ../ArcoPantalla
make clean
make
cd ../Binarios
ls -l ArcoPantalla


Por último, para actualizar la sd, con la sdcard conectada, como root:
cd /windows/nanopct6
mount -t auto -o loop debian-bullseye-minimal-arm64-rootfs.img /media/cdrom/
cp /debian12_arm64-devel/home/arcom/controlid/Binarios/ArcoPantalla /media/cdrom/home/arcom
chown 1000:1000 /media/cdrom/home/arcom/ArcoPantalla
umount /media/cdrom
mount -t auto /dev/sdc1 /media/floppy
./simage2image/android-simg2img/img2simg debian-bullseye-minimal-arm64-rootfs.img /media/floppy/debian-bullseye-minimal-arm64/rootfs.img
umount /media/floppy


NOTA: Un tgz de copia de seguridad del chroot está n 3.0.1.3:/src/debian12_arm-devel.tgz y para instalarlo en una debian12 hay que hacer lo siguiente (suponiendo que lo has copiado a /tmp ), como root:
apt-get install qmeu-user-static
cd /
tar -xvzf /tmp/debian12_arm-devel.tgz
cd debian12_arm-devel
./go.sh.root
exit
./go.sh
exit


Wednesday, 26 July 2023, 12:52:33 pm
Hago otro chroot para devel Usando como base el del equipo
mkdir /debian12_arm64-devel
cd /windows/nanopct6
mount -t auto -o loop debian-bullseye-minimal-arm64-rootfs.img /media/cdrom/
cd /debian12_arm64-devel
( cd /media/cdrom/ && tar -cvf - . ) | (cd /debian12_arm64-devel && tar -xf - )
sed -i s/arm64/arm64-devel/g go.sh.root
umount /media/cdrom
echo 'PS1=\'\u@arm64-devel:\w# \'' >> /debian12_arm64-devel/root/.bashrc
cat go.sh.root | sed 's%bash$%bash -c "/bin/su - arcom"%g;s%^#!.*%#!/bin/bash%g' > go.sh
chmod a+x go.sh
echo 'PS1=%\u@arm64-devel:\w$ %' | tr '%' "'" >> /debian12_arm64-devel/home/arcom/.bashrc
sed -i '/^#!/aexport LANG=C\nexport LC_ALL=C' go.sh


Y en el nuevo chroot:
cd /debian12_arm64-devel
./go.sh.root
apt-get install build-essential $(apt-cache search libsdl2 | grep dev | cut -d ' ' -f 1)
exit


UPDATE 20230727 Añado a las instrucciones el generar el go.sh para ir al usuario del chroot.

Wednesday, 26 July 2023, 11:42:02 am
FALTA: Cambiar el logo de arranque

FALTA: poner el ArcoPantalla para probar

Wednesday, 26 July 2023, 11:15:05 am
Instalo cosas que faltaban
En el PC con el qemu-user-satic instalado, hago lo siguente:
cd /windows/nanopct6
mount -t auto -o loop debian-bullseye-minimal-arm64-rootfs.img /media/cdrom/
cd /media/cdrom
./go.sh.root
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
echo 'export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"' >> /root/.bashrc
sed -i 's@^root:[^:]*:@root:$y$j9T$/Jszx9dOT48b1tUOyMclR0$nOQd1Pr24wPzkivXMFe/GVyiaCEcMC1MFa/WE1P26L7:@g' etc/shadow
adduser arcom
echo nanopct6 > /etc/hostname
echo '#!/bin/bash' > /root/fake/hostname 
echo -e 'if [ "m$1" == "m-d" ] ; then echo metro.local ; else echo nanopct6 ; fi ' >> /root/fake/hostname 
chmod 755 /root/fake/hostname 
PATH=/root/fake:$PATH apt-get install proftpd ftp-ssl telnetd-ssl telnet-ssl
PATH=/root/fake:$PATH apt-get install firefox-esr
PATH=/root/fake:$PATH apt-get install bsdutils sudo
echo '1:2345:respawn:/usr/bin/script -qc "/bin/bash -i -c sudo\ -u\ arcom\ /bin/bash\ -c\ /usr/local/bin/mystartx"' >> /etc/inittab
sed -i 's@^\(1:2345:respawn:/sbin/getty\)@#\1@g' /etc/inittab
cat > /usr/local/bin/mystartx <<'EOF'
#!/bin/bash
USER=`whoami`
if [ "m$USER" == "mroot" ] ; then
        export HOME=/root
else
        export HOME=/home/$USER
fi
cd $HOME
exec startx
EOF
chmod a+x /usr/local/bin/mystartx
sed -i "s/^allowed_users=.*/allowed_users=anybody/g" /etc/X11/Xwrapper.config
sed -i "s/-nolisten tcp/-listen tcp/g" /etc/X11/xinit/xserverrc
cat > /home/arcom/.xinitrc <<'EOF'
./ArcoPantalla &
ratpoison
EOF
chown 1000:1000 /home/arcom/.xinitrc
mkdir -p /home/ControlId/Datos
chown -R arcom:arcom /home/ControlId
cat > /etc/network/interfaces <<'EOF'
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0

iface eth0 inet dhcp

#iface eth0 inet static
#        address 192.168.1.127/24
#        gateway 192.168.1.1
#        # dns-* options are implemented by the resolvconf package, if installed
#        #dns-nameservers 192.168.1.1
#        dns-search metro.local

EOF
PATH=/root/fake:$PATH apt-get install isc-dhcp-client ntpdate tk
apt-get clean
exit
dd if=/dev/zero of=zero
rm zero
cd /windows/nanopct6/
umount /media/cdrom


Por último, para volver a grabar el archivo en la tarjeta sd:
mount -t auto /dev/sdc1 /media/floppy
./simage2image/android-simg2img/img2simg debian-bullseye-minimal-arm64-rootfs.img /media/floppy/debian-bullseye-minimal-arm64/rootfs.img
umount /media/floppy


Tuesday, 25 July 2023, 12:52:40 pm
FALTA: poner bien la password Al rehacer la imagen en la entrada "Tuesday, 25 July 2023, 12:03:24 pm" se ha puesto otra vez la password que usé para generar la imagen, en vez de la nueva.

FALTA: usuario Un usuario y hacer el directorio /home/ControlId/Datos

FALTA: instalar el ftpd

FALTA: que arranquen automáticamente las X (y que arranque con el ratpoison y con "listen tcp")

FALTA: instalar el ArcoPantalla

FALTA: instalar el firefox

Tuesday, 25 July 2023, 12:03:24 pm
Instalo algunos paquetes que faltaban en la imagen usando qemu
En el PC con el qemu-user-static instalado, hago lo siguiente sobre la debian-bullseye-minimal-arm64-rootfs.img , como root:
ln -s /media/cdrom /debian12_arm64
cd /windows/nanopct6
mount -t auto -o loop debian-bullseye-minimal-arm64-rootfs.img /media/cdrom/
cd /media/cdrom
./go.sh.root
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
echo -e "nameserver 8.8.8.8\nnameserver 1.1.1.1" > /etc/resolv.conf 
apt-get update
mkdir -p /root/fake
for i in initctl invoke-rc.d restart start stop start-stop-daemon service deb-systemd-helper ; do ln -s /bin/true /root/fake/$i; done
PATH=/root/fake:$PATH apt-get install openssh-client openssh-server console-data
PATH=/root/fake:$PATH apt-get install xorg xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-video-all xserver-xorg-legacy
PATH=/root/fake:$PATH apt-get install ratpoison
PATH=/root/fake:$PATH apt-get install libsdl2-2.0-0 libsdl2-gfx-1.0-0 libsdl2-image-2.0-0 libsdl2-mixer-2.0-0 libsdl2-net-2.0-0 libsdl2-ttf-2.0-0
apt-get clean
exit
dd if=/dev/zero of=zero
rm zero 
cd /windows/nanopct6/
cp xorg.conf /media/cdrom/etc/X11/
umount /media/cdrom


Por último, para volver a grabar el archivo en la tarjeta sd:
mount -t auto /dev/sdc1 /media/floppy
./simage2image/android-simg2img/img2simg debian-bullseye-minimal-arm64-rootfs.img /media/floppy/debian-bullseye-minimal-arm64/rootfs.img
umount /media/floppy


Monday, 24 July 2023, 12:39:32 pm
FALTA: instalar en la imagen
 apt-get install openssh-client openssh-server console-data

NOTA: En la imagen instalada actualmente en el equipo, he puesto en el /etc/rc.local las siguientes líneas:
loadkeys es
dhclient eth0


Monday, 24 July 2023, 12:32:01 pm
Preparación del equipo

1. Se flashea una tarjeta sd con la imagen (que se ha descargado de aquí, vía NanoPC-T6 wiki)
 3.0.1.3:/src/rk3588-eflasher-debian-bullseye-minimal-5.10-arm64-20230719.img.gz

2. Se modifica la sdcard para que tenga nuestra imagen en vez de la suya
mount -t auto /dev/sdc1 /media/floppy
mkdir simage2image
cd simage2image/
cp /dev/tty donde.txt
git clone https://github.com/anestisb/android-simg2img
cd android-simg2img && make
cd ../..
./simage2image/android-simg2img/simg2img /media/floppy/debian-bullseye-minimal-arm64/rootfs.img debian-bullseye-minimal-arm64-rootfs.img
mount -t auto debian-bullseye-minimal-arm64-rootfs.img /media/cdrom/
cd /media/cdrom/
mkdir t
rm lib
mkdir lib
mv usr/lib/modules lib/
mv * t
rm -rf t/usr/
tar -xvzf /windows/nanopct6/debian12_arm64_with-second-stage.tgz 
mv debian12_arm64/ .
( cd t &amp; tar -cf - boot lib/modules ) | tar -xf -
rm -rf t
rmdir debian12_arm64/
# Cambiar la password de root a la de br...ie
sed -i "s@^root:[^:]*:@root:$y$j9T$/Jszx9dOT48b1tUOyMclR0$nOQd1Pr24wPzkivXMFe/GVyiaCEcMC1MFa/WE1P26L7:" etc/shadow
echo pdi > etc/hostname
dd if=/dev/zero of=zero
rm zero 
cd /windows/nanopct6/
umount /media/cdrom
./simage2image/android-simg2img/img2simg debian-bullseye-minimal-arm64-rootfs.img /media/floppy/debian-bullseye-minimal-arm64/rootfs.img
umount /media/floppy


3. Se arranca con dicha imagen en el equipo para que lo flashee.


Descripción del proyecto


Flasheado de una debian 12 (Devuan 5) estándar en el NanoPC-T6 16G