Πρόβλημα με το gcompris-qt

Ξεκίνησε από alkisg, 18 Σεπ 2018, 12:43:41 ΜΜ

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

alkisg

Η νέα έκδοση του gcompris χρησιμοποιεί OpenGL και επιτάχυνση 3D. Δυστυχώς έτσι σε κάποιες παλιές κάρτες γραφικών είτε δεν ανοίγει καθόλου (segmentation fault) είτε δείχνει άσπρη οθόνη.

Μια λύση είναι να απενεργοποιήσουμε την επιτάχυνση 3D από το ltsp.conf, είτε κεντρικά κάτω από το [clients] είτε κάτω από την ενότητα [mac-address] του εκάστοτε σταθμού εργασίας, βάζοντας τις παρακάτω γραμμές:

# Να εκτελείται το gcompris-qt χωρίς επιτάχυνση γραφικών.
POST_INIT_GCOMPRIS="printf '#!/bin/sh\n\nLIBGL_ALWAYS_SOFTWARE=1 exec /usr/games/gcompris-qt \"\$@\"\n' > /usr/local/bin/gcompris-qt; chmod +x /usr/local/bin/gcompris-qt"
# Εναλλακτικά: κανένα πρόγραμμα να μην χρησιμοποιεί επιτάχυνση γραφικών
# POST_INIT_SOFTWARE_OPENGL="echo 'export LIBGL_ALWAYS_SOFTWARE=1' >/etc/X11/Xsession.d/50sch-scripts"
# Να μην χρησιμοποιείται η επιτάχυνση vaapi που μερικές φορές κρασάρει το gcompris-qt
POST_INIT_RM_VAAPI="rm -f /usr/lib/*-linux-gnu/gstreamer-1.0/libgstvaapi.so"

edit: το νέο gcompris-qt υποστηρίζει και μια σχετική παράμετρο --software-renderer. ΔΕΝ την προτιμάμε γιατί μετά την αποθηκεύει μόνιμα στο λογαριασμό χρήστη, οπότε μετά αν ο χρήστης αλλάξει client πάλι δεν θα χρησιμοποιεί επιτάχυνση γραφικών.

edit #2: η εντολή ενημερώθηκε ώστε να δουλεύει στο νέο LTSP. Μην ξεχάσετε να εκτελείτε `ltsp initrd` μετά από κάθε αλλαγή στο ltsp.conf.

mitsospap

Παράθεση από: alkisg στις 18 Σεπ 2018, 12:43:41 ΜΜ
Η νέα έκδοση του gcompris χρησιμοποιεί OpenGL και επιτάχυνση 3D. Δυστυχώς έτσι σε κάποιες παλιές κάρτες γραφικών είτε δεν ανοίγει καθόλου (segmentation fault) είτε δείχνει άσπρη οθόνη.

Μια λύση είναι να απενεργοποιήσουμε την επιτάχυνση 3D από το lts.conf, είτε κεντρικά κάτω από το [Default] είτε κάτω από την ενότητα [mac-address] του εκάστοτε σταθμού εργασίας, βάζοντας τις παρακάτω γραμμές:

# Να εκτελείται το gcompris-qt χωρίς επιτάχυνση γραφικών.
INIT_COMMAND_GCOMPRIS="printf '#!/bin/sh\n\nLIBGL_ALWAYS_SOFTWARE=1 exec /usr/games/gcompris-qt \"\$@\"\n' > /usr/local/bin/gcompris-qt; chmod +x /usr/local/bin/gcompris-qt"

Σαν αυτο που εκανα εγω; Αν απενεργοποιησετε το acceleration θα σερνονται ολα τα γραφικα. Απεγκατασταση του gcompris καλυτερα και εγκατασταση κατι παρομοιο.
Χωρις openGL δεν παιζει κανενα παιχνιδι ή εφαρμογες σαν google maps

alkisg

