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

grub bestimmt die Bildschirmauflösung des X-Server ?

bmk

Member
Hallo,

ich habe einen älteren Rechner mit einer VIA-Onboard-Graphik. Nach verschiedenen Spielereien mit diversen via-Treibern bin ich wieder bei der stabileren Framebuffer-Variante (fbdev) gelandet, die bislang immer stabil lief.

openSUSE 13.1 (32-bit) konnte ich von der DVD problemlos bei gewohnter Bildschirmauflösung (1280x1024) installieren, das Installationsprogramm erkannte die eingebaute Graphik korrekt.

Nach dem ersten Reboot landete ich bei einer Auflösung von 640 x 480. Mit xrandr konnte ich nichts verändern, auch brachten Änderungen in /etc/X1/xorg.conf.d/50-device.conf (fbdev als Treiber) keine Abhilfe.

Ich habe dann den Bootmanager umkonfiguriert, dort stand "Bildschirmauflösung von grub automatisch erkannt" und dann 1280x1024 eingetragen. Das ganze zu bestätigen, war nicht einfach, da der Ok-Knopf bei 640x480 nicht mehr sichtbar ist.

Nach dem nächsten reboot startete der X-Server dann mit der Auflösung von 1240x1080. Spaßeshalber habe ich auch noch die Einstellung 1024x768 ausprobiert und das geschah dann auch so.

Frage: Ist das so gewollt, dass der Bootmanager die Auflösung bestimmt ?
Eigentlich sollte der X_Server eigenständig die optimale Auflösung finden.

Gruß bmk
 

spoensche

Moderator
Teammitglied
Die Auflösung von Grub hat keinen Einfluss auf die Auflösung des X-Servers, da er beim Start einen eigenen Scan der Hardware durchführt. Den Scan führt der X-Server allerdings nur aus, wenn er für die Hardware keine Konfiguration hat.

Wie sieht den deine /etc/X11/xorg.conf.d/50-device.conf aus?

Poste mal die Ausgabe von
Code:
egrep "EE|WW" /var/log/Xorg.0.log
und von
Code:
dmesg | egrep -i "err|warn|fail|fault"
 
OP
B

bmk

Member
Hallo,
ich bin leider erst heute dazu gekommen, mich um die Sache zu kümmern.

Zunächst zur 50-device.conf:
Dort war zunächst standardmäßig alles auskommentiert, was dazu führte, dass nach einem via-Treiber gesucht wurde, der aber nicht gefunden wurde und dann irgend eine Systemeinstellung verwendet wurde.
Ich habe daraufhin die 50-device.conf wie folgt geändert:
Code:
Section "Device"
#  Identifier "Default Device"
#
#  #Driver "radeon"
#
#  ## Required magic for radeon/radeonhd drivers; output name
#  ## (here: "DVI-0") can be figured out via 'xrandr -q'
#  #Option "monitor-DVI-0" "Default Monitor"
#
    Identifier "Framebuffer Device"
    Driver "fbdev"
#    Id	"Device[0]"
EndSection

Auch die 50-monitor.conf habe ich an die alte Einstellung von SUSE 12.2 angepasst.

Der X1--Server startet seitdem ohne Fehler:
Code:
/var/log # egrep "EE|WW" /var/log/Xorg.0.log
[    17.827] Current Operating System: Linux KemperPC 3.11.6-4-desktop #1 SMP PREEMPT Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) i686
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    18.008] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
[    18.011] Initializing built-in extension MIT-SCREEN-SAVER
KemperPC:/var/log #

Stelle ich bei der Bootloader-Konfiguration in YAST2 bei den Optionen die Konsolenauflösung auf 1280x1024 ein, so übernimmt der X-Server diese Einstellung:
Code:
egrep "size" /var/log/Xorg.1.log
[  7674.250] (--) FBDEV(0): Virtual size is 1280x1024 (pitch 1280)
Stelle ich das ganze auf 1024x768 ein, gibt es nach dem nächsten Reboot:
Code:
# egrep "size" /var/log/Xorg.0.log
[    18.036] (--) FBDEV(0): Virtual size is 1024x768 (pitch 1024)

