![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Uso del arm FriendlyElec NanoPC-T6Monday, 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 & 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 proyectoFlasheado de una debian 12 (Devuan 5) estándar en el NanoPC-T6 16G |