BETA

Πώς να λύσετε το πρόβλημα λειτουργίας του Steam σε AMD κάρτες γραφικών

Εικόνα constantinos

Βάζοντας στην άκρη κάθε προσωπική αντιπάθεια για την εμπορευματοποίηση και βλέποντάς το λίγο τεχνικά, μα και σαν τελικό αποτέλεσμα, είναι γεγονός πως η Valve, με το Steam σε Linux, έκανε πολύ καλή δουλειά. Συγχρόνως, αποτελεί ένα απτό παράδειγμα, πως μια εταιρεία που χρησιμοποιεί ελεύθερο και ανοιχτό κώδικα, μόνο ωφέλιμη μπορεί να βγει. Η συμβολή της κοινότητας Linux τόσο στην πλατφόρμα, όσο και στο SteamOS είναι τεράστια.
Όμως, επειδή έχουμε να κάνουμε με software και hardware, πάντα υπάρχει η περίπτωση να μην λειτουργήσουν όλα τέλεια εξαρχής.

Αν λοιπόν, προσπαθήσετε να κάνετε εγκατάσταση της παιχνιδοπλατφόρμας Steam σε Linux, ενδέχεται αν και θα έχει εγκατασταθεί επιτυχώς, όταν το καλείτε από το μενού σας ή από την συντόμευση που δημιουργεί στο desktop σας, να μην ανοίγει καθόλου.
Αυτό κατά κύριο λόγο, έχει να κάνει με ένα πρόβλημα που είναι παλιό και συνήθως εξαρτάται από την κάρτα γραφικών σας και πιο συγκεκριμένα, αν έχετε AMD.
Παρ' όλα αυτά, το πρόβλημα βρίσκεται σε μια λάθος έκδοση βιβλιοθήκης (lib) η οποία υπάρχει.
Άμα λοιπόν πέσατε στην περίπτωση και ενώ προσπαθείτε να ανοίξετε το Steam, αυτό δεν ανοίγει και δεν γίνεται τίποτα, βεβαιωθείτε κατ' αρχήν πως πρόκειται για το συγκεκριμένο.

Ανοίξτε το τερματικό / κονσόλα σας και δώστε την ακόλουθη εντολή, η οποία καλεί το Steam να τρέξει:

/usr/bin/steam %U

Αν πάρετε ένα μήνυμα λάθους όπως το ακόλουθο:

STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0_client)
libGL error: unable to load driver: radeonsi_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: radeonsi
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast

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

Για να υπάρχει περισσότερη βεβαιότητα, δώστε και την ακόλουθη εντολή, πατώντας Enter στην συνέχεια:

DISPLAY=:0 glxinfo | grep -i direct

Θα πρέπει να σας επιστρέψει κάτι τέτοιο:

direct rendering: Yes
    GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect,
    GL_ARB_map_buffer_range, GL_ARB_multi_bind, GL_ARB_multi_draw_indirect,

Μας ενδιαφέρει μόνο να υπάρχει η πρώτη γραμμή [direct rendering: Yes].

Και για να εξαλείψουμε κάθε αμφιβολία, δώστε και την ακόλουθη εντολή, πατώντας στην συνέχεια Enter:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Θα τρέξει ένα κατεβατό και στο τέλος, ανάμεσα σε όλα τα υπόλοιπα, θα πρέπει να δείτε κάτι σαν αυτό:

Αυτό λοιπόν, σημαίνει πως έχετε το σύνηθες πρόβλημα στο STEAM_RUNTIME. Το Steam για Linux συσκευάζει μια σειρά (στάνταρ) κοινόχρηστων βιβλιοθηκών που ονομάζονται STEAM_RUNTIME για να επιτύχει την βελτιστοποίηση του client (της desktop εφαρμογής δηλαδή) για συγκεκριμένες εξαρτήσεις χωρίς να υπάρχει πρόβλημα αν στο λειτουργικό βρίσκεται διαφορετική έκδοση.
Αυτό είναι κάπως παρόμοιο με το static compilation που συγκεντρώνει τις εξαρτήσεις του προγράμματος στο main binary.
Το πρόβλημα είναι ότι το Steam δεν μπορεί να έρχεται προεγκατεστημένο με όλες τις βιβλιοθήκες που χρειάζεται και πρέπει να βασιστεί στο λειτουργικό σύστημα να παρέχει κάποιες.
Αυτή ακριβώς είναι η περίπτωση με το radeon dri.so. Αυτή η βιβλιοθήκη είναι υπεύθυνη της διασύνδεσηςτου OpenGL του client με τον πραγματικό οδηγό.
Έτσι, το μόνο πράγμα που χρειαζόμαστε είναι το Steam για να φορτώσει τη νεότερη έκδοση της βιβλιοθήκης.
Δηλαδή, παρ' όλο που προκύπτει σφάλμα, η προσθήκη αυτή έχει γίνει για καλό, και όχι για να δημιουργήσει πρόβλημα.

Επίλυση:

Ορισμένοι αναφέρουν, πως λίγα λεπτά μετά την εγκατάσταση του Steam στον υπολογιστή σας, θα έρθει και το update του, το οποίο σε κάποιες περιπτώσεις - όπως λένε - επιλύει το πρόβλημα αυτόματα.
Παρ' όλα αυτά, σε μένα δεν λειτούργησε αυτό και, όπως φαίνεται, και σε πολλούς/ές ακόμα.

Επομένως, αυτό που χρειάζεται, είναι να αφαιρέσετε το αρχείο libstdc++.so.6.

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

.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6

ΣΗΜΕΙΩΣΗ: Ο φάκελος .local είναι κρυφός και θα τον δείτε πατώντας συγχρόνως τα πλήκτρα Ctrl+H (στις περισσότερες διανομές), είτε από το μενού του File manager σας, να επιλέξετε την εμφάνιση των κρυφών αρχείων.

Μπορείτε λοιπόν να μεταβείτε στον τελευταίο φάκελο (i386-linux-gnu) και μέσα του, ανάμεσα στα υπόλοιπα, θα δείτε και το αρχείο libstdc++.so.6, το οποίο μπορείτε να το διαγράψετε άφοβα.

Εναλλακτικά και για συντομία, αυτό μπορείτε να το κάνετε δίνοντας στο τερματικό / κονσόλα σας την παρακάτω εντολή και πατώντας φυσικά, Enter μετά:

rm /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6

Κατόπιν, δοκιμάστε να τρέξετε πάλι το Steam. Κανονικά θα πρέπει να ανοίξει και να αρχίσει να φορτώνει:

Μπακαλίστικη κάπως η λύση, υπάρχει και πιο κομψός τρόπος, μα επειδή η διαδικασία αυτή επιστρέφει πάλι κάποια errors που μπορεί να μπερδέψουν (αυτά συνήθως είναι κάποια άνευ σημασίας σφάλματα που δίνει ένα πακέτο 32-bit binary σε ένα 64b μηχάνημα) την παραλείψαμε.
Όπως και να έχει όμως, φαίνεται πως δουλεύει και το Steam θα σας τρέξει κανονικά:

  • Σχόλια

0 Comments:

Scroll to Top