ThinkVision LT1421 USB2 monitor e linux (X11)

Farlo funzionare comodamente su linux (ubuntu e derivate) usando un semplice script bash.

Tempo fa’ ho acquistato su ebay un monitor USB 2 della Lenovo, l’ LT1421.

A casa ho trovato il piacere di avere collegato e quindi usare più di un monitor allo stesso tempo.

Tenere aperte e in vista una sacco di finestre e’ comodo e quando si e’ in giro col portatile un po’ il secondo monitor ti manca.

Ho cosi cercato sulla baia qualcosa di usato, non troppo vecchio e che si collegasse con solo un cavo.

Ho trovato questo ThinkVision LT1421 (specifiche qui) che ho pagato 50€ circa. Il monitor e’ un 14″ 1368×768 ed ha le medesime dimensioni fisiche del mio ThinkPad e quindi si può tranquillamente portare assieme nella stessa tasca.

Essendo un ThinkVision ho pensato “Vuoi che non riesca a farlo andare sul linux? Ci saranno sicuramente i driver!”.

Beh, la Lenovo i driver per linux non li fornisce e i kernel di default non ha moduli adatti a farlo andare. Aggiungi poi che il server grafico non riconosce correttamente le caratteristiche del monitor e ti trovi con delle belle righe colorate al posto del desktop sul secondo schermo.

Ho risolto googlogando come sempre. Altri (anche se non so chi ne sia venuto a capo per primo) hanno fatto il grosso del lavoro sporco per me ed io ho dovuto solo incollare piu’ cose.

Per farlo andare si devono da prima installare i driver proprietari della display-link (che al momento della scrittura trovate su https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu)

Le relative info per l’installazione sono https://support.displaylink.com/knowledgebase/articles/684649

In pratica:

  • Aggiornare il sistema
sudo apt-get update
sudo apt-get dist-upgrade -y

  • Estrarre lo zip scaricato e rendere il file .run li contenuto eseguibile
unzip displaylink.zip
chmod +x displaylink.run

  • Installare due pacchetti per la gestione dei drm
sudo apt-get install dkms
sudo apt-get install libdrm-dev
  • Eseguire l’installer .run
sudo ./displaylink.run

A questo punto si dovrebbero installare i driver necessari al funzionamento. Dopo un doveroso riavvio di X11 ( o del sistema) si collega il monitor e…. tante belle righe orizzontali colorate al posto dell’immagine del desktop che ci si aspettava.

Driver installati ma schermo non configurato correttamente

Questo e’ dovuto al fatto che X11 non riconosce correttamente le dimensioni e le caratteristiche del monitor.

LA SOLUZIONE

Per farlo funzionare e’ fargli conoscere i valori giusti. Usando xrandr da prima si identifica come il sistema chiama il nuovo monitor e poi gli si insegna come usarlo.

  • Identifico il monitor principale
xrandr | grep primary | awk '{print $1}'
  • Identifico il monitor ThinkVision LT1421 (DVI e’ il prefisso, piu volte lo scolleghi e lo ricolleghi il numero che segue cambia)
xrandr | grep DVI* | cut -f1 -d' '
  • Insegno a X11 un modo nuovo, gli dico dimensioni e frequenza adatte al LT1421
xrandr --newmode "1368x768_59.90"  85.72  1368 1440 1584 1800  768 769 772 795  -HSync +Vsync
  • Aggiungo questo “modo” ai modi destinati al LT1421 (nell’esempio DVI-I-1-1 va sostituito con l’identificativo trovato prima)
xrandr --addmode DVI-I-1-1 1368x768_59.90
  • Quindi si spegne e si riaccende con le nuove caratteristiche. (nell’esempio “–right-of $PRINC” significa a destra dello schermo identificato prima come principale)
xxrandr --output $DVIN --off
xrandr --output $DVIN --mode "1368x768_59.90" --right-of $PRINC 

Tanto casino per poi scrivere due scriptini veramente base per farlo andare velocemente.

Li trovate nel mio repository su github cliccando qui sotto.

https://github.com/pbavie/ThinkVision_lt-1421_USB_Monitor

Uno e’ uno script bash semplice semplice che specifica una posizione fissa per il monitor ( a destra del principale).

L’altro, piu’ complesso, usa zenity ( se non installato “sudo apt-get install zenity” ) per creare una finestra di dialogo GTK+ per permettere di posizionare il monitor a piacere.

Come si presenta la finestra di dialogo dello script

Quest ultimo lo trovo decisamente piu’ comodo perché in mobilita’ non sempre il secondo monitor va “a destra” del portatile.

E dopo tutto questo lavoro per farlo andare comodamente con X11… ho avuto modo di provare il piu’ moderno wayland su un sistema linux Mint e posso dire che i driver della display link hanno riconosciuto immediamente il monitor e lo hanno reso disponibile all’utilizzo senza alcun problema.

Beh, meglio cosi 🙂

See you!

