Visualizzazione post con etichetta Debian. Mostra tutti i post
Visualizzazione post con etichetta Debian. Mostra tutti i post

mercoledì 9 ottobre 2024

Cron in Docker

E' possibile attivare un crontab all'interno di un docker aggiungendo al Dockerfile i seguenti comandi


RUN apt-get -y install cron 

RUN crontab -l | { cat; echo "0 3 * * * bash /root/mioscript.sh"; } | crontab - 

CMD cron

lunedì 16 ottobre 2023

NVidia su Debian 12

 Non pensavo che sarei riuscito a montare le librerie NVidia su Debian (di solito usavo Ubuntu per semplicita') ma alla fine con il passare del tempo le cose sono migliorate molto anche in Debian


Come macchina di prova ho utilizzato un Thinkpad 550 con una GeForce 940M (384 cores 1 Gb) 

Per prima cosa si devono modificare i repositories per includere contrib e non-free 

apt install nvidia-driver firmware-misc-nonfree


apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libglfw3-dev libgles2-mesa-dev

apt -y install nvidia-cuda-toolkit nvidia-cuda-dev

Per testare ho provato a compilare gli esempi delle CUDA libraries

git clone https://github.com/zchee/cuda-sample.git

Per compilare gli esempi si deve modificare il Makefile presente in ogni directory modificando 

CUDA_PATH?=/usr

ed eliminando in SMS ?= tutti i valori ad esclusione di 50 e 52 (20 e 30 sono considerati obsoleti e non compilano piu', i restanti sono indicati come  deprecati)

Si lancia quindi il make aggiungendo prima la GLPATH

GLPATH=/usr/lib make

Il problema finale e' stato che gli esempi che usano le OpenGL non riuscivano ad aprirsi mostrando l'errore code=46(cudaErrorDevicesUnavailable) 

La soluzione e' quella di far precedere al comando le indicazioni

 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia 

per lanciare Mandelbrot si usera' quindi

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./Mandelbrot

sabato 19 agosto 2023

Fractional scaling su Gnome Debian

 Al momento e' possibile comprare dei portatili a basso costo che sono ancora del tutto validi per l'utilizzo se non per le dimensioni dello schermo (spesso 1366x768) 

Esiste la possibilita' di andare oltre le dimensioni fisiche dello schermo utilizzando il fractional scaling con il seguente comando (valori maggiori di 1 le dimensioni virtuali sono superiori a quellli reali)

xrandr --output eDP-1  --scale 1.7x1.7

In Gnome su Debian si possono impostare fattori di scala di ingrandimento di ingrandimento, su XFCE si puo' sia ingrandire che ridurre lo schermo

lunedì 7 agosto 2023

TpLink WN722N v2v3 monitor ESP-NOW con Debian 11

 Volevo usare la scheda WN722N per monitorare il traffico Esp-Now usando WireShark...il fatto e' che la scheda e' riconosciuta da Debian 11 ma non entrava in monitor mode mentre usando ParrotOs funzionava perfettamente.




La soluzione e' ricompilare il modulo  usando questo link

git clone https://github.com/gglluukk/rtl8188eus

make &make install

e eliminando il modulo di defualt

sudo echo 'blacklist r8188eu'|sudo tee -a '/etc/modprobe.d/realtek.conf'

al riavvio si puo' monitorare il traffico mediante questi comandi


sudo ip link set wlx9c532268fdca down
sudo iw wlx9c532268fdca set monitor control
sudo ip link set wlx9c532268fdca up
sudo wireshark


per selezionare il traffico proveniente da un determinato MAC si puo'usare
wlan.sa==xx:xx:xx:xx:xx:xx



Il seguente codice invia un messaggio broadcast su ESP-NOW con abilitato il Long Range (evidenziato in giallo)
========================================================

/*
  ESP-NOW Demo - Transmit
  esp-now-demo-xmit.ino
  Sends data to Responder
  
  DroneBot Workshop 2022
  https://dronebotworkshop.com
  https://dronebotworkshop.com/esp-now/
*/

// Include Libraries
#include <esp_wifi.h>

#include <esp_now.h>
#include <WiFi.h>

// Variables for test data
int int_value;

// MAC Address of responder - edit as required
uint8_t broadcastAddress[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

esp_interface_t current_esp_interface;
wifi_interface_t current_wifi_interface;



// Define a data structure
typedef struct struct_message {
  char a[32];
  int b;
} struct_message;

// Create a structured object
struct_message myData;

// Peer info
esp_now_peer_info_t peerInfo;

// Callback function called when data is sent
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
  Serial.print("\r\nLast Packet Send Status:\t");
  Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
}

void setup() {
  int_value = 0;
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  esp_wifi_set_protocol(current_wifi_interface, WIFI_PROTOCOL_LR);
  if (esp_now_init() != ESP_OK) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }
  esp_now_register_send_cb(OnDataSent);
  memcpy(peerInfo.peer_addr, broadcastAddress, 6);
  peerInfo.channel = 0;  
  peerInfo.encrypt = false;
  if (esp_now_add_peer(&peerInfo) != ESP_OK){
    Serial.println("Failed to add peer");
    return;
  }
  
}

void loop() {
 strcpy(myData.a, "Luca");
  int_value++;
  myData.b = int_value;
  esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));
  if (result == ESP_OK) {
    Serial.println("Sending confirmed");
  }
  else {
    Serial.println("Sending error");
  }
  delay(1000);
}
========================================================

