Πώς να διαβάσετε το EDID της οθόνης σας σε ένα Raspberry Pi

Εικόνα τίτλου EDID

Σε αυτή τη δημοσίευση, θα σας πούμε τι ακριβώς πρέπει να κάνετε για να κατανοήσετε τα δεδομένα EDID (extended display identification data) της οθόνης σας στο Raspberry Pi.

Σημείωση: στο παρελθόν, μια λειτουργία για την ανάγνωση του EDID ήταν διαθέσιμη με την αυτόνομη έκδοση του PiDoctor. Αυτή η έκδοση έχει καταργηθεί και η λειτουργία ανάγνωσης του EDID δεν έχει υλοποιηθεί στη νέα έκδοση PiCockpit PiDoctor εφαρμογή ακόμα, επομένως θα σας δώσω οδηγίες για το πώς να διαβάσετε το EDID σε αυτό το άρθρο.

Το PiDoctor περιλαμβάνει έξοδο στις λειτουργίες οθόνης

Πριν ασχοληθούμε με τον τρόπο εξαγωγής του EDID στο Raspberry Pi σας, σημειώστε ότι το νέο του PiCockpit PiDoctor εφαρμογή περιλαμβάνει πολλά αποτελέσματα που θα περιμένατε διαβάζοντας το EDID (υποστηριζόμενες λειτουργίες ανάλυσης, όνομα οθόνης, υποστήριξη ήχου, ...), εδώ είναι δύο στιγμιότυπα οθόνης:

Η εφαρμογή PiCockpit PiDoctor, αντικαθιστώντας ορισμένες λειτουργίες EDID, περιλαμβάνει έξοδο σε λειτουργίες CEA και DMT

Διαβάστε το EDID στο Raspbian / Raspberry Pi OS

Εκτελέστε την ακόλουθη εντολή στη γραμμή εντολών:

tvservice -d /tmp/edid.dat

εκτελέστε αυτήν την εντολή για να γράψετε το EDID σε ένα προσωρινό αρχείο.

Αυτό θα δημιουργήσει το αρχείο edid.dat στον κατάλογο /tmp.

Σημείωση: στα Raspberry Pi 4 και 400, δύο οθόνες μπορούν να συνδεθούν χρησιμοποιώντας τις θύρες microHDMI. Σε αυτή την περίπτωση, θα πρέπει να καθορίσετε την οθόνη από την οποία θα διαβαστεί το EDID:

tvservice --list

Η υπηρεσία tvservice εμφανίζει τις συνημμένες οθόνες.
Η υπηρεσία tvservice εμφανίζει τις συνημμένες οθόνες

Στη συνέχεια, περάστε το αναγνωριστικό της συσκευής, της οθόνης που σας ενδιαφέρει, ως εξής:

tvservice --device 2 -d /tmp/edid.dat

Αποκωδικοποίηση EDID χρησιμοποιώντας edidparser

Μπορείτε να εκτελέσετε το edidparser σε αυτό το αρχείο (αν δεν υπάρχει στο σύστημά σας, εγκαταστήστε το πρώτα):

edidparser /tmp/edid.dat

Αυτό θα σας δώσει πολλά αποτελέσματα, για παράδειγμα στην οθόνη μου, δίνει:

Enabling fuzzy format match
Parsing /tmp/edid.dat
HDMI:EDID version 1.3, 1 extensions, screen size 48x27 cm
HDMI:EDID features - videodef 0x80 standby suspend active off; colour encoding:RGB444|YCbCr422; sRGB is not default colourspace; preferred format is native; does not support GTF
HDMI:EDID found monitor range descriptor tag 0xfd
HDMI:EDID monitor range offsets: V min=0, V max=0, H min=0, H max=0
HDMI:EDID monitor range: vertical is 50-76 Hz, horizontal is 30-83 kHz, max pixel clock is 170 MHz
HDMI:EDID monitor range does not support GTF
HDMI:EDID found monitor name descriptor tag 0xfc
HDMI:EDID monitor name is VE228
HDMI:EDID found monitor S/N descriptor tag 0xff
HDMI:EDID found preferred CEA detail timing format: 1920x1080p @ 60 Hz (16)
HDMI:EDID established timing I/II bytes are BF EF 00
HDMI:EDID found DMT format: code 4, 640x480p @ 60 Hz in established timing I/II
HDMI:EDID found DMT format: code 5, 640x480p @ 72 Hz in established timing I/II
HDMI:EDID found DMT format: code 6, 640x480p @ 75 Hz in established timing I/II
HDMI:EDID found DMT format: code 8, 800x600p @ 56 Hz in established timing I/II
HDMI:EDID found DMT format: code 9, 800x600p @ 60 Hz in established timing I/II
HDMI:EDID found DMT format: code 10, 800x600p @ 72 Hz in established timing I/II
HDMI:EDID found DMT format: code 11, 800x600p @ 75 Hz in established timing I/II
HDMI:EDID found DMT format: code 16, 1024x768p @ 60 Hz in established timing I/II
HDMI:EDID found DMT format: code 17, 1024x768p @ 70 Hz in established timing I/II
HDMI:EDID found DMT format: code 18, 1024x768p @ 75 Hz in established timing I/II
HDMI:EDID found DMT format: code 36, 1280x1024p @ 75 Hz in established timing I/II
HDMI:EDID standard timings block x 8: 0x714F 8180 8140 9500 A940 B300 D1C0 0101
HDMI:EDID found DMT format: code 21, 1152x864p @ 75 Hz (4:3) in standard timing 0
HDMI:EDID found DMT format: code 35, 1280x1024p @ 60 Hz (5:4) in standard timing 1
HDMI:EDID found DMT format: code 32, 1280x960p @ 60 Hz (4:3) in standard timing 2
HDMI:EDID found DMT format: code 47, 1440x900p @ 60 Hz (16:10) in standard timing 3
HDMI:EDID found DMT format: code 51, 1600x1200p @ 60 Hz (4:3) in standard timing 4
HDMI:EDID found DMT format: code 58, 1680x1050p @ 60 Hz (16:10) in standard timing 5
HDMI:EDID found DMT format: code 82, 1920x1080p @ 60 Hz (16:9) in standard timing 6
HDMI:EDID parsing v3 CEA extension 0
HDMI:EDID monitor support - underscan IT formats:yes, basic audio:yes, yuv444:yes, yuv422:yes, #native DTD:1
HDMI:EDID failed to find a matching detail format for 1920x1080p hfp:48 hs:32 hbp:80 vfp:3 vs:5 vbp:22 pixel clock:138 MHz
HDMI:EDID calculated refresh rate is 60 Hz
HDMI:EDID guessing the format to be 1920x1080p @60 Hz
HDMI:EDID found CEA detail timing format: 1920x1080p @ 60 Hz (16)
HDMI:EDID found DMT detail timing format: 1366x768p @ 60 Hz (81)
HDMI:EDID found CEA detail timing format: 1280x720p @ 60 Hz (4)
HDMI:EDID found CEA detail timing format: 720x480p @ 60 Hz (2)
HDMI:EDID found CEA detail timing format: 1920x1080i @ 60 Hz (5)
HDMI:EDID found CEA format: code 16, 1920x1080p @ 60Hz (native)
HDMI:EDID found CEA format: code 5, 1920x1080i @ 60Hz
HDMI:EDID found CEA format: code 4, 1280x720p @ 60Hz
HDMI:EDID found CEA format: code 3, 720x480p @ 60Hz
HDMI:EDID found CEA format: code 2, 720x480p @ 60Hz
HDMI:EDID found CEA format: code 1, 640x480p @ 60Hz
HDMI:EDID found CEA format: code 17, 720x576p @ 50Hz
HDMI:EDID found CEA format: code 18, 720x576p @ 50Hz
HDMI:EDID found CEA format: code 19, 1280x720p @ 50Hz
HDMI:EDID found CEA format: code 20, 1920x1080i @ 50Hz
HDMI:EDID found CEA format: code 31, 1920x1080p @ 50Hz
HDMI:EDID found audio format 2 channels PCM, sample rate: 32|44|48 kHz, sample size: 16|20|24 bits
HDMI:EDID found HDMI VSDB length 5
HDMI:EDID HDMI VSDB has physical address 1.0.0.0
HDMI:EDID HDMI VSDB has no extension fields
HDMI:EDID filtering formats with pixel clock unlimited MHz or h. blanking unlimited
HDMI:EDID best score mode initialised to CEA (1) 640x480p @ 60 Hz with pixel clock 25 MHz (score 0)
HDMI:EDID best score mode is now CEA (1) 640x480p @ 60 Hz with pixel clock 25 MHz (score 61864)
HDMI:EDID best score mode is now CEA (2) 720x480p @ 60 Hz with pixel clock 27 MHz (score 3066472)
HDMI:EDID CEA mode (3) 720x480p @ 60 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID best score mode is now CEA (4) 1280x720p @ 60 Hz with pixel clock 74 MHz (score 3635592)
HDMI:EDID DMT mode (4) 640x480p @ 60 Hz with pixel clock 25 MHz has a score of 18432
HDMI:EDID CEA mode (5) 1920x1080i @ 60 Hz with pixel clock 74 MHz has a score of 2773832
HDMI:EDID DMT mode (5) 640x480p @ 72 Hz with pixel clock 31 MHz has a score of 5529
HDMI:EDID DMT mode (6) 640x480p @ 75 Hz with pixel clock 31 MHz has a score of 5760
HDMI:EDID DMT mode (8) 800x600p @ 56 Hz with pixel clock 36 MHz has a score of 26880
HDMI:EDID DMT mode (9) 800x600p @ 60 Hz with pixel clock 40 MHz has a score of 28800
HDMI:EDID DMT mode (10) 800x600p @ 72 Hz with pixel clock 50 MHz has a score of 8640
HDMI:EDID DMT mode (11) 800x600p @ 75 Hz with pixel clock 49 MHz has a score of 9000
HDMI:EDID best score mode is now CEA (16) 1920x1080p @ 60 Hz with pixel clock 148 MHz (score 5398248)
HDMI:EDID DMT mode (16) 1024x768p @ 60 Hz with pixel clock 65 MHz has a score of 47185
HDMI:EDID CEA mode (17) 720x576p @ 50 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID DMT mode (17) 1024x768p @ 70 Hz with pixel clock 75 MHz has a score of 13762
HDMI:EDID CEA mode (18) 720x576p @ 50 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID DMT mode (18) 1024x768p @ 75 Hz with pixel clock 78 MHz has a score of 14745
HDMI:EDID CEA mode (19) 1280x720p @ 50 Hz with pixel clock 74 MHz has a score of 117160
HDMI:EDID CEA mode (20) 1920x1080i @ 50 Hz with pixel clock 74 MHz has a score of 128680
HDMI:EDID DMT mode (21) 1152x864p @ 75 Hz with pixel clock 108 MHz has a score of 43662
HDMI:EDID CEA mode (31) 1920x1080p @ 50 Hz with pixel clock 148 MHz has a score of 232360
HDMI:EDID DMT mode (32) 1280x960p @ 60 Hz with pixel clock 108 MHz has a score of 98728
HDMI:EDID DMT mode (35) 1280x1024p @ 60 Hz with pixel clock 108 MHz has a score of 103643
HDMI:EDID DMT mode (36) 1280x1024p @ 75 Hz with pixel clock 135 MHz has a score of 24576
HDMI:EDID DMT mode (47) 1440x900p @ 60 Hz with pixel clock 106 MHz has a score of 102760
HDMI:EDID DMT mode (51) 1600x1200p @ 60 Hz with pixel clock 162 MHz has a score of 140200
HDMI:EDID DMT mode (58) 1680x1050p @ 60 Hz with pixel clock 146 MHz has a score of 130840
HDMI:EDID DMT mode (81) 1366x768p @ 60 Hz with pixel clock 85 MHz has a score of 4062945
HDMI:EDID DMT mode (82) 1920x1080p @ 60 Hz with pixel clock 148 MHz has a score of 149416
HDMI0:EDID preferred mode remained as CEA (16) 1920x1080p @ 60 Hz with pixel clock 148 MHz
HDMI:EDID has HDMI support and audio support
edidparser exited with code 0