mitsospap, δοκίμασες το συγκεκριμένο που λέω, ή μιλάς γενικά;
Γιατί εγώ το δοκίμασα σε Pentium 4 με αρχαία κάρτα Nvidia TNT2 και το σχολείο λέει ότι πάει το ίδιο γρήγορα όπως και στην 12.04.

Εντωμεταξύ η λύση που προτείνω απενεργοποιεί την επιτάχυνση μόνο στο gcompris, όχι γενικά, και έτσι οι υπόλοιπες εφαρμογές δεν επηρεάζονται.

mitsospap

Παράθεση από: alkisg στις 18 Σεπ 2018, 06:10:16 ΜΜ
mitsospap, δοκίμασες το συγκεκριμένο που λέω, ή μιλάς γενικά;
Γιατί εγώ το δοκίμασα σε Pentium 4 με αρχαία κάρτα Nvidia TNT2 και το σχολείο λέει ότι πάει το ίδιο γρήγορα όπως και στην 12.04.

Εντωμεταξύ η λύση που προτείνω απενεργοποιεί την επιτάχυνση μόνο στο gcompris, όχι γενικά, και έτσι οι υπόλοιπες εφαρμογές δεν επηρεάζονται.
Δεν καταλαβα οτι απενεργοποιειται μονο στο gcompris. Οχι δεν το δοκιμασα.

Δημήτρης Γκίνης

Σε ένα fat (P4, 2gb ram, gigabit, 82865G Integrated Graphics Controller) το gcompris έχει πρόβλημα: αρχικά εμφανίζει στην οθόνη "ξεπλυμένα" τα χρώματα και μετά κλείνει τελείως.
Δοκίμασα να απενεργοποιήσω την επιτάχυνση 3D από το lts.conf σε αυτόν αλλά τίποτα.
Μου κάνει εντύπωση γιατί δεν είναι τόσο παλιός και η κάρτα γραφικών δεν είναι από τις προβληματικές, σωστά;

alkisg

Δημήτρη αν θες έλα μια βόλτα από το IRC να το δούμε live. Θυμάμαι ότι κάποιες κάρτες γραφικών της σειράς 82xxx της Intel είχαν hardware προβλήματα cache coherency και για χρόνια παιδευόταν οι developers της Intel να τις κάνουν να μην κολλάνε, αλλά δεν θυμάμαι αν το συγκεκριμένο μοντέλο εμπίπτει σε αυτήν την κατηγορία.

Αν θες δοκίμασε και με XSERVER=vesa στο lts.conf. Αργά αλλά σταθερά... :)

alkisg

Τελικά μέσω IRC φάνηκε ότι ήταν λαθάκι κατά την αντιγραφή/επικόλληση της εντολής INIT_COMMAND_GCOMPRIS στο lts.conf οπότε πλέον όλα καλά.

Δημήτρης Γκίνης