In dmesg ist auch nichts auffälliges:
Code:
# dmesg | egrep -i "err|warn|fail|fault"
[    0.000000] MTRR default type: uncachable
[    0.000000] Using APIC driver default
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.002009] pid_max: default: 32768 minimum: 301
[    0.070060] ACPI: Using IOAPIC for interrupt routing
[    0.084463] acpi PNP0A03:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[    0.084693] PCI: root bus 00: using default resources
[    0.084698] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.
[    0.092331] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 6 7 10 11 12) *5
[    0.092625] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 6 7 10 *11 12)
[    0.092925] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 6 7 10 *11 12)
[    0.093231] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 6 7 *10 11 12)
[    0.093490] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 6 7 *10 11 12)
[    0.093708] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 6 7 10 11 12) *0, disabled.
[    0.093928] ACPI: PCI Interrupt Link [LNK0] (IRQs 3 4 6 7 10 11 12) *0, disabled.
[    0.094154] ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 6 7 10 11 12) *0, disabled.
[    0.094527] ACPI: PCI Interrupt Link [ALKA] (IRQs *20)
[    0.094860] ACPI: PCI Interrupt Link [ALKB] (IRQs *21)
[    0.095136] ACPI: PCI Interrupt Link [ALKC] (IRQs *22)
[    0.095473] ACPI: PCI Interrupt Link [ALKD] (IRQs *23), disabled.
[    0.097322] NetLabel:  unlabeled traffic allowed by default
[    0.147529] ACPI: PCI Interrupt Link [ALKB] enabled at IRQ 21
[    1.249022] pci 0000:00:10.4: EHCI: BIOS handoff failed (BIOS bug?) 01010001
[    1.249296] PCI: CLS 32 bytes, default 64
[    1.701600] io scheduler cfq registered (default)
[    3.168245] ACPI: PCI Interrupt Link [ALKA] enabled at IRQ 20
[    8.510471] systemd[1]: Starting LSB: Set default boot entry if called...
[   14.490756] ACPI: PCI Interrupt Link [ALKC] enabled at IRQ 22
[   16.432900] type=1400 audit(1390240059.903:7): apparmor="STATUS" operation="profile_load" name="/usr/lib/apache2/mpm-prefork/apache2//DEFAULT_URI" pid=456 comm="apparmor_parser"

Und hier noch die Ausgabe von #cat /proc/cmdline:
Code:
# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-3.11.6-4-desktop root=UUID=10a0e82b-aab0-4383-a1e7-42125646f5e5 resume=/dev/disk/by-id/ata-WDC_WD2500JS-22NCB1_WD-WCANK4360223-part5 splash=silent quiet showopts

Immerhin funktioniert es mit dieser Einstellung, glxgears funktioniert auch, lediglich eine Meldung ist eigenartig:
Code:
# egrep "blank" /var/log/Xorg.0.log
[    18.037] (II) FBDEV(0): FBIOBLANK: Invalid argument (Screen blanking not supported by vesafb of Linux Kernel)

Aber es ist schon eigenartig, dass die Konsolenauflösung den X-Server beeinflusst.
In der grub.cfg steht:
Code:
72-if loadfont $font ; then
73:  set gfxmode=1024x768
74-  load_video
75-  insmod gfxterm
76-  set locale_dir=$prefix/locale

Gruß bmk
 

spoensche

Moderator
Teammitglied
Welcher VIA Grafikchip ist den bei dir verbaut?

Poste mal die Ausgabe von

Code:
/usr/sbin/hwinfo --gfxcard
und von
Code:
lspci -vv | grep -A 10 VGA

Der X-Server startet nicht ohne Grund nur mit 640x480. Evtl. musst du nämlich den Unichrome Treiber verwenden.
 
OP
B

bmk

Member
Hallo spoensche,

es ist VIA P4M800 Unichrome Pro, VT3344.

/usr/sbin/hwinfo --gfxcard liefert:
Code:
28: PCI(AGP) 100.0: 0300 VGA compatible controller (VGA)        
  [Created at pci.319]
  Unique ID: VCu0.mXszT49Ddf2
  Parent ID: vSkL.S16qDHSKEeD
  SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
  SysFS BusID: 0000:01:00.0
  Hardware Class: graphics card
  Model: "VIA CN700/P4M800 Pro/P4M800 CE/VN800 [S3 UniChrome Pro]"
  Vendor: pci 0x1106 "VIA Technologies, Inc."
  Device: pci 0x3344 "CN700/P4M800 Pro/P4M800 CE/VN800 [S3 UniChrome Pro]"
  SubVendor: pci 0x1462 "Micro-Star International Co., Ltd."
  SubDevice: pci 0x7222 
  Revision: 0x01
  Memory Range: 0xf4000000-0xf7ffffff (ro,non-prefetchable)
  Memory Range: 0xfb000000-0xfbffffff (rw,non-prefetchable)
  Memory Range: 0xfc000000-0xfc00ffff (ro,non-prefetchable,disabled)
  IRQ: 5 (no events)
  I/O Ports: 0x3c0-0x3df (rw)
  Module Alias: "pci:v00001106d00003344sv00001462sd00007222bc03sc00i00"
  Driver Info #0:
    Driver Status: viafb is not active
    Driver Activation Cmd: "modprobe viafb"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #15 (PCI bridge)