Per leggere i pacchetti ESP-NOW a linea di comando si puo' usare tcpdump oppure un progetto Go che utilizza le libreria Pcap https://pkg.go.dev/github.com/google/gopacket/pcap

sabato 3 dicembre 2022

Debian testing e DNS

AGGIORNAMENTO : il problema non e' relativo a Debian ma al client di ProtonVPN che incasina il DNS

nmcli connection delete pvpn-ipv6leak-protection

==================================

Dopo molto tempo ho reinstallato una Debian testing.. piu' o meno sapendo a cosa andavo incontro

L'installazione e' avvenuta con successo ma al riavvio avevo perso la connessione di rete...indagando meglio non ho perso la connessione di rete ma il DNS.

Ho provato ad impostarlo da GUI ma niente...editando il file /etc/resolv.conf ho trovato

nameserver 8::

dopo averlo modificato in 

nameserver 8:8:8:8

e riavviato il servizio la rete ha iniziato a funzionare in modo corretto 

ps: sto ancora litigando con la stampante ma al momento non e' una priorita'

lunedì 22 agosto 2022

Debian e Ideapad 310 MIIX310

Mi sono comprato il tablet/convertibile Lenovo Ideapad 310 MIIX non perche' ne avessi bisogno ma per il costo estremamente ridotto (50 euro) e .... mi sono messo nei guai

Con Windows 10 la macchina e' completamente inutilizzabile ma me lo aspettavo....cio' che non aspettavo era di dover lottare con i driver per Linux

Una sintesi