Τελικά αποδείχτηκε ότι με απενεργοποίηση τιυ 3d έπαιζε οκ, απλά στην πρώτη δοκιμή είχα γράψει λάθος την σχετική εντολή (είχε ξεμείνει ένα # κάπου).

Update: τώρα είδα το post του Άλκη από πάνω

psyblaster

Γεια σας. Σε 18.04 μου εμφανίζει το παρακάτω:

teacher@teacher-VirtualBox:~$ INIT_COMMAND_GCOMPRIS="printf '#!/bin/sh\n\nLIBGL_ALWAYS_SOFTWARE=1 exec /usr/games/gcompris-qt \"\$@\"\n' > /usr/local/bin/gcompris-qt; chmod +x /usr/local/bin/gcompris-qt"
bash: !/bin/sh\n\nLIBGL_ALWAYS_SOFTWARE=1: event not found

teacher@teacher-VirtualBox:~$ INIT_COMMAND_GCOMPRIS="printf '#!/bin/sh\n\nLIBGL_ALWAYS_SOFTWARE=1 exec /teacher/games/gcompris-qt \"\$@\"\n' > /teacher/local/bin/gcompris-qt; chmod +x /teacher/local/bin/gcompris-qt"
bash: !/bin/sh\n\nLIBGL_ALWAYS_SOFTWARE=1: event not found


alkisg

Καλημέρα psyblaster,

την εντολή αυτή πρέπει να την γράψεις στο αρχείο ρυθμίσεων lts.conf μέσα από τα sch-scripts, όχι στο τερματικό:
http://ts.sch.gr/wiki/Linux/sch-scripts/Αρχεία_ρυθμίσεων

denispyr

Σε υπολογιστή που το gcompris γαχε πρόβλημα αλλά έτρεχε μόνο αν ήσουν επίμονος, ο alkisg το αυτοματοποίησε με αυτή τη ρύθμιση στα γενικά του lts.conf
# Να προσπαθεί να γίνει εκτέλεση του gcompris-qt μέχρι 10 φορές
INIT_COMMAND_GCOMPRIS="printf '#!/bin/sh\n\ni=0\nwhile [ \$i -lt 10 ]; do\ni=\$((i+1))\n/usr/games/gcompris-qt \"\$@\" && break\nsleep 0.1\ndone\n' > /usr/local/bin/gcompris-qt; chmod +x /usr/local/bin/gcompris-qt"
Διονύσης

Δημήτρης Γκίνης

@Άλκη: μόλις κλείσαμε χτες το IRC, δοκίμασα στο pc1 (αυτό που δεν ξεκίναγε το gcompris ο χρήστης ergast-1 με την καμία!!!) το εξής

(θυμίζω ότι όταν στο pc1 συνδέθηκες ως ergast-5 - χρήστης που είχε ήδη εκτελέσει επιτυχώς το gcompris στο fat client pc5 - έπαιξε):

συνδέθηκα - στο pc1 πάντα - ως ergast-11, χρήστης που μέχρι τότε δεν είχε κάνει login σε κάνενα μηχάνημα και ΔΕΝ ΕΠΑΙΞΕ!!

ΥΓ: είχα δοκιμάσει και στον server να συνδεθώ ως ergast-1 την ώρα που μιλάγαμε, αλλά..... δεν θυμάμαι τι έκανε το @#$%^%&^ (στον server ως administrator έπαιζε πάντως)

alkisg

Ναι αυτό είναι δαιμονισμένο, σαν ergast-2 και 5 και 6 παίζει, σαν 1 και 11 δεν παίζει.
Όταν ξαναβρεθούμε στο IRC θέλω να δοκιμάσω να κρατήσω backup του ergast-2, μετά να τον καθαρίσω, και να δω αν έτσι θα παίξει. Αν όχι, θα αρχίσω να ψάχνω τι (*#$(*&# ρυθμίσεις έχει ο 2 και εκεί παίζει.
Λες να παίζει αν ο χρήστης το έχει τρέξει πρώτα σε άλλο PC; Δεν αποκλείεται, να είναι θέμα του κώδικα "αρχικοποίησης" του gcompris... Πάντως αυτό δεν μου πολυακούγεται σαν θέμα γραφικών.

Δημήτρης Γκίνης

Πρόβλημα γραφικών σίγουρα δεν είναι: αν ήταν δεν θα έπαιζε με κανένα χρήστη στο συγκεκριμένο μηχάνημα.
Στο συγκεκριμένο σχολείο θα ξαναπάω από εβδομάδα (και αν, είναι φορτωμένο το πρόγραμμα. Είναι και αυτά τα νηπιαγωγεία μωρέ παιδάκι μου.....)

alkisg

Παράθεση από: Δημήτρης Γκίνης στις 24 Σεπ 2019, 10:29:19 ΠΜ
Πρόβλημα γραφικών σίγουρα δεν είναι: αν ήταν δεν θα έπαιζε με κανένα χρήστη στο συγκεκριμένο μηχάνημα.

Μην το λες... παραδείγματα:
Αν τρέξεις μια φορά `gcompris-qt --software-renderer` αποθηκεύεται ανά χρήστη και μετά τρέχει πάντα με software, οπότε κάνει διαφορά, π.χ. να παίζει μόνο με αυτόν τον χρήστη, ή αντίθετα να μην παίζει μόνο με αυτόν τον χρήστη.
Αν πας στο mate-tweak και ορίσεις ότι ο window manager είναι marco --no-composite, αποθηκεύεται ανά χρήστη και μετά κάνει διαφορά, π.χ. αυτός ο χρήστης να κάνει login σε clients με nvidia ενώ άλλοι χρήστες να κρασάρουν.
Κλπ κλπ...

gdrados

Σε περίπτωση που δεν ανοίγει ούτε στον server;
Μην προσπαθείς να μάθεις σ' ένα γουρούνι να τραγουδάει, χάνεις τον καιρό σου....κι ενοχλείς και το γουρούνι !!

alkisg

Άνοιξε τερματικό και επικόλλησε την παρακάτω εντολή. Τρέχει έτσι;

LIBGL_ALWAYS_SOFTWARE=1 /usr/games/gcompris-qt

gdrados

:~$ LIBGL_ALWAYS_SOFTWARE=1 /usr/games/gcompris-qt
exeCount set to:  3
Σφάλμα κατάτμησης (segmentation fault) (core dumped)
Αυτό ήταν το αποτέλεσμα
Μην προσπαθείς να μάθεις σ' ένα γουρούνι να τραγουδάει, χάνεις τον καιρό σου....κι ενοχλείς και το γουρούνι !!

Δημήτρης Γκίνης

Βρε μπας και φταίει η τελευταία έκδοση του gcompris ;

alkisg

@Δημήτρης, το παλιό gcompris που ήταν σε gtk δεν είχε κανένα θέμα. Το gcompris-qt προσπαθεί να χρησιμοποιήσει hardware επιτάχυνση και πολλές φορές παθαίνει τέτοια. Δεν έχω δει διαφορά ανάμεσα στο gcompris-qt 0.81-2 και το 0.96-1. Εκεί που δοκιμάζαμε τους clients στο IRC που έβγαζαν σφάλμα κατάτμησης, τα είχα δοκιμάσει και τα 2 με το ίδιο αποτέλεσμα.

@gdrados, κάνε δύο ακόμα δοκιμές:
1) Τρέχεις /usr/games/gcompris-qt --opengl-renderer και βλέπεις αν παίζει,
2) Αν όχι, κάνεις login ως teacher σε έναν client, τρέχει εκεί το gcompris-qt ώστε να κάνει την αρχικοποίησή του, μετά logout, πας στον server, κάνεις login ως teacher και ξαναπροσπαθείς.
Αν το (2) παίξει, τότε είναι πιο απλό, κάποιο bug στον κώδικα αρχικοποίησης και όχι στην opengl.


