iTalc

Ξεκίνησε από Δημήτρης Δαλαγιώργος, 10 Σεπ 2009, 01:18:49 ΜΜ

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

Δημήτρης Δαλαγιώργος

Πώς το κάνω να δουλέψει;

Έχω εγκαταστήσει Ubuntu στον server και στους clients του εργαστηρίου (όχι thin clients). Έχω εγκαταστήσει το italc master στον server και το italc client στους υπολογιστές.

Και μετά;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Corwin

#1
.

alkisg

Το βασικό για να δουλέψει είναι να κάνεις scp τον κατάλογο /etc/italc/keys από το server στους clients, ώστε να γίνει μεταφορά των κλειδιών ssh.

Επίσης, κι ας μην χρησιμοποιείς thin clients, καλό είναι να δηλώσεις και τα δύο αποθετήρια της Τεχνικής Στήριξης (https://launchpad.net/~ts.sch.gr/+archive/ppa/ και http://ts.sch.gr/repo/) στις πηγές σου, ώστε να παίρνεις ανανεωμένες εκδόσεις διαφόρων πακέτων. Π.χ. υπάρχει νέα βελτιωμένη έκδοση του italc η οποία δεν υπάρχει στα επίσημα repositories της Jaunty.

Δημήτρης Δαλαγιώργος

#3
Παράθεση από: alkisg στις 10 Σεπ 2009, 06:29:33 ΜΜ
Το βασικό για να δουλέψει είναι να κάνεις scp τον κατάλογο /etc/italc/keys από το server στους clients, ώστε να γίνει μεταφορά των κλειδιών ssh.

Το DNS δεν δουλεύει ακόμα, οπότε π.χ. το client10 το ψάχνει στο sch.gr και όχι τοπικά. Τα PC είναι ρυθμισμένα να παίρνουν IP απ' τον router, οπότε δεν είμαι σίγουρος ότι μπορώ να χρησιμοποιήσω την IP διεύθυνσή τους για να τα προσθέσω στην τάξη. Και αφού αντιγράψω το φάκελο των κλειδιών, πώς μπορώ να τρέξω τον client; Στον server υπάρχει κανονική επιλογή στο menu να τρέξει ο master. Στα υπόλοιπα μηχανήματα, αν και εγκαταστάθηκε το italc client, δεν είδα πουθενά κανένα μενού για να ξεκινάει. Υποθέτω ότι τρέχει στο background; Πώς το ελέγχω αυτό;

BTW έτρεξα στον server την εντολή ica -createkeypair και τώρα το italc δεν τρέχει ούτε στον server. Μπέρδεμα...

Παράθεση από: alkisg στις 10 Σεπ 2009, 06:29:33 ΜΜ
Επίσης, κι ας μην χρησιμοποιείς thin clients, καλό είναι να δηλώσεις και τα δύο αποθετήρια της Τεχνικής Στήριξης (https://launchpad.net/~ts.sch.gr/+archive/ppa/ και http://ts.sch.gr/repo/) στις πηγές σου, ώστε να παίρνεις ανανεωμένες εκδόσεις διαφόρων πακέτων. Π.χ. υπάρχει νέα βελτιωμένη έκδοση του italc η οποία δεν υπάρχει στα επίσημα repositories της Jaunty.

Έχω βάλει και τα δύο αποθετήρια στον server. Θα τα προσθέσω και στα υπόλοιπα μηχανήματα.

P.S. Η έκδοση του italc που εγκαταστάθηκε στον server είναι η 1.0.9
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Παράθεση από: Δημήτρης Δαλαγιώργος στις 10 Σεπ 2009, 07:30:38 ΜΜΤο DNS δεν δουλεύει ακόμα, οπότε π.χ. το client10 το ψάχνει στο sch.gr και όχι τοπικά. Τα PC είναι ρυθμισμένα να παίρνουν IP απ' τον router, οπότε δεν είμαι σίγουρος ότι μπορώ να χρησιμοποιήσω την IP διεύθυνσή τους για να τα προσθέσω στην τάξη.

Τυπικά ο ica-launcher (βλ. παρακάτω) κάνει publish τους clients σε μια υπηρεσία που λέγεται avahi. Αυτή η υπηρεσία είναι κάτι σαν κατάλογος· έτσι όταν τρέχεις τον master θα πρέπει να μπορεί να ρωτήσει την υπηρεσία και να βρει τους clients χωρίς καν να τους δηλώσεις.

Παράθεση από: Δημήτρης Δαλαγιώργος στις 10 Σεπ 2009, 07:30:38 ΜΜΚαι αφού αντιγράψω το φάκελο των κλειδιών, πώς μπορώ να τρέξω τον client; Στον server υπάρχει κανονική επιλογή στο menu να τρέξει ο master. Στα υπόλοιπα μηχανήματα, αν και εγκαταστάθηκε το italc client, δεν είδα πουθενά κανένα μενού για να ξεκινάει. Υποθέτω ότι τρέχει στο background; Πώς το ελέγχω αυτό;

Τρέχει αυτόματα ένα script, το /usr/bin/ica-launcher, το οποίο ουσιαστικά είναι ο italc-client. Για να δεις αν εκτελείται, τρέξε την παρακάτω γραμμή, θα πρέπει να δεις αποτελέσματα παρόμοια με τα παρακάτω:
alkisg@alkis:~$ ps -C ica -o pid=,command=
 4626 ica -noshm -isdport 5800 -ivsport 5900 -role other
 4660 /usr/bin/ica -rx11vs -noshm -nosel -nosetclipboard -rfbport 5900 -rx11vs -isdport 5800 -role other

Προσοχή, δεν πρέπει να εκτελείται ταυτόχρονα η απομακρυσμένη επιφάνεια εργασίας μαζί με το iTalc γιατί χρησιμοποιούν την ίδια πόρτα (5900). Αναφέρω στον οδηγό εγκατάστασης Ubuntu0904LTSP πώς μπορεί να αλλαχθεί η πόρτα, εάν χρειάζονται και τα δύο.

Παράθεση από: Δημήτρης Δαλαγιώργος στις 10 Σεπ 2009, 07:30:38 ΜΜBTW έτρεξα στον server την εντολή ica -createkeypair και τώρα το italc δεν τρέχει ούτε στον server. Μπέρδεμα...
Είναι πιο εύκολη η επανεγκατάσταση παρά η διόρθωση. :) Δώσε τα παρακάτω:
sudo apt-get purge --auto-remove italc-master italc-client
sudo rm -rf /etc/italc
sudo apt-get install italc-master

(δίνω command line εντολές αντί για περιγραφικές με GUI επειδή παίρνει λιγότερο χρόνο)
Και μετά συνέχισε με την αντιγραφή των κλειδιών στους clients.


Παράθεση από: Δημήτρης Δαλαγιώργος στις 10 Σεπ 2009, 07:30:38 ΜΜ
Έχω βάλει και τα δύο αποθετήρια στον server. Θα τα προσθέσω και στα υπόλοιπα μηχανήματα.
P.S. Η έκδοση του italc που εγκαταστάθηκε στον server είναι η 1.0.9

Η έκδοση που υπάρχει στο αποθετήριο της Τεχνικής Στήριξης είναι:
Κώδικας: shell
alkisg@alkis:~$ dpkg -l italc-client | grep ^ii
ii  italc-client  1:1.0.9.1-0ubuntu14~ppa1~jaunty1  Intelligent Teaching and Learning with Computers (client part)


ενώ στα αποθετήρια της Jaunty είναι το 1.0.9.1-0ubuntu9. Μάλιστα αρκετές από τις τελευταίες διορθώσεις που έγιναν τις προτείναμε εμείς. :-)

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 10 Σεπ 2009, 06:29:33 ΜΜ
Το βασικό για να δουλέψει είναι να κάνεις scp τον κατάλογο /etc/italc/keys από το server στους clients, ώστε να γίνει μεταφορά των κλειδιών ssh.