chroot – easy way

Fare il chroot su un sistema linux può risolvere un bel numero di problemi.

Di solito si usa per accedere al disco di un sistema che non ne vuole sapere di avviarsi correttamente e sul quale quindi non si riesce ad accedere.

La soluzione consiste nell’avviare un altra distro Linux che abbia la possibilità di montare il disco del sistema problematico, questa può essere una live o un altro PC al quale si collega fisicamente il disco (anche via adattatore USB).

Le operazioni da fare sono semplici e vanno fatte da ROOT (o con sudo davanti).

Inanzi tutto si deve montare il sistema “rotto” ,supponiamo che il device sia /dev/sdb1 e lo si vuole montare in /mnt/rotto (creare la cartella di destinazione se non esiste)

 mount /dev/sdb1/ /mnt/rotto

fatto questo si può navigare il contenuto del sistema ma le modifiche che si possono fare spesso non sono sufficienti a risolvere i problemi. Un problema tipico e’ un errore dovuto ad un aggiornamento andato male… per risolverlo ci si deve “loggare” sul sistema e per farlo ci si deve montare altre due partizioni per far conoscere al sistema “rotto” l’infrastruttura che lo ospita. Le cartelle interessate sono “dev” e “proc”

mount -o bind /dev /mnt/rotto/dev

l’opzione bind di mount e’ un po’ come duplica… almeno credo :). Manca ora “proc” da montare.

mount -t proc none /mnt/rotto/proc

Fatto questo e’ ora possibile accedere al file-system del sistema “rotto” e usarlo come se ci si fosse loggati normalmente… o quasi dai.

chroot /mnt/rotto

ecco,siamo DENTRO! Ed una volta dentro anche un semplice “apt update && apt upgrade” potrebbe salvare il sistema “rotto” 🙂

per uscire dal chroot basta un semplice

exit

e si torna al sistema precedente, ricordarsi di smontare tutto e via.

VM su CLOUD.GOOGLE.COM

cloud.google.com (o Google Cloud Platform) e’ un bel servizietto di google per … beh un sacco di roba, molta della quale non so neppure cosa faccia.

La cosa che pero’ ho scoperto e’ che appena ci si iscrive lo si può provare a gratis usando una sommetta che ti viene messa a disposizione.

Lasciando perdere questa sommetta (che volendo si può usare fino ad esaurimento e poi basta) google mette a disposizione una ben specifica tipologia di macchina virtuale a GRATIS basta rispettare alcune caratteristiche. Tra le caratteristiche c’e’ che questa macchina può avere un indirizzo IP PUBBLICO FISSO ed e’ quindi possibile assegnargli un nome di dominio per poter raggiungerla comodamente. (I nomi di dominio si registrano a parte, magari si possiede come nel mio caso un dominio e giocando con i DNS si puo’ assegnargli un sottodominio come git.baviero.it

Tutto ben spiegato in QUESTO link.

Interessante e’ sapere che non e’ che si ha gratis 1 VM… si ha gratis L’USO di 1 VM all’interno del mese con quelle caratteristiche.

Questo significa che se ci si fa’ ,ad esempio, 2 VM con quelle caratteristiche e le si tengono accese ENTRAMBE per 15gg si ha consumato tutto il tempo disponibile… ma le macchine erano 2 e magari diverse.

Detto questo facciamo un riassunto delle caratteristiche che deve avere questa macchina per essere GRATIS

Dopo aver creato un progetto, ci si può finalmente creare una VM.

  • Zone – Le zone disponibili sono tre e ben definite, non cercare di crearla in europa tipo 🙂
  • Tipo di macchina – Serie N1 e tipo F1-MICRO 1vCPU, 614Mb di memoria
  • Disco di avvio – Una distribuzione di quelle base o personalizzata, tutte quelle molto belle sul market sono a pagamento.
  • Consentire accesso completo alle API di Cloud
  • Consentire traffico HTTP HTTPS – vedete voi lo scopo della macchina
  • SICUREZZA – aggiungere una chiave privata alla fine della quale mettete un nome di utente (es: ssh-rsa AAAAB3N… …zadgfdvsfdafdfvfd paolo)
  • DISCHI – eliminare disco di avvio quando si elimina istanza (altrimenti se la cancellate il disco resta li a far polvere e a costare)

Eccola creata. Una volta creata si deve sistemare la configurazione della rete per avere l’ip pubblico statico e per aprire le porte giuste. Per fare questo una volta creata si clicca sui 3 puntini sulla dx della istanza e si va in DETTAGLI DI RETE, poi su Indirizzi Ip esterni ( sulla SX) e li si imposta statico dandolgli il nome dell’istanza per poterselo ricordare che e’ di quella macchina.

Ecco dove si imposta l’IP statico

Adesso si sistema il firewall , se avete gia’ impostato http,https allora siete raggiungibili.

Sunto veloce ma sufficiente per imbastire una macchinina 🙂