gdrados

1)/usr/games/gcompris-qt --opengl-renderer
exeCount set to:  14
renderer set to:  "opengl"
Σφάλμα κατάτμησης (segmentation fault) (core dumped)

2)Το έκανα σε ένα client που μπορεί να το τρέξει, αρχικοποιήθηκε αλλά στον server δεν είχε αποτέλεσμα. Επίσης ούτε η λύση για τους clients στο lts.conf είχε κάποιο αποτέλεσμα. Όσοι παίζανε παίζουνε, οι υπόλοιποι τίποτα...

Υ.Γ. Συγγνώμη για την καθυστέρηση στην απάντηση απλώς τώρα ξαναπήγα σε αυτό το σχολείο
Μην προσπαθείς να μάθεις σ' ένα γουρούνι να τραγουδάει, χάνεις τον καιρό σου....κι ενοχλείς και το γουρούνι !!

alkisg

Μου φαίνεται ότι αυτό δεν έχει σχέση με γραφικά και είναι κάποιο άλλο bug του gcompris-qt.
Αν κάποια στιγμή έχουμε και οι δύο πολύ χρόνο, να το δούμε live μέσω IRC, αλλά θα χρειαστεί compile, debugging κλπ, δεν νομίζω ότι με ένα σκέτο "core dumped" θα μπορέσουν να βγάλουν άκρη οι developers του gcompris-qt για να το φτιάξουν.