Τώρα νιώθω ηλίθιος που το ρωτάω αυτό, αλλά δεδομένου ότι το DNS μου δεν δουλεύει ακόμα, πώς θα κάνω secure copy με το scp που ζητάει όνομα μηχανής και δεν το βρίσκει; Δουλεύει με ip, να ψάξω να δω τα ip των μηχανημάτων ένα-ένα;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Κάν' το ανάποδα, κάτσε στους clients και κάνε copy από τον server...

Εναλλακτικά, πιθανώς να μπορείς να πάρεις λίστα με τις IP με μία από τις παρακάτω εντολές - δεν τις δοκίμασα γιατί δεν είχα ακόμα μη-thin-clients εργαστήριο (θα έχω όμως φέτος :)):
avahi-browse -trp _italc._tcp | grep ^= | cut -d';' -f8
arp -n

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 11 Σεπ 2009, 01:51:21 ΜΜ
Κάν' το ανάποδα, κάτσε στους clients και κάνε copy από τον server...

Εναλλακτικά, πιθανώς να μπορείς να πάρεις λίστα με τις IP με μία από τις παρακάτω εντολές - δεν τις δοκίμασα γιατί δεν είχα ακόμα μη-thin-clients εργαστήριο (θα έχω όμως φέτος :)):
avahi-browse -trp _italc._tcp | grep ^= | cut -d';' -f8
arp -n


Οι clients αγνοούν τον server, ο server αγνοεί τους clients και όλοι αγνοούν όλους. Δε γίνεται name resolution αφού όλοι παίρνουν IP απ' τον router που τους δίνει suffix koz.sch.gr Και άντε μετά να βρει ο nameserver τον client10.koz.sch.gr. Τέλος πάντων, θα δοκιμάσω την τύχη μου με το arp. Αλλά άντε και βρήκα αυτόματα τις IP, το scp δέχεται IP;

Υ.Γ. Πώς μπορώ να τρέξω τον Ναυτίλο με δικαιώματα root;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

Αντέγραψα τα κλειδιά σε έναν υπολογιστή με το φλασάκι μου, έκανα επανεκκίνηση και μου έβγαλε το παρακάτω μήνυμα λάθους:

Ο ISD-Server δε μπορεί να εκκινήσει επειδή η πόρτα 5800 χρησιμοποιείται ήδη. Παρακαλώ βεβαιωθείτε ότι καμμιά άλλη εφαρμογή δε χρησιμοποιεί την πόρτα και προσπαθήστε πάλι.

Ψάχνοντας στο internet βρήκα ότι αυτό έχει να κάνει με το italc. Ό,τι κι αν είναι πάντως, ο server εξακολουθεί να μην ανακαλύπτει αυτόματα τον client.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

.local  :D Έτσι βλέπει τους υπολογιστές στο τοπικό δίκτυο: clientXX.local

Τώρα κάθομαι σε κάθε client και δίνω την εντολή:

suco scp -p -r user@server.local:/etc/italc/keys /etc/itac/keys
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Δημήτρη το σφάλμα με το 5800 συνήθως σημαίνει ότι το italc έχει ήδη ξεκινήσει (και προσπαθεί να εκτελεστεί δεύτερη φορά).
Αν δεν βγάλεις άκρη, μπες κι εσύ στο irc να το δούμε real time: http://ubuntu-gr.org/webchat
Κι αν έχεις και κανά teamviewer πρόχειρο (παίζει άψογα κάτω από wine) ακόμα καλύτερα.

Δημήτρης Δαλαγιώργος

#11
Έριξα μια ματιά στο Wiki και στην ενότητα "Clients are not reachable although iTALC-client is running" ρωτάει "Can you access port 5900 of the host using telnet?"

Είμαι στον server και δίνω στο τερματικό, π.χ.:
telnet client09.local 5900

Η απάντηση που παίρνω είναι telnet: Unable to connect to remote host: Connection refused

Άκυρο. Το ξαναδοκίμασα μετά από λίγη ώρα, και τώρα το telnet συνδέεται, και στην πόρτα 5800 και στην πόρτα 5900. Παρ' όλ' αυτά, ο iTalc master δε βλέπει τίποτα. Το ahavi δείχνει ότι το italc τρέχει στον συγκεκριμένο υπολογιστή.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

#12
Με το Δημήτρη συνεννοηθήκαμε μέσω IRC, και στη συνέχεια έγινε απομακρυσμένη βοήθεια μέσω ssh/freenx. Το πρόβλημα ήταν στην αντιγραφή των κλειδιών, το scp δεν βολεύει επειδή δεν αντιγράφει τον ιδιοκτήτη. Θα ανεβάσω κάποιον αναλυτικό οδηγό αργότερα που να βασίζεται σε γραφικά εργαλεία (ναυτίλος), στο μεταξύ ο σύντομος τρόπος μέσω κονσόλας είναι (καθήμενος στον client):

sudo rsync -av teacher@server.local:/etc/italc/keys /etc/italc/
ica-launcher &                        # Επανεκκίνηση του client

Δημήτρης Δαλαγιώργος

Να ευχαριστήσω κι από δω τον Άλκη για τη βοήθειά του! Τώρα το iTalc δουλεύει μια χαρά.

Να σημειώσω απλώς, ότι για κάποιο λόγο δε μου δούλεψε η προσέγγιση με το tar, οπότε

1) έσβησα τα κλειδιά απ' τους clients με
cd /etc/italc
sudo rm -r keys


2) Αντέγραψα πάλι τα κλειδιά απ' τον server με το scp:
sudo scp -pr root@server:/etc/italc/keys .

3) ʼλλαξα τα δικαιώματα με chmod:
sudo chmod 440 private/admin/key private/support/key private/teacher/key
sudo chmod 444 public/admin/key public/support/key public/teacher/key


Αυτό που εντόπισα όμως, ως "πρόβλημα" στο iTalc είναι ότι, αν αρχικά είχε κάνει login στον client π.χ. ο user1 και απ' το μενού πάνω δεξιά, κάνει login π.χ. ο user2, το iTalc εξακολουθεί να δείχνει την επιφάνεια εργασίας του user1.

Επίσης, στο overview όλων των υπολογιστών του εργαστηρίου, όλοι έχουν μικρό παραθυράκι και είναι όμορφα τακτοποιημένοι, εκτός από έναν που επιμένει να εμφανίζεται με παραθυράκι τουλάχιστον διπλάσιο απ' τους υπόλοιπους!!!
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Παράθεση από: Δημήτρης Δαλαγιώργος στις 22 Σεπ 2009, 04:17:09 ΜΜ
Αυτό που εντόπισα όμως, ως "πρόβλημα" στο iTalc είναι ότι, αν αρχικά είχε κάνει login στον client π.χ. ο user1 και απ' το μενού πάνω δεξιά, κάνει login π.χ. ο user2, το iTalc εξακολουθεί να δείχνει την επιφάνεια εργασίας του user1.

Ναι, προς στιγμήν ο ica-launcher χρησιμοποιεί πάντα την ίδια πόρτα, κι έτσι δεν μπορεί να χρησιμοποιηθεί για δύο χρήστες ταυτόχρονα στο ίδιο μηχάνημα (βγάζει port already in use).
Ο developer (stgraber) είπε ότι θα το αναπτύξει περισσότερο για την Karmic ώστε να διαλέγει κάποια νέα, ελεύθερη πόρτα κάθε φορά, κι έτσι θα μπορεί να παίζει με οσουσδήποτε χρήστες στο ίδιο PC ταυτόχρονα συνδεδεμένους.

Δημήτρης Δαλαγιώργος

Καινούρια ερώτηση: Πώς μπορώ να κάνω το iTalc να θυμάται τους υπολογιστές που βρίσκει αυτόματα, ώστε να μπορώ, μέσω Wake-on-LAN, να τους ανοίγω από τον server; Απ' ότι είδα έχει κουμπάκι για 'Εκκίνηση', όπως έχει και κουμπάκι για 'Τερματισμό', αν όμως δεν είναι ήδη ανοιχτοί οι υπολογιστές, το iTalc δεν έχει κανένα τους στη λίστα του.

Αν δεν γίνεται αυτό που λέω με το iTalc, υπάρχει κάποιο προγραμματάκι ή κάποια εντολή ώστε γνωρίζοντας τη MAC address του κάθε client να μπορώ να τους bootάρω (sic) από τον server;