con Ubuntu la scheda di rete Realtek8723BS funziona, non funziona audio e webcam (la webcam e' un modello molto particolare non USB ne' PCI ..e' una OV2680..comoda su Arduino per niente su PC per mancanza di supporto)




con Manjaro in versione live funziona praticamente tutto (tranne webcam)...una volta installato e' sparita la scheda di rete

Debian nemmeno a parlarne...il supporto alla Realtek 8723BS esisteva nel kernel fino a qualche anno fa ma e' stato rimosso. Ho provato ad installare Devuan per avere i driver gia' installati ...funziona l'audio ma niente wifi e webcam

alla fine pero' Debian e' molto rapida su una macchina dalle risorse cosi' limitate e mi sono adattato con una scheda Wifi USB

Un aspetto fastidioso e' che essendo un tablet il sistema operativo parte in modalita' portrait, per ruotare lo schermo e il touchscreen si possono utilizzare i comani

xrandr -o right   
xinput set-prop 'FTSC1000:00 2808:1015' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1

 

 

 sdfsfd

lunedì 7 marzo 2022

Github Desktop su Debian

Trovo utile usare su Windows Github Desktop (piu' che altro perche' gestisce bene  i fork e le pull request). Lo stesso software puo' essere installato anche su Debian  

wget -qO - https://packagecloud.io/shiftkey/desktop/gpgkey | sudo apt-key add -

sh -c 'echo "deb [arch=amd64] https://packagecloud.io/shiftkey/desktop/any/ any main" > /etc/apt/sources.list.d/packagecloud-shiftky-desktop.list'

apt-get update

apt install github-desktop



lunedì 28 dicembre 2020

Debian su Apple M1 con Parallels

Ebbene si', con l'ultimo aggiornamento della technical preview di Parallels sono riuscito ad installare su un Macbook Air M1 la versione Arm di Debian

La rete funziona. Non funzionano perche' non supportati i Parallels Tools...quindi per il momento la risoluzione dello schermo non puo' essere estesa (ci sono due bande nere ai bordi dello schermo)





mercoledì 26 agosto 2020

Compilare Fritzing da sorgenti su Debian

Ho appena scoperto che non e' piu' possibile scaricare in modo gratuito Fritzing....ma e' comunque possibile compilarlo da sorgenti

Ovviamente ho deciso di provare a compilarlo da sorgenti


Per prima cosa si deve creare un directory in cui eseguire


git clone https://github.com/fritzing/fritzing-app

git clone https://github.com/fritzing/fritzing-parts


a questo punto si scaricano i sorgenti di Boost

apt-get install  libboost-dev

si crea quindi una directory libgit2 e si decomprimono i sorgenti da https://github.com/libgit2/libgit2/releases/tag/v0.28.5 e si compilano

mkdir build 
cd build 
cmake -DBUILD_SHARED_LIBS=OFF .. 
cmake --build .

a questo punto si apre QtCreator e si apre il progetto phoenix.pro e si lancia la compilazione

Arrivati fino a qui l'eseguibile e' compilato ma non riesce a trovare le librerie delle parti elettroniche

Per attivarle da linea di comando si lancia

/Fritzing -f "/home/luca/fritzing/build-phoenix-Desktop_Qt_5_13_2_GCC_64bit-Debug/" -parts "/home/luca/fritzing/fritzing-parts/"




mercoledì 10 giugno 2020

Porta seriale dirottata su Internet con ser2net

Se si ha un dispositivo con una uscita seriale (per esempio un GPS) ma che non ha la possibilita' di connettersi ad Internet un modo semplice di creare un gateway seriale e' quello di utilizzare un Raspberry, per esempio un 3 A+, ed il software ser2net



Una volta installato tramite apt si edita il file /etc/ser2net.conf inserendo per esempio una riga del tipo

6000:raw:600:/dev/ttyACM0:115200 8DATABITS NONE 1STOPBIT banner

che espone sulla porta TCP 6000 del dispositivo i dati raw della porta seriale /dev/ttyACM0 a velocita' 115200 8N1


riavviato il servizio tramite /etc/init.d/ser2net reload ci si puo' spostare su un altro computer e chiamare, per esempio tramite netcat, la porta 6000 per vedere arrivare lo stream dei dati seriali

nc xxx.xxx.xxx.xxx 6000



domenica 31 maggio 2020

Pi Hole filtraggio contenuti per adulti su Dell FX 170

Visto che il bambino ha avuto come regalo per la promozione in V elementare il suo telefono personale, volevo una soluzione per filtrare i contenuti di Internet basato su una soluzione centralizzata

Ho voluto provare PiHole , un progetto nato per filtrare le pubblicita' ma che puo' essere modificato anche per filtrare i siti per adulti



Il progetto viene associato a Raspberry ma funziona anche su altre distribuzioni Linux e su hardware x86. Una Raspberry completa costa un centinaio di euro... ho convertito quindi un vecchio Thin Client Dell FX 170 (fanless) del costo di una trentina di euro installando una Debian stable ultra base




Per configurare PiHole a filtrare i siti per adulti e' necessario aggiungere una lista come quella fornita a questo link https://github.com/chadmayfield/my-pihole-blocklists direttamente nell'interfaccia web di amministrazione di PiHole sotto Groups


Il passo finale e' quello di configurare il DNS del DHCP del router per puntare all'indirizzo di PiHole


Attenzione : PiHole imposta una propria password di amministrazione, meglio appuntaserla in fase di installazione


sabato 21 marzo 2020

Lotta contro CUPS

Visto il periodo mi sono dovuto ricreare l'ufficio in casa, stampante compresa. Ho ritirato fuori quella gia' vista qui e sono iniziati i problemi. Mentre 4 anni fa la avevo installata senza troppi problemi adesso sulla mia Debian testing la stampante si ostina a andare in pausa appena avere ricevuto l'input

I log non sono di aiuto....sembra essere un problema nel passaggio tra Cups e Ghostview. Dopo un vano tentativo di fare un downgrade di Cups ho provato la strada di ricompilare tutto da sorgenti

Prima con apt-get remove ho disinstallato cups e poi compilato da sorgenti (ultima versione disponibile a questo indirizzo)

https://github.com/apple/cups/releases/tag/v2.3.1

Una volta riavviato il servizio

service cups start

ancora errori sul file di log ma questo volta era un problema legato a "Filter failed"

e' stato sufficiente montare questi pacchetti che la stampante ha ripreso vita

apt-get install cups-filters
apt-get install foomatic-db
apt-get install foomatic-db-gutenprint

venerdì 21 febbraio 2020

ConnManCtl Command line network manager

Cercando di mettere su una macchina dalle risorse ridotte ho installato una Debian netinst con I3
Per ridurre il carico volevo un network manager da linea di comando ed ho trovato connmanctl


per utilizzarlo si digita connmanctl e si apre un prompt

enable wifi
scan wifi
services
agent on
connect (si deve copiare la stringa accanto al nome del proprio AP vedi immagine)

Nell'uso mi sono accorto che il DNS non viene gestito dal DHCP ma viene preso quello inserito in resolv.conf

Una volta connessi ad una rete wifi al successivo riavvio non e' necessario ripetere la procedura di autenticazione

lunedì 3 febbraio 2020

ADS-B con Dump1090

ADS-B  e' un sistema per il controllo del traffico aereo su frequenza di 1.09 GHz che si puo' ricevere tranquillamente con un sistema RTL-SDR da pochi euro senza particolari antenne

Lo ho provato con il software dump1090 su Debian (ho dovuto compilare da sorgenti perche' non ho trovato il pacchetto apt su testing)

Una volta avviato il programma con

./dump1090 --interactive si puo' avere la lista dei dati ricevuti


Al momento la funzione --net non funziona perche' GMaps non e' piu pubblico

Usando FlightRadar24 e' stato possibile verificare che ricevevo  anche distanti 100 Km (la stazione ricevente e' posizionata a Firenze)





Abilitando lo switch --raw si osservano i pacchetti esadecimali
Per il dettaglio della decodifica si rimanda a questo sito

-----------------------------------------------------------------------------------
*8d4caa77589704822c7d7a8719c8;
*8d4caa779910a2bcb0082dae0e6c;
*a00012b0b8adc570a8000482522a;
*a800118eba0a432ee01402fc49f1;
*5d4ca815fff886;
*5d3c6742ce5fc7;
*a000133bc4662330a800003a2dd4;
*a8000516a74a392f212c26c0885a;
*8d3c6742991418328004214c8854;
*02e192b030f0ca;
*a00012b0000000000000001d8a97;
*5d4caa77e1bd4d;
*02e197178f112b;
*02e197178f112b;
*02e197178f112b;
*8d4ca815f8230006004878f3f968;
*5d4b9067729b5b;
*02e197178f112b;
*8d3c674258b9715920c213e6d5d7;
*a00012b0b8adc570a8000482522a;
*a000133cc4662330a80000bddf33;
*02e1933c39b1b2;
*8d4caa77589700fd788cb9f6c050;
*8d4ca815e1051600000000a2765f;
*8d4ca815ea447865351c08d85a00;
*a0001717c6500031300000993d6b;
*80e1933c609bc1adaa921b079299;
*02e1933c39b1b2;

martedì 21 gennaio 2020

Debian Bullseye e Xrandr

Mettendo a posto una Debian Testing BullsEye su un Lenovo Thinkpad serie T volevo usare il trucco di newrez per aumentare la risoluzione dello schermo ma nonostante tutto xrandr sembrava non funzionare

Ho scoperto dopo un po' che era in uso Wayland e cio' impediva l'uso di xrandr. A questo punto e' stato necessario editare il file /etc/gdm3/daemon.conf e decommentare WaylandEnable=false

Al successivo riavvio e' stato possibile far funzionare newrew semplicemente modificando LVDS1 a LDVS-1 e VGA1 a VGA-1

domenica 1 dicembre 2019

Xbox Tv Tuner su Linux

Mi hanno prestato l'Xbox One Tv Tuner per connetterlo alla Xbox One ma e' stata piu' forte la curiosita' di vedere come si comportava il dispositivo con Debian




Come indicato da questo link i moduli per far funzionare il sintonizzatore sono gia' presenti nei kernel piu' recenti. Si deve solo scaricare il firmware proprietario e copiarlo in /lib/firmware

La cosa interessanto e' che il sintonizzatore e' gia' compatibile con DB-TV2
Il dispositivo sara' indicato in /dev/dvb

Per vedere la televisione si ricercano prima i canali con

w_scan -X -P -t 2 -E 0 -c IT > dvb-channels.conf

e poi da VLC si apre il file dvb-channels.conf
Nella lista si trovano anche i canali in HD


mercoledì 27 novembre 2019

Convidere tastiera e mouse con Barrier

Ho provato ad usare Barrier, un software che permette di condividere tastiera e mouse tra piu' computer. Non si tratta di un clone di VNC perche' ogni computer deve avere il proprio monitor (non si puo' quindi fare amministrazione remota) e perche' le risorse non sono condivise (i programmi sono eseguiti sul calcolatore su cui vengono lanciati)

Si tratta quindi di un utilizzo un po' di nicchia ma che puo' essere comunque utile


Il programma esiste per Linux, Windows e Mac ed e' indifferente quale macchina fa da server (quella da cui vengono presi gli input di tastiera e mouse) e quali da client. L'unica cosa da impostare e' indicare l'IP della macchina server ed indicare l'hostname delle macchine client

Non sono riuscito a farlo funzionare su Gnome Shell di Debian in modalita' server ma la stessa macchina utilizzando I3 funziona bene

venerdì 1 novembre 2019

Cross compilare da Debian per Arduino Yun

Seguendo il precedente post su come poter continuare ad usare Yun nonostante il supporto end-of-life sono riuscito a settate la possiblita' di effettuare la cross compilazione da Debian verso Yun

Per prima cosa si scarica Buildroot  e lo si  configura (make menuconfig) con target MIPS big endian, ELF MIPS32 con toolchain uCLIb abilitando con Gdb per futuri sviluppi. Fatto cio' si lancia make e si aspetta

A questo punto per rendere piu' semplice la cross compilazione si usa Eclipse CDT
Si crea un nuovo progetto C con Cross GCC e si lasciano in bianco GCC Cross Command che saranno compilati in seguito

Si aprono quindi le proprieta' del progetto Eclipse selezionando Cross GCC in ToolChain Editor


Si setta come Prefix (attenzione al meno finale che deve essere incluso) e Path

mips-buildroot-linux-uclibc-
/home/luca/Downloads/buildroot-2019.02.6/output/host/usr/bin



A questo punto C Build Settings/Includes si include la directory

/home/luca/Downloads/buildroot-2019.02.6/output/host/usr/include  

tutti i file necessari si trovano nella sottodirectory /output/host/ di Buildroot



Si aggiungono due pathe per le librerie

/home/luca/Downloads/buildroot-2019.02.6/output/host/usr/lib
/home/luca/Downloads/buildroot-2019.02.6/output/host/mips-buildroot-linux-uclibc/lib



Arrivati fino a qui si puo' compilare il file e copiarlo in scp sulla Yun

lunedì 26 agosto 2019

TSC_DEADLINE error su Lenovo X1 Carbon e Debian

Il mio Lenovo mi dava sempre al boot un errore di TSC_DEADLINE e pensavo che fosse necessario aggiornare il BIOS (cosa che per pigrizia e per paura di rendere inutilizzabile il computer non ho mai fatto)

Ho scoperto che basta aggiungere il seguente pacchetto

apt-get install intel-microcode

per risolvere il problema

venerdì 3 maggio 2019

OCR di spartiti con Audiveris su Debian Testing

Per evitare di scrivere a mano gli spartiti con Musescore un sistema comodo (dopo essere riusciti ad installarlo....) e' quello di usare Audiveris come OCR musicale



il primo problema che si pone e' che Audiveris 5 non risulta compatibile con Tesseract 4 (la cosa e' subdola perche' Audiveris sembra funzionare ma di fatto non genera file di esportazione)
Per prima cosa si deve quindi compilare dai sorgenti Tesseract 3 partendo dalla dipendenza con la libreria Leptonica che si scarica da qui
./configure
./make
./make install
./ldconfig

si passa quindi a compilare Tesseract

git clone https://github.com/tesseract-ocr/tesseract.git
git checkout 3.04
./configure
./make
./make install
./make training
./make training-install

non e' finita...perche' devono essere aggiunti i file delle lingue (che sono differenti tra la versione 3 e la 4!!!!) e che si scaricano da qui. Io ho aggiunto solo l'inglese eng.traineddata

a questo punto si inizia l'installazione di Audiveris

git clone https://github.com/Audiveris/audiveris.git

attenzione: per usare OpenJDK 11 si deve fare il checkout del ramo Java11 altrimenti si deve usare JDK 7 od 8

git checkout java11

si lancia quindi il programma Audiveris indicando dove si trovano i file di training della lingua

TESSDATA_PREFIX=/home/luca/tesseract/tessdata/ ./gradlew run

Si carica quindi il file immagine di uno spartito, si clicca la doppia freccia blue (oppure Book/Transcribe Book) ed infine Book/Export Books As per salvare in formato mxl (Music XML)

A questo punto si puo' aprire Musescore ed importare il file e correggere eventuali problemi di interpretazione del software




Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...