ubuntu δεν φορτώνουν όταν είναι συνδεδεμένο με video splitter για προτζεκτορα

Ξεκίνησε από khatziar, 28 Μαΐου 2013, 09:19:59 ΠΜ

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

alkisg

Με το καινούργιο LTSP, για προσθήκη νέας ανάλυσης δούλεψε το παρακάτω:

Κώδικας: Bash
[1280x1024]
X_MODELINE='"1280x1024" 109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync'
#X_MODES='"1280x1024" "1024x768" "800x600" "640x480"'
X_PREFERREDMODE="1280x1024"

[01:02:03:04:05:06]
HOSTNAME=pc01
INCLUDE=1280x1024

alkisg

Για την περίπτωση που κάποιος client έχει συνδεδεμένες δύο οθόνες και θέλουμε να θέσουμε την πρωτεύουσα:

Κώδικας: ini
POST_INIT_XORG_CONF='cat >/etc/X11/xorg.conf.d/local.conf <<EOF
Section "Monitor"
    Identifier  "DP-1"
    Option      "Primary" "true"
EndSection
EOF'

alkisg

Απενεργοποίηση hardware acceleration:

Κώδικας: ini
POST_INIT_XORG_CONF='cat >/etc/X11/xorg.conf.d/local.conf <<EOF
Section           "Device"
    Identifier    "Configured Video Device"
    Option        "NoAccel" "on"
EndSection
EOF'
POST_INIT_SOFTWARE_OPENGL="echo 'export LIBGL_ALWAYS_SOFTWARE=1' >/etc/X11/Xsession.d/50sch-scripts"

gidarakos

Επειδή αντιμετώπισα σύμπτωμα splitter, δηλαδή μη αναγνώριση monitor (Out of Range) χωρίς όμως να έχω splitter, αποτυπώνω τη λύση μην τυχόν ξαναχρειαστεί.

Πρόβλημα
H/Y: ASUS EB1503
Συνθήκες: Κλωνοποίηση μέσω LTSP server ή boot με live USB Ubuntu MATE 22.04
Σύμπτωμα: Out of Range

Μόνιμη λύση
https://alkisg.mysch.gr/steki/index.php?topic=5220.msg74098#msg74098

Δηλαδή, εντολή:
Κώδικας: Bash
sudo dpkg-reconfigure grub-pc
Με παράμετρο στη "Γραμμή εντολής Linux":
drm_kms_helper.edid_firmware=edid/1280x1024.bin

Προσωρινή λύση
Κατά την εκκίνηση του live USB, στο kernel command line (συνήθως μπροστά από το quiet splash), εισαγωγή της ίδιας παραμέτρου (μόνιμη λύση).

alkisg

Τα μισά μου μηνύματα στο παρόν θέμα δεν έχουν σχέση με splitter πια, συλλέγω λύσεις σε παραπλήσια προβλήματα γραφικών, με στόχο να τα καθαρογράψω στο wiki όταν βρω ευκαιρία.

Για να ενεργοποιήσουμε με το ζόρι μία έξοδο (connector) ακόμα κι όταν δεν υπάρχει συνδεδεμένη οθόνη, για παράδειγμα σε headless server που συνδεόμαστε με VNC.
Αυτό μας επιτρέπει να επιλέξουμε μεγάλη ανάλυση αντί για 1024x768, και μερικές φορές επιταχύνει και το VNC σε σχέση με το default Screen0 output.

Βρίσκουμε το όνομα της εξόδου με:

Κώδικας: Bash
$ ( cd /sys/kernel/debug/dri/0; echo [[:upper:]]* )
DP-1 DP-2 HDMI-A-1 HDMI-A-2 VGA-1

Τα ονόματα αυτά μπορεί να είναι διαφορετικά από αυτά που εμφανίζει η xrandr, π.χ. HDMI-0.
Τότε για τυπικές αναλύσεις βάζουμε στο kernel command line κάτι τέτοιο:

video=HDMI-A-1:e drm.edid_firmware=HDMI-A-1:edid/1920x1080.bin

Παραλλαγές:
  • video=HDMI-A-1:e χωρίς edid: το disconnected edid υποστηρίζει 1024x768, 800x600, 848x480 και 640x480.
  • video=HDMI-A-1:1920x1080e χωρίς edid: για τυπικές αναλύσεις δίνει μόνο μέχρι 1024x768.
  • video=HDMI-A-1:1912x1016e χωρίς edid: για προσαρμοσμένες αναλύσεις δίνει προεπιλεγμένη την μεγαλύτερη και διαθέσιμες του connected/disconnected edid.
  • video=HDMI-A-1:1912x1016e drm.edid_firmware=HDMI-A-1:edid/1920x1080.bin: με kernel edid 1920 το Xorg επιτρέπει ως 1856, μετά τις θεωρεί εκτός ορίων και βγάζει Not using mode "1912x1016" (bad mode clock/interlace/doublescan).
  • video=HDMI-A-1:1600x900e drm.edid_firmware=HDMI-A-1:edid/1920x1080.bin: δίνει προεπιλεγμένη την 1920x1080 και διαθέσιμη την 1600x900.
  • Αντί για "e" μπορεί να μπει "D" για ψηφιακή έξοδο.

Έτσι, για προσαρμοσμένες αναλύσεις π.χ. 1912x1016 το καλύτερο είναι "video=HDMI-A-1:1912x1016e" χωρίς edid αλλά συνοδευόμενο από το παρακάτω /etc/X11/xorg.conf:

Section "Monitor"
        Identifier      "DVI-0"
        Option          "PreferredMode" "1912x1016"
EndSection

Σχετικές σελίδες:
https://docs.kernel.org/fb/modedb.html
https://wiki.archlinux.org/title/kernel_mode_setting
https://bugs.freedesktop.org/show_bug.cgi?id=103779
https://dri-devel.freedesktop.narkive.com/4y0vhfiy/patch-drm-fix-drm-force-on-digital-use

alkisg

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

https://sleeplessbeastie.eu/2022/02/02/how-to-incorporate-edid-into-initrd-image/