• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] X & KDE geben 'falsche' DPI an

Hallo,
ich habe hier mehrere Fragen, bei denen ich nicht wirklich verstehe ob und wenn ja wie sie zusammenhängen - ich hoffe mal, dass ich Antworten bekomme wenn ich alles in einen Post packe:

Bei der Installation einer 13.1 auf einem Laptop ist mir aufgefallen, dass die KDE eine zu kleine DPI Zahl, nämlich 96 in den System-Settings angibt.
Die Zahl ist 'zu klein' weil
Code:
xrandr --prop | grep eDP1
eDP1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 309mm x 175mm
Diese Angaben entsprechen i.d. Tat den 'physikalischen' Eigenschaften meines Displays. D.h. also ein DPI von eigentlich ca. 158.
Um halbwegs erträgliche Fontgrößen zu bekommen muss ich deshalb bisher in den System-Settings der KDE die DPI Zahl erhöhen.

Frage 1): bekommt die KDE die Zahl 96 vom X-Server - und wenn nicht, woher sonst?
Zumindest ist bei mir
Code:
~>xdpyinfo | grep -B2 resolution
screen #0:
  dimensions:    1920x1080 pixels (508x285 millimeters)
  resolution:    96x96 dots per inch
Man sieht also, dass X falsche Abmessungen des Displays bestimmt, woraus dann natürlich auch eine falsche DPI Zahl (für X) folgt.
Woher bekommt X diese falsche Display-Abmessung?

Frage 2): wieso wiedersprechen sich xdpyinfo und xrandr auf ein und demselben System?

Frage 3): und natürlich ... ;) ... wie fixe ich das so, dass X die richtigen Zahlen produziert die KDE die dann hoffentlich auch nutzt?

Danke für die Hilfe,
wbwb

Hier schon mal folgende Infos von meinem System
Code:
/var/log # grep "(WW)\|(EE)" Xorg.0.log  (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  5190.114] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
[  5190.117] (WW) Falling back to old probe method for modesetting
[  5190.117] (WW) Falling back to old probe method for fbdev
[  5190.118] (WW) Falling back to old probe method for vesa
[  5190.230] (WW) synaptics: SynPS/2 Synaptics TouchPad: TopEdge is bigger than BottomEdge. Fixing.
[  5190.246] (EE) evdev: TPPS/2 IBM TrackPoint: Unable to query fd: Inappropriate ioctl for device
[  5190.257] (EE) PreInit returned 2 for "TPPS/2 IBM TrackPoint"
Code:
/etc/X11/xorg.conf.d # cat 50-monitor.conf
# Leer
(Ich muss gestehen, dass mir diese div. automatisch leer erstellen xorg.d Schnipsel-Dateien Spanisch sind. 'Früher' ;) habe ich mir immer ellenlange xorg Dateien selber schreiben müssen ...)
Code:
~>/usr/sbin/hwinfo --gfxcard
08: PCI 02.0: 0300 VGA compatible controller (VGA)              
  [Created at pci.319]
  Unique ID: _Znp.Vu8QTbLxKtB
  SysFS ID: /devices/pci0000:00/0000:00:02.0
  SysFS BusID: 0000:00:02.0
  Hardware Class: graphics card
  Model: "Intel VGA compatible controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x0a16 
  SubVendor: pci 0x17aa "Lenovo"
  SubDevice: pci 0x220c 
  Revision: 0x0b
  Driver: "i915"
  Driver Modules: "drm"
  Memory Range: 0xf0000000-0xf03fffff (rw,non-prefetchable)
  Memory Range: 0xe0000000-0xefffffff (ro,non-prefetchable)
  I/O Ports: 0x3000-0x303f (rw)
  IRQ: 60 (55350 events)
  Module Alias: "pci:v00008086d00000A16sv000017AAsd0000220Cbc03sc00i00"
  Driver Info #0:
    Driver Status: i915 is active
    Driver Activation Cmd: "modprobe i915"
  Config Status: cfg=no, avail=yes, need=no, active=unknown

Primary display adapter: #8
Code:
~>/sbin/lspci -vv | grep -A 12 'VGA cont'
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b) (prog-if 00 [VGA controller])
	Subsystem: Lenovo Device 220c
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 60
	Region 0: Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
	Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
	Region 4: I/O ports at 3000 [size=64]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: <access denied>
	Kernel driver in use: i915
	Kernel modules: i915