Και αφού βγήκα που βγήκα off topic, υπάρχει εντολή παρόμοια με τη shutdown των Windows για να σβήνω τους υπολογιστές από τον server;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Η διαφορά του upstream italc με το πακετάρισμα που του έχει γίνει στο Ubuntu, είναι ουσιαστικά το automatic client discovery.
Αν θες μπορείς να βάλεις στατική IP σε όλους τους clients και να τους προσθέσεις στο italc, ώστε να τους ξέρει χωρίς autodetection (δεξί κλικ προσθήκη Η/Υ κτλ). Έτσι δεν θα χρειάζεται καν να τρέχεις το italc-launcher του Ubuntu, θα μπορείς να τρέχεις απευθείας το italc που δεν έχει client discovery.

Πλεονεκτήματα στατικών ip:
* Θα τους βλέπει το italc κι ας είναι κλειστοί.
* Θα μπορείς να τους ονοματίσεις με τη σειρά, π.χ. από client101 μέχρι client112 (προφανώς το τελευταίο νούμερο της IP θα πρέπει να είναι μικρότερο από 128, δηλαδή έξω από το εύρος του dhcp server του router).
* Δεν θα χρειάζεσαι dns server, θα μπορείς να τους έχεις στο /etc/hosts.

Μειονεκτήματα:
* Χρειάζεται λίγη ώρα μέχρι να ρυθμίσεις τις στατικές IP.
* Τα PC σου πλέον δεν είναι εντελώς ίδια, άρα μετά από cloning θα πρέπει να ασχολείσαι με hostname + ip.

Αν λοιπόν βάλεις στατικές IP, τότε τα ανοιγοκλείνεις από το iTalc και ξεμπερδεύεις.

Αν *δεν* βάλεις στατικές IP,
1) Εγκατέστησε το πακέτο wakeonlan και άνοιγέ τα με αυτό + την mac address,
2) Google για passwordless ssh (και ρώτα αν δεν το καταφέρεις) ώστε να μπορείς με μια εντολή του στυλ
  for client in client101 client102 client103...
  do
    ssh client poweroff
  done

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

alkisg

Παράθεση από: Δημήτρης Δαλαγιώργος στις 22 Σεπ 2009, 04:17:09 ΜΜ
Να σημειώσω απλώς, ότι για κάποιο λόγο δε μου δούλεψε η προσέγγιση με το tar...

Χθες έπαθα το παρακάτω σε ένα εργαστήριο, ίσως σου συνέβηκε αυτό:
1) Απεγκατέστησα το italc
2) Έκανα αντιγραφή των κλειδιών από τον server
3) Ξαναέτρεξα το ica-launcher
4) ...και ο server δεν έβλεπε κανέναν client!!!

Το πρόβλημα με την παραπάνω μέθοδο είναι ότι έπρεπε να "σκοτώσω" (kill) το ica πριν απεγκαταστήσω το italc. Και στους clients, και στον server.
Επομένως αφού έκανα σε όλους, και στον server, logoff / logon, δούλεψε μια χαρά.
Ίσως παίχτηκε κάτι τέτοιο και φάνηκε ότι δεν δούλεψε η προσέγγιση με το tar, ενώ στην πράξη να είχε δουλέψει...

alkisg

Παράθεση από: Δημήτρης Δαλαγιώργος στις 14 Σεπ 2009, 11:46:17 ΠΜ
.local  :D Έτσι βλέπει τους υπολογιστές στο τοπικό δίκτυο: clientXX.local

Αμ το είπες εσύ αλλά εγώ δεν το πήρα χαμπάρι!!!

...ιστορία ενός ΣΚ:
Αν είχαμε "κανονικό" dhcp server αντί του router, θα βάζαμε τον dns server (πακέτο bind9) και όλοι θα έβλεπαν όλους με τη μία.
Δυστυχώς έχουμε για dhcp server τον router... Έτσι έφαγα πολλές πολλές ώρες προσπαθώντας να ρυθμίσω σωστά ένα σχολικό εργαστήριο ώστε:
* Οι clients να παίρνουν δυναμική IP...
* ...από τον router (είτε cisco είτε όχι).
* Και να ενημερώνουν τον DNS server (==linux server) για την IP που πήρανε (nsupdate).
* Και, ει δυνατόν, ο linux server να ενημερώνεται και για τα Windows PCs.

Αφού λοιπόν είχα μέτρια αποτελέσματα και το κεφάλι μου έγινε καζάνι, τότε (ξανά)θυμήθηκα ότι το linux έχει τον δαίμονα avahi, με τον οποίο όλα τα PC ξέρουν το ένα το άλλο στο τοπικό δίκτυο... με τη διαφορά ότι χρειάζεται κι ένα .local στο τέλος (και βάζοντας search .local στο /etc/resolv.conf δεν το παρακάμπτει αυτό). Τελείως αμελητέο αυτό το "κακό".

Επομένως ας συνεχίσουμε την προσπάθεια για δυναμικές IP, πιστεύω ότι με το avahi όλα (και το italc) θα παίξουν μια χαρά. :)

Σε επόμενη φάση θα γράψω ένα sch-script το οποίο να μας φτιάχνει το italc να δουλεύει όπως το θέλουμε (και με κλειστούς τους clients).

alkisg

Διόρθωσα τα ica-launcher και italc-launcher scripts του iTalc ώστε να μη χρησιμοποιούν ήδη δεσμευμένες πόρτες, και πρόσθεσα και κάποια άλλα καλούδια. Επισυνάπτω τα αρχεία καθώς και το μήνυμα που έστειλα στην edubuntu-devel list, όποιος θέλει ας τα τεστάρει κι ας πει αν του παίζουν καλά (μπαίνουν στο /usr/bin).
Εκτός απροόπτου οι αλλαγές αυτές θα συμπεριληφθούν στο Ubuntu 9.10.

