How can I disable the DisplayPort and display-cloning completely and only use VGA with a custom resolution of 1920x240 (15KHz) on a CRT. Might involve the creation of a custom xorg.conf
I'm struggeling with a RetroPie installation in Ubuntu Server that I'd like to use on a SONY PVM 15KHz CRT monitor. As soon as RetroArch kicks in everything is fine, games are displayed via CRTswitchRes-function and look awesome on the screen - just the linux environment gives me a hard time.
I chose to use so called "Super Resolutions" which are super-wide (e.g. 1920x240) and look correct when fed to the CRT. In order to be able to navigate the frontend, the console has to be set to something similar and there are some pitfalls which I'd like to work out.
First things first, this is the hardware I'm using: HP Compaq Elite 8000 Ultra Small Desktop E8600@3.3GHz, 8GB DDR3, intel GMA 4500 DisplayPort (to Samsung Monitor), VGA (to CRT with custom cable)
The main problem seems to be, that Xorg cannot do anything, because the CRT doesn't give any infos via EDID. Also I've read that with intel you must not use display-cloning, otherwise the system always uses resolutions that both monitors are capable of.
In short: xrandr output is always: Can't open display
The Version of Ubuntu doesn't really matter, I tried 14, 16 and 18 LTS with the same results: RetroArch works, console doesn't. I don't want to switch to Ubuntu-Desktop because I'd like this to be as slick as possible. Right now I'm trying to work with 18.10 LTS.
So, regardless of RetroPie, I tried my best to get the desired resolution:
- created an EDID binary and referenced it in /etc/default/grub
- tried many different parameters in grub file
- patched the kernel with this: https://github.com/TiBeN/15khz-arcade-pkg/blob/master/doc/15khz-package-documentation.md
- installed intel drivers xf86-video-intel and xserver-xorg-video-intel but both gave me performance issues in RetroPie.
- Since auto-creation of a xorg.conf fails I tried to make my own, but the frontend won't even boot because I just don't know what to put in there.
Some system information that I collected:
hwinfo --gfxcard 07: PCI 02.0: 0300 VGA compatible controller (VGA) [Created at pci.366] Unique ID: _Znp.QUyWiVSQCGD SysFS ID: /devices/pci0000:00/0000:00:02.0 SysFS BusID: 0000:00:02.0 Hardware Class: graphics card Model: "Intel 4 Series Chipset Integrated Graphics Controller" Vendor: pci 0x8086 "Intel Corporation" Device: pci 0x2e12 "4 Series Chipset Integrated Graphics Controller" SubVendor: pci 0x103c "Hewlett-Packard Company" SubDevice: pci 0x3648 Revision: 0x03 Driver: "i915" Driver Modules: "drm" Memory Range: 0xf0000000-0xf03fffff (rw,non-prefetchable) Memory Range: 0xe0000000-0xefffffff (ro,non-prefetchable) I/O Ports: 0x1230-0x1237 (rw) IRQ: 31 (33735 events) I/O Ports: 0x3c0-0x3df (rw) Module Alias: "pci:v00008086d00002E12sv0000103Csd00003648bc03sc00i00" Driver Info #0: Driver Status: i915 is active Driver Activation Cmd: "modprobe i915" Config Status: cfg=new, avail=yes, need=no, active=unknown 08: PCI 02.1: 0380 Display controller [Created at pci.366] Unique ID: ruGf.xwJ9cLl4Ut2 SysFS ID: /devices/pci0000:00/0000:00:02.1 SysFS BusID: 0000:00:02.1 Hardware Class: graphics card Model: "Intel 4 Series Chipset Integrated Graphics Controller" Vendor: pci 0x8086 "Intel Corporation" Device: pci 0x2e13 "4 Series Chipset Integrated Graphics Controller" SubVendor: pci 0x103c "Hewlett-Packard Company" SubDevice: pci 0x3648 Revision: 0x03 Memory Range: 0xf0400000-0xf04fffff (rw,non-prefetchable,disabled) Module Alias: "pci:v00008086d00002E13sv0000103Csd00003648bc03sc80i00" Config Status: cfg=new, avail=yes, need=no, active=unknown Primary display adapter: #7 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ hwinfo --monitor 20: None 00.0: 10002 LCD Monitor [Created at monitor.125] Unique ID: rdCR.k6CV94ujG82 Parent ID: _Znp.QUyWiVSQCGD Hardware Class: monitor Model: "SAMSUNG SyncMaster" Vendor: SAM "SAMSUNG" Device: eisa 0x01ae "SyncMaster" Serial ID: "HS3P601288" Resolution: 720x400@70Hz Resolution: 640x480@60Hz Resolution: 640x480@67Hz Resolution: 640x480@72Hz Resolution: 640x480@75Hz Resolution: 800x600@56Hz Resolution: 800x600@60Hz Resolution: 800x600@72Hz Resolution: 800x600@75Hz Resolution: 832x624@75Hz Resolution: 1024x768@60Hz Resolution: 1024x768@70Hz Resolution: 1024x768@75Hz Resolution: 1280x1024@75Hz Resolution: 1600x1200@60Hz Resolution: 1280x1024@60Hz Resolution: 1280x960@60Hz Resolution: 1152x864@75Hz Size: 408x306 mm Year of Manufacture: 2007 Week of Manufacture: 24 Detailed Timings #0: Resolution: 1600x1200 Horizontal: 1600 1664 1856 2160 (+64 +256 +560) +hsync Vertical: 1200 1201 1204 1250 (+1 +4 +50) +vsync Frequencies: 162.00 MHz, 75.00 kHz, 60.00 Hz Driver Info #0: Max. Resolution: 1600x1200 Vert. Sync Range: 56-75 Hz Hor. Sync Range: 30-81 kHz Bandwidth: 162 MHz Config Status: cfg=new, avail=yes, need=no, active=unknown Attached to: #2 (VGA compatible controller) ++++++++++++++++++++++++++++++++++++++++++++++++++++++ lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation 4 Series Chipset Integrated Graphics Controller (rev 03) ++++++++++++++++++++++++++++++++++++++++++++++++++++++ glxgears -info Error: couldn't open display (null) ++++++++++++++++++++++++++++++++++++++++++++++++++++++ xrandr Can't open display ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ls /sys/class/drm/ card0 card0-DP-1 card0-HDMI-A-1 card0-VGA-1 controlD64 renderD128 version ++++++++++++++++++++++++++++++++++++++++++++++++++++++ /etc/default/grub # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=0 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` #GRUB_CMDLINE_LINUX_DEFAULT="gfxpayload=640x480x16,640x480 video=card0-VGA-1:640x480@60ec" GRUB_CMDLINE_LINUX_DEFAULT="video=card0-VGA-1:640x240ec drm_kms_helper.edid_firmware=card0-VGA-1:/lib/f$ GRUB_CMDLINE_LINUX="quiet splash consoleblank=0 video=card0-VGA-1:640x240ec drm_kms_helper.edid_firmwar$ # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' GRUB_GFXMODE="640x240x32 ; 640x240x24 ; 640x240x16" GRUB_GFXPAYLOAD="640x240x32 ; 640x240x24 ; 640x240x16" # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" ++++++++++++++++++++++++++++++++++++++++++++++++++++++
Picture of the set
Everything works as soon as RetroArch kicks in
1920x240 looks perfect on the CRT