Scaling στον Επόπτη

Ξεκίνησε από alkisg, 18 Οκτ 2021, 11:16:00 ΠΜ

« προηγούμενο - επόμενο »

alkisg

Η πολλή θεωρία είναι στο https://epoptes.org/documentation/vnc/.

Η γρήγορη έκδοση είναι ότι ανέβηκε νέα έκδοση του Επόπτη στο αποθετήριο της Τεχνικής Στήριξης για το Ubuntu 20.04, η οποία έχει έναν καλύτερο VNC viewer ο οποίος υποστηρίζει scaling.
Προς το παρόν όμως η ενεργοποίησή του γίνεται χειρωνακτικά· αφού δοκιμαστεί λίγο θα γίνεται αυτοματοποιημένα κατά την εγκατάσταση των sch-scripts.

Συγκεκριμένα, δίνουμε:

Κώδικας: Bash
sudo apt update
sudo apt full-upgrade --yes
sudo apt install realvnc-vnc-viewer
sudo apt purge --auto-remove xvnc4viewer
vncviewer
# Αποδεχόμαστε την άδεια χρήσης, ξετσεκάρουμε τα στατιστικά
# Κλείνουμε τον viewer
# Αντιγράφουμε την έγκριση της άδειας χρήσης για όλους τους χρήστες:
sudo cp ~/.vnc/config.d/vncviewer /etc/epoptes/
# Και τέλος κάνουμε δημοσίευση εικονικού δίσκου και επανεκκίνηση clients και server
sudo ltsp image /
reboot

thanos

#1
Έχω κάνει τη διαδικασία, αλλά κατά την εκπομπή στους clients δεν γίνεται scaling.
(Θύμισέ μου το chat...?)

Update: Είχα ξεχάσει να βγάλω το παλιό vnc!  : :angel:


alkisg

Θάνο μόλις το τεστάρεις, ανέβασε εντυπώσεις για το αν τον θεωρείς καλύτερο, ώστε να οριστεί ως ο προεπιλεγμένος VNC viewer.

thanos

Το (ενοχλητικό) πρόβλημα που εντόπισα είναι ότι "κολλάνε" κάποιοι clients όταν τους ξαναδίνω πίσω την οθόνη τους... Ψάχνουν το vnc server.

alkisg

Πώς τον "ψάχνουν", εμφανίζουν κάποιον διάλογο ή κάποιο μήνυμα λάθους; Ή μένει κολλημένη η οθόνη στην τελευταία εικόνα;

vovos

Το δοκίμασα σε UBUNTU 20.04 64bit και παίζει άψογα! Επιτέλους θα μπορούν τα παιδιά και εγώ να βλέπουμε ολόκληρες οθόνες χωρίς sidebars! Ευχαριστούμε!!! :D :D :D

alkisg

Ανέβηκε ενημερωμένη έκδοση που διορθώνει το εξής πρόσφατο πρόβλημα (regression):

μερικές φορές η παρακολούθηση και η υποβοήθηση χρήστη δεν δούλευαν με το πρώτο κλικ και ήθελαν δεύτερο.

Αν κανείς δει το πρόβλημα "δεν τερματίζει η εκπομπή σε κάποιους clients", και αφού έχει σιγουρευτεί ότι έχει κάνει ενημέρωση και δημοσίευση, ας έρθει από το IRC να δούμε μήπως λύσουμε κι αυτό.

gregflo

Καλησπέρα. Έγινε εγκατάσταση της νέας έκδοσης του επόπτη μέσω του προγράμματος ενημέρωσης λογισμικού, αλλά κάθε φορά που κάνω εκπομπή της οθόνης μου στους clients την πρώτη φορά, πρέπει να κάνω αποδοχή αδείας χρήσης σε καθένα ξεχωριστά. Πώς μπορώ να το ξεπεράσω αυτό;

alkisg

Καλημέρα, έκανες τις εντολές που γράφω στο αρχικό μήνυμα; Αν όχι κάν' τες ώστε να αποδεχτείς εσύ την άδεια χρήσης εκ μέρους των μαθητών.

gregflo


alkisg

#11
@thanos, σημειώνω εδώ τι προσθέσαμε στο client-functions· αν δουλεύει πιο σταθερά τώρα, να το προσθέσουμε για όλους: -hideclosealert=true -autoreconnect=false