Παράθεση από: edubuntu-devel
I'm attaching patched versions for ica-launcher and italc-launcher, which hopefully fix the following:

* If the requested ports are in use, they use the next available ones. This fixes the xorg 100% CPU usage problem when both vino and italc are in use. It also fixes the "ISDSERVER: port 5800 already in use" error when starting a second session in a standalone Ubuntu client.

* If /etc/italc/italc.conf is present, it sources it, and respects:
   * The requested ISDPORT / IVSPORT ports,
   * NO_AUTODETECTION. If someone sets this to true, then this client doesn't show up in the Autodetected clients. Many teachers prefer to put static entries in ~/.italc, and then the autodetected clients would be duplicate entries...

* It uses LTSP_CLIENT_HOSTNAME, if it's available, for the client list to be more informative with ltsp clients.

* It uses sed a little more to try to be a little faster.

The scripts are *minimally tested* to make the freeze deadline, so any testing would be welcome. Sorry for being unable to send a patch instead of the whole scripts. :(

Cheers,
Alkis

Δημήτρης Δαλαγιώργος

Άσχετο με το παραπάνω.

Γιατί όταν δίνω εντολή απ' το iTalc να σβήσουν οι υπολογιστές, αντί να σβήσουν κάνουν logout!;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Παράθεση από: Δημήτρης Δαλαγιώργος στις 29 Σεπ 2009, 09:54:25 ΠΜ
Γιατί όταν δίνω εντολή απ' το iTalc να σβήσουν οι υπολογιστές, αντί να σβήσουν κάνουν logout!;

Πας εδώ: https://bugs.launchpad.net/ubuntu/+source/italc/+bug/367960
...και κάνεις confirm το bug. :)

(θα προσπαθήσω να το δω λίγο πριν το beta freeze της Karmic...)

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 23 Σεπ 2009, 03:05:34 ΜΜ
Αν *δεν* βάλεις στατικές IP,
1) Εγκατέστησε το πακέτο wakeonlan και άνοιγέ τα με αυτό + την mac address,

Δε μου δουλεύει το wakeonlan. Δοκίμασα να στείλω το magic packet και την πόρτα 7, αντί για την default 9, αλλά πάλι δε δούλεψε... Στα Windows (με το NetOp ή/και το DeepFreeze) μπορούσα να τους ανοίξω απ' τον server, άρα δεν είναι ότι δεν το υποστηρίζουν. Μάλλον πρέπει να ξανακοιτάξω το BIOS, αλλά αν έχεις καμία άλλη ιδέα, ευχαρίστως να την ακούσω.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Χμμμ έχεις ακόμα Windows? Υπάρχει μια πιθανότητα να φταίει το κλείσιμο και όχι το άνοιγμα (να πέφτουν σε πιο βαρύ "ύπνο" απ' ότι πρέπει) - δοκίμασε να τους κλείσεις από τα Windows και να τους ανοίξεις με το wakeonlan από το Linux, και ανάποδα, για να βεβαιωθείς ότι το πρόβλημα δεν είναι στο κλείσιμο.

Δοκίμασε επίσης και με το πακέτο etherwake.

Τέλος, αν έχεις όρεξη, μπορείς με το wireshark να "πιάσεις" το πακέτο που στέλνει το netop και να το συγκρίνεις με το πακέτο που στέλνει το wakeonlan, για να δεις τι δεν πάει καλά, και να στείλεις τη διαφορά στους developers...

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 19 Οκτ 2009, 11:33:27 ΜΜ
Χμμμ έχεις ακόμα Windows? Υπάρχει μια πιθανότητα να φταίει το κλείσιμο και όχι το άνοιγμα (να πέφτουν σε πιο βαρύ "ύπνο" απ' ότι πρέπει) - δοκίμασε να τους κλείσεις από τα Windows και να τους ανοίξεις με το wakeonlan από το Linux, και ανάποδα, για να βεβαιωθείς ότι το πρόβλημα δεν είναι στο κλείσιμο.

Τη λύση μου έδωσε η σελίδα Using Wake-On-LAN WOL/PME to power up your computer remotely

Εκεί λέει, κάτι που δεν ήξερα, ότι υπάρχει δυνατότητα να ρυθμιστεί η κάρτα δικτύου επιπλέον απ' τις ρυθμίσεις του BIOS. Ενώ, λοιπόν, το BIOS ήταν ρυθμισμένο να "ξυπνάει" τον υπολογιστή απ' το δίκτυο (η ρύθμιση Wake on PME ήταν Enabled), η κάρτα δεν ήταν!

Τρέχοντας στον client την εντολή

sudo ethtool eth0


μου έδειξε ότι το Wake on LAN ήταν απενεργοποιημένο στην κάρτα. Τρέχοντας

sudo ethtool -s eth0 wol g


ενεργοποίησα το Wake on LAN στην κάρτα. Έδωσα

sudo shutdown -P now


και ο client έσβησε. Αμέσως μετά, έδωσα

sudo wakeonlan 00:aa:bb
κλπ

και ο client ξαναξεκίνησε!
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

Αμ, δε...

Άνοιξα καινούριο thread, εδώ.

Πώς σβήνουμε τα off topic posts απ' το thread; (φοβερά ελληνικά, ε; )
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

1) Πώς ξεκλειδώνουν οι μαθητές το πληκτρολόγιο και το ποντίκι όταν εγώ τους έχω κλειδώσει ή κάνω Επίδειξη Πλήρους Οθόνης;

