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!

Sergio, il mio Volkswagen T2 del 1971

Si, il mio T2 ha un nome proprio, SERGIO.

Non sono pazzo, il vero pazzo (vespazzo per l’esattezza) e’ quello che me lo ha venduto e consegnandomelo mi ha detto “io lo ho sempre chiamato Sergio”.

Da allora per me e chiunque lo abbia mai conosciuto lui e’ IL Sergio.

Mio figlio, fin da piccolissimo, se ne e’ subito innamorato e per lui tutti i furgoni Volkswagen sono “Sergi”.

Indicativamente i suoi dati sono:

  • Volkswagen T2 PickUp del 1971
  • Cilindrata 1600cc
  • Cavalli 45
  • Posti a sedere 3
  • Capacita’ di carico circa 950Kg
  • Consumi circa 8-9Km/l

Il suo stato di salute e’ sempre precario, il suo attuale meccanico (cioe’ io) non lo cura come meriterebbe, un po’ per le sue scarse capacita’ ed un po’ per le scarse risorse economiche del proprietario (sempre io).

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.