MS Surface Go 2 - periferiche funzionanti con Ubuntu 21.10

Riconoscimento, installazione e configurazione delle periferiche.
LUBO-BACK
Prode Principiante
Messaggi: 84
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

MS Surface Go 2 - periferiche funzionanti con Ubuntu 21.10

Messaggio da LUBO-BACK »

Edit del 26 giugno 2022: dovrebbe funzionare tutto sia per il surface go per il surface go 2 ed originariamente non avevo fatto distinzioni. Il surface go 3 è diverso sotto il profilo della camera. Per non fare pasticci, preciso che sono esperimenti sul Go 2 che dovrebbero funzionare, appunto, anche sul Go "originario".

Volevo aprire, a beneficio degli altri possessori di un Microsoft Surface go 2 una pagina con lo stato dell’arte di quello che funziona su linux.

Che è quasi tutto.

Mi sembra una cosa utile, sia perché ci sono solo riferimenti in inglese, sia perché la stessa pagina di github mischia diversi Surface con diverse caratteristiche e trovare le informazioni dedicate al singolo modello è abbastanza difficile.

Io ho il modello intermedio con il pentium gold, 8 giga di ram ed ssd da 128 giga ed Ubuntu 21.10 l’ho installato così viewtopic.php?f=97&t=649043 su una piccola partizione di Windows 11.

Il tipo di installazione seguita comprende, direttamente da installer grafico, la possiilità di applicare e patch per il pieno funzionamento della tastiera cover e per il parziale funzionamento delle telecamere.


Ora, quello che funziona:

- lo schermo, con il pieno supporto al tocco, tanto che funzionano anche le gesture di Gnome a tre e quattro dita (ottime);

- l’orientamento dello schermo, quando staccato dalla tastiera. Quando la tastiera è ripiegata all’indietro, lo schermo rimane in orizzontale (ma forse mi sfugge qualche impostazione);