2) Στον server, μετά την αναβάθμιση σε 9.10, το iTalc στη λίστα των υπολογιστών δείχνει και τον server. Πράγμα που σημαίνει ότι τρέχει και ο italc-client. Δοκιμάζω να τον απεγκαταστήσω και μου λέει ότι πρέπει να απεγκατασταθεί και ο italc-master!
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Για το (2), φτιάξε στο server ένα αρχείο /etc/italc/italc.conf και βάλε μέσα
PUBLISH_CLIENT=False

Το (1) δεν το κατάλαβα, αν τους κλειδώσεις την οθόνη, οι μαθητές μόνοι τους έχουν βρει κόλπο που την ξεκλειδώνουν; Σίγουρα δεν βγάζουν το καλώδιο δικτύου; Τι βγάζει η εντολή ps -ef | grep ica όταν το κάνουν αυτό; (τρέξ' την μέσα από ssh...)

Δημήτρης Δαλαγιώργος

Υποθέτω πως ναι. Εγώ έδειχνα μια παρουσίαση μέσω της επίδειξης επιφάνειας εργασίας και, ενώ όλοι οι υπόλοιποι υπολογιστές έδειχναν ό,τι έδειχνε κι ο server, ένας μάγκας μπορούσε και δούλευε κανονικά στον υπολογιστή του ενώ η επίδειξη ήταν απλώς άλλη μια εφαρμογή που έτρεχε εκείνη την ώρα. Κάτι αντίστοιχο με το Ctrl-Esc που έπιανε μερικές φορές στο NetOp.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

Γιατί το iTalc δεν ψάχνει για νέους υπολογιστές συνέχεια;

Τι εννοώ. Έστω ότι ξεκινάει και από τους 12 υπολογιστές έχουν ανοίξει οι 8. Θα τους βρει και θα τους δείξει στη λίστα. Αν το iTalc στον server μείνει ανοιχτό και στο μεταξύ κλείσουν/ξανανοίξουν υπολογιστές, η λίστα του δεν ενημερώνεται. Πρέπει να το κλείσω και να το ξανανοίξω για να τους δει όλους... Δε θά 'πρεπε να υπάρχει ένα κουμπάκι rescan computers ή κάτι τέτοιο;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Η λειτουργία αυτόματης αναζήτησης clients δεν είναι ενσωματωμένη στο iTalc, αλλά υπάρχει μόνο στο Ubuntu, με τη μορφή δύο scripts (ica-launcher και italc-launcher), τα οποία φτιάχνουν το σχετικό αρχείο με τους clients (~/.italc/globalconfig.xml) πριν τρέξουν το iTalc.

Άρα, αφού είναι απλά wrapper scripts (περιτύλιγμα), δεν μπορούν να κάνουν αναζήτηση ενώ τρέχει το iTalc.
Για να γινόταν αυτό που λες θα έπρεπε να προστεθεί η δυνατότητα εντός του iTalc. Αν θες στείλε ένα feature request στη mailing list του στο sourceforge, ίσως ο developer το βάλει στην 2.0 έκδοση που ετοιμάζει...

Προσωπικά έχω δηλωμένους στατικά όλους τους clients (client01.local, client02.local) και δεν χρησιμοποιώ autodetection. Για να το κάνεις αυτό αρκεί να σώσεις το αρχείο ~/.italc/globalconfig.xml ενώ λειτουργεί το iTalc με autodetection, και στη συνέχεια να απενεργοποιήσεις το autodetection από το αρχείο /etc/italc/italc.conf.
Η στατική δήλωση των clients βολεύει και στο να κάνεις μαζική εκκίνηση, αφού όταν οι clients είναι κλειστοί το autodetection είναι άχρηστο.

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 10 Νοε 2009, 11:39:58 ΠΜ
Προσωπικά έχω δηλωμένους στατικά όλους τους clients (client01.local, client02.local) και δεν χρησιμοποιώ autodetection. Για να το κάνεις αυτό αρκεί να σώσεις το αρχείο ~/.italc/globalconfig.xml ενώ λειτουργεί το iTalc με autodetection, και στη συνέχεια να απενεργοποιήσεις το autodetection από το αρχείο /etc/italc/italc.conf.
Η στατική δήλωση των clients βολεύει και στο να κάνεις μαζική εκκίνηση, αφού όταν οι clients είναι κλειστοί το autodetection είναι άχρηστο.

Αυτό προϋποθέτει και static IP;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller


Δημήτρης Δαλαγιώργος

Πώς απενεργοποιώ το auto detection;

Έφτιαξα ένα αρχείο /etc/italc/italc.conf

Έφτιαξα επίσης ένα directory /etc/italc/configfiles

Αντέγραψα μέσα στο configfiles το ~/.italc/globalconfig.xml

Το italc.conf περιέχει τα εξής:
PUBLISH_CLIENT=False

[paths]
globalconfig=/etc/italc/configfiles/globalconfig.xml


Τι άλλο πρέπει να κάνω;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Βάλε μόνο τα παρακάτω στο αρχείο /etc/italc/italc.conf:
PUBLISH_CLIENT=False
AUTODETECT_CLIENTS=False


Το παραπάνω προς το παρόν ισχύει μόνο για Karmic, όχι για προηγούμενες εκδόσεις. Με την πρώτη ευκαιρία θα κάνω μερικές διορθώσεις και θα ανεβάσω ενημερωμένη έκδοση στο αποθετήριο.
Μην βάζεις το [paths], δεν μπαίνει σ' αυτό το αρχείο, αλλά στο /etc/xdg/iTALC Solutions/iTALC.conf.

Για global configuration files για το iTalc δεν το έχω ψάξει, οπότε αν δεν βρεις άκρη απλά άστο να χρησιμοποιήσει τον προεπιλεγμένο φάκελο ~/.italc.

Δημήτρης Δαλαγιώργος

Και το globalconfig.xml που αντέγραψα από το ~/.italc/ τι το κάνω;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Ερμ, τίποτα, δεν το είπα καλά, σαν backup εννοούσα.
Απλά άνοιξέ το και άλλαξε το όνομα της τάξης «Autodetected clients» σε κάτι πιο νορμάλ, π.χ. «Εργαστήριο Πληροφορικής».
Αν έχει IP μέσα (νομίζω δεν έχει) βγάλτες και άσε μόνο τα client01.local και τις mac addresses.

Δημήτρης Δαλαγιώργος

Το globalconfig.xml όσο ίσχυε το autodetect είχε την εξής μορφή:

<globalclientconfig version="1.0.9">
  <body>
<classroom forcevisible="yes" name="Auto-detected computers">
<client id="0" localip="10.x.y.155:5901" mac="00:10:" name="client12" type="0"/>
<client id="1" localip="10.x.y.140:5900" mac="00:10:" name="client05" type="0"/>
<client id="2" localip="10.x.y.137:5900" mac="00:0c:" name="client04" type="0"/>
<client id="3" localip="10.x.y.136:5900" mac="00:10:" name="client08" type="0"/>
<client id="4" localip="10.x.y.135:5900" mac="00:10:" name="client02" type="0"/>
<client id="5" localip="10.x.y.134:5900" mac="00:10:" name="client09" type="0"/>
<client id="6" localip="10.x.y.133:5900" mac="00:10:" name="client07" type="0"/>
<client id="7" localip="10.x.y.132:5901" mac="00:10:" name="client11" type="0"/>
<client id="8" localip="10.x.y.131:5900" mac="00:10:" name="client03" type="0"/>
<client id="9" localip="10.x.y.130:5900" mac="00:10:" name="client06" type="0"/>
<client id="10" localip="10.x.y.129:5900" mac="00:10:" name="client10" type="0"/>
<client id="11" localip="10.x.y.128:5900" mac="00:10:" name="client01" type="0"/></classroom></body>
</globalclientconfig>


έσβησα τις ip, άλλαξα τις ρυθμίσεις του autodetection και ξανάνοιξα το iTalc. Είχε μια λίστα με 12 υπολογιστές αλλά δεν έκανε τίποτα πέρα απ' το να τους ανοίξει (και αυτό επειδή είχε η λίστα τις mac διευθύνσεις).

Κοίταξα το globalconfig.xml. Το iTalc το είχε πειράξει λίγο. Κατάλαβα ότι χρειαζόταν και τα ονόματα των clients. Συνεπώς το σωστό είναι:

<?xml version="1.0"?>
<!DOCTYPE italc-config-file>
<globalclientconfig version="1.0.9" >
  <body>
    <classroom name="EAITY" >
      <client hostname="client01.local" mac="00:10:" type="0" id="11" name="client01" />
      <client hostname="client02.local" mac="00:10:" type="0" id="4" name="client02" />
      <client hostname="client03.local" mac="00:10:" type="0" id="8" name="client03" />
      <client hostname="client04.local" mac="00:0c:" type="0" id="2" name="client04" />
      <client hostname="client05.local" mac="00:10:" type="0" id="1" name="client05" />
      <client hostname="client06.local" mac="00:10:" type="0" id="9" name="client06" />
      <client hostname="client07.local" mac="00:10:" type="0" id="6" name="client07" />
      <client hostname="client08.local" mac="00:10:" type="0" id="3" name="client08" />
      <client hostname="client09.local" mac="00:10:" type="0" id="5" name="client09" />
      <client hostname="client10.local" mac="00:10:" type="0" id="10" name="client10" />
      <client hostname="client11.local" mac="00:10:" type="0" id="7" name="client11" />
      <client hostname="client12.local" mac="00:10:" type="0" id="861460" name="client12" />
    </classroom>
  </body>
</globalclientconfig>


εννοείται ότι έχω σβήσει τις πραγματικές διευθύνσεις IP και MAC.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

Πώς μπορώ να κάνω restart το iTalc σε κάποιο μηχάνημα; Τώρα που απενεργοποιήθηκε το autodetection στη λίστα εμφανίζεται ο υπολογιστής, αλλά μερικές φορές δεν επικοινωνούν με τον master στην ίδια πόρτα με αποτέλεσμα να πρέπει να κάνω επανεκκίνηση στον υπολογιστή των παιδιών προκειμένου να ξαναξεκινήσει το iTalc και να μπορέσω να τον δω συνδεδεμένο στη λίστα. Άλλες φορές, βλέπει τον υπολογιστή, αλλά επιμένει ότι δεν έχει συνδεθεί κανένας χρήστης.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Ανέβασα μια νέα έκδοση του iTalc στο αποθετήριο ελέγχου ενημερώσεων ΣΕΠΕΗΥ.

Δημήτρη είσαι αρκετά έμπειρος, βάλ' το στις πηγές σου και δοκίμασε με αυτό. Έχω λύσει τα παρακάτω προβλήματα:
  * When re-running ica-launcher, kill all ica processes from that user.
  * First kill the ica processes, and then search for free ports.
  * Don't consider ports in TIME_WAIT state as used.
  * Don't assume that isvport=isdport+100. This made italc-launcher
    put localhost in the autodetected computers in some cases.


Λογικά μετά από αυτά οι clients θα χρησιμοποιούν πάντα την ίδια πόρτα. Και εκείνο το bug που σου έδειχνε τον server σαν client, πρέπει να είναι εντάξει ακόμα κι αν σβήσεις το PUBLISH_CLIENT=False από το /etc/italc/italc.conf.

Εφόσον δεις ότι σου διορθώνει κάποια προβλήματα και δεν δημιουργεί κανένα νέο, δίνεις το OK και το περνάμε στο κανονικό αποθετήριο ώστε να το λάβουν όλα τα ΣΕΠΕΗΥ...

Δημήτρης Δαλαγιώργος

Μόλις την εγκατέστησα. Έσβησα και τη γραμμή PUBLISH_CLIENT=False απ' το  /etc/italc/italc.conf. Αύριο θα το δοκιμάσω σε πραγματικές συνθήκες.

Πρώτες εντυπώσεις: Επιτέλους αυτόματη τακτοποίηση και ταξινόμηση των παραθύρων! Επιτέλους! Εξακολουθεί πάντως να μη σβήνει τους υπολογιστές όταν πατάω το αντίστοιχο κουμπάκι.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

#41
Παράθεση από: Δημήτρης Δαλαγιώργος στις 12 Νοε 2009, 04:08:54 ΜΜ
Πρώτες εντυπώσεις: Επιτέλους αυτόματη τακτοποίηση και ταξινόμηση των παραθύρων! Επιτέλους! Εξακολουθεί πάντως να μη σβήνει τους υπολογιστές όταν πατάω το αντίστοιχο κουμπάκι.

Πολύ περίεργο: Άλλη toolbar έχει το iTalc όταν είμαι στον server και άλλη έχει όταν συνδέομαι μέσω NX. Βάζω screenshot απ' τον server και θα βάλω το απόγευμα screenshot απ' το σπίτι. Δεν πιστεύω όμως, ότι έχει να κάνει με την προτεινόμενη αναβάθμιση. Κάτι άλλο παίζει.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Εχμ γκουχ γκουχ τελικά φαίνεται ότι δεν περάστηκαν τα αλλαγμένα αρχεία, θα τα ανεβάσω σε λίγες ώρες. Θα έρθει αυτόματα update.

Για το nx και τη γραμμή εργαλείων μη δίνεις σημασία, απλά ο x-server που προσφέρει δεν είναι "πλήρης" κι έτσι π.χ. κόβονται εφέ, αλλάζει λίγο η εμφάνιση κτλ. Μικρό το κακό για την ταχύτητα που προσφέρει. :)

