Το Claude AI βοήθησε στη διόρθωση παλιού bug παγώματος οθόνης στο Linux
Ένα bug με ρίζες από το 2017
Το ενεργό ticket παρακολούθησης του προβλήματος φέρει τον τίτλο «7840U/780M: *ERROR* [CRTC:83:crtc-1] flip_done timed out, leads to frozen display and need to hard reboot» και συνδέεται με έναν commit που ανιχνεύεται πίσω στο 2017. Πρόκειται για ένα σφάλμα χρονισμού στο υποσύστημα Display Core Nextgen (DCN) του AMDGPU που εμφανίζεται κυρίως μετά από εκτεταμένη χρήση και κύκλους αδράνειας.
Ο αναγνώστης του Phoronix που ανέφερε την επικείμενη επίλυση χρησιμοποιεί Lenovo ThinkPad T14 Gen1 AMD, στον οποίο η οθόνη «παγώνει περίπου μία φορά την εβδομάδα». Η τεκμηριωμένη περίπτωση αφορά Framework 13 με Ryzen 7 7840U που τρέχει Fedora με πυρήνα 6.13.11, όπου μετά από περίπου 10 ώρες λειτουργίας που συμπεριλάμβαναν s2idle ύπνο, η εσωτερική οθόνη σταμάτησε να ενημερώνεται, ενώ η εξωτερική οθόνη συνέχισε να ανταποκρίνεται για μερικά λεπτά πριν κι αυτή παγώσει.
Παρόμοιες διπλότυπες αναφορές σφαλμάτων για πάγωμα οθόνης σε laptops με Radeon γραφικά έχουν συσσωρευτεί από πολλούς χρήστες. Το πρόβλημα είναι γνωστό ότι επηρεάζει ιδιαίτερα πλατφόρμες με Ryzen AI, όπου το PSR, αν και σχεδιασμένο για εξοικονόμηση ενέργειας επιτρέποντας στον πίνακα να ανανεώνεται μόνος του όταν η εικόνα είναι στατική, στην πράξη προκαλεί κόλλημα του οδηγού GPU.
Τι προκαλεί το πάγωμα και ποια συσκευή επηρεάζεται
Το bug δεν περιορίζεται σε συγκεκριμένο μοντέλο ή SoC. Από τα forums και τις αναφορές σφαλμάτων προκύπτει ότι θίγονται συσκευές με AMD Ryzen 7 7840U/780M, Ryzen AI 9, Ryzen AI 7, και Ryzen AI 9 HX PRO 370. Από το kernel 6.2 και μετά, η AMD ενεργοποίησε το PSR Selective Update (PSR-SU), και μετά από μη ντετερμινιστικό χρόνο λειτουργίας το σύστημα μπορεί να κολλήσει με σφάλμα τύπου «commit wait timed out» στα logs — επηρεάζοντας ειδικά laptops με AMD Rembrandt ή Phoenix chips και eDP πάνελ με ορισμένους ελεγκτές.
Η προσωρινή αντιμετώπιση που χρησιμοποιούσαν πολλοί χρήστες ήταν να απενεργοποιήσουν το PSR μέσω παραμέτρου εκκίνησης πυρήνα. Η παράμετρος amdgpu.dcdebugmask=0x12 ως παράμετρος εκκίνησης του πυρήνα βοηθά στην αντιμετώπιση του προβλήματος, απενεργοποιώντας το PSR και το Adaptive Backlight Management (ABM). Η λύση αυτή όμως επηρεάζει αρνητικά την αυτονομία της μπαταρίας, καθώς αχρηστεύει βελτιστοποιήσεις εξοικονόμησης ενέργειας.
Το Claude AI μπαίνει στην εξίσωση
Στο πλαίσιο του εκτενούς ticket, χθες δημοσιεύτηκαν νέα patches που αφορούν την ενοποίηση του χειρισμού DCN vblank/page-flip και άλλες αλλαγές στον κώδικα εμφάνισης. Το εξαιρετικά ενδιαφέρον στοιχείο της υπόθεσης είναι η ανάμιξη τεχνητής νοημοσύνης στη διαδικασία: η ολοκλήρωση της εργασίας έγινε με «vibe debugging» — δηλαδή διαδραστική αποσφαλμάτωση με καθοδήγηση — μέσω του Claude Code, το οποίο βοήθησε και στη σύνταξη των ίδιων των patches.
Δεν είναι η πρώτη φορά που το AI χρησιμοποιείται για εργασία στους οδηγούς AMD Linux: πρόσφατα το GitHub Copilot βοήθησε σε καθαρισμό κώδικα του παλαιότερου οδηγού AMD R600. Ωστόσο, η χρήση Claude Code για να επιλυθεί ένα bug τόσο βαθιά στο υποσύστημα εμφάνισης του πυρήνα Linux είναι αξιοσημείωτη.
Κατάσταση των patches και επόμενα βήματα
Τα patches δεν έχουν ακόμα ενσωματωθεί στον mainline πυρήνα Linux. Βρίσκονται σε ένα δοκιμαστικό branch και αναμένεται να υποβληθούν upstream εφόσον επαληθευτεί η αποτελεσματικότητά τους. Προηγούμενες προσπάθειες επίλυσης δεν είχαν αποτέλεσμα, γεγονός που κάνει την κοινότητα να επιφυλάσσεται — αλλά η προσέγγιση μέσω της αναδιάρθρωσης του DCN vblank handling θεωρείται η πιο υποσχόμενη μέχρι τώρα.
Για τους χρήστες που αντιμετωπίζουν το πρόβλημα τώρα, η απενεργοποίηση του PSR μέσω παραμέτρου πυρήνα παραμένει η πιο αξιόπιστη προσωρινή λύση. Μια δεύτερη επιλογή είναι η μετάβαση σε περιβάλλον Wayland αντί X11, καθώς ορισμένοι χρήστες με παρόμοιο hardware ανέφεραν ότι η χρήση Wayland επέτρεψε τη λειτουργία χωρίς παγώματα.
Πηγές
Phoronix: Claude AI Assists In Fixing Years Old AMD Radeon Linux Display Bug Affecting Numerous Laptops freedesktop.org GitLab: Bug ticket — flip_done timed out, frozen display Ubuntu Launchpad: AMD Rembrandt / Phoenix PSR-SU related freezes
394