Primary display adapter: #28





lspci -vv | grep -A 10 VGA liefert (ohne die Zeilen mit VGASnoop-):
Code:
01:00.0 VGA compatible controller: VIA Technologies, Inc. CN700/P4M800 Pro/P4M800 CE/VN800 Graphics [S3 UniChrome Pro] (rev 01) (prog-if 00 [VGA controller])
        Subsystem: Micro-Star International Co., Ltd. Device 7222
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 64 (500ns min)
        Interrupt: pin A routed to IRQ 5
        Region 0: Memory at f4000000 (32-bit, prefetchable) [size=64M]
        Region 1: Memory at fb000000 (32-bit, non-prefetchable) [size=16M]
        [virtual] Expansion ROM at fc000000 [disabled] [size=64K]
        Capabilities: [60] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [70] AGP version 3.0

Ich hatte mich in früheren SUSE-Versionen mit diversen Unichrome- und openchrome-Treibern versucht, aber so richtig stabil war das nicht, die Hardwarebeschleunigung funktionierte nicht (X-Server hing z.B. bei Tuxracer), außerdem gab es Probleme beim Umschalten der Konsole mit CTRL-ALT-Fx, da lief das System mit dem fbdev doch stabiler.

Vor openSUSE 13.1 hatte ich die Version 12.2 mit grub als Bootloader. Offenbar setzt grub2 den gfxmode so, dass dies beim X11-Start übernommen wird, ohne dass der X-Server sich auf die optimale Auflösung konfiguriert.

Eigenartig ist auch, dass lxrandr und sax3 nur diese eine Auflösung anzeigen, die nicht umgeschaltet werden kann.

Prinzipiell läuft es ja, nun ja, die Schriftgröße der boot-Meldungen könnte etwas größer sein, da wäre 1024x768 praktischer, aber 1280x1080 ist für KDE schon sinnvoller.

Ich werde mal versuchen, beim Monitor den Preferred_mode einzutragen oder doch noch einmal die openchrome-Treiber ausprobieren (wobei der VT3344 nicht in der Liste der unterstützten Chipsets auftaucht),

Gruß bmk
 

spoensche

Moderator
Teammitglied
bmk schrieb:
Ich hatte mich in früheren SUSE-Versionen mit diversen Unichrome- und openchrome-Treibern versucht, aber so richtig stabil war das nicht, die Hardwarebeschleunigung funktionierte nicht (X-Server hing z.B. bei Tuxracer), außerdem gab es Probleme beim Umschalten der Konsole mit CTRL-ALT-Fx, da lief das System mit dem fbdev doch stabiler.

Die Hardwarebeschleunigung muss auch explizit konfiguriert werden und dabei musst du dich entweder für XAA oder für EXA entscheiden. Dann ist es auch kein Wunder das es nicht stabil war.

bmk schrieb:
Vor openSUSE 13.1 hatte ich die Version 12.2 mit grub als Bootloader. Offenbar setzt grub2 den gfxmode so, dass dies beim X11-Start übernommen wird, ohne dass der X-Server sich auf die optimale Auflösung konfiguriert.

Eigenartig ist auch, dass lxrandr und sax3 nur diese eine Auflösung anzeigen, die nicht umgeschaltet werden kann.

xRandR funktioniert bei Unichrome nur mit konfiguriertem Openchrome Treiber, d.h. die Option PanelSize muss und kann nur mit einer der folgenden Auflösungen betrieben werden:

640x480, 800x600, 1024x768, 1280x1024, 1400x1050.

Zusätzlich muss für xRandR auch die Option Rotate RotationType angegeben werden. Siehe dazu auch
Code:
man 4 openchrome

bmk schrieb:
Prinzipiell läuft es ja, nun ja, die Schriftgröße der boot-Meldungen könnte etwas größer sein, da wäre 1024x768 praktischer, aber 1280x1080 ist für KDE schon sinnvoller.

Ich werde mal versuchen, beim Monitor den Preferred_mode einzutragen oder doch noch einmal die openchrome-Treiber ausprobieren (wobei der VT3344 nicht in der Liste der unterstützten Chipsets auftaucht),

Prinzipiell läuft es vielleicht, allerdings verwendest du eine Auflösung, die für deine Karte nicht unterstützt wird. Du betreibst sie also ausserhalb der Spezifikation. Dein Grafikchip wird es dir mit einer wesentlich verkürzten Lebensdauer danken. Wenn dein Monitor dabei auch noch mit nicht unterstützen Modesettings und damit auch in einem nicht unterstützen Frequenzbereich für die Vertikale- und Horizontale Bildsynchronisation und wird es dir ebenfalls mit einer verkürzten Lebensdauer danken.
 