Code:
~>dmesg | egrep -i "drm|gpu|via"
[    1.388675] ata1.00: supports DRM functions and may not be fully accessible
[    1.389699] ata1.00: supports DRM functions and may not be fully accessible
[    1.860117] [drm] Initialized drm 1.1.0 20060810
[    1.890665] [drm] Memory usable by graphics device = 2048M
[    1.890678] fb: conflicting fb hw usage inteldrmfb vs EFI VGA - removing generic driver
[    2.023420] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    2.023423] [drm] Driver supports precise vblank timestamp query.
[    2.117718] [drm] GMBUS [i915 gmbus dpb] timed out, falling back to bit banging on pin 5
[    2.132472] fbcon: inteldrmfb (fb0) is primary device
[    3.759469] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[    3.770269] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[    3.818281] [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off
Code:
~>cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.11.10-11-desktop root=UUID=3193404d-4834-498f-a904-0f9320d2f1bd ro resume=/dev/disk/by-id/ata-SAMSUNG_MZ7TD256HAFV-000L9_S17LNSADA02886-part2 splash=silent quiet showopts elevator=noop
 
xdpyinfo errechnet eine fiktive Bildschirmgröße an Hand von aktueller Auflösung und aktuellem DPI-Wert, warum das so ist, mußt Du die Entwickler fragen. xrandr verwendet die vom Bildschirm mitgeteilten bzw. in einer Konfigurationsdatei angegebenen Werte. Beim DPI-Wert 96 bin ich der Meinung, daß diese Zahl zum generellen 08/15-Standard von Xorg wurde, aber diese Meinung kommt aus meinem Gefühl.

Möglichkeiten zur DPI-Festlegung für Xorg kannst Du http://forum.linux-club.de/viewtopic.php?f=93&t=118244&p=748692&hilit=xinitrc#p748692 entnehmen (Deine KDE 4-Einstellung werden manche andere Programme ignorieren).
 
josef-wien schrieb:
xdpyinfo errechnet eine fiktive Bildschirmgröße ... DPI-Wert 96 ... 08/15-Standard von Xorg
Das ist ja strange. Ich erinnere mich dumpf, dass ich früher immer die reale Geometrie (H mm x B mm) meines Monitors in die xorg.conf eingetragen habe.
Würde xdpyinfo, wenn der X-Server diese reale Geometrie irgendwo mitgeteilt bekäme (wo?) dann doch evtl. eine korrekte DPI ermitteln?
Nachdem genau diese DPI ja anscheinend die Größe der Fonts der gesamten KDE beeinflussen, ist es doch schon komisch, das sie - wie Du sagst - einfach auf 96 'festgelegt' werden.
josef-wien schrieb:
DPI-Festlegung für Xorg kannst Du http://forum.linux-club.de/viewtopic.php?f=93&t=118244&p=748692&hilit=xinitrc#p748692 entnehmen
Danke - damit bekommen meine KDE-Fonts auch ohne 'erzwungene' Font-DPI Einstellung eine anständige Größe.
Obwohl ... ;) ... 'erzwungen' ist es immer noch irgendwie, da ich's ja nun dem kdm händisch mitteile.

wbwb
 
Der Treiber holt sich die notwendigen Informationen vom Bildschirm, was davon in /var/log/Xorg.0.log protokolliert wird, hängt vermutlich vom Treiber ab (Stichwort: EDID).

Die vom Anzeigeprogramm xdpyinfo gemeldeten Werte für DPI und Bildschirmauflösung sind korrekt. Aus diesen beiden Werten leitet das Programm die Bildschirmmaße ab, und diese Vorgangsweise ist falsch.
 
josef-wien schrieb:
xdpyinfo errechnet eine fiktive Bildschirmgröße an Hand von aktueller Auflösung und aktuellem DPI-Wert
Kann ich nicht nachvollziehen.
Code:
screen #0:
  dimensions:    1920x1200 pixels (524x321 millimeters)
  resolution:    93x95 dots per inch
Das sind eindeutig Werte aus den EDID Infos.
josef-wien schrieb:
Die vom Anzeigeprogramm xdpyinfo gemeldeten Werte für DPI und Bildschirmauflösung sind korrekt. Aus diesen beiden Werten leitet das Programm die Bildschirmmaße ab, und diese Vorgangsweise ist falsch.
Wieso ist die Vorgehensweise falsch wenn die Werte für Breite, Höhe und DPI stimmen?

IMO arbeitet Xorg sehr vernünftig mit den Angaben von EDID (sofern diese zur Verfügung stehen). Die traditionelle Defaultauflösung von X11 ist übrigens 75dpi (was bei damals gebräuchlichen CRTs optimistisch bis realistisch war), die 96DPI decken sich mit der hartgecodeten Standardauflösung von diesem anderen Betriebssystem. Ich nehme mal an dass KDE oder Gnome diesen Mist optional übernommen haben, frei nach dem Motto "Die Leute sinds ja gewohnt auf diese Art und Weise verarscht zu werden, also machen wir das auch so". An welcher Stelle man das wieder abstellen kann vermag ich momentan nicht zu sagen.

Jedenfalls ist die Erkennung der tatsächlichen Auflösung unter MacOSX oder X11 weit besser als der Quatsch der bei diesem anderen OS getrieben wird (Ich muss zugeben dass ich nur Erfahrungen bis Version 7 habe, ich habe einfach kein Interesse mehr an dem Mist).
 
panamajo schrieb:
IMO arbeitet Xorg sehr vernünftig mit den Angaben von EDID (sofern diese zur Verfügung stehen).
Das stimmt, aber darum geht es hier nicht, hier geht es um die Ausgabe von xdpyinfo.

panamajo schrieb:
Kann ich nicht nachvollziehen.
Es ist auch bei Dir so:
1920x25,4/93=524
1200x25,4/95=321
524x321 ist weder 16:9 noch 16:10, sondern der von xdpyinfo errechnete Phantasiewert. xrandr liefert die Realität.
 
Oben