- la surface pen non l’ho ancora testata ma credo che ci potrebbe essere qualche problema nel passaggio in portrait (perché l’ho letto in giro e perché io stesso avevo avuto un problema simile viewtopic.php?f=9&t=646089&p=5259803&hi ... m#p5259803 ) resta una delle cose da controllare;

- la tastiera, retroilluminazione compresa, e le gesture da touchpad - resta un piccolo problema di regolazione non voluta della luminosità dello schermo quando la tastiera non è del tutto agganciata (ma è roba da poco);

- funziona ovviamente il microfono, così come l’altoparlante e vede correttamente i dispositivi bluetooth;

- la batteria dura come in windows o marginalmente meno, mentre le prestazioni sono molto migliori, sembra un altro dispositivo, ma questo me lo aspettavo, perché 8 giga di ram su Ubuntu sono "tanta roba" mentre con Windows sono robetta;

- le due telecamere “normali” funzionano su cheese, mentre la hello camera ad IR non funziona proprio, anche se la comunità ci sta lavorando.

Venendo più da vicino alle telecamere, funzionano appunto su cheese, ma non nel browser, sicché -almeno per ora- non sono riuscito ad usarle in google meet, MS teams, Zoom, Skype eccetera.

Il work-around più facile è quello di installare droidcam https://www.dev47apps.com/droidcam/linux/ e di usarlo come camera virtuale nelle applicazioni di cui sopra. Funziona, anche bene, ma non è l’ideale se non ci si può appoggiare ad un tavolo/scrivania.

In realtà, prendendo lo spunto da github e da questo sito https://neilzone.co.uk/2021/08/working- ... face-pro-6 sono riuscito a vedere le due camere in qcam e ad avviare dei loopback che, in sostanza, sono dei dispositivi virtuali che prendono il “segnale” da una delle camere fisiche del dispositivo. Quando la procedura funziona, si dovrebbe poi potere utilizzare alternativamente una delle telecamere anche nel browser ed in tutte le app del pc.

Appunto, dovrebbe, Perché, quando avvio lo streaming del dispositivo virtuale con

Codice: Seleziona tutto

gst-launch-1.0 libcamerasrc camera-name='\\_SB_.PCI0.LNK1' !     video/x-raw,width=1280,height=720,framerate=30/1,format=NV12     ! videoconvert ! video/x-raw,format=YUY2 ! videoconvert !     v4l2sink device=/dev/video42\

ricevo il messaggio che la pipeline non è ben impostata e devo aggiungere delle code (riferimento al comando queue !) e che il buffering non è sufficiente,

Ho provato ad aggiungere le code richieste, ma lo streaming non parte, anche se riduco il framerate e gli altri parametri.

Anche qui su github https://github.com/linux-surface/linux- ... -895053359 non ho trovato riferimenti utili, ma sto ancora cercando di assumere un po’ di informazioni.

Vedrò di postare gli aggiornamenti, spero positivi, ed invito gli naltri possessori di questo bel piccolo Surface a condividere le loro esperienze.
Ultima modifica di LUBO-BACK il domenica 26 giugno 2022, 12:17, modificato 2 volte in totale.
LUBO-BACK
Prode Principiante
Messaggi: 84
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: MS Surface Go 2 - periferiche funzionanti con Ubuntu 21.10

Messaggio da LUBO-BACK »

Per chi fosse interessato, posto quello che ottengo avviando il loopback... Non riesco a fare meglio di così.

Peraltro, con qcam e cheese le due telecamere funzionano perfettamente.

Buona serata.

Codice: Seleziona tutto

gst-launch-1.0 libcamerasrc camera-name='\\_SB_.PCI0.LNK1' ! \
    video/x-raw,width=1280,height=720,framerate=30/1,format=NV12 \
    ! videoconvert ! video/x-raw,format=YUY2 ! videoconvert ! \
    v4l2sink device=/dev/video42
Impostazione della pipeline a PAUSED ...
[0:20:24.409881905] [5044]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3489-a2aa1b4c
[0:20:24.427411633] [5045]  INFO IPU3 ipu3.cpp:1204 Registered Camera[0] "\_SB_.PCI0.LNK0" connected to CSI-2 receiver 0
[0:20:24.442449275] [5045]  INFO IPU3 ipu3.cpp:1204 Registered Camera[1] "\_SB_.PCI0.LNK1" connected to CSI-2 receiver 1
La pipeline è viva e non necessita il PREROLL ...
La pipeline è in PREROLLED ...
Impostazione della pipeline a PLAYING ...
New clock: GstSystemClock
[0:20:24.454226462] [5046]  INFO Camera camera.cpp:1028 configuring streams: (0) 1280x720-NV12
ATTENZIONE: dall'elemento /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: La costruzione della pipeline non è valida, aggiunge delle code.
Informazioni di debug aggiuntive:
../libs/gst/base/gstbasesink.c(1249): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:
Not enough buffering available for  the processing deadline of 0:00:00.015000000, add enough queues to buffer  0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000.
^Chandling interrupt.
Interrotto: arresto della pipeline ...
Execution ended after 0:04:29.415359117
Impostazione della pipeline a NULL ...
Esecuzione di free sulla pipeline...
Ultima modifica di LUBO-BACK il domenica 26 giugno 2022, 12:06, modificato 1 volta in totale.
LUBO-BACK
Prode Principiante
Messaggi: 84
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: MS Surface Go 2 - periferiche funzionanti con Ubuntu 21.10

Messaggio da LUBO-BACK »

Codice: Seleziona tutto

gst-launch-1.0 libcamerasrc camera-name='\\_SB_.PCI0.LNK1' !     video/x-raw,width=1280,height=720,framerate=30/1,format=NV12     ! videoconvert ! video/x-raw,format=YUY2 ! videoconvert ! queue !     v4l2sink device=/dev/video42
Un po' artigianale, ma così funziona. Testato in skype su firefox, dopo avere abilitato un "dummy device".

Comunque promettente, per chi avesse intenzione di comprare questo device.

Edit: funziona anche in google meet, sempre su firefox e dopo aver abilitato il solito dummy device. Prima mi dava la sola opzione della droid camera (cioè di quell'app che consente di usare lo smartphone come telecamera). Per ora non riesco a far funzionare ms teams, ma è già un passo avanti.

NB: ovviamente il terminale da cui si è avviato lo streaming va lasciato attivo.

Altro edit: funziona anche in ms teams, ma solo nell'app desktop, non in firefox (almeno non nella versione installata sul mio pc la 99.0).

Manca giusto da verificare zoom....
Ultima modifica di LUBO-BACK il domenica 26 giugno 2022, 12:06, modificato 1 volta in totale.
LUBO-BACK
Prode Principiante
Messaggi: 84
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: MS Surface Go 2 - periferiche funzionanti con Ubuntu 21.10

Messaggio da LUBO-BACK »

Qualche informazione per chi avesse il mio stesso dispositivo.

A seguito dell'ultimo aggiornamento di libcamera una dozzina di giorni fa, funziona solo la camera frontale (cioè quella per le videoconferenze).

Nella fase di preparazione della build di libcamera, ben descritta qui https://neilzone.co.uk/2021/08/working- ... face-pro-6 è da qualche giorno necessario installare yaml come dipendenza necessaria con

Codice: Seleziona tutto

sudo apt install libyaml-dev
A breve dovrebbe tornare utilizzabile anche la camera sul retro e dovrebbe migliorare l'autofocus, stando a quanto si dice su github, anche se personalmente non la userò quasi mai. Per la camera ad infrarossi c'è un work in progress ma nulla di immediato, stando a quanto ho letto in giro.

Per quanto riguarda le varie applicazioni, la telecamera funziona senza loopback in cheese e qcam, mentre con il loopback (cioè lanciando lo streaming come sopra) non funziona in chrome ma solo in firefox. Non ho ancora provato altri browser e non è chiaro il motivo nemmeno su github.

In firefox funziona benissimo in google meet e skype. Per quanto riguarda MS teams ho dovuto scaricare l'app desktop, perché firefox non è compatibile con la versione web di tale servizio, ma poi la telecamera funziona regolarmente.

A parte i dettagli tecnici, la mia opinione è che ubuntu sia utilizzabile come daily driver perché l'unica accortezza, quando si vuole usare la telecamera, è di passare a firefox (ammesso che si usi chrome di default) e di lasciare aperta una finestra del terminale con in esecuzione lo script che lancia lo streaming (è facile verificare quando è attivo, perché si illumina la lucina bianca della telecamera).
Ultima modifica di LUBO-BACK il domenica 26 giugno 2022, 12:06, modificato 1 volta in totale.
LUBO-BACK
Prode Principiante
Messaggi: 84
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: MS Surface Go 2 - periferiche funzionanti con Ubuntu 21.10

Messaggio da LUBO-BACK »

Mi correggo da solo, per usare MS teams in firefox basta cambiare lo user.agent https://medium.com/@dan_ringwald/make-m ... 67fa0485ac
Ultima modifica di LUBO-BACK il domenica 26 giugno 2022, 12:06, modificato 1 volta in totale.
LUBO-BACK
Prode Principiante
Messaggi: 84
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: MS Surface Go 2 - periferiche funzionanti con Ubuntu 21.10

Messaggio da LUBO-BACK »

Problema risolto con chrome, ecco il bug https://github.com/umlaeute/v4l2loopback/issues/78

E' bastato digitare nel terminale

Codice: Seleziona tutto

insmod v4l2loopback exclusive_caps=1
ed ho ottenuto (come mi aspettavo, visto che il device era già configurato)

Codice: Seleziona tutto

insmod: ERROR: could not load module v4l2loopback: No such file or directory
Poi ho avviato lo streaming nuovamente e, da chrome, ho aperto Google meet e ho magicamente avuto l'opzione di usare la fotocamera, che si è rivelata perfettamente funzionante anche in MS teams e skype
LUBO-BACK
Prode Principiante
Messaggi: 84
Iscrizione: mercoledì 19 gennaio 2022, 1:00
Sesso: Maschile

Re: MS Surface Go 2 - periferiche funzionanti con Ubuntu 21.10

Messaggio da LUBO-BACK »

Aggiornamento del 26 giugno: entrambe le telecamere funzionano, a condizione di rimanere su Ubuntu 21.x

Qui trovate un piccolo script per accedendere/spegnere la telecamera frontale (quella per le videoconferenze) viewtopic.php?f=33&t=649759&p=5302116&h ... t#p5302116

Codice: Seleziona tutto

#!/bin/bash
ESEC=`ps aux | grep gst | wc -l`
if [ $ESEC -gt 1 ];
then pkill gst-launch-1.0;
else gst-launch-1.0 libcamerasrc camera-name='\\_SB_.PCI0.LNK1' !     video/x-raw,width=1280,height=720,framerate=30/1,format=NV12     ! videoconvert ! video/x-raw,format=YUY2 ! videoconvert ! queue !     v4l2sink device=/dev/video42 ;
exit 0;
fi
Basta editare '\\_SB_.PCI0.LNK1' in '\\_SB_.PCI0.LNK0' per avviare lo stream dalla camera esterna.

Alla fine, il modo più semplice per usare questi script è quello di salvarli in /usr/bin , dare i permessi di esecuzione con sudo chmod + x nome file e percorso ed avviare con degli shortcut da tastiera.

Quanto alla surface pen, funziona molto bene in xournal ++, gomma compresa, viene riconosciuta ed abbinata anche via bluetooth e, col tasto inferiore, riesco ad inviare comandi predefiniti (come il "back" per andare indietro nel browser). Al momento non riesco ad associare funzioni al tasto superiore, anche se la GUI c'è.

In fondo, non così male.
Scrivi risposta

Ritorna a “Driver e periferiche”

Chi c’è in linea

Visualizzano questa sezione: Google [Bot] e 22 ospiti