OP
B

bmk

Member
Hallo,
heute konnte ich verschiedene Konfigurationen durchtesten mit folgenden Ergebnissen:

vesa-Treiber:
Eigentlich habe ich in der nur 50-device.conf nur die Section "Device" aktiviert und den Driver "vesa" eingetragen.
Und siehe: Die Bildschirmauflösung beträgt nun 1280x1024 und lässt sich mit lxrandr verändern.
Allerdings ist die Schrift ziemlich klein, in der xorg.0.log steht: DPI set to (85,86), mit fbdev war es (96,96).

openchrome-Treiber:
Nach der Installation des Treibers und Rücksetzen der Konfigurationen in /etc/X11/xorg.conf.d wurde nach einem vergeblichen Versuch mit dem Treiber "via" der "openchrome"-Treiber geladen. Auch diesmal bekam ich auch wieder die gewünschte Auflösung, sogar mir der richtigen Schriftgröße DPI (96,96), allerdings eine Fehlermeldung:
Code:
[drm] Failed to open DRM device for pci:0000:01:00.0: No such file or directory
Ich habe dann in der 50-device.conf den openchrome-Treiber explizit angegeben und verschiedene Optionen ausprobiert, die Fehlermeldung blieb hartnäckig. Die Google-Suche ergab ein paar Treffer mit ähnlichen Fehlermeldungen, eine verwendbare Lösung war aber nicht dabei.
Weiß jemand, wie ich die Meldung weg bekomme ?

Grüße bmk
 

spoensche

Moderator
Teammitglied
Poste mal die Ausgabe von
Code:
egrep "EE|WW" /var/log/Xorg.0.log
und von
Code:
dmesg | egrep -i "drm|gpu|via"
und auch deine xorg.conf.
 
OP
B

bmk

Member
Hallo spoensche,

hier die Teile aus Xorg.0.log:
Code:
egrep "EE|WW" /var/log/Xorg.0.log
[    18.940] Current Operating System: Linux 3.11.6-4-desktop #1 SMP PREEMPT Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) i686
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    19.209] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
[    19.218] Initializing built-in extension MIT-SCREEN-SAVER
[    19.386] (EE) CHROME(0): [drm] Failed to open DRM device for pci:0000:01:00.0: No such file or directory
[    19.681] (WW) CHROME(0): [XvMC] Cannot use XvMC without DRI!
[    19.682] (WW) CHROME(0): Option "MigrationHeuristic" is not used

und aus dmesg:

Code:
dmesg | egrep -i "drm|gpu|via"
[    0.145988] pci 0000:00:01.0: disabling DAC on VIA PCI bridge
[    1.248277] pci 0000:00:11.0: Bypassing VIA 8237 APIC De-Assert Message
[    1.867358] agpgart: Detected VIA VT3314 chipset
[    1.875294] agpgart-via 0000:00:00.0: AGP aperture is 128M @ 0xe8000000
[    3.211396] sata_via 0000:00:0f.0: version 2.6
[    3.212557] sata_via 0000:00:0f.0: routed to hard irq line 11
[    3.214057] scsi0 : sata_via
[    3.216910] scsi1 : sata_via
[   10.344727] pata_via 0000:00:0f.1: version 0.3.4
[   10.349057] scsi3 : pata_via
[   10.352038] scsi4 : pata_via
[   13.703220] snd_via82xx 0000:00:11.5: setting latency timer to 64

Gruß bmk
 
OP
B

bmk

Member
Hallo spoensche,

ich habe jetzt den openchrome-Treiber auf die Version 0.3.3 aktualisiert (dabei wurde Xorg von Vr.14 auf 15 aktualisiert), geändert hat sich dabei nichts, es gibt nur einen neuen (EE)-Eintrag bei AIGLX.
nomodeset bei den Boot-Optionen führt zu keinem Unterschied in Xorg.0.log.

Code:
egrep "EE|WW" /var/log/Xorg.0.log
[    27.944] Current Operating System: Linux 3.11.10-7-desktop #1 SMP PREEMPT Mon Feb 3 09:41:24 UTC 2014 (750023e) i686
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    27.947] (WW) The directory "/usr/share/fonts/misc/sgi" does not exist.
[    27.949] Initializing built-in extension MIT-SCREEN-SAVER
[    28.046] (EE) CHROME(0): [drm] Failed to open DRM device for pci:0000:01:00.0: No such file or directory
[    28.262] (WW) CHROME(0): [XvMC] Cannot use XvMC without DRI!
[    28.262] (WW) CHROME(0): Option "MigrationHeuristic" is not used
[    28.278] (EE) AIGLX: reverting to software rendering

Gruß bmk
 
Oben