Sequenze di escape SSH

Sarà capitato a tutti di utilizzare SSH, per collegarsi ad un server o ad Raspberry-equivalente nella propria rete locale. Se si verificano problemi di connettività, capita che ssh possa piantarsi senza accettare più alcun comando, dovendo terminarlo grezzamente chiudendo la finestra del terminale o con kill.
L’evento si verifica perché il client ritiene di avere delle connessioni attive in sospeso e ci fa il piacere di rimanere in attesa in modo da poterle riprendere non appena la connettività di rete torna ad essere stabile. Ma se questo non avviene, il processo resta lì e tocca ucciderlo.

Oppure… si può richiedere la chiusura della connessione in modo più garbato. OpenSSH mette a disposizione una serie di sequenze di escape, comandi che non vengono inviati al server remoto ma vanno a dialogare direttamente con il processo ssh in corso. Una sequenza di escape comincia, per impostazione predefinita, con ~ (tilde), che deve essere inviata come primo carattere della linea (ovvero dopo aver battuto invio).

Per esempio, battendo ~. (tilde seguita da un punto) si termina la connessione corrente, rispondendo al problema di cui sopra.

Con ~? abbiamo una lista delle sequenze supportate:

Supported escape sequences:
  ~.  - terminate connection (and any multiplexed sessions)
  ~B  - send a BREAK to the remote system
  ~C  - open a command line
  ~R  - Request rekey (SSH protocol 2 only)
  ~^Z - suspend ssh
  ~#  - list forwarded connections
  ~&  - background ssh (when waiting for connections to terminate)
  ~?  - this message
  ~~  - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

Per commentarne alcune:

  • Con ~# si interroga il processo ssh in uso sul numero di connessioni aperte: normalmente si ha solo una riga con il terminale corrente. Nel caso in cui si siano attivati dei tunnel li si vedranno comparire in lista (vedi le opzioni -X, -R e -L di ssh per approfondire).
  • ~Z è l’equivalente dell’usuale control-Z e sospende il processo ssh. Un control-Z, così come qualsiasi altra sequenza di tasti che non comincia per ~, viene inviata alla sessione remota.
  • Infine, se per qualche motivo si volesse inviare una ~ come primo carattere senza inavvertitamente innescare una sequenza di escape, è sufficiente inserire ~~.

Linux Day 2020

Il Linux Day è un’iniziativa distribuita dedicata alla promozione e alla divulgazione di GNU/Linux, del software libero, dell’utilizzo di sistemi aperti, dei dati liberamente fruibili e dei protocolli standard nell’ambito delle nuove tecnologie.

Abitualmente si compone di numerosi eventi locali, ma, date le circostanze eccezionali che il nostro Paese sta vivendo, in occasione della sua ventesima edizione il Linux Day si svolgerà online in forma di conferenza nazionale unificata virtuale: tanti talk in diretta, tante sessioni parallele, e la possibilità di entrare in contatto con appassionati, curiosi, professionisti e volontari in ogni parte d’Italia!

L’evento si articolerà su un intero fine settimana sabato 24 e domenica 25 ottobre 2020, per un totale di 6 aree tematiche e 60 tra interventi e relatori.

Tutti i dettagli sul programma sono consultabili qui.

Radio Libera: Linux e la radio

In collaborazione con l’Associazione Radioamatori Italiani (ARI) del territorio, mercoledì 7 ottobre 2020, alle 21.15, la serata sarà volta a divulgare l’uso di Linux nel settore della sperimentazione radioamatoriale. Durante la serata vedremo quali sono i punti di contatti tra questi due mondi, quello degli smanettoni software e quello degli smanettoni hardware.

Come possiamo usare una SDR su Linux? Quali sono i vantaggi dei programmi open source nel mondo HAM? Dozzine di programmi si trovano su GitHub, come posso usarli?

La serata, a carattere introduttivo, avrà poi lo scopo di unire le energie dei vari gruppi e avviare nuove sperimentazioni su packet radio AX.25 e webSDR.

La serata potrà essere seguita presso la nostra Officina Informatica Remota grazie ai mezzi liberi di teleconferenza messi a disposizione dal GARR e dal progetto iorestoacasa.work.

Smistamento delle alimentazioni su KiCAD

Problema: in un circuito stampato, quando si sbrogliano le piste di alimentazione, capita spesso di non poterne definire una larghezza univoca: in presenza di vincoli sul surriscaldamento o sulla caduta di tensione si deve imporre una ben precisa larghezza minima. Tali vincoli si scontrano quando la pista risulta troppo larga per determinati componenti (soprattutto qualche ostico SMD!)

Un primo metodo consiste nella gestione manuale: laddove si ha bisogno di percorsi a resistività inferiore si imposta una larghezza più elevata.
Chiaramente la net class sarà qui ininfluente e settata ai valori minimi. Il DRC (Design Rule Check) quindi non ha modo svolgere alcuna verifica, visto che la scelta adeguata ricade tutta sull’umano alla progettazione.
Chiaramente questo metodo non è pratico quando le dimensioni della PCB crescono, soprattutto se si vuol avere una doppia conferma dei vincoli rispettati.

L’unico modo per poter impostare regole diverse ad un segnale è quello di suddividerlo in segmenti con diverse label, giuntate assieme attraverso dei jumper o net-ties.

Alimentazione “power” e “regular” unite con net tie

A livello di layout, a ciascun jumper si va ad associare una footprint net-tie. CvPCB mette a disposizione un set di impronte preconfezionate che implementano banalmente dei cortocircuiti ed evitano conflitti a livello di DRC (e, come si diceva inizialmente, rendono più agevole il collegamento).

Questo particolare flusso permette anche di controllare con maggiore accortezza le diramazioni delle linee di potenza. Le alimentazioni non andrebbero piazzate a casaccio, pena la perdita di performance di un circuito o il cattivo funzionamento dei suoi componenti.
Consideriamo l’esempio di un circuito con due aree: una “maggiormente esosa” in termini di risorse energetiche, l’altra più parsimoniosa e che possibilmente desidererebbe una alimentazione pulita e stabile. Il giunto dovrebbe situarsi il più a monte possibile, così da “isolare” il più possibile le due aree.

Prelievo di tensione a monte, nei pressi di un regolatore di tensione