gdrados

Οπότε φαντάζομαι ότι ούτε και η παράμετρος --software-renderer του gcompris θα έχει αποτέλεσμα ε;
Μην προσπαθείς να μάθεις σ' ένα γουρούνι να τραγουδάει, χάνεις τον καιρό σου....κι ενοχλείς και το γουρούνι !!

alkisg

Νομίζω πως είναι ισοδύναμη με το LIBGL_ALWAYS_SOFTWARE=1, οπότε δεν νομίζω να κάνει κάτι. Όμως, αν κάποιος τρέξει μια φορά --software-renderer, τότε το θυμάται για πάντα σ' αυτόν τον χρήστη, οπότε μπορεί να έχει πρόβλημα σε άλλον υπολογιστή που δεν χρειάζεται software rendering. Επομένως το --software-renderer ας μην το χρησιμοποιούμε ποτέ.

Δοκίμασα να βάλω σε Ubuntu 18.04 το παλιό gcompris που ήταν βασισμένο σε gtk, και φάνηκε να δουλεύει. Αν λοιπόν κάποιος δεν βγάλει άκρη με το gcompris-qt, ας έρθει από το http://ts.sch.gr/wiki/IRC να δοκιμάσουμε και το παλιό gcompris.

παρις

Μια φωτογραφια απο το κεντρικο menu του ubuntu μπορει να ανεβασει κανεις; Εχω μια εκδοση 0.96 κατι και εχει αλλαξει αρκετα απο το παλιο.

Δημήτρης Γκίνης

#25
Παράθεση από: alkisg στις 26 Σεπ 2019, 02:39:17 ΜΜ
@Δημήτρης, το παλιό gcompris που ήταν σε gtk δεν είχε κανένα θέμα. Το gcompris-qt προσπαθεί να χρησιμοποιήσει hardware επιτάχυνση και πολλές φορές παθαίνει τέτοια. Δεν έχω δει διαφορά ανάμεσα στο gcompris-qt 0.81-2 και το 0.96-1. Εκεί που δοκιμάζαμε τους clients στο IRC που έβγαζαν σφάλμα κατάτμησης, τα είχα δοκιμάσει και τα 2 με το ίδιο αποτέλεσμα.
Άλκη, σε νέα εγκατάσταση 18.04 32bit, εμφανίστηκε σε 2 fat το ίδιο πρόβλημα όπως και σε εκείνο το σχολείο με τα "δαιμονισμένα" μηχανάκια που έλεγες (πιθανότατα θα έβγαζε και segmentation fault αλλά δεν έκατσα να ασχοληθώ) και το αντιμετώπισα ως εξής:
1) Έσβησα τους 2 χρήστες (7 και 8, με sudo deluser --remove-home username) και τα όλα τα σχετικά με αυτούς αρχεία που συνδεόταν σε αυτά τα μηχανάκια.
2) Συνδέθηκα σε αυτά με τον χρήστη 2, στο αντίστοιχα μηχάνημα (νο2) του οποίου το gcompris-qt έτρεχε κανονικά. Το gcompris έτρεξε και επιβεβαίωσα έτσι ότι δεν ήταν πρόβλημα hardware.
3) Ξαναέφτιαξα τους 2 αυτούς χρήστες (7 και 8.) και τους συνέδεσα διαδοχικά στο νο2 τρέχοντας κάθε φορά το gcompris.
4) Συνέδεσα του χρήστες 7 και 8 στα αντίστοιχα μηχανήματα και όλα καλά.