Δημήτρης Δαλαγιώργος

1) Το update πρέπει να γίνει μόνο στον server ή και στους clients;

2) Πώς κάνω restart το iTalc σε έναν client από τον server; Επειδή μερικές φορές ενώ ο υπολογιστής είναι ανοιχτός και κάποιος χρήστης συνδεδεμένος, ο master δεν τον βλέπει.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Χρειάζεται update και στους clients.

Το restart του iTalc, όπως και γενικότερα η εκτέλεση εντολών στο GUI περιβάλλον των χρηστών, είναι λίγο δύσκολη, επειδή το ~/.Xauthority των χρηστών δεν σου επιτρέπει την πρόσβαση. Γίνεται μεν να προσθέσεις π.χ. τον teacher στο .Xauthority των χρηστών ώστε να έχεις πρόσβαση (αυτό κάνει το gst-broadcast script που έχω ανεβάσει σε άλλο θέμα), αλλά είναι πιο βολικό να υπάρχει κάποιο ειδικό πρόγραμμα γι' αυτή τη δουλειά, όπως το ica του iTalc, το οποίο τρέχει εντός της συνεδρίας των χρηστών, ακούει για εντολές του καθηγητή, και τις εκτελεί εντός της συνεδρίας (άρα δεν επηρεάζεται από το .Xauthority).