Ο @vovos ανέφερε ένα ακόμα πρόβλημα, ότι σε κάποιες περιπτώσεις, κάνοντας προβολή οθόνης πριν κάνουν login οι μαθητές, η οθόνη του καθηγητή εμφανίζεται για ένα δευτερόλεπτο και μετά κρύβεται.
Το ανέφερα στο realvnc, να δούμε ΑΝ απαντήσουν.
Συγκεκριμένα, όταν μετά από ένα δευτερόλεπτο κρύβεται το banner dialog, ο vncviewer πηγαίνει πίσω από τον lightdm και κρύβεται! Αν μέσα από τον Επόπτη τρέξουμε `sudo marco`, δηλαδή τον διαχειριστή παραθύρων, μπορούμε να τα μετακινήσουμε και να το δούμε.
Ένα workaround είναι να μετακινήσουν το ποντίκι οι μαθητές σε μια ...περίεργη θέση: εντός της περιοχής που θα προβάλλεται η οθόνη του καθηγητή, αλλά εκτός του VNC banner που εμφανίζεται για ένα δευτερόλεπτο. Π.χ. να βρίσκεται το ποντίκι είτε τέρμα ανατολικά είτε τέρμα νότια της οθόνης (ανάλογα το aspect ratio της προβολής). Στη συνέχεια η προβολή γίνεται κανονικά.
Ένα δεύτερο workaround είναι να τρέξει ο καθηγητής την εντολή "sudo marco" μέσα από τον Επόπτη πριν την προβολή, ενώ για να μην δημιουργήσει προβλήματα αργότερα, πριν συνδεθούν οι μαθητές, θέλει και "sudo systemctl restart lightdm".

Για αυτοματοποίηση είναι πιο δύσκολο, χρειάζεται να φτιαχτεί ένα πρόγραμμα python που θα κάνει αυτόματα αυτή τη μετακίνηση του ποντικού, και μετά θα εκτελεί τον vncviewer. Γράφω εδώ την αρχή, θα το υλοποιήσουμε όμως μόνο αν δεν βρεθεί πιο εύκολος τρόπος...

Παράθεση από: /usr/local/bin/vncviewer
#!/usr/bin/env python3

from ctypes import cdll

def move_mouse(x,y):
    dll = cdll.LoadLibrary('/usr/lib/x86_64-linux-gnu/libX11.so')
    d = dll.XOpenDisplay(None)
    root = dll.XDefaultRootWindow(d)
    dll.XWarpPointer(d,None,root,0,0,0,0,x,y)
    dll.XCloseDisplay(d)

# TODO: determine a position based on resolution
move_mouse(0, 500)
# TODO: then exec /usr/bin/vncviewer "$@"

markakis

Επιβεβαιώνω και εγώ το θεματάκι του realvnc με την προβολή οθόνης πριν από το login και το workaround με το βελάκι σε συγκεκριμένη θέση.

Ένα θεματάκι ακόμα: με τον xvnc4viewer μπορούμε να έχουμε κλειδωμένους τους υπολογιστές και στη συνέχεια να επιλέξουμε προβολή οθόνης και η προβολή να επικαλύψει το κλείδωμα. Με τον realvnc δεν συμβαίνει αυτό και θα πρέπει να πατήσουμε ξεκλείδωμα για να προβάλουμε.

Προσωπικά εγκατέστησα τον realvnc στο εργαστήριο τους ενός σχολείου που χρειάζομαι το scaling και στο άλλο που δεν το χρειάζομαι θα παραμείνω με xvnc4viewer.

alkisg

Ευχαριστώ @markakis θα κοιτάξω κι αυτό με το κλείδωμα οθόνης.

Υπάρχει και μια τρίτη επιλογή, το ssvnc:

sudo apt install --no-install-recommends ssvnc
sudo apt purge --auto-remove xvnc4viewer realvnc-vnc-viewer
sudo ltsp image /
reboot

Αυτό υποστηρίζει scaling αν και προς το παρόν οι μαθητές πρέπει να πατάνε δύο φορές F9 για να το ενεργοποιήσουν. Μπορούμε όμως να το διορθώσουμε αυτό ώστε να δουλεύει απευθείας.
Αυτό που με ανησυχεί με το ssvnc είναι ότι μου φαίνεται λίγο πιο αργό από τα άλλα, οπότε τελικά θα δείχνει λιγότερα frames per second. Αλλά δεν πήγα σε εργαστήριο να το δοκιμάσω.
Αν κάποιος το δοκιμάσει σε εργαστήριο και πει ότι είναι καλύτερο, μπορώ να διορθώσω το δυο-F9-για-scaling και να βάλουμε αυτό ως default.

thanos

> @thanos, σημειώνω εδώ τι προσθέσαμε στο client-functions· αν δουλεύει πιο σταθερά τώρα, να το προσθέσουμε για όλους: -hideclosealert=true -autoreconnect=false

Ως τώρα σίγουρα δουλεύει καλύτερα, δεν μου έχει παρουσιάσει το πρόβλημα που είχαμε, με το κόλλημα, ποτέ.