Διαδικτυακό εργαλείο αποκωδικοποίησης

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

Σημείωση: στη δοκιμή μου, το edid.tv διαμαρτυρήθηκε για λανθασμένο άθροισμα ελέγχου για ένα EDID - δεν γνωρίζω επί του παρόντος κάποια λύση.

Το EDID.tv παρέχει μια πλούσια επισκόπηση των πληροφοριών EDID
EDID.tv

Αντιμετώπιση προβλημάτων tvservice / EDID dump

Τίποτα δεν γράφτηκε

Όταν τρέχω

tvservice -device 2 -d tmp/edid.dat

Παίρνω "Τίποτα δεν γράφτηκε!"

Έτσι τώρα, δοκιμάστε και ελέγξτε τα ακόλουθα:

  • είναι η οθόνη σας συνδεδεμένη στη θύρα HDMI (όχι, σοβαρά)
  • είναι σωστό το αναγνωριστικό της συσκευής; χρησιμοποιήστε tvservice -list για να λάβετε μια λίστα με τα αναγνωριστικά, μην αντιγράφετε και επικολλάτε απλά το παράδειγμα του αναγνωριστικού της συσκευής μου 2
  • δοκιμάστε tvservice χωρίς -συσκευή 2
  • δοκιμάστε να επανεκκινήσετε το Raspberry Pi (υπάρχουν προβλήματα σε αυτή τη συγκεκριμένη περίπτωση χρήσης όταν οι οθόνες είναι συνδεδεμένες εν θερμώ, AFAIK) και εκτελέστε ξανά τις εντολές.
  • δοκιμάστε τις άλλες παραμέτρους tvservice, για να κάνετε αποσφαλμάτωση αν είναι δυνατή οποιαδήποτε έξοδος από τη συγκεκριμένη οθόνη (εδώ είναι μια τεκμηρίωση για το tvservice)
  • Ορισμένες τηλεοράσεις/οθόνες είναι ελαττωματικές και δεν μπορούν να παρέχουν EDID - δοκιμάστε μια άλλη οθόνη για να δείτε αν αυτό κάνει τη διαφορά.

Συμπέρασμα

Και τώρα που τα δεδομένα αναγνώρισης της οθόνης σας έχουν επιτέλους νόημα, μπορείτε να ξεκινήσετε το επόμενο έργο σας με το Raspberry Pi!

Ψάχνετε για μερικές ιδέες; Ελέγξτε η σειρά μας Paragon Projects.

2 Σχόλια

  1. Yoann στις Ιανουάριος 26, 2022 στις 5:32 μμ

    Bonjour, j'obtiens cette erreur :
    Το tvservice δεν υποστηρίζεται όταν χρησιμοποιείται το πρόγραμμα οδήγησης vc4-kms-v3d.
    Παρόμοια χαρακτηριστικά είναι διαθέσιμα με τα τυπικά εργαλεία linux
    όπως το modetest από το libdrm-tests.

    Υπάρχει εναλλακτική λύση;

    Merci,

Αφήστε ένα σχόλιο