Δηλαδή ο καλύτερος τρόπος να εκτελείς εντολές στο γραφικό περιβάλλον των χρηστών είναι μέσα από το iTalc.

Πιστεύω ότι το update θα λύσει το πρόβλημα... αν δεν το λύσει ξαναπές μου, να αναρτήσω ένα script για απομακρυσμένη εκτέλεση γραφικών εντολών.

Δημήτρης Δαλαγιώργος

Με ένα μήνα καθυστέρηση: αν δεν κάνω λάθος, έχω εγκαταστήσει όλες τις τελευταίες ενημερώσεις. Έχω και τα τρία αποθετήρια ενεργοποιημένα, άρα λογικά έχω την πιο πρόσφατη έκδοση του iTalc.

1) Εξακολουθεί να μη σβήνει τους υπολογιστές.

2) Εξακολουθεί μερικές φορές να μη βλέπει ότι έχει συνδεθεί κάποιος χρήστης. Βλέπει τον υπολογιστή, αλλά δεν καταλαβαίνει ότι έχει κάνει logon κάποιος χρήστης. Αν γίνει επανεκκίνηση/αποσύνδεση ή αλλαγή χρήστη, τότε τον βλέπει.

Οι clients είναι 9.04, ο server 9.10
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Η τελευταία έκδοση είναι μόνο για 9.10, οπότε δεν έχεις τη διορθωμένη έκδοση που βάλαμε στο proposed αποθετήριο.
Δεν γίνεται εύκολα να την βγάλουμε για 9.04 λόγω έκδοσης βιβλιοθηκών Qt.