alkisg

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

Δημήτρης Γκίνης

Παράθεση από: alkisg στις 14 Νοε 2019, 08:59:19 ΠΜ
Δημήτρη νομίζω ότι αυτό το συγκεκριμένο χρειάζεται να αναφερθεί ως bug στο gcompris. Δυστυχώς εγώ δεν το έχω αναπαραγάγει, οπότε θα χρειαστεί να βρεθεί κάποιο PC όπου να μπορούμε να δοκιμάσουμε patches κλπ, δηλαδή και να παρουσιάζει το πρόβλημα και να είναι συχνά διαθέσιμο.
Μου έχει τύχει σε 2 σχολεία από τα οποία κανένα δεν είναι κοντά μου/εύκολο να πάω.
Αν κάποια στιγμή μου εμφανιστεί πάλι θα προσπαθήσω να πάρω το μηχανάκι στο γραφείο για να το πασπατέψουμε.
Μέχρι τότε, σε όποιον εμφανιστεί μπορεί να ακολουθήσει το workaround που έγραψα.

demetriox

Καλημέρα Άλκη και σε όλους τους συναδέλφους...

Πήρα για το εργαστήριο 3 μηχανάκια σε προσφορά (50€) https://www.cosmodata.gr/product/335223/pc-refurbish-efkeries/pc-lenovo-thinkcentre-m70e-sff-intel-core-2-duo-e7xxx-4gb-ram-500gb-hdd-dvd-windows-7-professional

αλλά και στα τρία δεν φορτώνει καθόλου ούτε το gcompris ούτε τον πατατάνθρωπο... κάνει προσπάθεια να τα ανοίξει αλλά τίποτα...

Καμιά ιδέα..?

alkisg

Θες να έρθεις λίγο από το http://ts.sch.gr/wiki/IRC να το δούμε live;
Να δούμε γιατί δεν παίζουν, κι αν φταίει η υποστήριξη 3D της κάρτας γραφικών, τουλάχιστον να σου βάλω το παλιό gcompris.

demetriox

Τη Δευτέρα τωρα Άλκη... ευχαριστώ

alkisg

#31
Ένα workaround στο πρόβλημα "Σφάλμα κατάτμησης..." είναι η παρακάτω γραμμή στο lts.conf:

POST_INIT_RM_VAAPI="rm -f /usr/lib/*-linux-gnu/gstreamer-1.0/libgstvaapi.so"

Ένα εναλλακτικό workaround ανά χρήστη (άρα πιο δύσκολο) είναι να τρέξουμε στον server ssh -X user@localhost gcompris-qt, οπότε δημιουργείται ένα "registry" αρχείο ~/.cache/gstreamer-1.0/registry.i686.bin το οποίο αποφεύγει το vaapi.

Δημήτρης Γκίνης

1. Το συγκεκριμένο error εμφανίζεται τελικά μόνο σε cpu E8400 ή όχι??
2. Το INIT_COMMAND_RM_VAAPI="rm -f /usr/lib/*-linux-gnu/gstreamer-1.0/libgstvaapi.so" μπάινει στο [Default]?

alkisg

Το έχω δει σε E8400 και E7500. Αντίθετα στο γραφείο που έχω E8200 δεν κατάφερα να το αναπαραγάγω.

Αν κάποιος το βάλει κάτω από το [Default], πιάνει όλους τους clients, ενώ κάτω από [mac:address] πιάνει μόνο τον συγκεκριμένο client.
Αρνητική παρενέργεια είναι το ότι έτσι απενεργοποιείται το video decoding hardware acceleration το οποίο όμως χρησιμοποιείται πολύ σπάνια, οπότε κατά πάσα πιθανότητα δεν θα την καταλάβουμε την παρενέργεια.