HackingVGAforFun: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== VGA ==
== VGA ==
Video Grapbics Adapter
Video Graphics Adapter


== pinouts ==
== pinouts ==
Zeile 9: Zeile 9:
I used EDID 1.3<br>
I used EDID 1.3<br>
'''Windows'''
'''Windows'''
* standart timings
* it accepts:
* established timings
** standart timings
* it looks like Windows XP doesnt like "prefered timings"
** established timings
* it looks like Windows XP doesn't like "prefered timings"


'''Linux'''
'''Linux'''
Zeile 40: Zeile 41:
* you can use the export function to generate .raw files and use hexdump to convert them to plain/text hex
* you can use the export function to generate .raw files and use hexdump to convert them to plain/text hex


== hack the kernel module drm ==
== custom edid ==
* it looks like ATI Radeon HD5xxx only accepts: >= 2 vsync and >= 1 hsync
** with modified drm it is possible to use hsync == 0 too
 
=== hack the kernel module drm ===
* get the sourcecode, e.g. From kernel.org
* get the sourcecode, e.g. From kernel.org
* install linux-kernel-headers
* install linux-kernel-headers
Zeile 46: Zeile 51:
  Todo
  Todo
  Edited makefile goes here
  Edited makefile goes here
* patch todo.c , it doesn't accept vsync_width OR hsync_width to be 0
* patch ''drm_edid.c'' , it doesn't accept vsync_width OR hsync_width to be 0
* copy the newly built .ko files to /lib/modules/+kernelversion+/kernel/drivers/gpu/drm/
* copy the newly built .ko files to /lib/modules/+kernelversion+/kernel/drivers/gpu/drm/
* depmod -a
* depmod -a
* updateinitramfs -u
* update-initramfs -u

Version vom 30. Juli 2012, 18:57 Uhr

VGA

Video Graphics Adapter

pinouts

VGA pinouts

edid

EDID I used EDID 1.3
Windows

  • it accepts:
    • standart timings
    • established timings
  • it looks like Windows XP doesn't like "prefered timings"

Linux

  • The kernel module drm handels all the display stuff
  • it accepts:
    • established timings
    • standart timings
    • prefered timings

build a fake monitor

  • Terminate the color lines with 75ohms
  • Attach a 24C02 serial eeprom to the specified pins (24c04 - 24c16 is possible to )

flash a new edid

  • Load the kernelmodule i2c-dev
  • Get i2c-tools
  • build the i2c-tools
  • Become root: Sudo -s
  • Add the tools folder to the PATH: PATH=$PATH:< ... >/i2c-tools/tools
  • Run i2cdump to find the correct BUSID (device at 0x50 and 0x51)
  • Flash new EDID with write-edid.sh
  • Note the input file is plain/text with hexvalues, spaces and newlines only

create custom edid

Note

  • the tool outputs .dat-files, that need to be editet by hand, it contains invalid symbols
  • you can use the export function to generate .raw files and use hexdump to convert them to plain/text hex

custom edid

  • it looks like ATI Radeon HD5xxx only accepts: >= 2 vsync and >= 1 hsync
    • with modified drm it is possible to use hsync == 0 too

hack the kernel module drm

  • get the sourcecode, e.g. From kernel.org
  • install linux-kernel-headers
  • modify the Makefile
Todo
Edited makefile goes here
  • patch drm_edid.c , it doesn't accept vsync_width OR hsync_width to be 0
  • copy the newly built .ko files to /lib/modules/+kernelversion+/kernel/drivers/gpu/drm/
  • depmod -a
  • update-initramfs -u